
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original name: def_section_contents<32, false>
   DWARF original prototype: void def_section_contents<32,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

void __thiscall
gold::Versions::def_section_contents<32,_false>
          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)

{
  byte bVar1;
  Verdef *pVVar2;
  pointer pbVar3;
  byte *s;
  ushort uVar4;
  pointer ppVVar5;
  section_offset_type *psVar6;
  pointer ppVVar7;
  uint uVar8;
  section_offset_type sVar9;
  int iVar10;
  uint uVar11;
  byte *pbVar12;
  section_offset_type *psVar13;
  section_offset_type *psVar14;
  pointer pbVar15;
  pointer local_34;
  uint local_28;
  
  if (this->is_finalized_ == false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_finish;
  ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  if (ppVVar5 == ppVVar7) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");
  }
  uVar11 = 0;
  do {
    pVVar2 = *ppVVar5;
    ppVVar5 = ppVVar5 + 1;
    uVar11 = uVar11 + 0x1c +
             ((int)(pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                   ._M_impl._M_finish -
              (int)(pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                   ._M_impl._M_start >> 3) * 0x55555558;
  } while (ppVVar7 != ppVVar5);
  psVar6 = (section_offset_type *)operator_new__(uVar11);
  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_finish;
  local_34 = ppVVar7;
  if (ppVVar7 != ppVVar5) {
    local_28 = 0;
    psVar13 = psVar6;
    do {
      local_28 = local_28 + 1;
      pVVar2 = *local_34;
      *(undefined2 *)psVar13 = 1;
      uVar4 = (ushort)pVVar2->is_base_;
      if (pVVar2->is_weak_ != false) {
        uVar4 = uVar4 | 2;
      }
      if (pVVar2->is_info_ != false) {
        uVar4 = uVar4 | 4;
      }
      *(ushort *)((int)psVar13 + 2) = uVar4;
      uVar8 = (pVVar2->super_Version_base).index_;
      if (uVar8 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");
      }
      pbVar15 = (pVVar2->deps_).
                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                ._M_impl._M_finish;
      pbVar3 = (pVVar2->deps_).
               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
               ._M_impl._M_start;
      *(short *)(psVar13 + 1) = (short)uVar8;
      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;
      s = (byte *)pVVar2->name_;
      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;
      uVar8 = 0;
      pbVar12 = s;
      while (bVar1 = *pbVar12, bVar1 != 0) {
        while( true ) {
          pbVar12 = pbVar12 + 1;
          uVar8 = uVar8 * 0x10 + (uint)bVar1;
          if ((uVar8 & 0xf0000000) == 0) break;
          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar12;
          if (bVar1 == 0) goto LAB_0023195f;
        }
      }
LAB_0023195f:
      psVar13[2] = uVar8;
      iVar10 = iVar10 * 0x55555558 + 0x1c;
      psVar13[3] = 0x14;
      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {
        iVar10 = 0;
      }
      psVar13[4] = iVar10;
      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);
      pbVar15 = (pVVar2->deps_).
                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                ._M_impl._M_start;
      psVar13[5] = sVar9;
      psVar14 = psVar13 + 7;
      if ((pVVar2->deps_).
          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
          ._M_impl._M_finish == pbVar15) {
        psVar13[6] = 0;
      }
      else {
        psVar13[6] = 8;
        uVar8 = 0;
        psVar13 = psVar14;
        do {
          uVar8 = uVar8 + 1;
          sVar9 = Stringpool_template<char>::get_offset_with_length
                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);
          *psVar13 = sVar9;
          pbVar3 = (pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                   ._M_impl._M_finish;
          pbVar15 = pbVar15 + 1;
          psVar14 = psVar13 + 2;
          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -
                                              (int)(pVVar2->deps_).
                                                                                                      
                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>
                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;
          psVar13 = psVar14;
        } while (pbVar3 != pbVar15);
      }
      local_34 = local_34 + 1;
      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                _M_impl._M_finish;
      if (ppVVar5 == local_34) goto LAB_00231a40;
      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                _M_impl._M_start;
      psVar13 = psVar14;
    } while( true );
  }
  uVar8 = 0;
LAB_00231a46:
  if (uVar11 == uVar8) {
    *pp = (uchar *)psVar6;
    *psize = uVar11;
    *pentries = (int)local_34 -
                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>
                     ._M_impl._M_start >> 2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents");
LAB_00231a40:
  uVar8 = (int)psVar14 - (int)psVar6;
  goto LAB_00231a46;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)

{
  byte bVar1;
  int iVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  ushort uVar5;
  int *piVar6;
  undefined4 *puVar7;
  int *piVar8;
  uint uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  byte *pbVar14;
  undefined4 *puVar15;
  undefined4 *puVar16;
  undefined4 *puVar17;
  int *local_34;
  uint local_28;
  
  if ((char)param_1[0xd] == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  piVar8 = (int *)param_1[1];
  piVar6 = (int *)*param_1;
  if (piVar6 == piVar8) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);
  }
  iVar13 = 0;
  do {
    iVar11 = *piVar6;
    piVar6 = piVar6 + 1;
    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;
  } while (piVar8 != piVar6);
  puVar7 = (undefined4 *)FUN_003ac450(iVar13);
  piVar8 = (int *)*param_1;
  piVar6 = (int *)param_1[1];
  local_34 = piVar8;
  if (piVar8 != piVar6) {
    local_28 = 0;
    puVar15 = puVar7;
    do {
      local_28 = local_28 + 1;
      iVar11 = *local_34;
      *(undefined2 *)puVar15 = 1;
      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);
      if (*(char *)(iVar11 + 0x19) != '\0') {
        uVar5 = uVar5 | 2;
      }
      if (*(char *)(iVar11 + 0x1a) != '\0') {
        uVar5 = uVar5 | 4;
      }
      *(ushort *)((int)puVar15 + 2) = uVar5;
      if (*(int *)(iVar11 + 4) == -1) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/dynobj.h",0x179,"index");
      }
      iVar12 = *(int *)(iVar11 + 0x10);
      iVar2 = *(int *)(iVar11 + 0xc);
      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);
      iVar12 = iVar12 - iVar2 >> 3;
      pbVar3 = *(byte **)(iVar11 + 8);
      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;
      uVar9 = 0;
      pbVar14 = pbVar3;
      while (bVar1 = *pbVar14, bVar1 != 0) {
        while( true ) {
          pbVar14 = pbVar14 + 1;
          uVar9 = uVar9 * 0x10 + (uint)bVar1;
          if ((uVar9 & 0xf0000000) == 0) break;
          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar14;
          if (bVar1 == 0) goto LAB_0023195f;
        }
      }
LAB_0023195f:
      puVar15[2] = uVar9;
      iVar12 = iVar12 * 0x55555558 + 0x1c;
      puVar15[3] = 0x14;
      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {
        iVar12 = 0;
      }
      puVar15[4] = iVar12;
      uVar10 = FUN_003495e0(param_2,pbVar3);
      puVar17 = *(undefined4 **)(iVar11 + 0xc);
      puVar15[5] = uVar10;
      puVar16 = puVar15 + 7;
      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {
        puVar15[6] = 0;
      }
      else {
        puVar15[6] = 8;
        uVar9 = 0;
        puVar15 = puVar16;
        do {
          uVar9 = uVar9 + 1;
          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);
          *puVar15 = uVar10;
          puVar4 = *(undefined4 **)(iVar11 + 0x10);
          puVar17 = puVar17 + 6;
          puVar16 = puVar15 + 2;
          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *
                                            -0x55555555)) << 3;
          puVar15 = puVar16;
        } while (puVar4 != puVar17);
      }
      local_34 = local_34 + 1;
      piVar6 = (int *)param_1[1];
      if (piVar6 == local_34) goto LAB_00231a40;
      piVar8 = (int *)*param_1;
      puVar15 = puVar16;
    } while( true );
  }
  iVar11 = 0;
LAB_00231a46:
  if (iVar13 == iVar11) {
    *param_3 = puVar7;
    *param_4 = iVar13;
    *param_5 = (int)local_34 - *param_1 >> 2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);
LAB_00231a40:
  iVar11 = (int)puVar16 - (int)puVar7;
  goto LAB_00231a46;
}


