
/* DWARF original name: def_section_contents<64, false>
   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

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

{
  byte bVar1;
  Verdef *pVVar2;
  pointer pbVar3;
  byte *s;
  ushort uVar4;
  uint uVar5;
  int iVar6;
  uchar *puVar7;
  pointer ppVVar8;
  section_offset_type sVar9;
  pointer ppVVar10;
  long lVar11;
  pointer ppVVar12;
  ulong uVar13;
  ulong uVar14;
  uint uVar15;
  byte *pbVar16;
  pointer pbVar17;
  uchar *puVar18;
  uchar *puVar19;
  int local_58;
  
  if (this->is_finalized_ == false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_finish;
  ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_start;
  if (ppVVar10 == ppVVar8) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");
  }
  uVar13 = 0;
  do {
    pVVar2 = *ppVVar10;
    ppVVar10 = ppVVar10 + 1;
    uVar15 = (int)uVar13 + 0x1c +
             (int)((long)(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 -
                   (long)(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 >> 5) * 8;
    uVar13 = (ulong)uVar15;
  } while (ppVVar8 != ppVVar10);
  puVar7 = (uchar *)operator_new__(uVar13);
  ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.
            _M_start;
  ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl
             ._M_finish;
  if (ppVVar8 != ppVVar10) {
    uVar13 = 0;
    ppVVar12 = ppVVar8;
    puVar18 = puVar7;
    do {
      pVVar2 = *ppVVar12;
      uVar13 = (ulong)((int)uVar13 + 1);
      puVar18[0] = '\x01';
      puVar18[1] = '\0';
      uVar4 = (ushort)pVVar2->is_base_;
      if (pVVar2->is_weak_ != false) {
        uVar4 = pVVar2->is_base_ | 2;
      }
      if (pVVar2->is_info_ != false) {
        uVar4 = uVar4 | 4;
      }
      *(ushort *)(puVar18 + 2) = uVar4;
      uVar5 = (pVVar2->super_Version_base).index_;
      if (uVar5 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");
      }
      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;
      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;
      s = (byte *)pVVar2->name_;
      *(short *)(puVar18 + 6) = (short)lVar11 + 1;
      uVar5 = 0;
      pbVar16 = s;
      while (bVar1 = *pbVar16, bVar1 != 0) {
        while( true ) {
          pbVar16 = pbVar16 + 1;
          uVar5 = uVar5 * 0x10 + (uint)bVar1;
          if ((uVar5 & 0xf0000000) == 0) break;
          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar16;
          if (bVar1 == 0) goto LAB_00241c93;
        }
      }
LAB_00241c93:
      *(uint *)(puVar18 + 8) = uVar5;
      iVar6 = (int)lVar11 * 8 + 0x1c;
      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {
        iVar6 = 0;
      }
      puVar18[0xc] = '\x14';
      puVar18[0xd] = '\0';
      puVar18[0xe] = '\0';
      puVar18[0xf] = '\0';
      *(int *)(puVar18 + 0x10) = iVar6;
      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);
      pbVar17 = (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;
      *(int *)(puVar18 + 0x14) = (int)sVar9;
      puVar19 = puVar18 + 0x1c;
      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 == pbVar17) {
        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                   _M_impl._M_finish;
        puVar18[0x18] = '\0';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\0';
        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;
      }
      else {
        puVar18[0x18] = '\b';
        puVar18[0x19] = '\0';
        puVar18[0x1a] = '\0';
        puVar18[0x1b] = '\0';
        uVar14 = 0;
        puVar18 = puVar19;
        do {
          sVar9 = Stringpool_template<char>::get_offset_with_length
                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);
          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;
          uVar14 = (ulong)((int)uVar14 + 1);
          *(int *)puVar18 = (int)sVar9;
          pbVar17 = pbVar17 + 1;
          puVar19 = puVar18 + 8;
          *(uint *)(puVar18 + 4) =
               (uint)(uVar14 < (ulong)((long)pbVar3 -
                                       (long)(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 >> 5)) << 3;
          puVar18 = puVar19;
        } while (pbVar3 != pbVar17);
        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                   _M_impl._M_finish;
        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;
      }
      ppVVar12 = ppVVar12 + 1;
      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
                _M_impl._M_start;
      puVar18 = puVar19;
    } while( true );
  }
  uVar5 = 0;
LAB_00241d87:
  if (uVar15 == uVar5) {
    ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.
               _M_impl._M_start;
    *pp = puVar7;
    *psize = uVar15;
    *pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents");
LAB_00241d80:
  ppVVar8 = ppVVar12 + 1;
  local_58 = (int)puVar7;
  uVar5 = (int)puVar19 - local_58;
  goto LAB_00241d87;
}



void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,
                 undefined4 *param_5)

{
  byte bVar1;
  long lVar2;
  long lVar3;
  undefined8 *puVar4;
  ushort uVar5;
  uint uVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  long *plVar10;
  long lVar11;
  long *plVar12;
  ulong uVar13;
  ulong uVar14;
  int iVar15;
  long *plVar16;
  byte *pbVar17;
  undefined8 *puVar18;
  undefined4 *puVar19;
  undefined4 *puVar20;
  int local_58;
  
  if ((char)param_1[0xd] == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  plVar10 = (long *)*param_1;
  if (plVar10 == (long *)param_1[1]) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");
  }
  iVar15 = 0;
  do {
    lVar2 = *plVar10;
    plVar10 = plVar10 + 1;
    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;
  } while ((long *)param_1[1] != plVar10);
  puVar9 = (undefined4 *)thunk_FUN_00275550();
  plVar10 = (long *)*param_1;
  plVar16 = (long *)param_1[1];
  if (plVar10 == plVar16) {
    local_58 = 0;
LAB_00241d87:
    if (iVar15 != local_58) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");
    }
    lVar2 = *param_1;
    *param_3 = puVar9;
    *param_4 = iVar15;
    *param_5 = (int)((long)plVar10 - lVar2 >> 3);
    return;
  }
  uVar13 = 0;
  plVar12 = plVar10;
  puVar19 = puVar9;
  do {
    lVar2 = *plVar12;
    uVar13 = (ulong)((int)uVar13 + 1);
    *(undefined2 *)puVar19 = 1;
    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);
    if (*(char *)(lVar2 + 0x31) != '\0') {
      uVar5 = *(byte *)(lVar2 + 0x30) | 2;
    }
    if (*(char *)(lVar2 + 0x32) != '\0') {
      uVar5 = uVar5 | 4;
    }
    *(ushort *)((long)puVar19 + 2) = uVar5;
    if (*(int *)(lVar2 + 8) == -1) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");
    }
    lVar11 = *(long *)(lVar2 + 0x20);
    lVar3 = *(long *)(lVar2 + 0x18);
    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);
    lVar11 = lVar11 - lVar3 >> 5;
    pbVar17 = *(byte **)(lVar2 + 0x10);
    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;
    uVar6 = 0;
LAB_00241c60:
    bVar1 = *pbVar17;
    while (bVar1 != 0) {
      pbVar17 = pbVar17 + 1;
      uVar6 = uVar6 * 0x10 + (uint)bVar1;
      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;
      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;
      bVar1 = *pbVar17;
    }
    puVar19[2] = uVar6;
    iVar7 = (int)lVar11 * 8 + 0x1c;
    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {
      iVar7 = 0;
    }
    puVar19[3] = 0x14;
    puVar19[4] = iVar7;
    uVar8 = FUN_0021b7b0(param_2);
    puVar18 = *(undefined8 **)(lVar2 + 0x18);
    puVar19[5] = uVar8;
    puVar20 = puVar19 + 7;
    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {
      plVar16 = (long *)param_1[1];
      puVar19[6] = 0;
      if (plVar16 != plVar12 + 1) goto LAB_00241d53;
      goto LAB_00241d80;
    }
    puVar19[6] = 8;
    uVar14 = 0;
    puVar19 = puVar20;
    do {
      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);
      puVar4 = *(undefined8 **)(lVar2 + 0x20);
      uVar14 = (ulong)((int)uVar14 + 1);
      *puVar19 = uVar8;
      puVar18 = puVar18 + 4;
      puVar20 = puVar19 + 2;
      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;
      puVar19 = puVar20;
    } while (puVar4 != puVar18);
    plVar16 = (long *)param_1[1];
    if (plVar16 == plVar12 + 1) {
LAB_00241d80:
      plVar10 = plVar12 + 1;
      local_58 = (int)puVar9;
      local_58 = (int)puVar20 - local_58;
      goto LAB_00241d87;
    }
LAB_00241d53:
    plVar12 = plVar12 + 1;
    plVar10 = (long *)*param_1;
    puVar19 = puVar20;
  } while( true );
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x48
CMP byte ptr [RDI + 0x68],0x0
MOV qword ptr [RSP + 0x8],RSI
MOV qword ptr [RSP + 0x28],RDX
MOV qword ptr [RSP + 0x30],RCX
MOV qword ptr [RSP + 0x38],R8
JZ 0x00241e04
MOV RSI,qword ptr [RDI + 0x8]
MOV RDX,qword ptr [RDI]
MOV R12,RDI
CMP RDX,RSI
JZ 0x00241dec
XOR EDI,EDI
NOP dword ptr [RAX]
MOV RCX,qword ptr [RDX]
ADD RDX,0x8
MOV RAX,qword ptr [RCX + 0x20]
SUB RAX,qword ptr [RCX + 0x18]
SAR RAX,0x5
LEA EDI,[RDI + RAX*0x8 + 0x1c]
CMP RSI,RDX
JNZ 0x00241ba8
MOV dword ptr [RSP + 0x1c],EDI
CALL 0x002754f0
MOV RBX,qword ptr [R12]
MOV RDI,qword ptr [R12 + 0x8]
MOV R15,RAX
MOV qword ptr [RSP + 0x20],RAX
CMP RBX,RDI
JZ 0x00241dd0
MOV RAX,RBX
XOR EBP,EBP
NOP dword ptr [RAX]
MOV R14,qword ptr [RBX]
SUB RDI,RAX
LEA R9D,[RBP + 0x1]
MOV EAX,0x1
SAR RDI,0x3
MOV word ptr [R15],AX
MOV RBP,R9
CMP byte ptr [R14 + 0x31],0x0
MOVZX EAX,byte ptr [R14 + 0x30]
JZ 0x00241c19
OR EAX,0x2
CMP byte ptr [R14 + 0x32],0x0
JZ 0x00241c23
OR EAX,0x4
MOV word ptr [R15 + 0x2],AX
MOV EAX,dword ptr [R14 + 0x8]
CMP EAX,-0x1
JZ 0x00241dd4
MOV RDX,qword ptr [R14 + 0x20]
SUB RDX,qword ptr [R14 + 0x18]
MOV word ptr [R15 + 0x4],AX
SAR RDX,0x5
MOV RSI,qword ptr [R14 + 0x10]
LEA EAX,[RDX + 0x1]
MOV word ptr [R15 + 0x6],AX
MOV R8,RSI
XOR EAX,EAX
NOP word ptr [RAX + RAX*0x1]
ADD R8,0x1
MOVZX ECX,byte ptr [R8 + -0x1]
TEST CL,CL
JZ 0x00241c93
SHL EAX,0x4
ADD EAX,ECX
MOV ECX,EAX
AND ECX,0xf0000000
JZ 0x00241c60
SHR ECX,0x18
AND EAX,0xfffffff
ADD R8,0x1
XOR EAX,ECX
MOVZX ECX,byte ptr [R8 + -0x1]
TEST CL,CL
JNZ 0x00241c6d
CMP R9,RDI
MOV dword ptr [R15 + 0x8],EAX
LEA EAX,[0x1c + RDX*0x8]
MOV EDX,0x0
CMOVNC EAX,EDX
MOV dword ptr [R15 + 0xc],0x14
MOV RDI,qword ptr [RSP + 0x8]
MOV dword ptr [R15 + 0x10],EAX
CALL 0x0021b7b0
MOV RCX,qword ptr [R14 + 0x18]
MOV dword ptr [R15 + 0x14],EAX
LEA RAX,[R15 + 0x1c]
CMP qword ptr [R14 + 0x20],RCX
JZ 0x00241d60
XOR R13D,R13D
MOV dword ptr [R15 + 0x18],0x8
MOV R15,RAX
MOV qword ptr [RSP + 0x10],RBX
MOV RBX,R14
MOV R14D,R13D
MOV R13,RCX
NOP dword ptr [RAX]
MOV RDX,qword ptr [R13 + 0x8]
MOV RSI,qword ptr [R13]
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0021b710
MOV RDX,qword ptr [RBX + 0x20]
LEA ESI,[R14 + 0x1]
MOV dword ptr [R15],EAX
MOV R14,RSI
MOV RAX,RDX
SUB RAX,qword ptr [RBX + 0x18]
SAR RAX,0x5
CMP RSI,RAX
SETC AL
ADD R13,0x20
ADD R15,0x8
MOVZX EAX,AL
SHL EAX,0x3
MOV dword ptr [R15 + -0x4],EAX
CMP RDX,R13
JNZ 0x00241cf8
MOV RBX,qword ptr [RSP + 0x10]
MOV RDI,qword ptr [R12 + 0x8]
ADD RBX,0x8
CMP RDI,RBX
JZ 0x00241d80
MOV RAX,qword ptr [R12]
JMP 0x00241bf0
MOV RDI,qword ptr [R12 + 0x8]
ADD RBX,0x8
MOV dword ptr [R15 + 0x18],0x0
MOV R15,RAX
CMP RDI,RBX
JNZ 0x00241d53
NOP dword ptr [RAX]
MOV ECX,R15D
SUB ECX,dword ptr [RSP + 0x20]
CMP dword ptr [RSP + 0x1c],ECX
JNZ 0x00241e1c
MOV RAX,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x20]
SUB RBX,qword ptr [R12]
MOV qword ptr [RAX],RSI
MOV RAX,qword ptr [RSP + 0x30]
SAR RBX,0x3
MOV ESI,dword ptr [RSP + 0x1c]
MOV dword ptr [RAX],ESI
MOV RAX,qword ptr [RSP + 0x38]
MOV dword ptr [RAX],EBX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR ECX,ECX
JMP 0x00241d87
LEA RDX,[0x323df7]
MOV ESI,0x179
LEA RDI,[0x30ea3b]
CALL 0x0016cdf0
LEA RDX,[0x323c60]
MOV ESI,0x702
LEA RDI,[0x323842]
CALL 0x0016cdf0
LEA RDX,[0x323c60]
MOV ESI,0x701
LEA RDI,[0x323842]
CALL 0x0016cdf0
LEA RDX,[0x323c60]
MOV ESI,0x71c
LEA RDI,[0x323842]
CALL 0x0016cdf0
(translation_unit "void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)\n\n{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}\n\n" (function_definition "void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)\n\n{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long *plVar16;" (sized_type_specifier "long" long) (pointer_declarator "*plVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../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_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (plVar10 == (long *)param_1[1]) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" if (parenthesized_expression "(plVar10 == (long *)param_1[1])" ( (binary_expression "plVar10 == (long *)param_1[1]" identifier == (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);" do (compound_statement "{\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  }" { (expression_statement "lVar2 = *plVar10;" (assignment_expression "lVar2 = *plVar10" identifier = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;" (assignment_expression "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" identifier = (binary_expression "iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (binary_expression "iVar15 + 0x1c" identifier + number_literal) + (binary_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (cast_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" ( (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18)" (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) >> number_literal) ))) * number_literal))) ;) }) while (parenthesized_expression "((long *)param_1[1] != plVar10)" ( (binary_expression "(long *)param_1[1] != plVar10" (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) != identifier) )) ;) (expression_statement "puVar9 = (undefined4 *)thunk_FUN_00275550();" (assignment_expression "puVar9 = (undefined4 *)thunk_FUN_00275550()" identifier = (cast_expression "(undefined4 *)thunk_FUN_00275550()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00275550()" identifier (argument_list "()" ( ))))) ;) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" if (parenthesized_expression "(plVar10 == plVar16)" ( (binary_expression "plVar10 == plVar16" identifier == identifier) )) (compound_statement "{\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00241d87:\n    if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" statement_identifier : (if_statement "if (iVar15 != local_58) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" if (parenthesized_expression "(iVar15 != local_58)" ( (binary_expression "iVar15 != local_58" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" { comment (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 ") ))) ;) }))) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = puVar9;" (assignment_expression "*param_3 = puVar9" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = iVar15;" (assignment_expression "*param_4 = iVar15" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "*param_5 = (int)((long)plVar10 - lVar2 >> 3);" (assignment_expression "*param_5 = (int)((long)plVar10 - lVar2 >> 3)" (pointer_expression "*param_5" * identifier) = (cast_expression "(int)((long)plVar10 - lVar2 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)plVar10 - lVar2 >> 3)" ( (binary_expression "(long)plVar10 - lVar2 >> 3" (binary_expression "(long)plVar10 - lVar2" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) >> number_literal) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar12 = plVar10;" (assignment_expression "plVar12 = plVar10" identifier = identifier) ;) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" identifier = identifier) ;) (do_statement "do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );" do (compound_statement "{\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  }" { (expression_statement "lVar2 = *plVar12;" (assignment_expression "lVar2 = *plVar12" identifier = (pointer_expression "*plVar12" * identifier)) ;) (expression_statement "uVar13 = (ulong)((int)uVar13 + 1);" (assignment_expression "uVar13 = (ulong)((int)uVar13 + 1)" identifier = (call_expression "(ulong)((int)uVar13 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar13 + 1)" ( (binary_expression "(int)uVar13 + 1" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)puVar19 = 1;" (assignment_expression "*(undefined2 *)puVar19 = 1" (pointer_expression "*(undefined2 *)puVar19" * (cast_expression "(undefined2 *)puVar19" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = (ushort)*(byte *)(lVar2 + 0x30);" (assignment_expression "uVar5 = (ushort)*(byte *)(lVar2 + 0x30)" identifier = (binary_expression "(ushort)*(byte *)(lVar2 + 0x30)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(lVar2 + 0x30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" if (parenthesized_expression "(*(char *)(lVar2 + 0x31) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x31) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x31)" * (cast_expression "(char *)(lVar2 + 0x31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x31)" ( (binary_expression "lVar2 + 0x31" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" { (expression_statement "uVar5 = *(byte *)(lVar2 + 0x30) | 2;" (assignment_expression "uVar5 = *(byte *)(lVar2 + 0x30) | 2" identifier = (binary_expression "*(byte *)(lVar2 + 0x30) | 2" (pointer_expression "*(byte *)(lVar2 + 0x30)" * (cast_expression "(byte *)(lVar2 + 0x30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }" if (parenthesized_expression "(*(char *)(lVar2 + 0x32) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x32) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x32)" * (cast_expression "(char *)(lVar2 + 0x32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x32)" ( (binary_expression "lVar2 + 0x32" 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 *)((long)puVar19 + 2) = uVar5;" (assignment_expression "*(ushort *)((long)puVar19 + 2) = uVar5" (pointer_expression "*(ushort *)((long)puVar19 + 2)" * (cast_expression "(ushort *)((long)puVar19 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar19 + 2)" ( (binary_expression "(long)puVar19 + 2" (cast_expression "(long)puVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(lVar2 + 8) == -1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" if (parenthesized_expression "(*(int *)(lVar2 + 8) == -1)" ( (binary_expression "*(int *)(lVar2 + 8) == -1" (pointer_expression "*(int *)(lVar2 + 8)" * (cast_expression "(int *)(lVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" { comment (expression_statement "FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_0016cdf0("../../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 "lVar11 = *(long *)(lVar2 + 0x20);" (assignment_expression "lVar11 = *(long *)(lVar2 + 0x20)" identifier = (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar2 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x18)" identifier = (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);" (assignment_expression "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8)" (pointer_expression "*(short *)(puVar19 + 1)" * (cast_expression "(short *)(puVar19 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) )))) = (cast_expression "(short)*(int *)(lVar2 + 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(int *)(lVar2 + 8)" * (cast_expression "(int *)(lVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))))) ;) (expression_statement "lVar11 = lVar11 - lVar3 >> 5;" (assignment_expression "lVar11 = lVar11 - lVar3 >> 5" identifier = (binary_expression "lVar11 - lVar3 >> 5" (binary_expression "lVar11 - lVar3" identifier - identifier) >> number_literal)) ;) (expression_statement "pbVar17 = *(byte **)(lVar2 + 0x10);" (assignment_expression "pbVar17 = *(byte **)(lVar2 + 0x10)" identifier = (pointer_expression "*(byte **)(lVar2 + 0x10)" * (cast_expression "(byte **)(lVar2 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1;" (assignment_expression "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1" (pointer_expression "*(short *)((long)puVar19 + 6)" * (cast_expression "(short *)((long)puVar19 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar19 + 6)" ( (binary_expression "(long)puVar19 + 6" (cast_expression "(long)puVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "(short)lVar11 + 1" (cast_expression "(short)lVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00241c60:\n    bVar1 = *pbVar17;" statement_identifier : (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;)) (while_statement "while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar6 * 0x10 + (uint)bVar1;" (assignment_expression "uVar6 = uVar6 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar6 * 0x10 + (uint)bVar1" (binary_expression "uVar6 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;" if (parenthesized_expression "((uVar6 & 0xf0000000) == 0)" ( (binary_expression "(uVar6 & 0xf0000000) == 0" (parenthesized_expression "(uVar6 & 0xf0000000)" ( (binary_expression "uVar6 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00241c60;" goto statement_identifier ;)) (expression_statement "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;" (assignment_expression "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" (binary_expression "uVar6 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar6 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xf0000000)" ( (binary_expression "uVar6 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) })) (expression_statement "puVar19[2] = uVar6;" (assignment_expression "puVar19[2] = uVar6" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (int)lVar11 * 8 + 0x1c;" (assignment_expression "iVar7 = (int)lVar11 * 8 + 0x1c" identifier = (binary_expression "(int)lVar11 * 8 + 0x1c" (binary_expression "(int)lVar11 * 8" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }" if (parenthesized_expression "((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13)" ( (binary_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13" (call_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)plVar16 - (long)plVar10 >> 3)" ( (binary_expression "(long)plVar16 - (long)plVar10 >> 3" (binary_expression "(long)plVar16 - (long)plVar10" (cast_expression "(long)plVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n      iVar7 = 0;\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "puVar19[3] = 0x14;" (assignment_expression "puVar19[3] = 0x14" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[4] = iVar7;" (assignment_expression "puVar19[4] = iVar7" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = FUN_0021b7b0(param_2);" (assignment_expression "uVar8 = FUN_0021b7b0(param_2)" identifier = (call_expression "FUN_0021b7b0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar18 = *(undefined8 **)(lVar2 + 0x18);" (assignment_expression "puVar18 = *(undefined8 **)(lVar2 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(lVar2 + 0x18)" * (cast_expression "(undefined8 **)(lVar2 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar19[5] = uVar8;" (assignment_expression "puVar19[5] = uVar8" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20 = puVar19 + 7;" (assignment_expression "puVar20 = puVar19 + 7" identifier = (binary_expression "puVar19 + 7" identifier + number_literal)) ;) (if_statement "if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" if (parenthesized_expression "(*(undefined8 **)(lVar2 + 0x20) == puVar18)" ( (binary_expression "*(undefined8 **)(lVar2 + 0x20) == puVar18" (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" * (cast_expression "(undefined8 **)(lVar2 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" { (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar19[6] = 0;" (assignment_expression "puVar19[6] = 0" (subscript_expression "puVar19[6]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar16 != plVar12 + 1) goto LAB_00241d53;" if (parenthesized_expression "(plVar16 != plVar12 + 1)" ( (binary_expression "plVar16 != plVar12 + 1" identifier != (binary_expression "plVar12 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00241d53;" goto statement_identifier ;)) (goto_statement "goto LAB_00241d80;" goto statement_identifier ;) })) (expression_statement "puVar19[6] = 8;" (assignment_expression "puVar19[6] = 8" (subscript_expression "puVar19[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (do_statement "do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);" do (compound_statement "{\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    }" { (expression_statement "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);" (assignment_expression "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1])" identifier = (call_expression "FUN_0021b710(param_2,*puVar18,puVar18[1])" identifier (argument_list "(param_2,*puVar18,puVar18[1])" ( identifier , (pointer_expression "*puVar18" * identifier) , (subscript_expression "puVar18[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar2 + 0x20);" (assignment_expression "puVar4 = *(undefined8 **)(lVar2 + 0x20)" identifier = (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" * (cast_expression "(undefined8 **)(lVar2 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = (ulong)((int)uVar14 + 1);" (assignment_expression "uVar14 = (ulong)((int)uVar14 + 1)" identifier = (call_expression "(ulong)((int)uVar14 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar14 + 1)" ( (binary_expression "(int)uVar14 + 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar19 = uVar8;" (assignment_expression "*puVar19 = uVar8" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar18 = puVar18 + 4;" (assignment_expression "puVar18 = puVar18 + 4" identifier = (binary_expression "puVar18 + 4" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar19 + 2;" (assignment_expression "puVar20 = puVar19 + 2" identifier = (binary_expression "puVar19 + 2" identifier + number_literal)) ;) (expression_statement "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;" (assignment_expression "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (call_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" ( (binary_expression "uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" identifier < (call_expression "(ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" ( (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18)" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) >> number_literal) )))) ))) << number_literal)) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar18)" ( (binary_expression "puVar4 != puVar18" identifier != identifier) )) ;) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" if (parenthesized_expression "(plVar16 == plVar12 + 1)" ( (binary_expression "plVar16 == plVar12 + 1" identifier == (binary_expression "plVar12 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" { (labeled_statement "LAB_00241d80:\n      plVar10 = plVar12 + 1;" statement_identifier : (expression_statement "plVar10 = plVar12 + 1;" (assignment_expression "plVar10 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;)) (expression_statement "local_58 = (int)puVar9;" (assignment_expression "local_58 = (int)puVar9" identifier = (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_58 = (int)puVar20 - local_58;" (assignment_expression "local_58 = (int)puVar20 - local_58" identifier = (binary_expression "(int)puVar20 - local_58" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (goto_statement "goto LAB_00241d87;" goto statement_identifier ;) })) (labeled_statement "LAB_00241d53:\n    plVar12 = plVar12 + 1;" statement_identifier : (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;)) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* DWARF original name: def_section_contents<64, false>\n   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *\n   dynpool, uchar * * pp, uint * psize, uint * pentries) */\n\nvoid __thiscall\ngold::Versions::def_section_contents<64,_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  uint uVar5;\n  int iVar6;\n  uchar *puVar7;\n  pointer ppVVar8;\n  section_offset_type sVar9;\n  pointer ppVVar10;\n  long lVar11;\n  pointer ppVVar12;\n  ulong uVar13;\n  ulong uVar14;\n  uint uVar15;\n  byte *pbVar16;\n  pointer pbVar17;\n  uchar *puVar18;\n  uchar *puVar19;\n  int local_58;\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  ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;\n  ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start;\n  if (ppVVar10 == ppVVar8) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  uVar13 = 0;\n  do {\n    pVVar2 = *ppVVar10;\n    ppVVar10 = ppVVar10 + 1;\n    uVar15 = (int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8;\n    uVar13 = (ulong)uVar15;\n  } while (ppVVar8 != ppVVar10);\n  puVar7 = (uchar *)operator_new__(uVar13);\n  ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;\n  ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;\n  if (ppVVar8 != ppVVar10) {\n    uVar13 = 0;\n    ppVVar12 = ppVVar8;\n    puVar18 = puVar7;\n    do {\n      pVVar2 = *ppVVar12;\n      uVar13 = (ulong)((int)uVar13 + 1);\n      puVar18[0] = '\x01';\n      puVar18[1] = '\0';\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = pVVar2->is_base_ | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)(puVar18 + 2) = uVar4;\n      uVar5 = (pVVar2->super_Version_base).index_;\n      if (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;\n      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;\n      s = (byte *)pVVar2->name_;\n      *(short *)(puVar18 + 6) = (short)lVar11 + 1;\n      uVar5 = 0;\n      pbVar16 = s;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }\nLAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;\n      iVar6 = (int)lVar11 * 8 + 0x1c;\n      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }\n      puVar18[0xc] = '\x14';\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\0';\n      *(int *)(puVar18 + 0x10) = iVar6;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar17 = (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      *(int *)(puVar18 + 0x14) = (int)sVar9;\n      puVar19 = puVar18 + 0x1c;\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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      ppVVar12 = ppVVar12 + 1;\n      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      puVar18 = puVar19;\n    } while( true );\n  }\n  uVar5 = 0;\nLAB_00241d87:\n  if (uVar15 == uVar5) {\n    ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = puVar7;\n    *psize = uVar15;\n    *pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/dynobj.cc",0x71c,"def_section_contents");\nLAB_00241d80:\n  ppVVar8 = ppVVar12 + 1;\n  local_58 = (int)puVar7;\n  uVar5 = (int)puVar19 - local_58;\n  goto LAB_00241d87;\n}\n\n" comment (declaration "void __thiscall\ngold::Versions::def_section_contents<64,_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 "<64" < 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 "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "pointer ppVVar8;" type_identifier identifier ;) (declaration "section_offset_type sVar9;" type_identifier identifier ;) (declaration "pointer ppVVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "pointer ppVVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "pointer pbVar17;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int local_58;" primitive_type 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 "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish;" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_finish" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar8 = (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 "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start;" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_start" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar10 = (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 (ppVVar10 == ppVVar8) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" if (parenthesized_expression "(ppVVar10 == ppVVar8)" ( (binary_expression "ppVVar10 == ppVVar8" 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 "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n    pVVar2 = *ppVVar10;\n    ppVVar10 = ppVVar10 + 1;\n    uVar15 = (int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8;\n    uVar13 = (ulong)uVar15;\n  } while (ppVVar8 != ppVVar10);" do (compound_statement "{\n    pVVar2 = *ppVVar10;\n    ppVVar10 = ppVVar10 + 1;\n    uVar15 = (int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8;\n    uVar13 = (ulong)uVar15;\n  }" { (expression_statement "pVVar2 = *ppVVar10;" (assignment_expression "pVVar2 = *ppVVar10" identifier = (pointer_expression "*ppVVar10" * identifier)) ;) (expression_statement "ppVVar10 = ppVVar10 + 1;" (assignment_expression "ppVVar10 = ppVVar10 + 1" identifier = (binary_expression "ppVVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = (int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8;" (assignment_expression "uVar15 = (int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8" identifier = (binary_expression "(int)uVar13 + 0x1c +\n             (int)((long)(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                   (long)(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 >> 5) * 8" (binary_expression "(int)uVar13 + 0x1c" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (binary_expression "(int)((long)(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                   (long)(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 >> 5) * 8" (cast_expression "(int)((long)(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                   (long)(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 >> 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)(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                   (long)(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 >> 5)" ( (ERROR "(long)(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                   (long)(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 "(long)(pVVar2->deps_).\n                         super__Vector_base<std::__cxx11::basic_string<char,_std" (binary_expression "(long)(pVVar2->deps_).\n                         super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(long)(pVVar2->deps_).\n                         super__Vector_base<std" (cast_expression "(long)(pVVar2->deps_).\n                         super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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                   (long)(pVVar2->deps_).\n                         super__Vector_base<std" (binary_expression "allocator<char>_>_>_>\n                         ._M_impl._M_finish -\n                   (long)(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 "(long)(pVVar2->deps_).\n                         super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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 >> 5" (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))) ;) (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(ppVVar8 != ppVVar10)" ( (binary_expression "ppVVar8 != ppVVar10" identifier != identifier) )) ;) (expression_statement "puVar7 = (uchar *)operator_new__(uVar13);" (assignment_expression "puVar7 = (uchar *)operator_new__(uVar13)" identifier = (cast_expression "(uchar *)operator_new__(uVar13)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))))) ;) (expression_statement "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start;" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl.\n            _M_start" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar8 = (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 "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish;" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl\n             ._M_finish" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>._M_impl" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar10 = (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 (ppVVar8 != ppVVar10) {\n    uVar13 = 0;\n    ppVVar12 = ppVVar8;\n    puVar18 = puVar7;\n    do {\n      pVVar2 = *ppVVar12;\n      uVar13 = (ulong)((int)uVar13 + 1);\n      puVar18[0] = '\x01';\n      puVar18[1] = '\0';\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = pVVar2->is_base_ | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)(puVar18 + 2) = uVar4;\n      uVar5 = (pVVar2->super_Version_base).index_;\n      if (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;\n      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;\n      s = (byte *)pVVar2->name_;\n      *(short *)(puVar18 + 6) = (short)lVar11 + 1;\n      uVar5 = 0;\n      pbVar16 = s;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }\nLAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;\n      iVar6 = (int)lVar11 * 8 + 0x1c;\n      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }\n      puVar18[0xc] = '\x14';\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\0';\n      *(int *)(puVar18 + 0x10) = iVar6;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar17 = (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      *(int *)(puVar18 + 0x14) = (int)sVar9;\n      puVar19 = puVar18 + 0x1c;\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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      ppVVar12 = ppVVar12 + 1;\n      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      puVar18 = puVar19;\n    } while( true );\n  }" if (parenthesized_expression "(ppVVar8 != ppVVar10)" ( (binary_expression "ppVVar8 != ppVVar10" identifier != identifier) )) (compound_statement "{\n    uVar13 = 0;\n    ppVVar12 = ppVVar8;\n    puVar18 = puVar7;\n    do {\n      pVVar2 = *ppVVar12;\n      uVar13 = (ulong)((int)uVar13 + 1);\n      puVar18[0] = '\x01';\n      puVar18[1] = '\0';\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = pVVar2->is_base_ | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)(puVar18 + 2) = uVar4;\n      uVar5 = (pVVar2->super_Version_base).index_;\n      if (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;\n      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;\n      s = (byte *)pVVar2->name_;\n      *(short *)(puVar18 + 6) = (short)lVar11 + 1;\n      uVar5 = 0;\n      pbVar16 = s;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }\nLAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;\n      iVar6 = (int)lVar11 * 8 + 0x1c;\n      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }\n      puVar18[0xc] = '\x14';\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\0';\n      *(int *)(puVar18 + 0x10) = iVar6;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar17 = (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      *(int *)(puVar18 + 0x14) = (int)sVar9;\n      puVar19 = puVar18 + 0x1c;\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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      ppVVar12 = ppVVar12 + 1;\n      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      puVar18 = puVar19;\n    } while( true );\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "ppVVar12 = ppVVar8;" (assignment_expression "ppVVar12 = ppVVar8" identifier = identifier) ;) (expression_statement "puVar18 = puVar7;" (assignment_expression "puVar18 = puVar7" identifier = identifier) ;) (do_statement "do {\n      pVVar2 = *ppVVar12;\n      uVar13 = (ulong)((int)uVar13 + 1);\n      puVar18[0] = '\x01';\n      puVar18[1] = '\0';\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = pVVar2->is_base_ | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)(puVar18 + 2) = uVar4;\n      uVar5 = (pVVar2->super_Version_base).index_;\n      if (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;\n      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;\n      s = (byte *)pVVar2->name_;\n      *(short *)(puVar18 + 6) = (short)lVar11 + 1;\n      uVar5 = 0;\n      pbVar16 = s;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }\nLAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;\n      iVar6 = (int)lVar11 * 8 + 0x1c;\n      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }\n      puVar18[0xc] = '\x14';\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\0';\n      *(int *)(puVar18 + 0x10) = iVar6;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar17 = (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      *(int *)(puVar18 + 0x14) = (int)sVar9;\n      puVar19 = puVar18 + 0x1c;\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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      ppVVar12 = ppVVar12 + 1;\n      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      puVar18 = puVar19;\n    } while( true );" do (compound_statement "{\n      pVVar2 = *ppVVar12;\n      uVar13 = (ulong)((int)uVar13 + 1);\n      puVar18[0] = '\x01';\n      puVar18[1] = '\0';\n      uVar4 = (ushort)pVVar2->is_base_;\n      if (pVVar2->is_weak_ != false) {\n        uVar4 = pVVar2->is_base_ | 2;\n      }\n      if (pVVar2->is_info_ != false) {\n        uVar4 = uVar4 | 4;\n      }\n      *(ushort *)(puVar18 + 2) = uVar4;\n      uVar5 = (pVVar2->super_Version_base).index_;\n      if (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }\n      pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;\n      lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;\n      s = (byte *)pVVar2->name_;\n      *(short *)(puVar18 + 6) = (short)lVar11 + 1;\n      uVar5 = 0;\n      pbVar16 = s;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }\nLAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;\n      iVar6 = (int)lVar11 * 8 + 0x1c;\n      if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }\n      puVar18[0xc] = '\x14';\n      puVar18[0xd] = '\0';\n      puVar18[0xe] = '\0';\n      puVar18[0xf] = '\0';\n      *(int *)(puVar18 + 0x10) = iVar6;\n      sVar9 = Stringpool_template<char>::get_offset(dynpool,(char *)s);\n      pbVar17 = (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      *(int *)(puVar18 + 0x14) = (int)sVar9;\n      puVar19 = puVar18 + 0x1c;\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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      ppVVar12 = ppVVar12 + 1;\n      ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;\n      puVar18 = puVar19;\n    }" { (expression_statement "pVVar2 = *ppVVar12;" (assignment_expression "pVVar2 = *ppVVar12" identifier = (pointer_expression "*ppVVar12" * identifier)) ;) (expression_statement "uVar13 = (ulong)((int)uVar13 + 1);" (assignment_expression "uVar13 = (ulong)((int)uVar13 + 1)" identifier = (call_expression "(ulong)((int)uVar13 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar13 + 1)" ( (binary_expression "(int)uVar13 + 1" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar18[0] = '\x01';" (assignment_expression "puVar18[0] = '\x01'" (subscript_expression "puVar18[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar18[1] = '\0';" (assignment_expression "puVar18[1] = '\0'" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (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 = pVVar2->is_base_ | 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 = pVVar2->is_base_ | 2;\n      }" { (expression_statement "uVar4 = pVVar2->is_base_ | 2;" (assignment_expression "uVar4 = pVVar2->is_base_ | 2" identifier = (binary_expression "pVVar2->is_base_ | 2" (field_expression "pVVar2->is_base_" identifier -> field_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 *)(puVar18 + 2) = uVar4;" (assignment_expression "*(ushort *)(puVar18 + 2) = uVar4" (pointer_expression "*(ushort *)(puVar18 + 2)" * (cast_expression "(ushort *)(puVar18 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = (pVVar2->super_Version_base).index_;" (assignment_expression "uVar5 = (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 (uVar5 == 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.h",0x179,"index");\n      }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 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 "pbVar17 = (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 "pbVar17 = (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 *)(puVar18 + 4) = (short)uVar5;" (assignment_expression "*(short *)(puVar18 + 4) = (short)uVar5" (pointer_expression "*(short *)(puVar18 + 4)" * (cast_expression "(short *)(puVar18 + 4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (cast_expression "(short)uVar5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "lVar11 = (long)pbVar17 - (long)pbVar3 >> 5;" (assignment_expression "lVar11 = (long)pbVar17 - (long)pbVar3 >> 5" identifier = (binary_expression "(long)pbVar17 - (long)pbVar3 >> 5" (binary_expression "(long)pbVar17 - (long)pbVar3" (cast_expression "(long)pbVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 *)(puVar18 + 6) = (short)lVar11 + 1;" (assignment_expression "*(short *)(puVar18 + 6) = (short)lVar11 + 1" (pointer_expression "*(short *)(puVar18 + 6)" * (cast_expression "(short *)(puVar18 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 6)" ( (binary_expression "puVar18 + 6" identifier + number_literal) )))) = (binary_expression "(short)lVar11 + 1" (cast_expression "(short)lVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal)) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "pbVar16 = s;" (assignment_expression "pbVar16 = s" identifier = identifier) ;) (while_statement "while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar16, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar16, bVar1 != 0" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar16 = pbVar16 + 1;\n          uVar5 = uVar5 * 0x10 + (uint)bVar1;\n          if ((uVar5 & 0xf0000000) == 0) break;\n          uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_00241c93;\n        }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 * 0x10 + (uint)bVar1;" (assignment_expression "uVar5 = uVar5 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar5 * 0x10 + (uint)bVar1" (binary_expression "uVar5 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar5 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar5 & 0xf0000000) == 0)" ( (binary_expression "(uVar5 & 0xf0000000) == 0" (parenthesized_expression "(uVar5 & 0xf0000000)" ( (binary_expression "uVar5 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18;" (assignment_expression "uVar5 = uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar5 & 0xfffffff ^ (uVar5 & 0xf0000000) >> 0x18" (binary_expression "uVar5 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar5 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xf0000000)" ( (binary_expression "uVar5 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_00241c93;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00241c93;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00241c93:\n      *(uint *)(puVar18 + 8) = uVar5;" statement_identifier : (expression_statement "*(uint *)(puVar18 + 8) = uVar5;" (assignment_expression "*(uint *)(puVar18 + 8) = uVar5" (pointer_expression "*(uint *)(puVar18 + 8)" * (cast_expression "(uint *)(puVar18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 8)" ( (binary_expression "puVar18 + 8" identifier + number_literal) )))) = identifier) ;)) (expression_statement "iVar6 = (int)lVar11 * 8 + 0x1c;" (assignment_expression "iVar6 = (int)lVar11 * 8 + 0x1c" identifier = (binary_expression "(int)lVar11 * 8 + 0x1c" (binary_expression "(int)lVar11 * 8" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if ((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13) {\n        iVar6 = 0;\n      }" if (parenthesized_expression "((ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13)" ( (binary_expression "(ulong)((long)ppVVar10 - (long)ppVVar8 >> 3) <= uVar13" (call_expression "(ulong)((long)ppVVar10 - (long)ppVVar8 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)ppVVar10 - (long)ppVVar8 >> 3)" ( (binary_expression "(long)ppVVar10 - (long)ppVVar8 >> 3" (binary_expression "(long)ppVVar10 - (long)ppVVar8" (cast_expression "(long)ppVVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppVVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        iVar6 = 0;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (expression_statement "puVar18[0xc] = '\x14';" (assignment_expression "puVar18[0xc] = '\x14'" (subscript_expression "puVar18[0xc]" identifier [ number_literal ]) = (char_literal "'\x14'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xd] = '\0';" (assignment_expression "puVar18[0xd] = '\0'" (subscript_expression "puVar18[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xe] = '\0';" (assignment_expression "puVar18[0xe] = '\0'" (subscript_expression "puVar18[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0xf] = '\0';" (assignment_expression "puVar18[0xf] = '\0'" (subscript_expression "puVar18[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(int *)(puVar18 + 0x10) = iVar6;" (assignment_expression "*(int *)(puVar18 + 0x10) = iVar6" (pointer_expression "*(int *)(puVar18 + 0x10)" * (cast_expression "(int *)(puVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" 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 "pbVar17 = (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 "pbVar17 = (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 "*(int *)(puVar18 + 0x14) = (int)sVar9;" (assignment_expression "*(int *)(puVar18 + 0x14) = (int)sVar9" (pointer_expression "*(int *)(puVar18 + 0x14)" * (cast_expression "(int *)(puVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x14)" ( (binary_expression "puVar18 + 0x14" identifier + number_literal) )))) = (cast_expression "(int)sVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar19 = puVar18 + 0x1c;" (assignment_expression "puVar19 = puVar18 + 0x1c" identifier = (binary_expression "puVar18 + 0x1c" 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 == pbVar17) {\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }\n      else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\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 == pbVar17)" ( (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 == pbVar17" (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        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        puVar18[0x18] = '\0';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }" { (expression_statement "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar10 = (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 "puVar18[0x18] = '\0';" (assignment_expression "puVar18[0x18] = '\0'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\0';" (assignment_expression "puVar18[0x1b] = '\0'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;" if (parenthesized_expression "(ppVVar10 == ppVVar12 + 1)" ( (binary_expression "ppVVar10 == ppVVar12 + 1" identifier == (binary_expression "ppVVar12 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00241d80;" goto statement_identifier ;)) }) (else_clause "else {\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }" else (compound_statement "{\n        puVar18[0x18] = '\b';\n        puVar18[0x19] = '\0';\n        puVar18[0x1a] = '\0';\n        puVar18[0x1b] = '\0';\n        uVar14 = 0;\n        puVar18 = puVar19;\n        do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);\n        ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;\n        if (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;\n      }" { (expression_statement "puVar18[0x18] = '\b';" (assignment_expression "puVar18[0x18] = '\b'" (subscript_expression "puVar18[0x18]" identifier [ number_literal ]) = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x19] = '\0';" (assignment_expression "puVar18[0x19] = '\0'" (subscript_expression "puVar18[0x19]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1a] = '\0';" (assignment_expression "puVar18[0x1a] = '\0'" (subscript_expression "puVar18[0x1a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar18[0x1b] = '\0';" (assignment_expression "puVar18[0x1b] = '\0'" (subscript_expression "puVar18[0x1b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) (do_statement "do {\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        } while (pbVar3 != pbVar17);" do (compound_statement "{\n          sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);\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          uVar14 = (ulong)((int)uVar14 + 1);\n          *(int *)puVar18 = (int)sVar9;\n          pbVar17 = pbVar17 + 1;\n          puVar19 = puVar18 + 8;\n          *(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;\n          puVar18 = puVar19;\n        }" { (expression_statement "sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length);" (assignment_expression "sVar9 = Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length)" identifier = (binary_expression "Stringpool_template<char>::get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset_with_length\n                            (dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length)" identifier (argument_list "(dynpool,(pbVar17->_M_dataplus)._M_p,pbVar17->_M_string_length)" ( identifier , (field_expression "(pbVar17->_M_dataplus)._M_p" (parenthesized_expression "(pbVar17->_M_dataplus)" ( (field_expression "pbVar17->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , (field_expression "pbVar17->_M_string_length" 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_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 "uVar14 = (ulong)((int)uVar14 + 1);" (assignment_expression "uVar14 = (ulong)((int)uVar14 + 1)" identifier = (call_expression "(ulong)((int)uVar14 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar14 + 1)" ( (binary_expression "(int)uVar14 + 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(int *)puVar18 = (int)sVar9;" (assignment_expression "*(int *)puVar18 = (int)sVar9" (pointer_expression "*(int *)puVar18" * (cast_expression "(int *)puVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)sVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar18 + 8;" (assignment_expression "puVar19 = puVar18 + 8" identifier = (binary_expression "puVar18 + 8" identifier + number_literal)) ;) (expression_statement "*(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3;" (assignment_expression "*(uint *)(puVar18 + 4) =\n               (uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3" (pointer_expression "*(uint *)(puVar18 + 4)" * (cast_expression "(uint *)(puVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (binary_expression "(uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)) << 3" (call_expression "(uint)(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5))" ( (binary_expression "uVar14 < (ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)" identifier < (call_expression "(ulong)((long)pbVar3 -\n                                       (long)(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 >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pbVar3 -\n                                       (long)(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 >> 5)" ( (binary_expression "(long)pbVar3 -\n                                       (long)(pVVar2->deps_).\n                                             super__Vector_base<std::__cxx11::basic_string<char" (binary_expression "(long)pbVar3 -\n                                       (long)(pVVar2->deps_).\n                                             super__Vector_base<std" (binary_expression "(long)pbVar3 -\n                                       (long)(pVVar2->deps_).\n                                             super__Vector_base" (cast_expression "(long)pbVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)(pVVar2->deps_).\n                                             super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) (ERROR ">" >) , (ERROR "_std::allocator<std::__cxx11::" identifier : : (binary_expression "allocator<std" identifier < identifier) : : identifier : :) (binary_expression "basic_string<char" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_>_>_>\n                                             ._M_impl._M_start >> 5" (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)) ;) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar3 != pbVar17)" ( (binary_expression "pbVar3 != pbVar17" identifier != identifier) )) ;) (expression_statement "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish;" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl._M_finish" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                   _M_impl" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar10 = (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 (ppVVar10 == ppVVar12 + 1) goto LAB_00241d80;" if (parenthesized_expression "(ppVVar10 == ppVVar12 + 1)" ( (binary_expression "ppVVar10 == ppVVar12 + 1" identifier == (binary_expression "ppVVar12 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00241d80;" goto statement_identifier ;)) }))) (expression_statement "ppVVar12 = ppVVar12 + 1;" (assignment_expression "ppVVar12 = ppVVar12 + 1" identifier = (binary_expression "ppVVar12 + 1" identifier + number_literal)) ;) (expression_statement "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start;" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl._M_start" (field_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n                _M_impl" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar8 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar8 = (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 "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00241d87:\n  if (uVar15 == uVar5) {\n    ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = puVar7;\n    *psize = uVar15;\n    *pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);\n    return;\n  }" statement_identifier : (if_statement "if (uVar15 == uVar5) {\n    ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = puVar7;\n    *psize = uVar15;\n    *pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);\n    return;\n  }" if (parenthesized_expression "(uVar15 == uVar5)" ( (binary_expression "uVar15 == uVar5" identifier == identifier) )) (compound_statement "{\n    ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;\n    *pp = puVar7;\n    *psize = uVar15;\n    *pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);\n    return;\n  }" { (expression_statement "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start;" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl._M_start" (field_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_>.\n               _M_impl" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold::Verdef*>_" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std::allocator<gold" (binary_expression "ppVVar10 = (this->defs_).super__Vector_base<gold::Verdef*,_std" (assignment_expression "ppVVar10 = (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 "*pp = puVar7;" (assignment_expression "*pp = puVar7" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "*psize = uVar15;" (assignment_expression "*psize = uVar15" (pointer_expression "*psize" * identifier) = identifier) ;) (expression_statement "*pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3);" (assignment_expression "*pentries = (uint)((long)ppVVar8 - (long)ppVVar10 >> 3)" (pointer_expression "*pentries" * identifier) = (call_expression "(uint)((long)ppVVar8 - (long)ppVVar10 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((long)ppVVar8 - (long)ppVVar10 >> 3)" ( (binary_expression "(long)ppVVar8 - (long)ppVVar10 >> 3" (binary_expression "(long)ppVVar8 - (long)ppVVar10" (cast_expression "(long)ppVVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppVVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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_00241d80:\n  ppVVar8 = ppVVar12 + 1;" statement_identifier : (expression_statement "ppVVar8 = ppVVar12 + 1;" (assignment_expression "ppVVar8 = ppVVar12 + 1" identifier = (binary_expression "ppVVar12 + 1" identifier + number_literal)) ;)) (expression_statement "local_58 = (int)puVar7;" (assignment_expression "local_58 = (int)puVar7" identifier = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar5 = (int)puVar19 - local_58;" (assignment_expression "uVar5 = (int)puVar19 - local_58" identifier = (binary_expression "(int)puVar19 - local_58" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (goto_statement "goto LAB_00241d87;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)\n\n{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}\n\n" (function_definition "void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)\n\n{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "long *plVar16;" (sized_type_specifier "long" long) (pointer_declarator "*plVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../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_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" if (parenthesized_expression "(plVar10 == (long *)param_1[1])" ( (binary_expression "plVar10 == (long *)param_1[1]" identifier == (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);" do (compound_statement "{\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  }" { (expression_statement "lVar2 = *plVar10;" (assignment_expression "lVar2 = *plVar10" identifier = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" identifier = (binary_expression "plVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;" (assignment_expression "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" identifier = (binary_expression "iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (binary_expression "iVar15 + 0x1c" identifier + number_literal) + (binary_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (cast_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" ( (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18)" (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) >> number_literal) ))) * number_literal))) ;) }) while (parenthesized_expression "((long *)param_1[1] != plVar10)" ( (binary_expression "(long *)param_1[1] != plVar10" (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) != identifier) )) ;) (expression_statement "puVar9 = (undefined4 *)thunk_FUN_00275550();" (assignment_expression "puVar9 = (undefined4 *)thunk_FUN_00275550()" identifier = (cast_expression "(undefined4 *)thunk_FUN_00275550()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "thunk_FUN_00275550()" identifier (argument_list "()" ( ))))) ;) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" if (parenthesized_expression "(plVar10 == plVar16)" ( (binary_expression "plVar10 == plVar16" identifier == identifier) )) (compound_statement "{\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" statement_identifier : (if_statement "if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" if (parenthesized_expression "(iVar15 != local_58)" ( (binary_expression "iVar15 != local_58" identifier != identifier) )) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" { (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");" (call_expression "FUN_0016cdf0("../../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 ") ))) ;) }))) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_3 = puVar9;" (assignment_expression "*param_3 = puVar9" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "*param_4 = iVar15;" (assignment_expression "*param_4 = iVar15" (pointer_expression "*param_4" * identifier) = identifier) ;) (expression_statement "*param_5 = (int)((long)plVar10 - lVar2 >> 3);" (assignment_expression "*param_5 = (int)((long)plVar10 - lVar2 >> 3)" (pointer_expression "*param_5" * identifier) = (cast_expression "(int)((long)plVar10 - lVar2 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)plVar10 - lVar2 >> 3)" ( (binary_expression "(long)plVar10 - lVar2 >> 3" (binary_expression "(long)plVar10 - lVar2" (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) >> number_literal) )))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "plVar12 = plVar10;" (assignment_expression "plVar12 = plVar10" identifier = identifier) ;) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" identifier = identifier) ;) (do_statement "do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );" do (compound_statement "{\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  }" { (expression_statement "lVar2 = *plVar12;" (assignment_expression "lVar2 = *plVar12" identifier = (pointer_expression "*plVar12" * identifier)) ;) (expression_statement "uVar13 = (ulong)((int)uVar13 + 1);" (assignment_expression "uVar13 = (ulong)((int)uVar13 + 1)" identifier = (call_expression "(ulong)((int)uVar13 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar13 + 1)" ( (binary_expression "(int)uVar13 + 1" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined2 *)puVar19 = 1;" (assignment_expression "*(undefined2 *)puVar19 = 1" (pointer_expression "*(undefined2 *)puVar19" * (cast_expression "(undefined2 *)puVar19" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "uVar5 = (ushort)*(byte *)(lVar2 + 0x30);" (assignment_expression "uVar5 = (ushort)*(byte *)(lVar2 + 0x30)" identifier = (binary_expression "(ushort)*(byte *)(lVar2 + 0x30)" (parenthesized_expression "(ushort)" ( identifier )) * (cast_expression "(byte *)(lVar2 + 0x30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" if (parenthesized_expression "(*(char *)(lVar2 + 0x31) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x31) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x31)" * (cast_expression "(char *)(lVar2 + 0x31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x31)" ( (binary_expression "lVar2 + 0x31" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" { (expression_statement "uVar5 = *(byte *)(lVar2 + 0x30) | 2;" (assignment_expression "uVar5 = *(byte *)(lVar2 + 0x30) | 2" identifier = (binary_expression "*(byte *)(lVar2 + 0x30) | 2" (pointer_expression "*(byte *)(lVar2 + 0x30)" * (cast_expression "(byte *)(lVar2 + 0x30)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x30)" ( (binary_expression "lVar2 + 0x30" identifier + number_literal) )))) | number_literal)) ;) })) (if_statement "if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }" if (parenthesized_expression "(*(char *)(lVar2 + 0x32) != '\0')" ( (binary_expression "*(char *)(lVar2 + 0x32) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x32)" * (cast_expression "(char *)(lVar2 + 0x32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x32)" ( (binary_expression "lVar2 + 0x32" 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 *)((long)puVar19 + 2) = uVar5;" (assignment_expression "*(ushort *)((long)puVar19 + 2) = uVar5" (pointer_expression "*(ushort *)((long)puVar19 + 2)" * (cast_expression "(ushort *)((long)puVar19 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar19 + 2)" ( (binary_expression "(long)puVar19 + 2" (cast_expression "(long)puVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" if (parenthesized_expression "(*(int *)(lVar2 + 8) == -1)" ( (binary_expression "*(int *)(lVar2 + 8) == -1" (pointer_expression "*(int *)(lVar2 + 8)" * (cast_expression "(int *)(lVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" { (expression_statement "FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_0016cdf0("../../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 "lVar11 = *(long *)(lVar2 + 0x20);" (assignment_expression "lVar11 = *(long *)(lVar2 + 0x20)" identifier = (pointer_expression "*(long *)(lVar2 + 0x20)" * (cast_expression "(long *)(lVar2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar2 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x18)" identifier = (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);" (assignment_expression "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8)" (pointer_expression "*(short *)(puVar19 + 1)" * (cast_expression "(short *)(puVar19 + 1)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 1)" ( (binary_expression "puVar19 + 1" identifier + number_literal) )))) = (cast_expression "(short)*(int *)(lVar2 + 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(int *)(lVar2 + 8)" * (cast_expression "(int *)(lVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 8)" ( (binary_expression "lVar2 + 8" identifier + number_literal) )))))) ;) (expression_statement "lVar11 = lVar11 - lVar3 >> 5;" (assignment_expression "lVar11 = lVar11 - lVar3 >> 5" identifier = (binary_expression "lVar11 - lVar3 >> 5" (binary_expression "lVar11 - lVar3" identifier - identifier) >> number_literal)) ;) (expression_statement "pbVar17 = *(byte **)(lVar2 + 0x10);" (assignment_expression "pbVar17 = *(byte **)(lVar2 + 0x10)" identifier = (pointer_expression "*(byte **)(lVar2 + 0x10)" * (cast_expression "(byte **)(lVar2 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x10)" ( (binary_expression "lVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1;" (assignment_expression "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1" (pointer_expression "*(short *)((long)puVar19 + 6)" * (cast_expression "(short *)((long)puVar19 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar19 + 6)" ( (binary_expression "(long)puVar19 + 6" (cast_expression "(long)puVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "(short)lVar11 + 1" (cast_expression "(short)lVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00241c60:\n    bVar1 = *pbVar17;" statement_identifier : (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;)) (while_statement "while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = uVar6 * 0x10 + (uint)bVar1;" (assignment_expression "uVar6 = uVar6 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar6 * 0x10 + (uint)bVar1" (binary_expression "uVar6 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;" if (parenthesized_expression "((uVar6 & 0xf0000000) == 0)" ( (binary_expression "(uVar6 & 0xf0000000) == 0" (parenthesized_expression "(uVar6 & 0xf0000000)" ( (binary_expression "uVar6 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00241c60;" goto statement_identifier ;)) (expression_statement "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;" (assignment_expression "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" (binary_expression "uVar6 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar6 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xf0000000)" ( (binary_expression "uVar6 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) })) (expression_statement "puVar19[2] = uVar6;" (assignment_expression "puVar19[2] = uVar6" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (int)lVar11 * 8 + 0x1c;" (assignment_expression "iVar7 = (int)lVar11 * 8 + 0x1c" identifier = (binary_expression "(int)lVar11 * 8 + 0x1c" (binary_expression "(int)lVar11 * 8" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal)) ;) (if_statement "if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }" if (parenthesized_expression "((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13)" ( (binary_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13" (call_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)plVar16 - (long)plVar10 >> 3)" ( (binary_expression "(long)plVar16 - (long)plVar10 >> 3" (binary_expression "(long)plVar16 - (long)plVar10" (cast_expression "(long)plVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n      iVar7 = 0;\n    }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "puVar19[3] = 0x14;" (assignment_expression "puVar19[3] = 0x14" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar19[4] = iVar7;" (assignment_expression "puVar19[4] = iVar7" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = FUN_0021b7b0(param_2);" (assignment_expression "uVar8 = FUN_0021b7b0(param_2)" identifier = (call_expression "FUN_0021b7b0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar18 = *(undefined8 **)(lVar2 + 0x18);" (assignment_expression "puVar18 = *(undefined8 **)(lVar2 + 0x18)" identifier = (pointer_expression "*(undefined8 **)(lVar2 + 0x18)" * (cast_expression "(undefined8 **)(lVar2 + 0x18)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "puVar19[5] = uVar8;" (assignment_expression "puVar19[5] = uVar8" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20 = puVar19 + 7;" (assignment_expression "puVar20 = puVar19 + 7" identifier = (binary_expression "puVar19 + 7" identifier + number_literal)) ;) (if_statement "if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" if (parenthesized_expression "(*(undefined8 **)(lVar2 + 0x20) == puVar18)" ( (binary_expression "*(undefined8 **)(lVar2 + 0x20) == puVar18" (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" * (cast_expression "(undefined8 **)(lVar2 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" { (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar19[6] = 0;" (assignment_expression "puVar19[6] = 0" (subscript_expression "puVar19[6]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar16 != plVar12 + 1) goto LAB_00241d53;" if (parenthesized_expression "(plVar16 != plVar12 + 1)" ( (binary_expression "plVar16 != plVar12 + 1" identifier != (binary_expression "plVar12 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00241d53;" goto statement_identifier ;)) (goto_statement "goto LAB_00241d80;" goto statement_identifier ;) })) (expression_statement "puVar19[6] = 8;" (assignment_expression "puVar19[6] = 8" (subscript_expression "puVar19[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) (do_statement "do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);" do (compound_statement "{\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    }" { (expression_statement "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);" (assignment_expression "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1])" identifier = (call_expression "FUN_0021b710(param_2,*puVar18,puVar18[1])" identifier (argument_list "(param_2,*puVar18,puVar18[1])" ( identifier , (pointer_expression "*puVar18" * identifier) , (subscript_expression "puVar18[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar4 = *(undefined8 **)(lVar2 + 0x20);" (assignment_expression "puVar4 = *(undefined8 **)(lVar2 + 0x20)" identifier = (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" * (cast_expression "(undefined8 **)(lVar2 + 0x20)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + 0x20)" ( (binary_expression "lVar2 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = (ulong)((int)uVar14 + 1);" (assignment_expression "uVar14 = (ulong)((int)uVar14 + 1)" identifier = (call_expression "(ulong)((int)uVar14 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar14 + 1)" ( (binary_expression "(int)uVar14 + 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*puVar19 = uVar8;" (assignment_expression "*puVar19 = uVar8" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "puVar18 = puVar18 + 4;" (assignment_expression "puVar18 = puVar18 + 4" identifier = (binary_expression "puVar18 + 4" identifier + number_literal)) ;) (expression_statement "puVar20 = puVar19 + 2;" (assignment_expression "puVar20 = puVar19 + 2" identifier = (binary_expression "puVar19 + 2" identifier + number_literal)) ;) (expression_statement "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;" (assignment_expression "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (call_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" ( (binary_expression "uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" identifier < (call_expression "(ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" ( (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18)" (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (pointer_expression "*(long *)(lVar2 + 0x18)" * (cast_expression "(long *)(lVar2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x18)" ( (binary_expression "lVar2 + 0x18" identifier + number_literal) ))))) >> number_literal) )))) ))) << number_literal)) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "(puVar4 != puVar18)" ( (binary_expression "puVar4 != puVar18" identifier != identifier) )) ;) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" identifier = (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (if_statement "if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" if (parenthesized_expression "(plVar16 == plVar12 + 1)" ( (binary_expression "plVar16 == plVar12 + 1" identifier == (binary_expression "plVar12 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" { (labeled_statement "LAB_00241d80:\n      plVar10 = plVar12 + 1;" statement_identifier : (expression_statement "plVar10 = plVar12 + 1;" (assignment_expression "plVar10 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;)) (expression_statement "local_58 = (int)puVar9;" (assignment_expression "local_58 = (int)puVar9" identifier = (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_58 = (int)puVar20 - local_58;" (assignment_expression "local_58 = (int)puVar20 - local_58" identifier = (binary_expression "(int)puVar20 - local_58" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (goto_statement "goto LAB_00241d87;" goto statement_identifier ;) })) (labeled_statement "LAB_00241d53:\n    plVar12 = plVar12 + 1;" statement_identifier : (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;)) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (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 (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - IDENT) >> LIT) )))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | 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 (sized_type_specifier long)) ) 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) )) (goto_statement goto statement_identifier ;)) (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)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) )))) ))) << LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)\n\n{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00241b60(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" (identifier "FUN_00241b60") (parameter_list "(long *param_1,undefined8 param_2,undefined8 *param_3,int *param_4,\n                 undefined4 *param_5)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 *param_3" (type_identifier "undefined8") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  long lVar2;\n  long lVar3;\n  undefined8 *puVar4;\n  ushort uVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong uVar14;\n  int iVar15;\n  long *plVar16;\n  byte *pbVar17;\n  undefined8 *puVar18;\n  undefined4 *puVar19;\n  undefined4 *puVar20;\n  int local_58;\n  \n  if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }\n  plVar10 = (long *)*param_1;\n  if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }\n  iVar15 = 0;\n  do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);\n  puVar9 = (undefined4 *)thunk_FUN_00275550();\n  plVar10 = (long *)*param_1;\n  plVar16 = (long *)param_1[1];\n  if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }\n  uVar13 = 0;\n  plVar12 = plVar10;\n  puVar19 = puVar9;\n  do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined8 *puVar4;" (type_identifier "undefined8") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "ushort uVar5;" (type_identifier "ushort") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "long *plVar16;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar16" (* "*") (identifier "plVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined8 *puVar18;" (type_identifier "undefined8") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (if_statement "if ((char)param_1[0xd] == '\0') {\n                    \n    FUN_0016cdf0("../../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_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");" (call_expression "FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents")" (identifier "FUN_0016cdf0") (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 "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" (identifier "plVar10") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (plVar10 == (long *)param_1[1]) {\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" (if "if") (parenthesized_expression "(plVar10 == (long *)param_1[1])" (( "(") (binary_expression "plVar10 == (long *)param_1[1]" (identifier "plVar10") (== "==") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");" (call_expression "FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/dynobj.cc",0x702,"def_section_contents")" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x702") (, ",") (string_literal ""def_section_contents"" (" """) (string_content "def_section_contents") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  } while ((long *)param_1[1] != plVar10);" (do "do") (compound_statement "{\n    lVar2 = *plVar10;\n    plVar10 = plVar10 + 1;\n    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;\n  }" ({ "{") (expression_statement "lVar2 = *plVar10;" (assignment_expression "lVar2 = *plVar10" (identifier "lVar2") (= "=") (pointer_expression "*plVar10" (* "*") (identifier "plVar10"))) (; ";")) (expression_statement "plVar10 = plVar10 + 1;" (assignment_expression "plVar10 = plVar10 + 1" (identifier "plVar10") (= "=") (binary_expression "plVar10 + 1" (identifier "plVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;" (assignment_expression "iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (binary_expression "iVar15 + 0x1c" (identifier "iVar15") (+ "+") (number_literal "0x1c")) (+ "+") (binary_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8" (cast_expression "(int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5)" (( "(") (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18)" (pointer_expression "*(long *)(lVar2 + 0x20)" (* "*") (cast_expression "(long *)(lVar2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar2 + 0x18)" (* "*") (cast_expression "(long *)(lVar2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")"))))) (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "8")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_1[1] != plVar10)" (( "(") (binary_expression "(long *)param_1[1] != plVar10" (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (expression_statement "puVar9 = (undefined4 *)thunk_FUN_00275550();" (assignment_expression "puVar9 = (undefined4 *)thunk_FUN_00275550()" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)thunk_FUN_00275550()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "thunk_FUN_00275550()" (identifier "thunk_FUN_00275550") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" (identifier "plVar10") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" (identifier "plVar16") (= "=") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (plVar10 == plVar16) {\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" (if "if") (parenthesized_expression "(plVar10 == plVar16)" (( "(") (binary_expression "plVar10 == plVar16" (identifier "plVar10") (== "==") (identifier "plVar16")) () ")")) (compound_statement "{\n    local_58 = 0;\nLAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }\n    lVar2 = *param_1;\n    *param_3 = puVar9;\n    *param_4 = iVar15;\n    *param_5 = (int)((long)plVar10 - lVar2 >> 3);\n    return;\n  }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00241d87:\n    if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" (statement_identifier "LAB_00241d87") (: ":") (if_statement "if (iVar15 != local_58) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" (if "if") (parenthesized_expression "(iVar15 != local_58)" (( "(") (binary_expression "iVar15 != local_58" (identifier "iVar15") (!= "!=") (identifier "local_58")) () ")")) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");\n    }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");" (call_expression "FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/dynobj.cc",0x71c,"def_section_contents")" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x71c") (, ",") (string_literal ""def_section_contents"" (" """) (string_content "def_section_contents") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "lVar2 = *param_1;" (assignment_expression "lVar2 = *param_1" (identifier "lVar2") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_3 = puVar9;" (assignment_expression "*param_3 = puVar9" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "*param_4 = iVar15;" (assignment_expression "*param_4 = iVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "*param_5 = (int)((long)plVar10 - lVar2 >> 3);" (assignment_expression "*param_5 = (int)((long)plVar10 - lVar2 >> 3)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(int)((long)plVar10 - lVar2 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((long)plVar10 - lVar2 >> 3)" (( "(") (binary_expression "(long)plVar10 - lVar2 >> 3" (binary_expression "(long)plVar10 - lVar2" (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10")) (- "-") (identifier "lVar2")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar12 = plVar10;" (assignment_expression "plVar12 = plVar10" (identifier "plVar12") (= "=") (identifier "plVar10")) (; ";")) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" (identifier "puVar19") (= "=") (identifier "puVar9")) (; ";")) (do_statement "do {\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  } while( true );" (do "do") (compound_statement "{\n    lVar2 = *plVar12;\n    uVar13 = (ulong)((int)uVar13 + 1);\n    *(undefined2 *)puVar19 = 1;\n    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);\n    if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }\n    if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }\n    *(ushort *)((long)puVar19 + 2) = uVar5;\n    if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }\n    lVar11 = *(long *)(lVar2 + 0x20);\n    lVar3 = *(long *)(lVar2 + 0x18);\n    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);\n    lVar11 = lVar11 - lVar3 >> 5;\n    pbVar17 = *(byte **)(lVar2 + 0x10);\n    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;\n    uVar6 = 0;\nLAB_00241c60:\n    bVar1 = *pbVar17;\n    while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }\n    puVar19[2] = uVar6;\n    iVar7 = (int)lVar11 * 8 + 0x1c;\n    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }\n    puVar19[3] = 0x14;\n    puVar19[4] = iVar7;\n    uVar8 = FUN_0021b7b0(param_2);\n    puVar18 = *(undefined8 **)(lVar2 + 0x18);\n    puVar19[5] = uVar8;\n    puVar20 = puVar19 + 7;\n    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }\n    puVar19[6] = 8;\n    uVar14 = 0;\n    puVar19 = puVar20;\n    do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);\n    plVar16 = (long *)param_1[1];\n    if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }\nLAB_00241d53:\n    plVar12 = plVar12 + 1;\n    plVar10 = (long *)*param_1;\n    puVar19 = puVar20;\n  }" ({ "{") (expression_statement "lVar2 = *plVar12;" (assignment_expression "lVar2 = *plVar12" (identifier "lVar2") (= "=") (pointer_expression "*plVar12" (* "*") (identifier "plVar12"))) (; ";")) (expression_statement "uVar13 = (ulong)((int)uVar13 + 1);" (assignment_expression "uVar13 = (ulong)((int)uVar13 + 1)" (identifier "uVar13") (= "=") (call_expression "(ulong)((int)uVar13 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar13 + 1)" (( "(") (binary_expression "(int)uVar13 + 1" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(undefined2 *)puVar19 = 1;" (assignment_expression "*(undefined2 *)puVar19 = 1" (pointer_expression "*(undefined2 *)puVar19" (* "*") (cast_expression "(undefined2 *)puVar19" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar19"))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = (ushort)*(byte *)(lVar2 + 0x30);" (assignment_expression "uVar5 = (ushort)*(byte *)(lVar2 + 0x30)" (identifier "uVar5") (= "=") (binary_expression "(ushort)*(byte *)(lVar2 + 0x30)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (* "*") (cast_expression "(byte *)(lVar2 + 0x30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x30)" (( "(") (binary_expression "lVar2 + 0x30" (identifier "lVar2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (*(char *)(lVar2 + 0x31) != '\0') {\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" (if "if") (parenthesized_expression "(*(char *)(lVar2 + 0x31) != '\0')" (( "(") (binary_expression "*(char *)(lVar2 + 0x31) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x31)" (* "*") (cast_expression "(char *)(lVar2 + 0x31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x31)" (( "(") (binary_expression "lVar2 + 0x31" (identifier "lVar2") (+ "+") (number_literal "0x31")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar5 = *(byte *)(lVar2 + 0x30) | 2;\n    }" ({ "{") (expression_statement "uVar5 = *(byte *)(lVar2 + 0x30) | 2;" (assignment_expression "uVar5 = *(byte *)(lVar2 + 0x30) | 2" (identifier "uVar5") (= "=") (binary_expression "*(byte *)(lVar2 + 0x30) | 2" (pointer_expression "*(byte *)(lVar2 + 0x30)" (* "*") (cast_expression "(byte *)(lVar2 + 0x30)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x30)" (( "(") (binary_expression "lVar2 + 0x30" (identifier "lVar2") (+ "+") (number_literal "0x30")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(lVar2 + 0x32) != '\0') {\n      uVar5 = uVar5 | 4;\n    }" (if "if") (parenthesized_expression "(*(char *)(lVar2 + 0x32) != '\0')" (( "(") (binary_expression "*(char *)(lVar2 + 0x32) != '\0'" (pointer_expression "*(char *)(lVar2 + 0x32)" (* "*") (cast_expression "(char *)(lVar2 + 0x32)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x32)" (( "(") (binary_expression "lVar2 + 0x32" (identifier "lVar2") (+ "+") (number_literal "0x32")) () ")")))) (!= "!=") (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 *)((long)puVar19 + 2) = uVar5;" (assignment_expression "*(ushort *)((long)puVar19 + 2) = uVar5" (pointer_expression "*(ushort *)((long)puVar19 + 2)" (* "*") (cast_expression "(ushort *)((long)puVar19 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar19 + 2)" (( "(") (binary_expression "(long)puVar19 + 2" (cast_expression "(long)puVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar19")) (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (*(int *)(lVar2 + 8) == -1) {\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" (if "if") (parenthesized_expression "(*(int *)(lVar2 + 8) == -1)" (( "(") (binary_expression "*(int *)(lVar2 + 8) == -1" (pointer_expression "*(int *)(lVar2 + 8)" (* "*") (cast_expression "(int *)(lVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");\n    }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");" (call_expression "FUN_0016cdf0("../../gold/dynobj.h",0x179,"index")" (identifier "FUN_0016cdf0") (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 "lVar11 = *(long *)(lVar2 + 0x20);" (assignment_expression "lVar11 = *(long *)(lVar2 + 0x20)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar2 + 0x20)" (* "*") (cast_expression "(long *)(lVar2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(lVar2 + 0x18);" (assignment_expression "lVar3 = *(long *)(lVar2 + 0x18)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar2 + 0x18)" (* "*") (cast_expression "(long *)(lVar2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);" (assignment_expression "*(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8)" (pointer_expression "*(short *)(puVar19 + 1)" (* "*") (cast_expression "(short *)(puVar19 + 1)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 1)" (( "(") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(short)*(int *)(lVar2 + 8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(int *)(lVar2 + 8)" (* "*") (cast_expression "(int *)(lVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 8)" (( "(") (binary_expression "lVar2 + 8" (identifier "lVar2") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "lVar11 = lVar11 - lVar3 >> 5;" (assignment_expression "lVar11 = lVar11 - lVar3 >> 5" (identifier "lVar11") (= "=") (binary_expression "lVar11 - lVar3 >> 5" (binary_expression "lVar11 - lVar3" (identifier "lVar11") (- "-") (identifier "lVar3")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "pbVar17 = *(byte **)(lVar2 + 0x10);" (assignment_expression "pbVar17 = *(byte **)(lVar2 + 0x10)" (identifier "pbVar17") (= "=") (pointer_expression "*(byte **)(lVar2 + 0x10)" (* "*") (cast_expression "(byte **)(lVar2 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + 0x10)" (( "(") (binary_expression "lVar2 + 0x10" (identifier "lVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1;" (assignment_expression "*(short *)((long)puVar19 + 6) = (short)lVar11 + 1" (pointer_expression "*(short *)((long)puVar19 + 6)" (* "*") (cast_expression "(short *)((long)puVar19 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar19 + 6)" (( "(") (binary_expression "(long)puVar19 + 6" (cast_expression "(long)puVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar19")) (+ "+") (number_literal "6")) () ")")))) (= "=") (binary_expression "(short)lVar11 + 1" (cast_expression "(short)lVar11" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "lVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00241c60:\n    bVar1 = *pbVar17;" (statement_identifier "LAB_00241c60") (: ":") (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" (identifier "bVar1") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";"))) (while_statement "while (bVar1 != 0) {\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar17 = pbVar17 + 1;\n      uVar6 = uVar6 * 0x10 + (uint)bVar1;\n      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;\n      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;\n      bVar1 = *pbVar17;\n    }" ({ "{") (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = uVar6 * 0x10 + (uint)bVar1;" (assignment_expression "uVar6 = uVar6 * 0x10 + (uint)bVar1" (identifier "uVar6") (= "=") (binary_expression "uVar6 * 0x10 + (uint)bVar1" (binary_expression "uVar6 * 0x10" (identifier "uVar6") (* "*") (number_literal "0x10")) (+ "+") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (if_statement "if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;" (if "if") (parenthesized_expression "((uVar6 & 0xf0000000) == 0)" (( "(") (binary_expression "(uVar6 & 0xf0000000) == 0" (parenthesized_expression "(uVar6 & 0xf0000000)" (( "(") (binary_expression "uVar6 & 0xf0000000" (identifier "uVar6") (& "&") (number_literal "0xf0000000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00241c60;" (goto "goto") (statement_identifier "LAB_00241c60") (; ";"))) (expression_statement "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;" (assignment_expression "uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18" (binary_expression "uVar6 & 0xfffffff" (identifier "uVar6") (& "&") (number_literal "0xfffffff")) (^ "^") (binary_expression "(uVar6 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar6 & 0xf0000000)" (( "(") (binary_expression "uVar6 & 0xf0000000" (identifier "uVar6") (& "&") (number_literal "0xf0000000")) () ")")) (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" (identifier "bVar1") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (} "}"))) (expression_statement "puVar19[2] = uVar6;" (assignment_expression "puVar19[2] = uVar6" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar7 = (int)lVar11 * 8 + 0x1c;" (assignment_expression "iVar7 = (int)lVar11 * 8 + 0x1c" (identifier "iVar7") (= "=") (binary_expression "(int)lVar11 * 8 + 0x1c" (binary_expression "(int)lVar11 * 8" (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11")) (* "*") (number_literal "8")) (+ "+") (number_literal "0x1c"))) (; ";")) (if_statement "if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {\n      iVar7 = 0;\n    }" (if "if") (parenthesized_expression "((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13)" (( "(") (binary_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13" (call_expression "(ulong)((long)plVar16 - (long)plVar10 >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)plVar16 - (long)plVar10 >> 3)" (( "(") (binary_expression "(long)plVar16 - (long)plVar10 >> 3" (binary_expression "(long)plVar16 - (long)plVar10" (cast_expression "(long)plVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar16")) (- "-") (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar13")) () ")")) (compound_statement "{\n      iVar7 = 0;\n    }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "puVar19[3] = 0x14;" (assignment_expression "puVar19[3] = 0x14" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "puVar19[4] = iVar7;" (assignment_expression "puVar19[4] = iVar7" (subscript_expression "puVar19[4]" (identifier "puVar19") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar8 = FUN_0021b7b0(param_2);" (assignment_expression "uVar8 = FUN_0021b7b0(param_2)" (identifier "uVar8") (= "=") (call_expression "FUN_0021b7b0(param_2)" (identifier "FUN_0021b7b0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "puVar18 = *(undefined8 **)(lVar2 + 0x18);" (assignment_expression "puVar18 = *(undefined8 **)(lVar2 + 0x18)" (identifier "puVar18") (= "=") (pointer_expression "*(undefined8 **)(lVar2 + 0x18)" (* "*") (cast_expression "(undefined8 **)(lVar2 + 0x18)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "puVar19[5] = uVar8;" (assignment_expression "puVar19[5] = uVar8" (subscript_expression "puVar19[5]" (identifier "puVar19") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar20 = puVar19 + 7;" (assignment_expression "puVar20 = puVar19 + 7" (identifier "puVar20") (= "=") (binary_expression "puVar19 + 7" (identifier "puVar19") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" (if "if") (parenthesized_expression "(*(undefined8 **)(lVar2 + 0x20) == puVar18)" (( "(") (binary_expression "*(undefined8 **)(lVar2 + 0x20) == puVar18" (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" (* "*") (cast_expression "(undefined8 **)(lVar2 + 0x20)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (identifier "puVar18")) () ")")) (compound_statement "{\n      plVar16 = (long *)param_1[1];\n      puVar19[6] = 0;\n      if (plVar16 != plVar12 + 1) goto LAB_00241d53;\n      goto LAB_00241d80;\n    }" ({ "{") (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" (identifier "plVar16") (= "=") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar19[6] = 0;" (assignment_expression "puVar19[6] = 0" (subscript_expression "puVar19[6]" (identifier "puVar19") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (plVar16 != plVar12 + 1) goto LAB_00241d53;" (if "if") (parenthesized_expression "(plVar16 != plVar12 + 1)" (( "(") (binary_expression "plVar16 != plVar12 + 1" (identifier "plVar16") (!= "!=") (binary_expression "plVar12 + 1" (identifier "plVar12") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_00241d53;" (goto "goto") (statement_identifier "LAB_00241d53") (; ";"))) (goto_statement "goto LAB_00241d80;" (goto "goto") (statement_identifier "LAB_00241d80") (; ";")) (} "}"))) (expression_statement "puVar19[6] = 8;" (assignment_expression "puVar19[6] = 8" (subscript_expression "puVar19[6]" (identifier "puVar19") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (do_statement "do {\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    } while (puVar4 != puVar18);" (do "do") (compound_statement "{\n      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);\n      puVar4 = *(undefined8 **)(lVar2 + 0x20);\n      uVar14 = (ulong)((int)uVar14 + 1);\n      *puVar19 = uVar8;\n      puVar18 = puVar18 + 4;\n      puVar20 = puVar19 + 2;\n      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;\n      puVar19 = puVar20;\n    }" ({ "{") (expression_statement "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);" (assignment_expression "uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1])" (identifier "uVar8") (= "=") (call_expression "FUN_0021b710(param_2,*puVar18,puVar18[1])" (identifier "FUN_0021b710") (argument_list "(param_2,*puVar18,puVar18[1])" (( "(") (identifier "param_2") (, ",") (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (, ",") (subscript_expression "puVar18[1]" (identifier "puVar18") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "puVar4 = *(undefined8 **)(lVar2 + 0x20);" (assignment_expression "puVar4 = *(undefined8 **)(lVar2 + 0x20)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined8 **)(lVar2 + 0x20)" (* "*") (cast_expression "(undefined8 **)(lVar2 + 0x20)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + 0x20)" (( "(") (binary_expression "lVar2 + 0x20" (identifier "lVar2") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar14 = (ulong)((int)uVar14 + 1);" (assignment_expression "uVar14 = (ulong)((int)uVar14 + 1)" (identifier "uVar14") (= "=") (call_expression "(ulong)((int)uVar14 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar14 + 1)" (( "(") (binary_expression "(int)uVar14 + 1" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*puVar19 = uVar8;" (assignment_expression "*puVar19 = uVar8" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar18 = puVar18 + 4;" (assignment_expression "puVar18 = puVar18 + 4" (identifier "puVar18") (= "=") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar20 = puVar19 + 2;" (assignment_expression "puVar20 = puVar19 + 2" (identifier "puVar20") (= "=") (binary_expression "puVar19 + 2" (identifier "puVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;" (assignment_expression "puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3" (call_expression "(uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5))" (( "(") (binary_expression "uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" (identifier "uVar14") (< "<") (call_expression "(ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)" (( "(") (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18) >> 5" (binary_expression "(long)puVar4 - *(long *)(lVar2 + 0x18)" (cast_expression "(long)puVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar4")) (- "-") (pointer_expression "*(long *)(lVar2 + 0x18)" (* "*") (cast_expression "(long *)(lVar2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x18)" (( "(") (binary_expression "lVar2 + 0x18" (identifier "lVar2") (+ "+") (number_literal "0x18")) () ")"))))) (>> ">>") (number_literal "5")) () ")")))) () ")"))) (<< "<<") (number_literal "3"))) (; ";")) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != puVar18)" (( "(") (binary_expression "puVar4 != puVar18" (identifier "puVar4") (!= "!=") (identifier "puVar18")) () ")")) (; ";")) (expression_statement "plVar16 = (long *)param_1[1];" (assignment_expression "plVar16 = (long *)param_1[1]" (identifier "plVar16") (= "=") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (plVar16 == plVar12 + 1) {\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" (if "if") (parenthesized_expression "(plVar16 == plVar12 + 1)" (( "(") (binary_expression "plVar16 == plVar12 + 1" (identifier "plVar16") (== "==") (binary_expression "plVar12 + 1" (identifier "plVar12") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\nLAB_00241d80:\n      plVar10 = plVar12 + 1;\n      local_58 = (int)puVar9;\n      local_58 = (int)puVar20 - local_58;\n      goto LAB_00241d87;\n    }" ({ "{") (labeled_statement "LAB_00241d80:\n      plVar10 = plVar12 + 1;" (statement_identifier "LAB_00241d80") (: ":") (expression_statement "plVar10 = plVar12 + 1;" (assignment_expression "plVar10 = plVar12 + 1" (identifier "plVar10") (= "=") (binary_expression "plVar12 + 1" (identifier "plVar12") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_58 = (int)puVar9;" (assignment_expression "local_58 = (int)puVar9" (identifier "local_58") (= "=") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) (; ";")) (expression_statement "local_58 = (int)puVar20 - local_58;" (assignment_expression "local_58 = (int)puVar20 - local_58" (identifier "local_58") (= "=") (binary_expression "(int)puVar20 - local_58" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (- "-") (identifier "local_58"))) (; ";")) (goto_statement "goto LAB_00241d87;" (goto "goto") (statement_identifier "LAB_00241d87") (; ";")) (} "}"))) (labeled_statement "LAB_00241d53:\n    plVar12 = plVar12 + 1;" (statement_identifier "LAB_00241d53") (: ":") (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" (identifier "plVar12") (= "=") (binary_expression "plVar12 + 1" (identifier "plVar12") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" (identifier "plVar10") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar19 = puVar20;" (assignment_expression "puVar19 = puVar20" (identifier "puVar19") (= "=") (identifier "puVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* DWARF original name: def_section_contents<64, false>
   DWARF original prototype: void def_section_contents<64,_false>(Versions * this, Stringpool *
   dynpool, uchar * * pp, uint * psize, uint * pentries) */

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

{
  type_3 var_13;
  type_1 *pVVar2;
  type_2 var_25;
  type_3 *s;
  type_4 var_10;
  type_5 var_12;
  int iVar6;
  type_6 *puVar7;
  type_2 var_6;
  type_7 sVar9;
  type_2 var_5;
  long lVar11;
  type_2 var_19;
  type_8 var_15;
  type_8 var_21;
  type_5 var_26;
  type_3 *var_14;
  type_2 var_18;
  type_6 *var_11;
  type_6 *puVar19;
  int var_27;
  
  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_7<var_2::type_1*>var_4>._M_impl.
            _M_finish;
  var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<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_15 = 0;
  do {
    pVVar2 = *var_5;
    var_5 = var_5 + 1;
    var_26 = (int)var_15 + 0x1c +
             (int)((long)(pVVar2->deps_).
                         super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                         ._M_impl._M_finish -
                   (long)(pVVar2->deps_).
                         super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                         ._M_impl._M_start >> 5) * 8;
    var_15 = (type_8)var_26;
  } while (var_6 != var_5);
  puVar7 = (type_6 *)var_9(var_15);
  var_6 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>._M_impl.
            _M_start;
  var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>._M_impl
             ._M_finish;
  if (var_6 != var_5) {
    var_15 = 0;
    var_19 = var_6;
    var_11 = puVar7;
    do {
      pVVar2 = *var_19;
      var_15 = (type_8)((int)var_15 + 1);
      var_11[0] = '\x01';
      var_11[1] = '\0';
      var_10 = (type_4)pVVar2->is_base_;
      if (pVVar2->is_weak_ != false) {
        var_10 = pVVar2->is_base_ | 2;
      }
      if (pVVar2->is_info_ != false) {
        var_10 = var_10 | 4;
      }
      *(type_4 *)(var_11 + 2) = var_10;
      var_12 = (pVVar2->super_Version_base).index_;
      if (var_12 == 0xffffffff) {
                    /* WARNING: Subroutine does not return */
        var_1("../../gold/dynobj.h",0x179,"index");
      }
      var_18 = (pVVar2->deps_).
                super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                ._M_impl._M_finish;
      var_25 = (pVVar2->deps_).
               super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
               ._M_impl._M_start;
      *(short *)(var_11 + 4) = (short)var_12;
      lVar11 = (long)var_18 - (long)var_25 >> 5;
      s = (type_3 *)pVVar2->name_;
      *(short *)(var_11 + 6) = (short)lVar11 + 1;
      var_12 = 0;
      var_14 = s;
      while (var_13 = *var_14, var_13 != 0) {
        while( true ) {
          var_14 = var_14 + 1;
          var_12 = var_12 * 0x10 + (type_5)var_13;
          if ((var_12 & 0xf0000000) == 0) break;
          var_12 = var_12 & 0xfffffff ^ (var_12 & 0xf0000000) >> 0x18;
          var_13 = *var_14;
          if (var_13 == 0) goto LAB_00241c93;
        }
      }
LAB_00241c93:
      *(type_5 *)(var_11 + 8) = var_12;
      iVar6 = (int)lVar11 * 8 + 0x1c;
      if ((type_8)((long)var_5 - (long)var_6 >> 3) <= var_15) {
        iVar6 = 0;
      }
      var_11[0xc] = '\x14';
      var_11[0xd] = '\0';
      var_11[0xe] = '\0';
      var_11[0xf] = '\0';
      *(int *)(var_11 + 0x10) = iVar6;
      sVar9 = var_16<var_8>::var_17(dynpool,(char *)s);
      var_18 = (pVVar2->deps_).
                super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                ._M_impl._M_start;
      *(int *)(var_11 + 0x14) = (int)sVar9;
      puVar19 = var_11 + 0x1c;
      if ((pVVar2->deps_).
          super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
          ._M_impl._M_finish == var_18) {
        var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>.
                   _M_impl._M_finish;
        var_11[0x18] = '\0';
        var_11[0x19] = '\0';
        var_11[0x1a] = '\0';
        var_11[0x1b] = '\0';
        if (var_5 == var_19 + 1) goto LAB_00241d80;
      }
      else {
        var_11[0x18] = '\b';
        var_11[0x19] = '\0';
        var_11[0x1a] = '\0';
        var_11[0x1b] = '\0';
        var_21 = 0;
        var_11 = puVar19;
        do {
          sVar9 = var_16<var_8>::var_20
                            (dynpool,(var_18->_M_dataplus)._M_p,var_18->_M_string_length);
          var_25 = (pVVar2->deps_).
                   super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                   ._M_impl._M_finish;
          var_21 = (type_8)((int)var_21 + 1);
          *(int *)var_11 = (int)sVar9;
          var_18 = var_18 + 1;
          puVar19 = var_11 + 8;
          *(type_5 *)(var_11 + 4) =
               (type_5)(var_21 < (type_8)((long)var_25 -
                                       (long)(pVVar2->deps_).
                                             super__Vector_base<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>,var_3::var_7<var_22::__cxx11::var_24<var_8,var_3::var_23<var_8>,var_3::var_7<var_8>var_4>var_4>var_4>
                                             ._M_impl._M_start >> 5)) << 3;
          var_11 = puVar19;
        } while (var_25 != var_18);
        var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>.
                   _M_impl._M_finish;
        if (var_5 == var_19 + 1) goto LAB_00241d80;
      }
      var_19 = var_19 + 1;
      var_6 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>.
                _M_impl._M_start;
      var_11 = puVar19;
    } while( true );
  }
  var_12 = 0;
LAB_00241d87:
  if (var_26 == var_12) {
    var_5 = (this->defs_).super__Vector_base<var_2::type_1*,var_3::var_7<var_2::type_1*>var_4>.
               _M_impl._M_start;
    *pp = puVar7;
    *psize = var_26;
    *pentries = (type_5)((long)var_6 - (long)var_5 >> 3);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_1("../../gold/dynobj.cc",0x71c,"def_section_contents");
LAB_00241d80:
  var_6 = var_19 + 1;
  var_27 = (int)puVar7;
  var_12 = (int)puVar19 - var_27;
  goto LAB_00241d87;
}


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

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

{
  byte bVar1;
  long lVar2;
  long lVar3;
  undefined8 *puVar4;
  ushort uVar5;
  uint uVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  long *plVar10;
  long lVar11;
  long *plVar12;
  ulong uVar13;
  ulong uVar14;
  int iVar15;
  long *plVar16;
  byte *pbVar17;
  undefined8 *puVar18;
  undefined4 *puVar19;
  undefined4 *puVar20;
  int local_58;
  
  if ((char)param_1[0xd] == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dynobj.cc",0x701,"def_section_contents");
  }
  plVar10 = (long *)*param_1;
  if (plVar10 == (long *)param_1[1]) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dynobj.cc",0x702,"def_section_contents");
  }
  iVar15 = 0;
  do {
    lVar2 = *plVar10;
    plVar10 = plVar10 + 1;
    iVar15 = iVar15 + 0x1c + (int)(*(long *)(lVar2 + 0x20) - *(long *)(lVar2 + 0x18) >> 5) * 8;
  } while ((long *)param_1[1] != plVar10);
  puVar9 = (undefined4 *)thunk_FUN_00275550();
  plVar10 = (long *)*param_1;
  plVar16 = (long *)param_1[1];
  if (plVar10 == plVar16) {
    local_58 = 0;
LAB_00241d87:
    if (iVar15 != local_58) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/dynobj.cc",0x71c,"def_section_contents");
    }
    lVar2 = *param_1;
    *param_3 = puVar9;
    *param_4 = iVar15;
    *param_5 = (int)((long)plVar10 - lVar2 >> 3);
    return;
  }
  uVar13 = 0;
  plVar12 = plVar10;
  puVar19 = puVar9;
  do {
    lVar2 = *plVar12;
    uVar13 = (ulong)((int)uVar13 + 1);
    *(undefined2 *)puVar19 = 1;
    uVar5 = (ushort)*(byte *)(lVar2 + 0x30);
    if (*(char *)(lVar2 + 0x31) != '\0') {
      uVar5 = *(byte *)(lVar2 + 0x30) | 2;
    }
    if (*(char *)(lVar2 + 0x32) != '\0') {
      uVar5 = uVar5 | 4;
    }
    *(ushort *)((long)puVar19 + 2) = uVar5;
    if (*(int *)(lVar2 + 8) == -1) {
                    /* WARNING: Subroutine does not return */
      FUN_0016cdf0("../../gold/dynobj.h",0x179,"index");
    }
    lVar11 = *(long *)(lVar2 + 0x20);
    lVar3 = *(long *)(lVar2 + 0x18);
    *(short *)(puVar19 + 1) = (short)*(int *)(lVar2 + 8);
    lVar11 = lVar11 - lVar3 >> 5;
    pbVar17 = *(byte **)(lVar2 + 0x10);
    *(short *)((long)puVar19 + 6) = (short)lVar11 + 1;
    uVar6 = 0;
LAB_00241c60:
    bVar1 = *pbVar17;
    while (bVar1 != 0) {
      pbVar17 = pbVar17 + 1;
      uVar6 = uVar6 * 0x10 + (uint)bVar1;
      if ((uVar6 & 0xf0000000) == 0) goto LAB_00241c60;
      uVar6 = uVar6 & 0xfffffff ^ (uVar6 & 0xf0000000) >> 0x18;
      bVar1 = *pbVar17;
    }
    puVar19[2] = uVar6;
    iVar7 = (int)lVar11 * 8 + 0x1c;
    if ((ulong)((long)plVar16 - (long)plVar10 >> 3) <= uVar13) {
      iVar7 = 0;
    }
    puVar19[3] = 0x14;
    puVar19[4] = iVar7;
    uVar8 = FUN_0021b7b0(param_2);
    puVar18 = *(undefined8 **)(lVar2 + 0x18);
    puVar19[5] = uVar8;
    puVar20 = puVar19 + 7;
    if (*(undefined8 **)(lVar2 + 0x20) == puVar18) {
      plVar16 = (long *)param_1[1];
      puVar19[6] = 0;
      if (plVar16 != plVar12 + 1) goto LAB_00241d53;
      goto LAB_00241d80;
    }
    puVar19[6] = 8;
    uVar14 = 0;
    puVar19 = puVar20;
    do {
      uVar8 = FUN_0021b710(param_2,*puVar18,puVar18[1]);
      puVar4 = *(undefined8 **)(lVar2 + 0x20);
      uVar14 = (ulong)((int)uVar14 + 1);
      *puVar19 = uVar8;
      puVar18 = puVar18 + 4;
      puVar20 = puVar19 + 2;
      puVar19[1] = (uint)(uVar14 < (ulong)((long)puVar4 - *(long *)(lVar2 + 0x18) >> 5)) << 3;
      puVar19 = puVar20;
    } while (puVar4 != puVar18);
    plVar16 = (long *)param_1[1];
    if (plVar16 == plVar12 + 1) {
LAB_00241d80:
      plVar10 = plVar12 + 1;
      local_58 = (int)puVar9;
      local_58 = (int)puVar20 - local_58;
      goto LAB_00241d87;
    }
LAB_00241d53:
    plVar12 = plVar12 + 1;
    plVar10 = (long *)*param_1;
    puVar19 = puVar20;
  } while( true );
}