CALL 0x00074f02
ADD EAX,0x3b87cb
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x40]
CMP byte ptr [EAX + 0x34],0x0
JZ 0x00231ac0
MOV EAX,dword ptr [ESP + 0x40]
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
CMP EAX,ECX
JZ 0x00231aa3
XOR EBX,EBX
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV ESI,dword ptr [EAX]
ADD EAX,0x4
MOV EDX,dword ptr [ESI + 0x10]
SUB EDX,dword ptr [ESI + 0xc]
SAR EDX,0x3
IMUL EDX,EDX,-0x55555555
LEA EBX,[EBX + EDX*0x8 + 0x1c]
CMP ECX,EAX
JNZ 0x00231870
MOV dword ptr [ESP + 0x18],EBX
SUB ESP,0xc
PUSH EBX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x003ac450
MOV dword ptr [ESP + 0x2c],EAX
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x50]
MOV ECX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x18],ECX
ADD ESP,0x10
CMP ECX,EBX
JZ 0x00231a80
MOV dword ptr [ESP + 0x14],0x0
MOV EAX,ECX
LEA ESI,[ESI]
MOV ECX,dword ptr [ESP + 0x8]
SUB EBX,EAX
ADD dword ptr [ESP + 0x14],0x1
MOV EDX,0x1
SAR EBX,0x2
MOV ESI,dword ptr [ECX]
MOV dword ptr [ESP + 0x10],EBX
MOV word ptr [EBP],DX
CMP byte ptr [ESI + 0x19],0x0
MOVZX EAX,byte ptr [ESI + 0x18]
JZ 0x002318f2
OR EAX,0x2
CMP byte ptr [ESI + 0x1a],0x0
JZ 0x002318fb
OR EAX,0x4
MOV word ptr [EBP + 0x2],AX
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,-0x1
JZ 0x00231a84
MOV ECX,dword ptr [ESI + 0x10]
SUB ECX,dword ptr [ESI + 0xc]
MOV word ptr [EBP + 0x4],AX
SAR ECX,0x3
MOV EDI,dword ptr [ESI + 0x8]
IMUL ECX,ECX,-0x55555555
MOV EBX,EDI
LEA EAX,[ECX + 0x1]
MOV word ptr [EBP + 0x6],AX
XOR EAX,EAX
LEA ESI,[ESI]
ADD EBX,0x1
MOVZX EDX,byte ptr [EBX + -0x1]
TEST DL,DL
JZ 0x0023195f
SHL EAX,0x4
ADD EAX,EDX
MOV EDX,EAX
AND EDX,0xf0000000
JZ 0x00231930
SHR EDX,0x18
AND EAX,0xfffffff
ADD EBX,0x1
XOR EAX,EDX
MOVZX EDX,byte ptr [EBX + -0x1]
TEST DL,DL
JNZ 0x0023193b
MOV EDX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x14]
MOV dword ptr [EBP + 0x8],EAX
LEA EAX,[ECX*0x8 + 0x1c]
MOV dword ptr [EBP + 0xc],0x14
CMP EBX,EDX
MOV EDX,0x0
CMOVNC EAX,EDX
SUB ESP,0x8
MOV dword ptr [EBP + 0x10],EAX
PUSH EDI
PUSH dword ptr [ESP + 0x50]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x003495e0
MOV EDI,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV dword ptr [EBP + 0x14],EAX
LEA EAX,[EBP + 0x1c]
CMP dword ptr [ESI + 0x10],EDI
JZ 0x00231a30
XOR EDX,EDX
MOV dword ptr [EBP + 0x18],0x8
MOV EBP,EAX
MOV EAX,EDX
MOV EDX,ESI
MOV ESI,EAX
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0x4
ADD ESI,0x1
PUSH dword ptr [EDI + 0x4]
PUSH dword ptr [EDI]
PUSH dword ptr [ESP + 0x50]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00349530
MOV EDX,dword ptr [ESP + 0x20]
ADD ESP,0x10
MOV dword ptr [EBP],EAX
MOV ECX,dword ptr [EDX + 0x10]
MOV EAX,ECX
SUB EAX,dword ptr [EDX + 0xc]
SAR EAX,0x3
IMUL EAX,EAX,-0x55555555
CMP ESI,EAX
SETC AL
ADD EDI,0x18
ADD EBP,0x8
MOVZX EAX,AL
SHL EAX,0x3
MOV dword ptr [EBP + -0x4],EAX
CMP ECX,EDI
JNZ 0x002319c0
MOV EDI,dword ptr [ESP + 0x40]
ADD dword ptr [ESP + 0x8],0x4
MOV EAX,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [EDI + 0x4]
CMP EBX,EAX
JZ 0x00231a40
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX]
JMP 0x002318c8
MOV dword ptr [EBP + 0x18],0x0
MOV EBP,EAX
JMP 0x00231a0f
MOV EAX,EBP
SUB EAX,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x18],EAX
JNZ 0x00231add
MOV EAX,dword ptr [ESP + 0x48]
MOV ESI,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x50]
MOV dword ptr [EAX],ESI
MOV EAX,dword ptr [ESP + 0x4c]
MOV ESI,dword ptr [ESP + 0x40]
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,dword ptr [ESI]
SAR EAX,0x2
MOV dword ptr [EDX],EAX
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EAX,EAX
JMP 0x00231a46
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe9c4c8]
PUSH EAX
LEA EAX,[EBX + 0xffe7c4b4]
PUSH 0x179
PUSH EAX
CALL 0x002446e0
PUSH ECX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe9c2a8]
PUSH EAX
LEA EAX,[EBX + 0xffe9bdf0]
PUSH 0x702
PUSH EAX
CALL 0x002446e0
PUSH EBX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe9c2a8]
PUSH EAX
LEA EAX,[EBX + 0xffe9bdf0]
PUSH 0x701
PUSH EAX
CALL 0x002446e0
PUSH EAX
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffe9c2a8]
PUSH EAX
LEA EAX,[EBX + 0xffe9bdf0]
PUSH 0x71c
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}\n\n" comment (function_definition "void FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" primitive_type (function_declarator "FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" if (parenthesized_expression "((char)param_1[0xd] == '\0')" ( (binary_expression "(char)param_1[0xd] == '\0'" (cast_expression "(char)param_1[0xd]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" { comment (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents")" identifier (argument_list "("../../gold/dynobj.cc",0x701,"def_section_contents")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") ))) ;) })) (expression_statement "piVar8 = (int *)param_1[1];" (assignment_expression "piVar8 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar6 = (int *)*param_1;" (assignment_expression "piVar6 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (piVar6 == piVar8) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" if (parenthesized_expression "(piVar6 == piVar8)" ( (binary_expression "piVar6 == piVar8" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" { comment (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" identifier (argument_list "("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);" do (compound_statement "{\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  }" { (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;" (assignment_expression "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" identifier = (binary_expression "iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (binary_expression "iVar13 + 0x1c" identifier + number_literal) + (binary_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc)" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal))) ;) }) while (parenthesized_expression "(piVar8 != piVar6)" ( (binary_expression "piVar8 != piVar6" identifier != identifier) )) ;) (expression_statement "puVar7 = (undefined4 *)FUN_003ac450(iVar13);" (assignment_expression "puVar7 = (undefined4 *)FUN_003ac450(iVar13)" identifier = (cast_expression "(undefined4 *)FUN_003ac450(iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = piVar8;" (assignment_expression "local_34 = piVar8" identifier = identifier) ;) (if_statement "if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" if (parenthesized_expression "(piVar8 != piVar6)" ( (binary_expression "piVar8 != piVar6" identifier != identifier) )) (compound_statement "{\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar7;" (assignment_expression "puVar15 = puVar7" identifier = identifier) ;) (do_statement "do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );" do (compound_statement "{\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    }" { (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = *local_34;" (assignment_expression "iVar11 = *local_34" identifier = (pointer_expression "*local_34" * identifier)) ;) (expression_statement "*(undefined2 *)puVar15 = 1;" (assignment_expression "*(undefined2 *)puVar15 = 1" (pointer_expression "*(undefined2 *)puVar15" * (cast_expression "(undefined2 *)puVar15" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = (ushort)*(byte *)(iVar11 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar11 + 0x18)" identifier = (binary_expression "(ushort)*(byte *)(iVar11 + 0x18)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x19)" * (cast_expression "(char *)(iVar11 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x19)" ( (binary_expression "iVar11 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar5 | 2;\n      }" { (expression_statement "uVar5 = uVar5 | 2;" (assignment_expression "uVar5 = uVar5 | 2" identifier = (binary_expression "uVar5 | 2" identifier | number_literal)) ;) })) (if_statement "if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x1a)" * (cast_expression "(char *)(iVar11 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1a)" ( (binary_expression "iVar11 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar5 | 4;\n      }" { (expression_statement "uVar5 = uVar5 | 4;" (assignment_expression "uVar5 = uVar5 | 4" identifier = (binary_expression "uVar5 | 4" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar15 + 2) = uVar5;" (assignment_expression "*(ushort *)((int)puVar15 + 2) = uVar5" (pointer_expression "*(ushort *)((int)puVar15 + 2)" * (cast_expression "(ushort *)((int)puVar15 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 2)" ( (binary_expression "(int)puVar15 + 2" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar11 + 4) == -1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" if (parenthesized_expression "(*(int *)(iVar11 + 4) == -1)" ( (binary_expression "*(int *)(iVar11 + 4) == -1" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" { comment (expression_statement "FUN_002446e0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_002446e0("../../gold/dynobj.h",0x179,"index")" identifier (argument_list "("../../gold/dynobj.h",0x179,"index")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""index"" " string_content ") ))) ;) })) (expression_statement "iVar12 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar12 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);" (assignment_expression "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4)" (pointer_expression "*(short *)(puVar15 + 1)" * (cast_expression "(short *)(puVar15 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 1)" ( (binary_expression "puVar15 + 1" identifier + number_literal) )))) = (cast_expression "(short)*(int *)(iVar11 + 4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 - iVar2 >> 3;" (assignment_expression "iVar12 = iVar12 - iVar2 >> 3" identifier = (binary_expression "iVar12 - iVar2 >> 3" (binary_expression "iVar12 - iVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "pbVar3 = *(byte **)(iVar11 + 8);" (assignment_expression "pbVar3 = *(byte **)(iVar11 + 8)" identifier = (pointer_expression "*(byte **)(iVar11 + 8)" * (cast_expression "(byte **)(iVar11 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;" (assignment_expression "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1" (pointer_expression "*(short *)((int)puVar15 + 6)" * (cast_expression "(short *)((int)puVar15 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 6)" ( (binary_expression "(int)puVar15 + 6" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)iVar12 * -0x5555 + 1" (binary_expression "(short)iVar12 * -0x5555" (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" identifier = identifier) ;) (while_statement "while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar14, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar14, bVar1 != 0" (assignment_expression "bVar1 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 * 0x10 + (uint)bVar1;" (assignment_expression "uVar9 = uVar9 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar9 * 0x10 + (uint)bVar1" (binary_expression "uVar9 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar9 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar9 & 0xf0000000) == 0)" ( (binary_expression "(uVar9 & 0xf0000000) == 0" (parenthesized_expression "(uVar9 & 0xf0000000)" ( (binary_expression "uVar9 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;" (assignment_expression "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" (binary_expression "uVar9 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar9 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xf0000000)" ( (binary_expression "uVar9 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar14;" (assignment_expression "bVar1 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0023195f;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0023195f;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0023195f:\n      puVar15[2] = uVar9;" statement_identifier : (expression_statement "puVar15[2] = uVar9;" (assignment_expression "puVar15[2] = uVar9" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "iVar12 = iVar12 * 0x55555558 + 0x1c;" (assignment_expression "iVar12 = iVar12 * 0x55555558 + 0x1c" identifier = (binary_expression "iVar12 * 0x55555558 + 0x1c" (binary_expression "iVar12 * 0x55555558" identifier * number_literal) + number_literal)) ;) (expression_statement "puVar15[3] = 0x14;" (assignment_expression "puVar15[3] = 0x14" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }" if (parenthesized_expression "((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28)" ( (binary_expression "(uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28" (call_expression "(uint)((int)piVar6 - (int)piVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar6 - (int)piVar8 >> 2)" ( (binary_expression "(int)piVar6 - (int)piVar8 >> 2" (binary_expression "(int)piVar6 - (int)piVar8" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "puVar15[4] = iVar12;" (assignment_expression "puVar15[4] = iVar12" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = FUN_003495e0(param_2,pbVar3);" (assignment_expression "uVar10 = FUN_003495e0(param_2,pbVar3)" identifier = (call_expression "FUN_003495e0(param_2,pbVar3)" identifier (argument_list "(param_2,pbVar3)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = *(undefined4 **)(iVar11 + 0xc);" (assignment_expression "puVar17 = *(undefined4 **)(iVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" * (cast_expression "(undefined4 **)(iVar11 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar15[5] = uVar10;" (assignment_expression "puVar15[5] = uVar10" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar15 + 7;" (assignment_expression "puVar16 = puVar15 + 7" identifier = (binary_expression "puVar15 + 7" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" if (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x10) == puVar17)" ( (binary_expression "*(undefined4 **)(iVar11 + 0x10) == puVar17" (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" * (cast_expression "(undefined4 **)(iVar11 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        puVar15[6] = 0;\n      }" { (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" else (compound_statement "{\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" { (expression_statement "puVar15[6] = 8;" (assignment_expression "puVar15[6] = 8" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (do_statement "do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);" do (compound_statement "{\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        }" { (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);" (assignment_expression "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1])" identifier = (call_expression "FUN_00349530(param_2,*puVar17,puVar17[1])" identifier (argument_list "(param_2,*puVar17,puVar17[1])" ( identifier , (pointer_expression "*puVar17" * identifier) , (subscript_expression "puVar17[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar15 = uVar10;" (assignment_expression "*puVar15 = uVar10" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(iVar11 + 0x10);" (assignment_expression "puVar4 = *(undefined4 **)(iVar11 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" * (cast_expression "(undefined4 **)(iVar11 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar17 + 6;" (assignment_expression "puVar17 = puVar17 + 6" identifier = (binary_expression "puVar17 + 6" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar15 + 2;" (assignment_expression "puVar16 = puVar15 + 2" identifier = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;" (assignment_expression "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (call_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" ( (binary_expression "uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" identifier < (call_expression "(uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" ( (binary_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555" (parenthesized_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3)" ( (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal) )))) ))) << number_literal)) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar17)" ( (binary_expression "puVar4 != puVar17" identifier != identifier) )) ;) }))) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar6 == local_34) goto LAB_00231a40;" if (parenthesized_expression "(piVar6 == local_34)" ( (binary_expression "piVar6 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00231a40;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" statement_identifier : (if_statement "if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (compound_statement "{\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" { (expression_statement "*param_3 = puVar7;" (assignment_expression "*param_3 = puVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = iVar13;" (assignment_expression "*param_4 = iVar13" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "*param_5 = (int)local_34 - *param_1 >> 2;" (assignment_expression "*param_5 = (int)local_34 - *param_1 >> 2" (pointer_expression "*param_5" * identifier) = (binary_expression "(int)local_34 - *param_1 >> 2" (binary_expression "(int)local_34 - *param_1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_1" * identifier)) >> number_literal)) ;) (return_statement "return;" return ;) }))) comment (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" identifier (argument_list "("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;" statement_identifier : (expression_statement "iVar11 = (int)puVar16 - (int)puVar7;" (assignment_expression "iVar11 = (int)puVar16 - (int)puVar7" identifier = (binary_expression "(int)puVar16 - (int)puVar7" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00231a46;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original name: def_section_contents<32, false>\n   DWARF original prototype: void def_section_contents<32,_false>(Versions * this, Stringpool *\n   dynpool, uchar * * pp, uint * psize, uint * pentries) */\n\nvoid __thiscall\ngold::Versions::def_section_contents<32,_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  byte bVar1;\n  Verdef *pVVar2;\n  pointer pbVar3;\n  byte *s;\n  ushort uVar4;\n  pointer ppVVar5;\n  section_offset_type *psVar6;\n  pointer ppVVar7;\n  uint uVar8;\n  section_offset_type sVar9;\n  int iVar10;\n  uint uVar11;\n  byte *pbVar12;\n  section_offset_type *psVar13;\n  section_offset_type *psVar14;\n  pointer pbVar15;\n  pointer local_34;\n  uint local_28;\n  \n  if (this->is_finalized_ == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;\n  ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  if (ppVVar5 == ppVVar7) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  uVar11 = 0;\n  do {\n    pVVar2 = *ppVVar5;\n    ppVVar5 = ppVVar5 + 1;\n    uVar11 = uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558;\n  } while (ppVVar7 != ppVVar5);\n  psVar6 = (section_offset_type *)operator_new__(uVar11);\n  ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;\n  local_34 = ppVVar7;\n  if (ppVVar7 != ppVVar5) {\n    local_28 = 0;\n    psVar13 = psVar6;\n    do {\n      local_28 = local_28 + 1;\n      pVVar2 = *local_34;\n      *(undefined2 *)psVar13 = 1;\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)((int)psVar13 + 2) = uVar4;\n      uVar8 = (pVVar2->super_Version_base).index_;\n      if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_finish;\n      pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_start;\n      *(short *)(psVar13 + 1) = (short)uVar8;\n      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;\n      s = (byte *)pVVar2->name_;\n      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;\n      uVar8 = 0;\n      pbVar12 = s;\n      while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      psVar13[2] = uVar8;\n      iVar10 = iVar10 * 0x55555558 + 0x1c;\n      psVar13[3] = 0x14;\n      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }\n      psVar13[4] = iVar10;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      psVar13[5] = sVar9;\n      psVar14 = psVar13 + 7;\n      if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }\n      local_34 = local_34 + 1;\n      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;\n      if (ppVVar5 == local_34) goto LAB_00231a40;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      psVar13 = psVar14;\n    } while( true );\n  }\n  uVar8 = 0;\nLAB_00231a46:\n  if (uVar11 == uVar8) {\n    *pp = (uchar *)psVar6;\n    *psize = uVar11;\n    *pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents");\nLAB_00231a40:\n  uVar8 = (int)psVar14 - (int)psVar6;\n  goto LAB_00231a46;\n}\n\n" comment comment (declaration "void __thiscall\ngold::Versions::def_section_contents<32,_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Versions::" identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)\n\n{\n  byte" (function_declarator "_false>\n          (Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)" identifier (ERROR ">" >) (parameter_list "(Versions *this,Stringpool *dynpool,uchar **pp,uint *psize,uint *pentries)" ( (parameter_declaration "Versions *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Stringpool *dynpool" type_identifier (pointer_declarator "*dynpool" * identifier)) , (parameter_declaration "uchar **pp" type_identifier (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "uint *psize" type_identifier (pointer_declarator "*psize" * identifier)) , (parameter_declaration "uint *pentries" type_identifier (pointer_declarator "*pentries" * identifier)) ))) { identifier) identifier ;) (declaration "Verdef *pVVar2;" type_identifier (pointer_declarator "*pVVar2" * identifier) ;) (declaration "pointer pbVar3;" type_identifier identifier ;) (declaration "byte *s;" type_identifier (pointer_declarator "*s" * identifier) ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "pointer ppVVar5;" type_identifier identifier ;) (declaration "section_offset_type *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "pointer ppVVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "section_offset_type sVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "section_offset_type *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "section_offset_type *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "pointer pbVar15;" type_identifier identifier ;) (declaration "pointer local_34;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if (this->is_finalized_ == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" if (parenthesized_expression "(this->is_finalized_ == false)" ( (binary_expression "this->is_finalized_ == false" (field_expression "this->is_finalized_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents")" identifier (argument_list "("../../gold/dynobj.cc",0x701,"def_section_contents")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") ))) ;) })) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar5 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar5 == ppVVar7) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" if (parenthesized_expression "(ppVVar5 == ppVVar7)" ( (binary_expression "ppVVar5 == ppVVar7" identifier == identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents")" identifier (argument_list "("../../gold/dynobj.cc",0x702,"def_section_contents")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") ))) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n    pVVar2 = *ppVVar5;\n    ppVVar5 = ppVVar5 + 1;\n    uVar11 = uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558;\n  } while (ppVVar7 != ppVVar5);" do (compound_statement "{\n    pVVar2 = *ppVVar5;\n    ppVVar5 = ppVVar5 + 1;\n    uVar11 = uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558;\n  }" { (expression_statement "pVVar2 = *ppVVar5;" (assignment_expression "pVVar2 = *ppVVar5" identifier = (pointer_expression "*ppVVar5" * identifier)) ;) (expression_statement "ppVVar5 = ppVVar5 + 1;" (assignment_expression "ppVVar5 = ppVVar5 + 1" identifier = (binary_expression "ppVVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558;" (assignment_expression "uVar11 = uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558" identifier = (binary_expression "uVar11 + 0x1c +\n             ((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558" (binary_expression "uVar11 + 0x1c" identifier + number_literal) + (binary_expression "((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3) * 0x55555558" (parenthesized_expression "((int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3)" ( (ERROR "(int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(int)(pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(int)(pVVar2->deps_).\n                   super__Vector_base<std" (cast_expression "(int)(pVVar2->deps_).\n                   super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar2->deps_).\n                   super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                   ._M_impl._M_finish -\n              (int)(pVVar2->deps_).\n                   super__Vector_base" (field_expression "allocator<char>_>_>_>\n                   ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                   ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)(pVVar2->deps_).\n                   super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar2->deps_).\n                   super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier))) < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_>_>\n                   ._M_impl._M_start >> 3" (field_expression "allocator<char>_>_>_>\n                   ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                   ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) )) * number_literal))) ;) }) while (parenthesized_expression "(ppVVar7 != ppVVar5)" ( (binary_expression "ppVVar7 != ppVVar5" identifier != identifier) )) ;) (expression_statement "psVar6 = (section_offset_type *)operator_new__(uVar11);" (assignment_expression "psVar6 = (section_offset_type *)operator_new__(uVar11)" identifier = (cast_expression "(section_offset_type *)operator_new__(uVar11)" ( (type_descriptor "section_offset_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))))) ;) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar5 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_34 = ppVVar7;" (assignment_expression "local_34 = ppVVar7" identifier = identifier) ;) (if_statement "if (ppVVar7 != ppVVar5) {\n    local_28 = 0;\n    psVar13 = psVar6;\n    do {\n      local_28 = local_28 + 1;\n      pVVar2 = *local_34;\n      *(undefined2 *)psVar13 = 1;\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)((int)psVar13 + 2) = uVar4;\n      uVar8 = (pVVar2->super_Version_base).index_;\n      if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_finish;\n      pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_start;\n      *(short *)(psVar13 + 1) = (short)uVar8;\n      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;\n      s = (byte *)pVVar2->name_;\n      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;\n      uVar8 = 0;\n      pbVar12 = s;\n      while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      psVar13[2] = uVar8;\n      iVar10 = iVar10 * 0x55555558 + 0x1c;\n      psVar13[3] = 0x14;\n      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }\n      psVar13[4] = iVar10;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      psVar13[5] = sVar9;\n      psVar14 = psVar13 + 7;\n      if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }\n      local_34 = local_34 + 1;\n      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;\n      if (ppVVar5 == local_34) goto LAB_00231a40;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      psVar13 = psVar14;\n    } while( true );\n  }" if (parenthesized_expression "(ppVVar7 != ppVVar5)" ( (binary_expression "ppVVar7 != ppVVar5" identifier != identifier) )) (compound_statement "{\n    local_28 = 0;\n    psVar13 = psVar6;\n    do {\n      local_28 = local_28 + 1;\n      pVVar2 = *local_34;\n      *(undefined2 *)psVar13 = 1;\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)((int)psVar13 + 2) = uVar4;\n      uVar8 = (pVVar2->super_Version_base).index_;\n      if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_finish;\n      pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_start;\n      *(short *)(psVar13 + 1) = (short)uVar8;\n      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;\n      s = (byte *)pVVar2->name_;\n      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;\n      uVar8 = 0;\n      pbVar12 = s;\n      while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      psVar13[2] = uVar8;\n      iVar10 = iVar10 * 0x55555558 + 0x1c;\n      psVar13[3] = 0x14;\n      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }\n      psVar13[4] = iVar10;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      psVar13[5] = sVar9;\n      psVar14 = psVar13 + 7;\n      if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }\n      local_34 = local_34 + 1;\n      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;\n      if (ppVVar5 == local_34) goto LAB_00231a40;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      psVar13 = psVar14;\n    } while( true );\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "psVar13 = psVar6;" (assignment_expression "psVar13 = psVar6" identifier = identifier) ;) (do_statement "do {\n      local_28 = local_28 + 1;\n      pVVar2 = *local_34;\n      *(undefined2 *)psVar13 = 1;\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)((int)psVar13 + 2) = uVar4;\n      uVar8 = (pVVar2->super_Version_base).index_;\n      if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_finish;\n      pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_start;\n      *(short *)(psVar13 + 1) = (short)uVar8;\n      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;\n      s = (byte *)pVVar2->name_;\n      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;\n      uVar8 = 0;\n      pbVar12 = s;\n      while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      psVar13[2] = uVar8;\n      iVar10 = iVar10 * 0x55555558 + 0x1c;\n      psVar13[3] = 0x14;\n      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }\n      psVar13[4] = iVar10;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      psVar13[5] = sVar9;\n      psVar14 = psVar13 + 7;\n      if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }\n      local_34 = local_34 + 1;\n      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;\n      if (ppVVar5 == local_34) goto LAB_00231a40;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      psVar13 = psVar14;\n    } while( true );" do (compound_statement "{\n      local_28 = local_28 + 1;\n      pVVar2 = *local_34;\n      *(undefined2 *)psVar13 = 1;\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)((int)psVar13 + 2) = uVar4;\n      uVar8 = (pVVar2->super_Version_base).index_;\n      if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_finish;\n      pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n               ._M_impl._M_start;\n      *(short *)(psVar13 + 1) = (short)uVar8;\n      iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;\n      s = (byte *)pVVar2->name_;\n      *(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;\n      uVar8 = 0;\n      pbVar12 = s;\n      while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      psVar13[2] = uVar8;\n      iVar10 = iVar10 * 0x55555558 + 0x1c;\n      psVar13[3] = 0x14;\n      if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }\n      psVar13[4] = iVar10;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                ._M_impl._M_start;\n      psVar13[5] = sVar9;\n      psVar14 = psVar13 + 7;\n      if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }\n      local_34 = local_34 + 1;\n      ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;\n      if (ppVVar5 == local_34) goto LAB_00231a40;\n      ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      psVar13 = psVar14;\n    }" { (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "pVVar2 = *local_34;" (assignment_expression "pVVar2 = *local_34" identifier = (pointer_expression "*local_34" * identifier)) ;) (expression_statement "*(undefined2 *)psVar13 = 1;" (assignment_expression "*(undefined2 *)psVar13 = 1" (pointer_expression "*(undefined2 *)psVar13" * (cast_expression "(undefined2 *)psVar13" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar4 = (ushort)pVVar2->is_base_;" (assignment_expression "uVar4 = (ushort)pVVar2->is_base_" identifier = (cast_expression "(ushort)pVVar2->is_base_" ( (type_descriptor "ushort" type_identifier) ) (field_expression "pVVar2->is_base_" identifier -> field_identifier))) ;) (if_statement "if (pVVar2->is_weak_ != false) {\n        uVar4 = uVar4 | 2;\n      }" if (parenthesized_expression "(pVVar2->is_weak_ != false)" ( (binary_expression "pVVar2->is_weak_ != false" (field_expression "pVVar2->is_weak_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar4 = uVar4 | 2;\n      }" { (expression_statement "uVar4 = uVar4 | 2;" (assignment_expression "uVar4 = uVar4 | 2" identifier = (binary_expression "uVar4 | 2" identifier | number_literal)) ;) })) (if_statement "if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }" if (parenthesized_expression "(pVVar2->is_info_ != false)" ( (binary_expression "pVVar2->is_info_ != false" (field_expression "pVVar2->is_info_" identifier -> field_identifier) != false) )) (compound_statement "{\n        uVar4 = uVar4 | 4;\n      }" { (expression_statement "uVar4 = uVar4 | 4;" (assignment_expression "uVar4 = uVar4 | 4" identifier = (binary_expression "uVar4 | 4" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)psVar13 + 2) = uVar4;" (assignment_expression "*(ushort *)((int)psVar13 + 2) = uVar4" (pointer_expression "*(ushort *)((int)psVar13 + 2)" * (cast_expression "(ushort *)((int)psVar13 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 2)" ( (binary_expression "(int)psVar13 + 2" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = (pVVar2->super_Version_base).index_;" (assignment_expression "uVar8 = (pVVar2->super_Version_base).index_" identifier = (field_expression "(pVVar2->super_Version_base).index_" (parenthesized_expression "(pVVar2->super_Version_base)" ( (field_expression "pVVar2->super_Version_base" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar8 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }" if (parenthesized_expression "(uVar8 == 0xffffffff)" ( (binary_expression "uVar8 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.h",0x179,"index");" (call_expression "do_gold_unreachable("../../gold/dynobj.h",0x179,"index")" identifier (argument_list "("../../gold/dynobj.h",0x179,"index")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""index"" " string_content ") ))) ;) })) (ERROR "pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar2->deps_).\n                super__Vector_base<std" (field_expression "(pVVar2->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n                ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (ERROR "pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar3 = (pVVar2->deps_).\n               super__Vector_base<std" identifier = (binary_expression "(pVVar2->deps_).\n               super__Vector_base<std" (field_expression "(pVVar2->deps_).\n               super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n               ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n               ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n               ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*(short *)(psVar13 + 1) = (short)uVar8;" (assignment_expression "*(short *)(psVar13 + 1) = (short)uVar8" (pointer_expression "*(short *)(psVar13 + 1)" * (cast_expression "(short *)(psVar13 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar13 + 1)" ( (binary_expression "psVar13 + 1" identifier + number_literal) )))) = (cast_expression "(short)uVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "iVar10 = (int)pbVar15 - (int)pbVar3 >> 3;" (assignment_expression "iVar10 = (int)pbVar15 - (int)pbVar3 >> 3" identifier = (binary_expression "(int)pbVar15 - (int)pbVar3 >> 3" (binary_expression "(int)pbVar15 - (int)pbVar3" (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "s = (byte *)pVVar2->name_;" (assignment_expression "s = (byte *)pVVar2->name_" identifier = (cast_expression "(byte *)pVVar2->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pVVar2->name_" identifier -> field_identifier))) ;) (expression_statement "*(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1;" (assignment_expression "*(short *)((int)psVar13 + 6) = (short)iVar10 * -0x5555 + 1" (pointer_expression "*(short *)((int)psVar13 + 6)" * (cast_expression "(short *)((int)psVar13 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar13 + 6)" ( (binary_expression "(int)psVar13 + 6" (cast_expression "(int)psVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)iVar10 * -0x5555 + 1" (binary_expression "(short)iVar10 * -0x5555" (cast_expression "(short)iVar10" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = s;" (assignment_expression "pbVar12 = s" identifier = identifier) ;) (while_statement "while (bVar1 = *pbVar12, bVar1 != 0) {\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar12, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar12, bVar1 != 0" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          uVar8 = uVar8 * 0x10 + (uint)bVar1;\n          if ((uVar8 & 0xf0000000) == 0) break;\n          uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar12;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 * 0x10 + (uint)bVar1;" (assignment_expression "uVar8 = uVar8 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar8 * 0x10 + (uint)bVar1" (binary_expression "uVar8 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar8 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar8 & 0xf0000000) == 0)" ( (binary_expression "(uVar8 & 0xf0000000) == 0" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18;" (assignment_expression "uVar8 = uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar8 & 0xfffffff ^ (uVar8 & 0xf0000000) >> 0x18" (binary_expression "uVar8 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar8 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar8 & 0xf0000000)" ( (binary_expression "uVar8 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar12;" (assignment_expression "bVar1 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0023195f;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0023195f;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0023195f:\n      psVar13[2] = uVar8;" statement_identifier : (expression_statement "psVar13[2] = uVar8;" (assignment_expression "psVar13[2] = uVar8" (subscript_expression "psVar13[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "iVar10 = iVar10 * 0x55555558 + 0x1c;" (assignment_expression "iVar10 = iVar10 * 0x55555558 + 0x1c" identifier = (binary_expression "iVar10 * 0x55555558 + 0x1c" (binary_expression "iVar10 * 0x55555558" identifier * number_literal) + number_literal)) ;) (expression_statement "psVar13[3] = 0x14;" (assignment_expression "psVar13[3] = 0x14" (subscript_expression "psVar13[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28) {\n        iVar10 = 0;\n      }" if (parenthesized_expression "((uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28)" ( (binary_expression "(uint)((int)ppVVar5 - (int)ppVVar7 >> 2) <= local_28" (call_expression "(uint)((int)ppVVar5 - (int)ppVVar7 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppVVar5 - (int)ppVVar7 >> 2)" ( (binary_expression "(int)ppVVar5 - (int)ppVVar7 >> 2" (binary_expression "(int)ppVVar5 - (int)ppVVar7" (cast_expression "(int)ppVVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppVVar7" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        iVar10 = 0;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) })) (expression_statement "psVar13[4] = iVar10;" (assignment_expression "psVar13[4] = iVar10" (subscript_expression "psVar13[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);" (assignment_expression "sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s)" identifier = (binary_expression "Stringpool_template<char>::get_offset(dynpool,(char *)s)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset(dynpool,(char *)s)" identifier (argument_list "(dynpool,(char *)s)" ( identifier , (cast_expression "(char *)s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) ;) (ERROR "pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar15 = (pVVar2->deps_).\n                super__Vector_base<std" identifier = (binary_expression "(pVVar2->deps_).\n                super__Vector_base<std" (field_expression "(pVVar2->deps_).\n                super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                ._M_impl._M_start;" (field_expression "allocator<char>_>_>_>\n                ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "psVar13[5] = sVar9;" (assignment_expression "psVar13[5] = sVar9" (subscript_expression "psVar13[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar14 = psVar13 + 7;" (assignment_expression "psVar14 = psVar13 + 7" identifier = (binary_expression "psVar13 + 7" identifier + number_literal)) ;) (if_statement "if ((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15) {\n        psVar13[6] = 0;\n      }\n      else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }" if (parenthesized_expression "((pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15)" ( (ERROR "(pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(pVVar2->deps_).\n          super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(pVVar2->deps_).\n          super__Vector_base<std" (field_expression "(pVVar2->deps_).\n          super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_>_>\n          ._M_impl._M_finish == pbVar15" (field_expression "allocator<char>_>_>_>\n          ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n          ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n        psVar13[6] = 0;\n      }" { (expression_statement "psVar13[6] = 0;" (assignment_expression "psVar13[6] = 0" (subscript_expression "psVar13[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }" else (compound_statement "{\n        psVar13[6] = 8;\n        uVar8 = 0;\n        psVar13 = psVar14;\n        do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);\n      }" { (expression_statement "psVar13[6] = 8;" (assignment_expression "psVar13[6] = 8" (subscript_expression "psVar13[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "psVar13 = psVar14;" (assignment_expression "psVar13 = psVar14" identifier = identifier) ;) (do_statement "do {\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        } while (pbVar3 != pbVar15);" do (compound_statement "{\n          uVar8 = uVar8 + 1;\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);\n          *psVar13 = sVar9;\n          pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                   ._M_impl._M_finish;\n          pbVar15 = pbVar15 + 1;\n          psVar14 = psVar13 + 2;\n          psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;\n          psVar13 = psVar14;\n        }" { (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length);" (assignment_expression "sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length)" identifier = (binary_expression "Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset_with_length\n                            (dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length)" identifier (argument_list "(dynpool,(pbVar15->_M_dataplus)._M_p,pbVar15->_M_string_length)" ( identifier , (field_expression "(pbVar15->_M_dataplus)._M_p" (parenthesized_expression "(pbVar15->_M_dataplus)" ( (field_expression "pbVar15->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , (field_expression "pbVar15->_M_string_length" identifier -> field_identifier) ))))) ;) (expression_statement "*psVar13 = sVar9;" (assignment_expression "*psVar13 = sVar9" (pointer_expression "*psVar13" * identifier) = identifier) ;) (ERROR "pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (assignment_expression "pbVar3 = (pVVar2->deps_).\n                   super__Vector_base<std" identifier = (binary_expression "(pVVar2->deps_).\n                   super__Vector_base<std" (field_expression "(pVVar2->deps_).\n                   super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : :) (expression_statement "allocator<char>_>_>_>\n                   ._M_impl._M_finish;" (field_expression "allocator<char>_>_>_>\n                   ._M_impl._M_finish" (field_expression "allocator<char>_>_>_>\n                   ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "psVar14 = psVar13 + 2;" (assignment_expression "psVar14 = psVar13 + 2" identifier = (binary_expression "psVar13 + 2" identifier + number_literal)) ;) (expression_statement "psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;" (assignment_expression "psVar13[1] = (uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3" (subscript_expression "psVar13[1]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3" (call_expression "(uint)(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555))" ( (binary_expression "uVar8 < (uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)" identifier < (call_expression "(uint)(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555)" ( (binary_expression "((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3) * -0x55555555" (parenthesized_expression "((int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3)" ( (ERROR "(int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "(int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base<std" (binary_expression "(int)pbVar3 -\n                                              (int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base" (cast_expression "(int)pbVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pVVar2->deps_).\n                                                                                                      \n                                                  super__Vector_base" (parenthesized_expression "(pVVar2->deps_)" ( (field_expression "pVVar2->deps_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : identifier < primitive_type > , identifier : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_>_>\n                                                  ._M_impl._M_start >> 3" (field_expression "allocator<char>_>_>_>\n                                                  ._M_impl._M_start" (field_expression "allocator<char>_>_>_>\n                                                  ._M_impl" (binary_expression "allocator<char>_>_>_" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) )) * number_literal) )))) ))) << number_literal)) ;) (expression_statement "psVar13 = psVar14;" (assignment_expression "psVar13 = psVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar3 != pbVar15)" ( (binary_expression "pbVar3 != pbVar15" identifier != identifier) )) ;) }))) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish;" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_finish" (field_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar5 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar5 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppVVar5 == local_34) goto LAB_00231a40;" if (parenthesized_expression "(ppVVar5 == local_34)" ( (binary_expression "ppVVar5 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00231a40;" goto statement_identifier ;)) (expression_statement "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start" (field_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar7 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar7 = (this->defs_).super__Vector_base<gold" identifier = (binary_expression "(this->defs_).super__Vector_base<gold" (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "psVar13 = psVar14;" (assignment_expression "psVar13 = psVar14" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00231a46:\n  if (uVar11 == uVar8) {\n    *pp = (uchar *)psVar6;\n    *psize = uVar11;\n    *pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2;\n    return;\n  }" statement_identifier : (if_statement "if (uVar11 == uVar8) {\n    *pp = (uchar *)psVar6;\n    *psize = uVar11;\n    *pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2;\n    return;\n  }" if (parenthesized_expression "(uVar11 == uVar8)" ( (binary_expression "uVar11 == uVar8" identifier == identifier) )) (compound_statement "{\n    *pp = (uchar *)psVar6;\n    *psize = uVar11;\n    *pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2;\n    return;\n  }" { (expression_statement "*pp = (uchar *)psVar6;" (assignment_expression "*pp = (uchar *)psVar6" (pointer_expression "*pp" * identifier) = (cast_expression "(uchar *)psVar6" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*psize = uVar11;" (assignment_expression "*psize = uVar11" (pointer_expression "*psize" * identifier) = identifier) ;) (expression_statement "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2;" (binary_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start >> 2" (field_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl._M_start" (field_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>\n                     ._M_impl" (binary_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "*pentries = (int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold" (pointer_expression "*pentries" * identifier) = (binary_expression "(int)local_34 -\n                (int)(this->defs_).super__Vector_base<gold" (binary_expression "(int)local_34 -\n                (int)(this->defs_).super__Vector_base" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(this->defs_).super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->defs_).super__Vector_base" (parenthesized_expression "(this->defs_)" ( (field_expression "this->defs_" identifier -> field_identifier) )) . field_identifier))) < identifier)) (ERROR "::Verdef" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Verdef" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ;) (return_statement "return;" return ;) }))) comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents")" identifier (argument_list "("../../gold/dynobj.cc",0x71c,"def_section_contents")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") ))) ;) (labeled_statement "LAB_00231a40:\n  uVar8 = (int)psVar14 - (int)psVar6;" statement_identifier : (expression_statement "uVar8 = (int)psVar14 - (int)psVar6;" (assignment_expression "uVar8 = (int)psVar14 - (int)psVar6" identifier = (binary_expression "(int)psVar14 - (int)psVar6" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00231a46;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    \n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}\n\n" (function_definition "void FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    \n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" primitive_type (function_declarator "FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    \n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_28;" type_identifier identifier ;) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" if (parenthesized_expression "((char)param_1[0xd] == '\0')" ( (binary_expression "(char)param_1[0xd] == '\0'" (cast_expression "(char)param_1[0xd]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0xd]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" { (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents")" identifier (argument_list "("../../gold/dynobj.cc",0x701,"def_section_contents")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") ))) ;) })) (expression_statement "piVar8 = (int *)param_1[1];" (assignment_expression "piVar8 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar6 = (int *)*param_1;" (assignment_expression "piVar6 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" if (parenthesized_expression "(piVar6 == piVar8)" ( (binary_expression "piVar6 == piVar8" identifier == identifier) )) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" { (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" identifier (argument_list "("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);" do (compound_statement "{\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  }" { (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;" (assignment_expression "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" identifier = (binary_expression "iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (binary_expression "iVar13 + 0x1c" identifier + number_literal) + (binary_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3)" ( (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc)" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal))) ;) }) while (parenthesized_expression "(piVar8 != piVar6)" ( (binary_expression "piVar8 != piVar6" identifier != identifier) )) ;) (expression_statement "puVar7 = (undefined4 *)FUN_003ac450(iVar13);" (assignment_expression "puVar7 = (undefined4 *)FUN_003ac450(iVar13)" identifier = (cast_expression "(undefined4 *)FUN_003ac450(iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003ac450(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "local_34 = piVar8;" (assignment_expression "local_34 = piVar8" identifier = identifier) ;) (if_statement "if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" if (parenthesized_expression "(piVar8 != piVar6)" ( (binary_expression "piVar8 != piVar6" identifier != identifier) )) (compound_statement "{\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar7;" (assignment_expression "puVar15 = puVar7" identifier = identifier) ;) (do_statement "do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );" do (compound_statement "{\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    }" { (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = *local_34;" (assignment_expression "iVar11 = *local_34" identifier = (pointer_expression "*local_34" * identifier)) ;) (expression_statement "*(undefined2 *)puVar15 = 1;" (assignment_expression "*(undefined2 *)puVar15 = 1" (pointer_expression "*(undefined2 *)puVar15" * (cast_expression "(undefined2 *)puVar15" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = (ushort)*(byte *)(iVar11 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar11 + 0x18)" identifier = (binary_expression "(ushort)*(byte *)(iVar11 + 0x18)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 0x19) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x19)" * (cast_expression "(char *)(iVar11 + 0x19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x19)" ( (binary_expression "iVar11 + 0x19" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar5 | 2;\n      }" { (expression_statement "uVar5 = uVar5 | 2;" (assignment_expression "uVar5 = uVar5 | 2" identifier = (binary_expression "uVar5 | 2" identifier | number_literal)) ;) })) (if_statement "if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" if (parenthesized_expression "(*(char *)(iVar11 + 0x1a) != '\0')" ( (binary_expression "*(char *)(iVar11 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x1a)" * (cast_expression "(char *)(iVar11 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1a)" ( (binary_expression "iVar11 + 0x1a" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar5 | 4;\n      }" { (expression_statement "uVar5 = uVar5 | 4;" (assignment_expression "uVar5 = uVar5 | 4" identifier = (binary_expression "uVar5 | 4" identifier | number_literal)) ;) })) (expression_statement "*(ushort *)((int)puVar15 + 2) = uVar5;" (assignment_expression "*(ushort *)((int)puVar15 + 2) = uVar5" (pointer_expression "*(ushort *)((int)puVar15 + 2)" * (cast_expression "(ushort *)((int)puVar15 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 2)" ( (binary_expression "(int)puVar15 + 2" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" if (parenthesized_expression "(*(int *)(iVar11 + 4) == -1)" ( (binary_expression "*(int *)(iVar11 + 4) == -1" (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" { (expression_statement "FUN_002446e0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_002446e0("../../gold/dynobj.h",0x179,"index")" identifier (argument_list "("../../gold/dynobj.h",0x179,"index")" ( (string_literal ""../../gold/dynobj.h"" " string_content ") , number_literal , (string_literal ""index"" " string_content ") ))) ;) })) (expression_statement "iVar12 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar12 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);" (assignment_expression "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4)" (pointer_expression "*(short *)(puVar15 + 1)" * (cast_expression "(short *)(puVar15 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 1)" ( (binary_expression "puVar15 + 1" identifier + number_literal) )))) = (cast_expression "(short)*(int *)(iVar11 + 4)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = iVar12 - iVar2 >> 3;" (assignment_expression "iVar12 = iVar12 - iVar2 >> 3" identifier = (binary_expression "iVar12 - iVar2 >> 3" (binary_expression "iVar12 - iVar2" identifier - identifier) >> number_literal)) ;) (expression_statement "pbVar3 = *(byte **)(iVar11 + 8);" (assignment_expression "pbVar3 = *(byte **)(iVar11 + 8)" identifier = (pointer_expression "*(byte **)(iVar11 + 8)" * (cast_expression "(byte **)(iVar11 + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;" (assignment_expression "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1" (pointer_expression "*(short *)((int)puVar15 + 6)" * (cast_expression "(short *)((int)puVar15 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + 6)" ( (binary_expression "(int)puVar15 + 6" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)iVar12 * -0x5555 + 1" (binary_expression "(short)iVar12 * -0x5555" (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) * number_literal) + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" identifier = identifier) ;) (while_statement "while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar14, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar14, bVar1 != 0" (assignment_expression "bVar1 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" { (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 * 0x10 + (uint)bVar1;" (assignment_expression "uVar9 = uVar9 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar9 * 0x10 + (uint)bVar1" (binary_expression "uVar9 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar9 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar9 & 0xf0000000) == 0)" ( (binary_expression "(uVar9 & 0xf0000000) == 0" (parenthesized_expression "(uVar9 & 0xf0000000)" ( (binary_expression "uVar9 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;" (assignment_expression "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" (binary_expression "uVar9 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar9 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xf0000000)" ( (binary_expression "uVar9 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar14;" (assignment_expression "bVar1 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0023195f;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0023195f;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0023195f:\n      puVar15[2] = uVar9;" statement_identifier : (expression_statement "puVar15[2] = uVar9;" (assignment_expression "puVar15[2] = uVar9" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "iVar12 = iVar12 * 0x55555558 + 0x1c;" (assignment_expression "iVar12 = iVar12 * 0x55555558 + 0x1c" identifier = (binary_expression "iVar12 * 0x55555558 + 0x1c" (binary_expression "iVar12 * 0x55555558" identifier * number_literal) + number_literal)) ;) (expression_statement "puVar15[3] = 0x14;" (assignment_expression "puVar15[3] = 0x14" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }" if (parenthesized_expression "((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28)" ( (binary_expression "(uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28" (call_expression "(uint)((int)piVar6 - (int)piVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar6 - (int)piVar8 >> 2)" ( (binary_expression "(int)piVar6 - (int)piVar8 >> 2" (binary_expression "(int)piVar6 - (int)piVar8" (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        iVar12 = 0;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) })) (expression_statement "puVar15[4] = iVar12;" (assignment_expression "puVar15[4] = iVar12" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar10 = FUN_003495e0(param_2,pbVar3);" (assignment_expression "uVar10 = FUN_003495e0(param_2,pbVar3)" identifier = (call_expression "FUN_003495e0(param_2,pbVar3)" identifier (argument_list "(param_2,pbVar3)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = *(undefined4 **)(iVar11 + 0xc);" (assignment_expression "puVar17 = *(undefined4 **)(iVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" * (cast_expression "(undefined4 **)(iVar11 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar15[5] = uVar10;" (assignment_expression "puVar15[5] = uVar10" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16 = puVar15 + 7;" (assignment_expression "puVar16 = puVar15 + 7" identifier = (binary_expression "puVar15 + 7" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" if (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x10) == puVar17)" ( (binary_expression "*(undefined4 **)(iVar11 + 0x10) == puVar17" (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" * (cast_expression "(undefined4 **)(iVar11 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        puVar15[6] = 0;\n      }" { (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" else (compound_statement "{\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" { (expression_statement "puVar15[6] = 8;" (assignment_expression "puVar15[6] = 8" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (do_statement "do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);" do (compound_statement "{\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        }" { (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);" (assignment_expression "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1])" identifier = (call_expression "FUN_00349530(param_2,*puVar17,puVar17[1])" identifier (argument_list "(param_2,*puVar17,puVar17[1])" ( identifier , (pointer_expression "*puVar17" * identifier) , (subscript_expression "puVar17[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar15 = uVar10;" (assignment_expression "*puVar15 = uVar10" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar4 = *(undefined4 **)(iVar11 + 0x10);" (assignment_expression "puVar4 = *(undefined4 **)(iVar11 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" * (cast_expression "(undefined4 **)(iVar11 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar17 + 6;" (assignment_expression "puVar17 = puVar17 + 6" identifier = (binary_expression "puVar17 + 6" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar15 + 2;" (assignment_expression "puVar16 = puVar15 + 2" identifier = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;" (assignment_expression "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (call_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" ( (binary_expression "uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" identifier < (call_expression "(uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" ( (binary_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555" (parenthesized_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3)" ( (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc)" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) >> number_literal) )) * number_literal) )))) ))) << number_literal)) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar17)" ( (binary_expression "puVar4 != puVar17" identifier != identifier) )) ;) }))) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" identifier = (cast_expression "(int *)param_1[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar6 == local_34) goto LAB_00231a40;" if (parenthesized_expression "(piVar6 == local_34)" ( (binary_expression "piVar6 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00231a40;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" statement_identifier : (if_statement "if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" if (parenthesized_expression "(iVar13 == iVar11)" ( (binary_expression "iVar13 == iVar11" identifier == identifier) )) (compound_statement "{\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" { (expression_statement "*param_3 = puVar7;" (assignment_expression "*param_3 = puVar7" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = iVar13;" (assignment_expression "*param_4 = iVar13" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "*param_5 = (int)local_34 - *param_1 >> 2;" (assignment_expression "*param_5 = (int)local_34 - *param_1 >> 2" (pointer_expression "*param_5" * identifier) = (binary_expression "(int)local_34 - *param_1 >> 2" (binary_expression "(int)local_34 - *param_1" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*param_1" * identifier)) >> number_literal)) ;) (return_statement "return;" return ;) }))) (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" identifier (argument_list "("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""def_section_contents"" " string_content ") , identifier ))) ;) (labeled_statement "LAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;" statement_identifier : (expression_statement "iVar11 = (int)puVar16 - (int)puVar7;" (assignment_expression "iVar11 = (int)puVar16 - (int)puVar7" identifier = (binary_expression "(int)puVar16 - (int)puVar7" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00231a46;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) ^ (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (pointer_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )) * LIT) )))) ))) << LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * IDENT)) >> LIT)) ;) (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)\n\n{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    \n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" (primitive_type "void") (function_declarator "FUN_00231830(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" (identifier "FUN_00231830") (parameter_list "(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  ushort uVar5;\n  int *piVar6;\n  undefined4 *puVar7;\n  int *piVar8;\n  uint uVar9;\n  undefined4 uVar10;\n  int iVar11;\n  int iVar12;\n  int iVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  int *local_34;\n  uint local_28;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  piVar8 = (int *)param_1[1];\n  piVar6 = (int *)*param_1;\n  if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }\n  iVar13 = 0;\n  do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);\n  puVar7 = (undefined4 *)FUN_003ac450(iVar13);\n  piVar8 = (int *)*param_1;\n  piVar6 = (int *)param_1[1];\n  local_34 = piVar8;\n  if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }\n  iVar11 = 0;\nLAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }\n                    \n  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);\nLAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;\n  goto LAB_00231a46;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" (if "if") (parenthesized_expression "((char)param_1[0xd] == '\0')" (( "(") (binary_expression "(char)param_1[0xd] == '\0'" (cast_expression "(char)param_1[0xd]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents")" (identifier "FUN_002446e0") (argument_list "("../../gold/dynobj.cc",0x701,"def_section_contents")" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x701") (, ",") (string_literal ""def_section_contents"" (" """) (string_content "def_section_contents") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar8 = (int *)param_1[1];" (assignment_expression "piVar8 = (int *)param_1[1]" (identifier "piVar8") (= "=") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "piVar6 = (int *)*param_1;" (assignment_expression "piVar6 = (int *)*param_1" (identifier "piVar6") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (piVar6 == piVar8) {\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" (if "if") (parenthesized_expression "(piVar6 == piVar8)" (( "(") (binary_expression "piVar6 == piVar8" (identifier "piVar6") (== "==") (identifier "piVar8")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);\n  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" (identifier "FUN_002446e0") (argument_list "("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x702") (, ",") (string_literal ""def_section_contents"" (" """) (string_content "def_section_contents") (" """)) (, ",") (identifier "piVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  } while (piVar8 != piVar6);" (do "do") (compound_statement "{\n    iVar11 = *piVar6;\n    piVar6 = piVar6 + 1;\n    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;\n  }" ({ "{") (expression_statement "iVar11 = *piVar6;" (assignment_expression "iVar11 = *piVar6" (identifier "iVar11") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;" (assignment_expression "iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c")) (+ "+") (binary_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558" (parenthesized_expression "(*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3)" (( "(") (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc)" (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "0x55555558")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != piVar6)" (( "(") (binary_expression "piVar8 != piVar6" (identifier "piVar8") (!= "!=") (identifier "piVar6")) () ")")) (; ";")) (expression_statement "puVar7 = (undefined4 *)FUN_003ac450(iVar13);" (assignment_expression "puVar7 = (undefined4 *)FUN_003ac450(iVar13)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)FUN_003ac450(iVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003ac450(iVar13)" (identifier "FUN_003ac450") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" (identifier "piVar8") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_34 = piVar8;" (assignment_expression "local_34 = piVar8" (identifier "local_34") (= "=") (identifier "piVar8")) (; ";")) (if_statement "if (piVar8 != piVar6) {\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar8 != piVar6)" (( "(") (binary_expression "piVar8 != piVar6" (identifier "piVar8") (!= "!=") (identifier "piVar6")) () ")")) (compound_statement "{\n    local_28 = 0;\n    puVar15 = puVar7;\n    do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );\n  }" ({ "{") (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar7;" (assignment_expression "puVar15 = puVar7" (identifier "puVar15") (= "=") (identifier "puVar7")) (; ";")) (do_statement "do {\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    } while( true );" (do "do") (compound_statement "{\n      local_28 = local_28 + 1;\n      iVar11 = *local_34;\n      *(undefined2 *)puVar15 = 1;\n      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);\n      if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }\n      if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }\n      *(ushort *)((int)puVar15 + 2) = uVar5;\n      if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }\n      iVar12 = *(int *)(iVar11 + 0x10);\n      iVar2 = *(int *)(iVar11 + 0xc);\n      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);\n      iVar12 = iVar12 - iVar2 >> 3;\n      pbVar3 = *(byte **)(iVar11 + 8);\n      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;\n      uVar9 = 0;\n      pbVar14 = pbVar3;\n      while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }\nLAB_0023195f:\n      puVar15[2] = uVar9;\n      iVar12 = iVar12 * 0x55555558 + 0x1c;\n      puVar15[3] = 0x14;\n      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }\n      puVar15[4] = iVar12;\n      uVar10 = FUN_003495e0(param_2,pbVar3);\n      puVar17 = *(undefined4 **)(iVar11 + 0xc);\n      puVar15[5] = uVar10;\n      puVar16 = puVar15 + 7;\n      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }\n      local_34 = local_34 + 1;\n      piVar6 = (int *)param_1[1];\n      if (piVar6 == local_34) goto LAB_00231a40;\n      piVar8 = (int *)*param_1;\n      puVar15 = puVar16;\n    }" ({ "{") (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = *local_34;" (assignment_expression "iVar11 = *local_34" (identifier "iVar11") (= "=") (pointer_expression "*local_34" (* "*") (identifier "local_34"))) (; ";")) (expression_statement "*(undefined2 *)puVar15 = 1;" (assignment_expression "*(undefined2 *)puVar15 = 1" (pointer_expression "*(undefined2 *)puVar15" (* "*") (cast_expression "(undefined2 *)puVar15" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar15"))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = (ushort)*(byte *)(iVar11 + 0x18);" (assignment_expression "uVar5 = (ushort)*(byte *)(iVar11 + 0x18)" (identifier "uVar5") (= "=") (binary_expression "(ushort)*(byte *)(iVar11 + 0x18)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar11 + 0x19) != '\0') {\n        uVar5 = uVar5 | 2;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 0x19) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x19) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x19)" (* "*") (cast_expression "(char *)(iVar11 + 0x19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x19)" (( "(") (binary_expression "iVar11 + 0x19" (identifier "iVar11") (+ "+") (number_literal "0x19")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar5 = uVar5 | 2;\n      }" ({ "{") (expression_statement "uVar5 = uVar5 | 2;" (assignment_expression "uVar5 = uVar5 | 2" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 2" (identifier "uVar5") (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar11 + 0x1a) != '\0') {\n        uVar5 = uVar5 | 4;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar11 + 0x1a) != '\0')" (( "(") (binary_expression "*(char *)(iVar11 + 0x1a) != '\0'" (pointer_expression "*(char *)(iVar11 + 0x1a)" (* "*") (cast_expression "(char *)(iVar11 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1a)" (( "(") (binary_expression "iVar11 + 0x1a" (identifier "iVar11") (+ "+") (number_literal "0x1a")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar5 = uVar5 | 4;\n      }" ({ "{") (expression_statement "uVar5 = uVar5 | 4;" (assignment_expression "uVar5 = uVar5 | 4" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 4" (identifier "uVar5") (| "|") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "*(ushort *)((int)puVar15 + 2) = uVar5;" (assignment_expression "*(ushort *)((int)puVar15 + 2) = uVar5" (pointer_expression "*(ushort *)((int)puVar15 + 2)" (* "*") (cast_expression "(ushort *)((int)puVar15 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + 2)" (( "(") (binary_expression "(int)puVar15 + 2" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (*(int *)(iVar11 + 4) == -1) {\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 4) == -1)" (( "(") (binary_expression "*(int *)(iVar11 + 4) == -1" (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n        FUN_002446e0("../../gold/dynobj.h",0x179,"index");\n      }" ({ "{") (expression_statement "FUN_002446e0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_002446e0("../../gold/dynobj.h",0x179,"index")" (identifier "FUN_002446e0") (argument_list "("../../gold/dynobj.h",0x179,"index")" (( "(") (string_literal ""../../gold/dynobj.h"" (" """) (string_content "../../gold/dynobj.h") (" """)) (, ",") (number_literal "0x179") (, ",") (string_literal ""index"" (" """) (string_content "index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar12 = *(int *)(iVar11 + 0x10)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar2 = *(int *)(iVar11 + 0xc)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);" (assignment_expression "*(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4)" (pointer_expression "*(short *)(puVar15 + 1)" (* "*") (cast_expression "(short *)(puVar15 + 1)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 1)" (( "(") (binary_expression "puVar15 + 1" (identifier "puVar15") (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(short)*(int *)(iVar11 + 4)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "iVar12 = iVar12 - iVar2 >> 3;" (assignment_expression "iVar12 = iVar12 - iVar2 >> 3" (identifier "iVar12") (= "=") (binary_expression "iVar12 - iVar2 >> 3" (binary_expression "iVar12 - iVar2" (identifier "iVar12") (- "-") (identifier "iVar2")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pbVar3 = *(byte **)(iVar11 + 8);" (assignment_expression "pbVar3 = *(byte **)(iVar11 + 8)" (identifier "pbVar3") (= "=") (pointer_expression "*(byte **)(iVar11 + 8)" (* "*") (cast_expression "(byte **)(iVar11 + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;" (assignment_expression "*(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1" (pointer_expression "*(short *)((int)puVar15 + 6)" (* "*") (cast_expression "(short *)((int)puVar15 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + 6)" (( "(") (binary_expression "(int)puVar15 + 6" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "(short)iVar12 * -0x5555 + 1" (binary_expression "(short)iVar12 * -0x5555" (cast_expression "(short)iVar12" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar12")) (* "*") (number_literal "-0x5555")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar14 = pbVar3;" (assignment_expression "pbVar14 = pbVar3" (identifier "pbVar14") (= "=") (identifier "pbVar3")) (; ";")) (while_statement "while (bVar1 = *pbVar14, bVar1 != 0) {\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" (while "while") (parenthesized_expression "(bVar1 = *pbVar14, bVar1 != 0)" (( "(") (comma_expression "bVar1 = *pbVar14, bVar1 != 0" (assignment_expression "bVar1 = *pbVar14" (identifier "bVar1") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (, ",") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar14 = pbVar14 + 1;\n          uVar9 = uVar9 * 0x10 + (uint)bVar1;\n          if ((uVar9 & 0xf0000000) == 0) break;\n          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar14;\n          if (bVar1 == 0) goto LAB_0023195f;\n        }" ({ "{") (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = uVar9 * 0x10 + (uint)bVar1;" (assignment_expression "uVar9 = uVar9 * 0x10 + (uint)bVar1" (identifier "uVar9") (= "=") (binary_expression "uVar9 * 0x10 + (uint)bVar1" (binary_expression "uVar9 * 0x10" (identifier "uVar9") (* "*") (number_literal "0x10")) (+ "+") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (if_statement "if ((uVar9 & 0xf0000000) == 0) break;" (if "if") (parenthesized_expression "((uVar9 & 0xf0000000) == 0)" (( "(") (binary_expression "(uVar9 & 0xf0000000) == 0" (parenthesized_expression "(uVar9 & 0xf0000000)" (( "(") (binary_expression "uVar9 & 0xf0000000" (identifier "uVar9") (& "&") (number_literal "0xf0000000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;" (assignment_expression "uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18" (binary_expression "uVar9 & 0xfffffff" (identifier "uVar9") (& "&") (number_literal "0xfffffff")) (^ "^") (binary_expression "(uVar9 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xf0000000)" (( "(") (binary_expression "uVar9 & 0xf0000000" (identifier "uVar9") (& "&") (number_literal "0xf0000000")) () ")")) (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "bVar1 = *pbVar14;" (assignment_expression "bVar1 = *pbVar14" (identifier "bVar1") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (if_statement "if (bVar1 == 0) goto LAB_0023195f;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0023195f;" (goto "goto") (statement_identifier "LAB_0023195f") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0023195f:\n      puVar15[2] = uVar9;" (statement_identifier "LAB_0023195f") (: ":") (expression_statement "puVar15[2] = uVar9;" (assignment_expression "puVar15[2] = uVar9" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";"))) (expression_statement "iVar12 = iVar12 * 0x55555558 + 0x1c;" (assignment_expression "iVar12 = iVar12 * 0x55555558 + 0x1c" (identifier "iVar12") (= "=") (binary_expression "iVar12 * 0x55555558 + 0x1c" (binary_expression "iVar12 * 0x55555558" (identifier "iVar12") (* "*") (number_literal "0x55555558")) (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "puVar15[3] = 0x14;" (assignment_expression "puVar15[3] = 0x14" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x14")) (; ";")) (if_statement "if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {\n        iVar12 = 0;\n      }" (if "if") (parenthesized_expression "((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28)" (( "(") (binary_expression "(uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28" (call_expression "(uint)((int)piVar6 - (int)piVar8 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)piVar6 - (int)piVar8 >> 2)" (( "(") (binary_expression "(int)piVar6 - (int)piVar8 >> 2" (binary_expression "(int)piVar6 - (int)piVar8" (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6")) (- "-") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "local_28")) () ")")) (compound_statement "{\n        iVar12 = 0;\n      }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "puVar15[4] = iVar12;" (assignment_expression "puVar15[4] = iVar12" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "uVar10 = FUN_003495e0(param_2,pbVar3);" (assignment_expression "uVar10 = FUN_003495e0(param_2,pbVar3)" (identifier "uVar10") (= "=") (call_expression "FUN_003495e0(param_2,pbVar3)" (identifier "FUN_003495e0") (argument_list "(param_2,pbVar3)" (( "(") (identifier "param_2") (, ",") (identifier "pbVar3") () ")")))) (; ";")) (expression_statement "puVar17 = *(undefined4 **)(iVar11 + 0xc);" (assignment_expression "puVar17 = *(undefined4 **)(iVar11 + 0xc)" (identifier "puVar17") (= "=") (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar15[5] = uVar10;" (assignment_expression "puVar15[5] = uVar10" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar16 = puVar15 + 7;" (assignment_expression "puVar16 = puVar15 + 7" (identifier "puVar16") (= "=") (binary_expression "puVar15 + 7" (identifier "puVar15") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {\n        puVar15[6] = 0;\n      }\n      else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" (if "if") (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x10) == puVar17)" (( "(") (binary_expression "*(undefined4 **)(iVar11 + 0x10) == puVar17" (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "puVar17")) () ")")) (compound_statement "{\n        puVar15[6] = 0;\n      }" ({ "{") (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" (else "else") (compound_statement "{\n        puVar15[6] = 8;\n        uVar9 = 0;\n        puVar15 = puVar16;\n        do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);\n      }" ({ "{") (expression_statement "puVar15[6] = 8;" (assignment_expression "puVar15[6] = 8" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" (identifier "puVar15") (= "=") (identifier "puVar16")) (; ";")) (do_statement "do {\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        } while (puVar4 != puVar17);" (do "do") (compound_statement "{\n          uVar9 = uVar9 + 1;\n          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);\n          *puVar15 = uVar10;\n          puVar4 = *(undefined4 **)(iVar11 + 0x10);\n          puVar17 = puVar17 + 6;\n          puVar16 = puVar15 + 2;\n          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;\n          puVar15 = puVar16;\n        }" ({ "{") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);" (assignment_expression "uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1])" (identifier "uVar10") (= "=") (call_expression "FUN_00349530(param_2,*puVar17,puVar17[1])" (identifier "FUN_00349530") (argument_list "(param_2,*puVar17,puVar17[1])" (( "(") (identifier "param_2") (, ",") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (, ",") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "*puVar15 = uVar10;" (assignment_expression "*puVar15 = uVar10" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar4 = *(undefined4 **)(iVar11 + 0x10);" (assignment_expression "puVar4 = *(undefined4 **)(iVar11 + 0x10)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(iVar11 + 0x10)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "puVar17 = puVar17 + 6;" (assignment_expression "puVar17 = puVar17 + 6" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 6" (identifier "puVar17") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar16 = puVar15 + 2;" (assignment_expression "puVar16 = puVar15 + 2" (identifier "puVar16") (= "=") (binary_expression "puVar15 + 2" (identifier "puVar15") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3;" (assignment_expression "puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)) << 3" (call_expression "(uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555))" (( "(") (binary_expression "uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" (identifier "uVar9") (< "<") (call_expression "(uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555)" (( "(") (binary_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *\n                                            -0x55555555" (parenthesized_expression "((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3)" (( "(") (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc) >> 3" (binary_expression "(int)puVar4 - *(int *)(iVar11 + 0xc)" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) () ")")))) () ")"))) (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" (identifier "puVar15") (= "=") (identifier "puVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != puVar17)" (( "(") (binary_expression "puVar4 != puVar17" (identifier "puVar4") (!= "!=") (identifier "puVar17")) () ")")) (; ";")) (} "}")))) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" (identifier "local_34") (= "=") (binary_expression "local_34 + 1" (identifier "local_34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar6 = (int *)param_1[1];" (assignment_expression "piVar6 = (int *)param_1[1]" (identifier "piVar6") (= "=") (cast_expression "(int *)param_1[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (piVar6 == local_34) goto LAB_00231a40;" (if "if") (parenthesized_expression "(piVar6 == local_34)" (( "(") (binary_expression "piVar6 == local_34" (identifier "piVar6") (== "==") (identifier "local_34")) () ")")) (goto_statement "goto LAB_00231a40;" (goto "goto") (statement_identifier "LAB_00231a40") (; ";"))) (expression_statement "piVar8 = (int *)*param_1;" (assignment_expression "piVar8 = (int *)*param_1" (identifier "piVar8") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" (identifier "puVar15") (= "=") (identifier "puVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00231a46:\n  if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" (statement_identifier "LAB_00231a46") (: ":") (if_statement "if (iVar13 == iVar11) {\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" (if "if") (parenthesized_expression "(iVar13 == iVar11)" (( "(") (binary_expression "iVar13 == iVar11" (identifier "iVar13") (== "==") (identifier "iVar11")) () ")")) (compound_statement "{\n    *param_3 = puVar7;\n    *param_4 = iVar13;\n    *param_5 = (int)local_34 - *param_1 >> 2;\n    return;\n  }" ({ "{") (expression_statement "*param_3 = puVar7;" (assignment_expression "*param_3 = puVar7" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*param_4 = iVar13;" (assignment_expression "*param_4 = iVar13" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*param_5 = (int)local_34 - *param_1 >> 2;" (assignment_expression "*param_5 = (int)local_34 - *param_1 >> 2" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "(int)local_34 - *param_1 >> 2" (binary_expression "(int)local_34 - *param_1" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (- "-") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (>> ">>") (number_literal "2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);" (call_expression "FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" (identifier "FUN_002446e0") (argument_list "("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x71c") (, ",") (string_literal ""def_section_contents"" (" """) (string_content "def_section_contents") (" """)) (, ",") (identifier "iVar11") () ")"))) (; ";")) (labeled_statement "LAB_00231a40:\n  iVar11 = (int)puVar16 - (int)puVar7;" (statement_identifier "LAB_00231a40") (: ":") (expression_statement "iVar11 = (int)puVar16 - (int)puVar7;" (assignment_expression "iVar11 = (int)puVar16 - (int)puVar7" (identifier "iVar11") (= "=") (binary_expression "(int)puVar16 - (int)puVar7" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (- "-") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")))) (; ";"))) (goto_statement "goto LAB_00231a46;" (goto "goto") (statement_identifier "LAB_00231a46") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original name: def_section_contents<32, false>
   DWARF original prototype: void def_section_contents<32,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

void __thiscall
var_2::Versions::def_section_contents<32,_false>
          (Versions *this,Stringpool *dynpool,type_8 **pp,type_6 *psize,type_6 *pentries)

{
  type_3 var_15;
  type_1 *pVVar2;
  type_2 var_22;
  type_3 *s;
  type_4 var_12;
  type_2 var_5;
  type_5 *psVar6;
  type_2 var_6;
  type_6 var_13;
  type_5 sVar9;
  int var_17;
  type_6 var_7;
  type_3 *var_16;
  type_5 *var_14;
  type_5 *psVar14;
  type_2 var_20;
  type_2 var_23;
  type_6 var_11;
  
  if (this->is_finalized_ == false) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  var_6 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>._M_impl.
            _M_finish;
  var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>._M_impl.
            _M_start;
  if (var_5 == var_6) {
                    /* WARNING: Subroutine does not return */
    var_1("../../gold/dynobj.cc",0x702,"def_section_contents");
  }
  var_7 = 0;
  do {
    pVVar2 = *var_5;
    var_5 = var_5 + 1;
    var_7 = var_7 + 0x1c +
             ((int)(pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                   ._M_impl._M_finish -
              (int)(pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                   ._M_impl._M_start >> 3) * 0x55555558;
  } while (var_6 != var_5);
  psVar6 = (type_5 *)var_10(var_7);
  var_6 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>._M_impl.
            _M_start;
  var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>._M_impl.
            _M_finish;
  var_23 = var_6;
  if (var_6 != var_5) {
    var_11 = 0;
    var_14 = psVar6;
    do {
      var_11 = var_11 + 1;
      pVVar2 = *var_23;
      *(type_7 *)var_14 = 1;
      var_12 = (type_4)pVVar2->is_base_;
      if (pVVar2->is_weak_ != false) {
        var_12 = var_12 | 2;
      }
      if (pVVar2->is_info_ != false) {
        var_12 = var_12 | 4;
      }
      *(type_4 *)((int)var_14 + 2) = var_12;
      var_13 = (pVVar2->super_Version_base).index_;
      if (var_13 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
        var_1("../../gold/dynobj.h",0x179,"index");
      }
      var_20 = (pVVar2->deps_).
                super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                ._M_impl._M_finish;
      var_22 = (pVVar2->deps_).
               super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
               ._M_impl._M_start;
      *(short *)(var_14 + 1) = (short)var_13;
      var_17 = (int)var_20 - (int)var_22 >> 3;
      s = (type_3 *)pVVar2->name_;
      *(short *)((int)var_14 + 6) = (short)var_17 * -0x5555 + 1;
      var_13 = 0;
      var_16 = s;
      while (var_15 = *var_16, var_15 != 0) {
        while( true ) {
          var_16 = var_16 + 1;
          var_13 = var_13 * 0x10 + (type_6)var_15;
          if ((var_13 & 0xf0000000) == 0) break;
          var_13 = var_13 & 0xfffffff ^ (var_13 & 0xf0000000) >> 0x18;
          var_15 = *var_16;
          if (var_15 == 0) goto LAB_0023195f;
        }
      }
LAB_0023195f:
      var_14[2] = var_13;
      var_17 = var_17 * 0x55555558 + 0x1c;
      var_14[3] = 0x14;
      if ((type_6)((int)var_5 - (int)var_6 >> 2) <= var_11) {
        var_17 = 0;
      }
      var_14[4] = var_17;
      sVar9 = var_18<var_9>::var_19(dynpool,(char *)s);
      var_20 = (pVVar2->deps_).
                super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                ._M_impl._M_start;
      var_14[5] = sVar9;
      psVar14 = var_14 + 7;
      if ((pVVar2->deps_).
          super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
          ._M_impl._M_finish == var_20) {
        var_14[6] = 0;
      }
      else {
        var_14[6] = 8;
        var_13 = 0;
        var_14 = psVar14;
        do {
          var_13 = var_13 + 1;
          sVar9 = var_18<var_9>::var_21
                            (dynpool,(var_20->_M_dataplus)._M_p,var_20->_M_string_length);
          *var_14 = sVar9;
          var_22 = (pVVar2->deps_).
                   super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                   ._M_impl._M_finish;
          var_20 = var_20 + 1;
          psVar14 = var_14 + 2;
          var_14[1] = (type_6)(var_13 < (type_6)(((int)var_22 -
                                              (int)(pVVar2->deps_).
                                                                                                      
                                                  super__Vector_base<std::__cxx11::basic_string<var_9,var_3::char_traits<char>,var_3::var_8<var_9>var_4>,var_3::var_8<std::__cxx11::basic_string<var_9,var_3::char_traits<var_9>,var_3::var_8<var_9>var_4>var_4>var_4>
                                                  ._M_impl._M_start >> 3) * -0x55555555)) << 3;
          var_14 = psVar14;
        } while (var_22 != var_20);
      }
      var_23 = var_23 + 1;
      var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>.
                _M_impl._M_finish;
      if (var_5 == var_23) goto LAB_00231a40;
      var_6 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>.
                _M_impl._M_start;
      var_14 = psVar14;
    } while( true );
  }
  var_13 = 0;
LAB_00231a46:
  if (var_7 == var_13) {
    *pp = (type_8 *)psVar6;
    *psize = var_7;
    *pentries = (int)var_23 -
                (int)(this->defs_).super__Vector_base<var_2::type_1*,var_3::var_8<var_2::type_1*>var_4>
                     ._M_impl._M_start >> 2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_1("../../gold/dynobj.cc",0x71c,"def_section_contents");
LAB_00231a40:
  var_13 = (int)psVar14 - (int)psVar6;
  goto LAB_00231a46;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (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: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier))) right: (number_literal)))) (return_statement)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int *param_1,undefined4 param_2,undefined4 *param_3,int *param_4,int *param_5)

{
  byte bVar1;
  int iVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  ushort uVar5;
  int *piVar6;
  undefined4 *puVar7;
  int *piVar8;
  uint uVar9;
  undefined4 uVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  byte *pbVar14;
  undefined4 *puVar15;
  undefined4 *puVar16;
  undefined4 *puVar17;
  int *local_34;
  uint local_28;
  
  if ((char)param_1[0xd] == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  piVar8 = (int *)param_1[1];
  piVar6 = (int *)*param_1;
  if (piVar6 == piVar8) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/dynobj.cc",0x702,"def_section_contents",piVar8);
  }
  iVar13 = 0;
  do {
    iVar11 = *piVar6;
    piVar6 = piVar6 + 1;
    iVar13 = iVar13 + 0x1c + (*(int *)(iVar11 + 0x10) - *(int *)(iVar11 + 0xc) >> 3) * 0x55555558;
  } while (piVar8 != piVar6);
  puVar7 = (undefined4 *)FUN_003ac450(iVar13);
  piVar8 = (int *)*param_1;
  piVar6 = (int *)param_1[1];
  local_34 = piVar8;
  if (piVar8 != piVar6) {
    local_28 = 0;
    puVar15 = puVar7;
    do {
      local_28 = local_28 + 1;
      iVar11 = *local_34;
      *(undefined2 *)puVar15 = 1;
      uVar5 = (ushort)*(byte *)(iVar11 + 0x18);
      if (*(char *)(iVar11 + 0x19) != '\0') {
        uVar5 = uVar5 | 2;
      }
      if (*(char *)(iVar11 + 0x1a) != '\0') {
        uVar5 = uVar5 | 4;
      }
      *(ushort *)((int)puVar15 + 2) = uVar5;
      if (*(int *)(iVar11 + 4) == -1) {
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/dynobj.h",0x179,"index");
      }
      iVar12 = *(int *)(iVar11 + 0x10);
      iVar2 = *(int *)(iVar11 + 0xc);
      *(short *)(puVar15 + 1) = (short)*(int *)(iVar11 + 4);
      iVar12 = iVar12 - iVar2 >> 3;
      pbVar3 = *(byte **)(iVar11 + 8);
      *(short *)((int)puVar15 + 6) = (short)iVar12 * -0x5555 + 1;
      uVar9 = 0;
      pbVar14 = pbVar3;
      while (bVar1 = *pbVar14, bVar1 != 0) {
        while( true ) {
          pbVar14 = pbVar14 + 1;
          uVar9 = uVar9 * 0x10 + (uint)bVar1;
          if ((uVar9 & 0xf0000000) == 0) break;
          uVar9 = uVar9 & 0xfffffff ^ (uVar9 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar14;
          if (bVar1 == 0) goto LAB_0023195f;
        }
      }
LAB_0023195f:
      puVar15[2] = uVar9;
      iVar12 = iVar12 * 0x55555558 + 0x1c;
      puVar15[3] = 0x14;
      if ((uint)((int)piVar6 - (int)piVar8 >> 2) <= local_28) {
        iVar12 = 0;
      }
      puVar15[4] = iVar12;
      uVar10 = FUN_003495e0(param_2,pbVar3);
      puVar17 = *(undefined4 **)(iVar11 + 0xc);
      puVar15[5] = uVar10;
      puVar16 = puVar15 + 7;
      if (*(undefined4 **)(iVar11 + 0x10) == puVar17) {
        puVar15[6] = 0;
      }
      else {
        puVar15[6] = 8;
        uVar9 = 0;
        puVar15 = puVar16;
        do {
          uVar9 = uVar9 + 1;
          uVar10 = FUN_00349530(param_2,*puVar17,puVar17[1]);
          *puVar15 = uVar10;
          puVar4 = *(undefined4 **)(iVar11 + 0x10);
          puVar17 = puVar17 + 6;
          puVar16 = puVar15 + 2;
          puVar15[1] = (uint)(uVar9 < (uint)(((int)puVar4 - *(int *)(iVar11 + 0xc) >> 3) *
                                            -0x55555555)) << 3;
          puVar15 = puVar16;
        } while (puVar4 != puVar17);
      }
      local_34 = local_34 + 1;
      piVar6 = (int *)param_1[1];
      if (piVar6 == local_34) goto LAB_00231a40;
      piVar8 = (int *)*param_1;
      puVar15 = puVar16;
    } while( true );
  }
  iVar11 = 0;
LAB_00231a46:
  if (iVar13 == iVar11) {
    *param_3 = puVar7;
    *param_4 = iVar13;
    *param_5 = (int)local_34 - *param_1 >> 2;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0("../../gold/dynobj.cc",0x71c,"def_section_contents",iVar11);
LAB_00231a40:
  iVar11 = (int)puVar16 - (int)puVar7;
  goto LAB_00231a46;
}

