
/* DWARF original prototype: void record_weak_aliases<64>(Symbol_table * this,
   vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> * symbols) */

void __thiscall
gold::Symbol_table::record_weak_aliases<64>
          (Symbol_table *this,
          vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> *symbols)

{
  undefined1 *puVar1;
  Sized_symbol<64> *pSVar2;
  Sized_symbol<64> *pSVar3;
  long lVar4;
  ulong uVar5;
  mapped_type *ppSVar6;
  pointer ppSVar7;
  pointer ppSVar8;
  Sized_symbol<64> *pSVar9;
  pointer ppSVar10;
  pointer ppSVar11;
  Sized_symbol<64> *apSStack_40 [2];
  
  ppSVar7 = (symbols->
            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).
            _M_impl._M_finish;
  ppSVar8 = (symbols->
            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).
            _M_impl._M_start;
  if (ppSVar7 != ppSVar8) {
    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;
    lVar4 = 0x3f;
    if (uVar5 != 0) {
      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {
      }
    }
    std::
    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>
              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);
    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {
      std::
      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>
                (ppSVar8,ppSVar7);
    }
    else {
      ppSVar10 = ppSVar8 + 0x10;
      std::
      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>
                (ppSVar8,ppSVar10);
      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {
        std::
        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>
                  (ppSVar10);
      }
    }
    ppSVar7 = (symbols->
              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)
              ._M_impl._M_start;
    ppSVar8 = (symbols->
              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)
              ._M_impl._M_finish;
    if (ppSVar7 != ppSVar8) {
      do {
        while( true ) {
          pSVar9 = *ppSVar7;
          ppSVar10 = ppSVar7 + 1;
          ppSVar11 = ppSVar10;
          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&
             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;
LAB_002878e0:
          ppSVar7 = ppSVar11;
          if (ppSVar8 == ppSVar7) {
            return;
          }
        }
        pSVar2 = ppSVar7[1];
        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||
           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {
LAB_00287a26:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
        }
        ppSVar11 = ppSVar10;
        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||
           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;
        while( true ) {
          ppSVar11 = ppSVar10 + 1;
          apSStack_40[0] = pSVar9;
          ppSVar6 = std::__detail::
                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                  *)&this->weak_aliases_,(key_type *)apSStack_40);
          pSVar2 = *ppSVar10;
          *ppSVar6 = &pSVar2->super_Symbol;
          puVar1 = &(pSVar9->super_Symbol).field_0x3a;
          *puVar1 = *puVar1 | 0x20;
          ppSVar10 = (symbols->
                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                     )._M_impl._M_finish;
          ppSVar8 = ppSVar11;
          if (ppSVar10 == ppSVar11) break;
          pSVar3 = *ppSVar11;
          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||
             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;
          ppSVar8 = ppSVar10;
          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||
             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;
        }
        if (pSVar2 == *ppSVar7) goto LAB_002878e0;
        apSStack_40[0] = pSVar2;
        ppSVar6 = std::__detail::
                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>
                                *)&this->weak_aliases_,(key_type *)apSStack_40);
        *ppSVar6 = &(*ppSVar7)->super_Symbol;
        puVar1 = &(pSVar2->super_Symbol).field_0x3a;
        *puVar1 = *puVar1 | 0x20;
        ppSVar8 = (symbols->
                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>
                  )._M_impl._M_finish;
        ppSVar7 = ppSVar11;
      } while (ppSVar8 != ppSVar11);
    }
  }
  return;
}



void FUN_00287850(long param_1,long *param_2)

{
  long lVar1;
  ulong uVar2;
  long *plVar3;
  long lVar4;
  long *plVar5;
  long lVar6;
  long *plVar7;
  long *plVar8;
  long alStack_40 [2];
  
  lVar6 = param_2[1];
  lVar1 = *param_2;
  if (lVar6 != lVar1) {
    uVar2 = lVar6 - lVar1 >> 3;
    lVar4 = 0x3f;
    if (uVar2 != 0) {
      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {
      }
    }
    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);
    if (lVar6 - lVar1 < 0x81) {
      FUN_00285ed0(lVar1,lVar6);
    }
    else {
      lVar4 = lVar1 + 0x80;
      FUN_00285ed0(lVar1,lVar4);
      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {
        FUN_00285e90(lVar4);
      }
    }
    plVar3 = (long *)param_2[1];
    if ((long *)*param_2 != plVar3) {
      plVar5 = (long *)*param_2;
      do {
        while( true ) {
          lVar6 = *plVar5;
          plVar7 = plVar5 + 1;
          plVar8 = plVar7;
          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;
LAB_002878e0:
          plVar5 = plVar8;
          if (plVar3 == plVar5) {
            return;
          }
        }
        lVar1 = plVar5[1];
        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {
LAB_00287a26:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");
        }
        plVar8 = plVar7;
        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||
           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;
        while( true ) {
          plVar8 = plVar7 + 1;
          alStack_40[0] = lVar6;
          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);
          lVar1 = *plVar7;
          *plVar3 = lVar1;
          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;
          plVar7 = (long *)param_2[1];
          plVar3 = plVar8;
          if (plVar7 == plVar8) break;
          lVar4 = *plVar8;
          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))
          goto LAB_00287a26;
          plVar3 = plVar7;
          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||
             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))
          break;
        }
        if (lVar1 == *plVar5) goto LAB_002878e0;
        alStack_40[0] = lVar1;
        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);
        *plVar3 = *plVar5;
        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;
        plVar3 = (long *)param_2[1];
        plVar5 = plVar8;
      } while (plVar3 != plVar8);
    }
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV RBP,qword ptr [RSI + 0x8]
MOV R12,qword ptr [RSI]
CMP RBP,R12
JZ 0x002879d7
MOV RBX,RBP
MOV EDX,0x3f
MOV R13,RSI
MOV qword ptr [RSP + 0x8],RDI
SUB RBX,R12
MOV RSI,RBP
MOV RDI,R12
MOV RAX,RBX
SAR RAX,0x3
BSR RAX,RAX
XOR RAX,0x3f
CDQE
SUB RDX,RAX
ADD RDX,RDX
CALL 0x00287600
CMP RBX,0x80
JG 0x002879e6
MOV RSI,RBP
MOV RDI,R12
CALL 0x00285ed0
MOV RBP,qword ptr [R13]
MOV RSI,qword ptr [R13 + 0x8]
CMP RBP,RSI
JZ 0x002879d7
LEA RAX,[RSP + 0x18]
MOV qword ptr [RSP],RAX
JMP 0x002878ec
MOV RBP,R15
CMP RSI,R15
JZ 0x002879d7
MOV R14,qword ptr [RBP]
LEA R15,[RBP + 0x8]
MOVZX EAX,byte ptr [R14 + 0x38]
SHR AL,0x4
CMP AL,0x2
JNZ 0x002878e0
CMP R15,RSI
JZ 0x00287a1e
MOV RAX,qword ptr [RBP + 0x8]
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00287a26
MOV EDI,dword ptr [RAX + 0x18]
TEST byte ptr [R14 + 0x3a],0x7
JNZ 0x00287a26
CMP EDI,dword ptr [R14 + 0x18]
JNZ 0x002878e0
MOV RDX,qword ptr [R14 + 0x40]
CMP qword ptr [RAX + 0x40],RDX
JNZ 0x002878e0
MOV RAX,qword ptr [RSP + 0x8]
LEA R12,[RAX + 0x130]
JMP 0x00287974
MOV RAX,qword ptr [R15]
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x00287a26
MOV ECX,dword ptr [RAX + 0x18]
TEST byte ptr [RBX + 0x3a],0x7
JNZ 0x00287a26
CMP ECX,dword ptr [RBX + 0x18]
JNZ 0x002879a1
MOV R14,RBX
MOV RAX,qword ptr [RAX + 0x40]
CMP qword ptr [RBX + 0x40],RAX
JNZ 0x002879a1
MOV RSI,qword ptr [RSP]
MOV RDI,R12
MOV qword ptr [RSP + 0x18],R14
ADD R15,0x8
CALL 0x0027bd20
MOV RBX,qword ptr [R15 + -0x8]
MOV qword ptr [RAX],RBX
OR byte ptr [R14 + 0x3a],0x20
MOV RSI,qword ptr [R13 + 0x8]
CMP RSI,R15
JNZ 0x00287948
MOV RSI,R15
CMP RBX,qword ptr [RBP]
JZ 0x002878e0
MOV RSI,qword ptr [RSP]
MOV RDI,R12
MOV qword ptr [RSP + 0x18],RBX
CALL 0x0027bd20
MOV RCX,qword ptr [RBP]
MOV RBP,R15
MOV qword ptr [RAX],RCX
OR byte ptr [RBX + 0x3a],0x20
MOV RSI,qword ptr [R13 + 0x8]
CMP RSI,R15
JNZ 0x002878ec
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RBX,[R12 + 0x80]
MOV RDI,R12
MOV RSI,RBX
CALL 0x00285ed0
CMP RBP,RBX
JZ 0x002878bb
NOP word ptr [RAX + RAX*0x1]
MOV RDI,RBX
ADD RBX,0x8
CALL 0x00285e90
CMP RBP,RBX
JNZ 0x00287a08
JMP 0x002878bb
MOV R15,RSI
JMP 0x002878e0
LEA RDX,[0x3874e7]
MOV ESI,0xaa
LEA RDI,[0x3726ed]
CALL 0x0017c650
(translation_unit "void FUN_00287850(long param_1,long *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00287850(long param_1,long *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00287850(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "long alStack_40 [2];" (sized_type_specifier "long" long) (array_declarator "alStack_40 [2]" identifier [ number_literal ]) ;) (expression_statement "lVar6 = param_2[1];" (assignment_expression "lVar6 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "lVar1 = *param_2;" (assignment_expression "lVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" if (parenthesized_expression "(lVar6 != lVar1)" ( (binary_expression "lVar6 != lVar1" identifier != identifier) )) (compound_statement "{\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" { (expression_statement "uVar2 = lVar6 - lVar1 >> 3;" (assignment_expression "uVar2 = lVar6 - lVar1 >> 3" identifier = (binary_expression "lVar6 - lVar1 >> 3" (binary_expression "lVar6 - lVar1" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" { (for_statement "for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" for ( ; (binary_expression "uVar2 >> lVar4 == 0" (binary_expression "uVar2 >> lVar4" identifier >> identifier) == number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (expression_statement "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);" (call_expression "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" identifier (argument_list "(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" ( identifier , identifier , (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar4 ^ 0x3f)" ( (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal) ))) ;) (if_statement "if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" if (parenthesized_expression "(lVar6 - lVar1 < 0x81)" ( (binary_expression "lVar6 - lVar1 < 0x81" (binary_expression "lVar6 - lVar1" identifier - identifier) < number_literal) )) (compound_statement "{\n      FUN_00285ed0(lVar1,lVar6);\n    }" { (expression_statement "FUN_00285ed0(lVar1,lVar6);" (call_expression "FUN_00285ed0(lVar1,lVar6)" identifier (argument_list "(lVar1,lVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" else (compound_statement "{\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" { (expression_statement "lVar4 = lVar1 + 0x80;" (assignment_expression "lVar4 = lVar1 + 0x80" identifier = (binary_expression "lVar1 + 0x80" identifier + number_literal)) ;) (expression_statement "FUN_00285ed0(lVar1,lVar4);" (call_expression "FUN_00285ed0(lVar1,lVar4)" identifier (argument_list "(lVar1,lVar4)" ( identifier , identifier ))) ;) (for_statement "for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }" for ( ; (binary_expression "lVar6 != lVar4" identifier != identifier) ; (assignment_expression "lVar4 = lVar4 + 8" identifier = (binary_expression "lVar4 + 8" identifier + number_literal)) ) (compound_statement "{\n        FUN_00285e90(lVar4);\n      }" { (expression_statement "FUN_00285e90(lVar4);" (call_expression "FUN_00285e90(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) })) }))) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (if_statement "if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" if (parenthesized_expression "((long *)*param_2 != plVar3)" ( (binary_expression "(long *)*param_2 != plVar3" (cast_expression "(long *)*param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) != identifier) )) (compound_statement "{\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" { (expression_statement "plVar5 = (long *)*param_2;" (assignment_expression "plVar5 = (long *)*param_2" identifier = (cast_expression "(long *)*param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (do_statement "do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);" do (compound_statement "{\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      }" { (while_statement "while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" { (expression_statement "lVar6 = *plVar5;" (assignment_expression "lVar6 = *plVar5" identifier = (pointer_expression "*plVar5" * identifier)) ;) (expression_statement "plVar7 = plVar5 + 1;" (assignment_expression "plVar7 = plVar5 + 1" identifier = (binary_expression "plVar5 + 1" identifier + number_literal)) ;) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (if_statement "if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;" if (parenthesized_expression "((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3))" ( (binary_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)" (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) == number_literal) )) && (parenthesized_expression "(plVar8 = plVar3, plVar7 != plVar3)" ( (comma_expression "plVar8 = plVar3, plVar7 != plVar3" (assignment_expression "plVar8 = plVar3" identifier = identifier) , (binary_expression "plVar7 != plVar3" identifier != identifier)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002878e0:\n          plVar5 = plVar8;" statement_identifier : (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" identifier = identifier) ;)) (if_statement "if (plVar3 == plVar5) {\n            return;\n          }" if (parenthesized_expression "(plVar3 == plVar5)" ( (binary_expression "plVar3 == plVar5" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) })) (expression_statement "lVar1 = plVar5[1];" (assignment_expression "lVar1 = plVar5[1]" identifier = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (if_statement "if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" if (parenthesized_expression "(((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" { (labeled_statement "LAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;)) })) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (if_statement "if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;" if (parenthesized_expression "((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)))" ( (binary_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" (parenthesized_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18))" ( (binary_expression "*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)" (pointer_expression "*(int *)(lVar1 + 0x18)" * (cast_expression "(int *)(lVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) )) || (parenthesized_expression "(*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" ( (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" * (cast_expression "(long *)(lVar1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x40)" ( (binary_expression "lVar1 + 0x40" identifier + number_literal) )))) != (pointer_expression "*(long *)(lVar6 + 0x40)" * (cast_expression "(long *)(lVar6 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x40)" ( (binary_expression "lVar6 + 0x40" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (while_statement "while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" { (expression_statement "plVar8 = plVar7 + 1;" (assignment_expression "plVar8 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ;) (expression_statement "alStack_40[0] = lVar6;" (assignment_expression "alStack_40[0] = lVar6" (subscript_expression "alStack_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier = (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier (argument_list "(param_1 + 0x130,alStack_40)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) , identifier ))))) ;) (expression_statement "lVar1 = *plVar7;" (assignment_expression "lVar1 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) (expression_statement "*plVar3 = lVar1;" (assignment_expression "*plVar3 = lVar1" (pointer_expression "*plVar3" * identifier) = identifier) ;) (expression_statement "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar7 = (long *)param_2[1];" (assignment_expression "plVar7 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar3 = plVar8;" (assignment_expression "plVar3 = plVar8" identifier = identifier) ;) (if_statement "if (plVar7 == plVar8) break;" if (parenthesized_expression "(plVar7 == plVar8)" ( (binary_expression "plVar7 == plVar8" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = *plVar8;" (assignment_expression "lVar4 = *plVar8" identifier = (pointer_expression "*plVar8" * identifier)) ;) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;" if (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00287a26;" goto statement_identifier ;)) (expression_statement "plVar3 = plVar7;" (assignment_expression "plVar3 = plVar7" identifier = identifier) ;) (if_statement "if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;" if (parenthesized_expression "((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))" ( (binary_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" (parenthesized_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18))" ( (binary_expression "*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)" (pointer_expression "*(int *)(lVar4 + 0x18)" * (cast_expression "(int *)(lVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(lVar1 + 0x18)" * (cast_expression "(int *)(lVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) ))))) )) || (parenthesized_expression "(lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" ( (comma_expression "lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "lVar6 = lVar1" identifier = identifier) , (comma_expression "plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "plVar7 = plVar8" identifier = identifier) , (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" * (cast_expression "(long *)(lVar1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x40)" ( (binary_expression "lVar1 + 0x40" identifier + number_literal) )))) != (pointer_expression "*(long *)(lVar4 + 0x40)" * (cast_expression "(long *)(lVar4 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))))) ))) )) (break_statement "break;" break ;)) })) (if_statement "if (lVar1 == *plVar5) goto LAB_002878e0;" if (parenthesized_expression "(lVar1 == *plVar5)" ( (binary_expression "lVar1 == *plVar5" identifier == (pointer_expression "*plVar5" * identifier)) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (expression_statement "alStack_40[0] = lVar1;" (assignment_expression "alStack_40[0] = lVar1" (subscript_expression "alStack_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier = (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier (argument_list "(param_1 + 0x130,alStack_40)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) , identifier ))))) ;) (expression_statement "*plVar3 = *plVar5;" (assignment_expression "*plVar3 = *plVar5" (pointer_expression "*plVar3" * identifier) = (pointer_expression "*plVar5" * identifier)) ;) (expression_statement "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" identifier = identifier) ;) }) while (parenthesized_expression "(plVar3 != plVar8)" ( (binary_expression "plVar3 != plVar8" identifier != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void record_weak_aliases<64>(Symbol_table * this,\n   vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> * symbols) */\n\nvoid __thiscall\ngold::Symbol_table::record_weak_aliases<64>\n          (Symbol_table *this,\n          vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> *symbols)\n\n{\n  undefined1 *puVar1;\n  Sized_symbol<64> *pSVar2;\n  Sized_symbol<64> *pSVar3;\n  long lVar4;\n  ulong uVar5;\n  mapped_type *ppSVar6;\n  pointer ppSVar7;\n  pointer ppSVar8;\n  Sized_symbol<64> *pSVar9;\n  pointer ppSVar10;\n  pointer ppSVar11;\n  Sized_symbol<64> *apSStack_40 [2];\n  \n  ppSVar7 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish;\n  ppSVar8 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start;\n  if (ppSVar7 != ppSVar8) {\n    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }\n    ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;\n    ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;\n    if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Symbol_table::record_weak_aliases<64>\n          (Symbol_table *this,\n          vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> *symbols)\n\n{\n  undefined1 *puVar1;\n  Sized_symbol<64> *pSVar2;\n  Sized_symbol<64> *pSVar3;\n  long lVar4;\n  ulong uVar5;\n  mapped_type *ppSVar6;\n  pointer ppSVar7;\n  pointer ppSVar8;\n  Sized_symbol<64> *pSVar9;\n  pointer ppSVar10;\n  pointer ppSVar11;\n  Sized_symbol<64> *apSStack_40 [2];\n  \n  ppSVar7 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish;\n  ppSVar8 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start;\n  if (ppSVar7 != ppSVar8) {\n    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }\n    ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;\n    ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;\n    if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "record_weak_aliases<64>\n          (Symbol_table *this,\n          vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> *symbols)" identifier (ERROR "<64>" < number_literal >) (parameter_list "(Symbol_table *this,\n          vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> *symbols)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "vector<gold::Sized_symbol<64>*" type_identifier (ERROR "<gold::Sized_symbol<64>" < identifier : : identifier < number_literal >) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Sized_symbol<64>*>_> *symbols" type_identifier (ERROR "::allocator<gold::Sized_symbol<64>" : : identifier < identifier : : identifier < number_literal >) (pointer_declarator "*>_> *symbols" * (ERROR ">_>" > identifier >) (pointer_declarator "*symbols" * identifier))) ))) (compound_statement "{\n  undefined1 *puVar1;\n  Sized_symbol<64> *pSVar2;\n  Sized_symbol<64> *pSVar3;\n  long lVar4;\n  ulong uVar5;\n  mapped_type *ppSVar6;\n  pointer ppSVar7;\n  pointer ppSVar8;\n  Sized_symbol<64> *pSVar9;\n  pointer ppSVar10;\n  pointer ppSVar11;\n  Sized_symbol<64> *apSStack_40 [2];\n  \n  ppSVar7 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish;\n  ppSVar8 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start;\n  if (ppSVar7 != ppSVar8) {\n    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }\n    ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;\n    ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;\n    if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }\n  }\n  return;\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "Sized_symbol<64> *pSVar2;" (binary_expression "Sized_symbol<64> *pSVar2" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar2" * identifier)) ;) (expression_statement "Sized_symbol<64> *pSVar3;" (binary_expression "Sized_symbol<64> *pSVar3" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar3" * identifier)) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "mapped_type *ppSVar6;" type_identifier (pointer_declarator "*ppSVar6" * identifier) ;) (declaration "pointer ppSVar7;" type_identifier identifier ;) (declaration "pointer ppSVar8;" type_identifier identifier ;) (expression_statement "Sized_symbol<64> *pSVar9;" (binary_expression "Sized_symbol<64> *pSVar9" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*pSVar9" * identifier)) ;) (declaration "pointer ppSVar10;" type_identifier identifier ;) (declaration "pointer ppSVar11;" type_identifier identifier ;) (expression_statement "Sized_symbol<64> *apSStack_40 [2];" (binary_expression "Sized_symbol<64> *apSStack_40 [2]" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*apSStack_40 [2]" * (subscript_expression "apSStack_40 [2]" identifier [ number_literal ]))) ;) (expression_statement "ppSVar7 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish;" (assignment_expression "ppSVar7 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish" identifier = (field_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_finish" (field_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl" (parenthesized_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)" ( (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n            super__Vector_base<gold" (field_expression "symbols->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar8 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start;" (assignment_expression "ppSVar8 = (symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start" identifier = (field_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl._M_start" (field_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>).\n            _M_impl" (parenthesized_expression "(symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)" ( (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n            super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n            super__Vector_base<gold" (field_expression "symbols->\n            super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar7 != ppSVar8) {\n    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }\n    ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;\n    ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;\n    if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }\n  }" if (parenthesized_expression "(ppSVar7 != ppSVar8)" ( (binary_expression "ppSVar7 != ppSVar8" identifier != identifier) )) (compound_statement "{\n    uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;\n    lVar4 = 0x3f;\n    if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }\n    ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;\n    ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;\n    if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }\n  }" { (expression_statement "uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3;" (assignment_expression "uVar5 = (long)ppSVar7 - (long)ppSVar8 >> 3" identifier = (binary_expression "(long)ppSVar7 - (long)ppSVar8 >> 3" (binary_expression "(long)ppSVar7 - (long)ppSVar8" (cast_expression "(long)ppSVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppSVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar5 != 0) {\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" { (for_statement "for (; uVar5 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" for ( ; (binary_expression "uVar5 >> lVar4 == 0" (binary_expression "uVar5 >> lVar4" identifier >> identifier) == number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (ERROR "std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "std::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,_long_int,___gnu_cxx" identifier (ERROR "::\n    __introsort_loop<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>" : : (binary_expression "__introsort_loop<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>**,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "**,_std" * (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_>_" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) >) , (comma_expression "_long_int,___gnu_cxx" identifier , identifier)) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);" (binary_expression "Weak_alias_sorter<64>_>_>\n              (ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" (binary_expression "Weak_alias_sorter<64>_>_" (binary_expression "Weak_alias_sorter<64>_" (binary_expression "Weak_alias_sorter<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" ( (comma_expression "ppSVar8,ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" identifier , (comma_expression "ppSVar7,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" identifier , (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar4 ^ 0x3f)" ( (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal))) ))) ;) (if_statement "if ((long)ppSVar7 - (long)ppSVar8 < 0x81) {\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }\n    else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }" if (parenthesized_expression "((long)ppSVar7 - (long)ppSVar8 < 0x81)" ( (binary_expression "(long)ppSVar7 - (long)ppSVar8 < 0x81" (binary_expression "(long)ppSVar7 - (long)ppSVar8" (cast_expression "(long)ppSVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppSVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) < number_literal) )) (compound_statement "{\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);\n    }" { (ERROR "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx" identifier (ERROR "::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>**,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "**,_std" * (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_>_" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) >) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7);" (binary_expression "Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar7)" (binary_expression "Weak_alias_sorter<64>_>_" (binary_expression "Weak_alias_sorter<64>_" (binary_expression "Weak_alias_sorter<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(ppSVar8,ppSVar7)" ( (comma_expression "ppSVar8,ppSVar7" identifier , identifier) ))) ;) }) (else_clause "else {\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }" else (compound_statement "{\n      ppSVar10 = ppSVar8 + 0x10;\n      std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);\n      for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }\n    }" { (expression_statement "ppSVar10 = ppSVar8 + 0x10;" (assignment_expression "ppSVar10 = ppSVar8 + 0x10" identifier = (binary_expression "ppSVar8 + 0x10" identifier + number_literal)) ;) (ERROR "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "std::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx" identifier (ERROR "::\n      __insertion_sort<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>" : : (binary_expression "__insertion_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>**,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "**,_std" * (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_>_" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) >) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10);" (binary_expression "Weak_alias_sorter<64>_>_>\n                (ppSVar8,ppSVar10)" (binary_expression "Weak_alias_sorter<64>_>_" (binary_expression "Weak_alias_sorter<64>_" (binary_expression "Weak_alias_sorter<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(ppSVar8,ppSVar10)" ( (comma_expression "ppSVar8,ppSVar10" identifier , identifier) ))) ;) (for_statement "for (; ppSVar7 != ppSVar10; ppSVar10 = ppSVar10 + 1) {\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }" for ( ; (binary_expression "ppSVar7 != ppSVar10" identifier != identifier) ; (assignment_expression "ppSVar10 = ppSVar10 + 1" identifier = (binary_expression "ppSVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n        std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::Weak_alias_sorter<64>_>_>\n                  (ppSVar10);\n      }" { (ERROR "std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx::__ops::_Val_comp_iter<gold::" (comma_expression "std::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>,___gnu_cxx" identifier (ERROR "::\n        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<gold::Sized_symbol<64>**,_std::vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>_>" : : (binary_expression "__unguarded_linear_insert<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>**,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "**,_std" * (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "vector<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*,_std" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Sized_symbol<64>*>_>_" (binary_expression "Sized_symbol<64>*>_" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) >) , identifier) : : identifier : : (binary_expression "_Val_comp_iter<gold" identifier < identifier) : :) (expression_statement "Weak_alias_sorter<64>_>_>\n                  (ppSVar10);" (binary_expression "Weak_alias_sorter<64>_>_>\n                  (ppSVar10)" (binary_expression "Weak_alias_sorter<64>_>_" (binary_expression "Weak_alias_sorter<64>_" (binary_expression "Weak_alias_sorter<64" identifier < number_literal) > identifier) > identifier) > (parenthesized_expression "(ppSVar10)" ( identifier ))) ;) })) }))) (expression_statement "ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start;" (assignment_expression "ppSVar7 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start" identifier = (field_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_start" (field_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl" (parenthesized_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)" ( (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n              super__Vector_base<gold" (field_expression "symbols->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish;" (assignment_expression "ppSVar8 = (symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish" identifier = (field_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl._M_finish" (field_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)\n              ._M_impl" (parenthesized_expression "(symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>)" ( (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n              super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n              super__Vector_base<gold" (field_expression "symbols->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppSVar7 != ppSVar8) {\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }" if (parenthesized_expression "(ppSVar7 != ppSVar8)" ( (binary_expression "ppSVar7 != ppSVar8" identifier != identifier) )) (compound_statement "{\n      do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);\n    }" { (do_statement "do {\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      } while (ppSVar8 != ppSVar11);" do (compound_statement "{\n        while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }\n        pSVar2 = ppSVar7[1];\n        if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }\n        ppSVar11 = ppSVar10;\n        if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;\n        while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }\n        if (pSVar2 == *ppSVar7) goto LAB_002878e0;\n        apSStack_40[0] = pSVar2;\n        ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)&this->weak_aliases_,(key_type *)apSStack_40);\n        *ppSVar6 = &(*ppSVar7)->super_Symbol;\n        puVar1 = &(pSVar2->super_Symbol).field_0x3a;\n        *puVar1 = *puVar1 | 0x20;\n        ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;\n        ppSVar7 = ppSVar11;\n      }" { (while_statement "while( true ) {\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pSVar9 = *ppSVar7;\n          ppSVar10 = ppSVar7 + 1;\n          ppSVar11 = ppSVar10;\n          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;\nLAB_002878e0:\n          ppSVar7 = ppSVar11;\n          if (ppSVar8 == ppSVar7) {\n            return;\n          }\n        }" { (expression_statement "pSVar9 = *ppSVar7;" (assignment_expression "pSVar9 = *ppSVar7" identifier = (pointer_expression "*ppSVar7" * identifier)) ;) (expression_statement "ppSVar10 = ppSVar7 + 1;" (assignment_expression "ppSVar10 = ppSVar7 + 1" identifier = (binary_expression "ppSVar7 + 1" identifier + number_literal)) ;) (expression_statement "ppSVar11 = ppSVar10;" (assignment_expression "ppSVar11 = ppSVar10" identifier = identifier) ;) (if_statement "if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)) break;" if (parenthesized_expression "(((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8))" ( (binary_expression "((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&\n             (ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)" (parenthesized_expression "((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2)" ( (binary_expression "(byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2" (binary_expression "(byte)(pSVar9->super_Symbol).field_0x38 >> 4" (field_expression "(byte)(pSVar9->super_Symbol).field_0x38" (call_expression "(byte)(pSVar9->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pSVar9->super_Symbol)" ( (field_expression "pSVar9->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) == number_literal) )) && (parenthesized_expression "(ppSVar11 = ppSVar8, ppSVar10 != ppSVar8)" ( (comma_expression "ppSVar11 = ppSVar8, ppSVar10 != ppSVar8" (assignment_expression "ppSVar11 = ppSVar8" identifier = identifier) , (binary_expression "ppSVar10 != ppSVar8" identifier != identifier)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002878e0:\n          ppSVar7 = ppSVar11;" statement_identifier : (expression_statement "ppSVar7 = ppSVar11;" (assignment_expression "ppSVar7 = ppSVar11" identifier = identifier) ;)) (if_statement "if (ppSVar8 == ppSVar7) {\n            return;\n          }" if (parenthesized_expression "(ppSVar8 == ppSVar7)" ( (binary_expression "ppSVar8 == ppSVar7" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) })) (expression_statement "pSVar2 = ppSVar7[1];" (assignment_expression "pSVar2 = ppSVar7[1]" identifier = (subscript_expression "ppSVar7[1]" identifier [ number_literal ])) ;) (if_statement "if ((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }" if (parenthesized_expression "((((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0))" ( (binary_expression "(((pSVar2->super_Symbol).field_0x3a & 7) != 0) ||\n           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)" (parenthesized_expression "(((pSVar2->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar2->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar2->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar2->super_Symbol).field_0x3a & 7" (field_expression "(pSVar2->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar2->super_Symbol)" ( (field_expression "pSVar2->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((pSVar9->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar9->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar9->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar9->super_Symbol).field_0x3a & 7" (field_expression "(pSVar9->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar9->super_Symbol)" ( (field_expression "pSVar9->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n        }" { (labeled_statement "LAB_00287a26:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;)) })) (expression_statement "ppSVar11 = ppSVar10;" (assignment_expression "ppSVar11 = ppSVar10" identifier = identifier) ;) (if_statement "if (((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)) goto LAB_002878e0;" if (parenthesized_expression "(((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_))" ( (binary_expression "((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||\n           (pSVar2->value_ != pSVar9->value_)" (parenthesized_expression "((pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx)" ( (binary_expression "(pSVar2->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx" (field_expression "(pSVar2->super_Symbol).u2_.shndx" (field_expression "(pSVar2->super_Symbol).u2_" (parenthesized_expression "(pSVar2->super_Symbol)" ( (field_expression "pSVar2->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (field_expression "(pSVar9->super_Symbol).u2_.shndx" (field_expression "(pSVar9->super_Symbol).u2_" (parenthesized_expression "(pSVar9->super_Symbol)" ( (field_expression "pSVar9->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) )) || (parenthesized_expression "(pSVar2->value_ != pSVar9->value_)" ( (binary_expression "pSVar2->value_ != pSVar9->value_" (field_expression "pSVar2->value_" identifier -> field_identifier) != (field_expression "pSVar9->value_" identifier -> field_identifier)) ))) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (while_statement "while( true ) {\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          ppSVar11 = ppSVar10 + 1;\n          apSStack_40[0] = pSVar9;\n          ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)&this->weak_aliases_,(key_type *)apSStack_40);\n          pSVar2 = *ppSVar10;\n          *ppSVar6 = &pSVar2->super_Symbol;\n          puVar1 = &(pSVar9->super_Symbol).field_0x3a;\n          *puVar1 = *puVar1 | 0x20;\n          ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;\n          ppSVar8 = ppSVar11;\n          if (ppSVar10 == ppSVar11) break;\n          pSVar3 = *ppSVar11;\n          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;\n          ppSVar8 = ppSVar10;\n          if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;\n        }" { (expression_statement "ppSVar11 = ppSVar10 + 1;" (assignment_expression "ppSVar11 = ppSVar10 + 1" identifier = (binary_expression "ppSVar10 + 1" identifier + number_literal)) ;) (expression_statement "apSStack_40[0] = pSVar9;" (assignment_expression "apSStack_40[0] = pSVar9" (subscript_expression "apSStack_40[0]" identifier [ number_literal ]) = identifier) ;) (ERROR "ppSVar6 = std::__detail::\n                    _Map_base<gold::Symbol*,_std::pair<gold::" (assignment_expression "ppSVar6 = std" identifier = identifier) : : (comma_expression "__detail::\n                    _Map_base<gold::Symbol*,_std" identifier (ERROR "::\n                    _Map_base<gold::Symbol*" : : (binary_expression "_Map_base<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (declaration "Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                    ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_gold::" identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::allocator<std::pair<gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_gold::Symbol*>" identifier : : identifier * >) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::hash<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier (ERROR "<false" < false) , identifier , identifier (ERROR ">" >) , (ERROR "_true>\n                    ::" identifier > : :) (function_declarator "operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" (array_declarator "operator[]" identifier [ ]) (ERROR "(" () (parameter_list "(_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                  *)" ( (parameter_declaration "_Map_base<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::pair<gold::Symbol*_const" type_identifier (ERROR "::pair<gold::Symbol" : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol" type_identifier (ERROR "::" : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::allocator<std::pair<gold::Symbol*_const" type_identifier (ERROR "::allocator<std::pair<gold::Symbol" : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol*>_" type_identifier (ERROR "::Symbol*>" : : identifier * >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<gold::Symbol" type_identifier (ERROR "::equal_to<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::hash<gold::Symbol" type_identifier (ERROR "::hash<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true" type_identifier) (ERROR ">" >) , (parameter_declaration "_true>\n                                  *" type_identifier (ERROR ">" >) (abstract_pointer_declarator "*" *)) ))) ;) (expression_statement "&this->weak_aliases_,(key_type *)apSStack_40);" (comma_expression "&this->weak_aliases_,(key_type *)apSStack_40" (pointer_expression "&this->weak_aliases_" & (field_expression "this->weak_aliases_" identifier -> field_identifier)) , (cast_expression "(key_type *)apSStack_40" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ")" )) ;) (expression_statement "pSVar2 = *ppSVar10;" (assignment_expression "pSVar2 = *ppSVar10" identifier = (pointer_expression "*ppSVar10" * identifier)) ;) (expression_statement "*ppSVar6 = &pSVar2->super_Symbol;" (assignment_expression "*ppSVar6 = &pSVar2->super_Symbol" (pointer_expression "*ppSVar6" * identifier) = (pointer_expression "&pSVar2->super_Symbol" & (field_expression "pSVar2->super_Symbol" identifier -> field_identifier))) ;) (expression_statement "puVar1 = &(pSVar9->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(pSVar9->super_Symbol).field_0x3a" identifier = (pointer_expression "&(pSVar9->super_Symbol).field_0x3a" & (field_expression "(pSVar9->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar9->super_Symbol)" ( (field_expression "pSVar9->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x20;" (assignment_expression "*puVar1 = *puVar1 | 0x20" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x20" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish;" (assignment_expression "ppSVar10 = (symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish" identifier = (field_expression "(symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl._M_finish" (field_expression "(symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )._M_impl" (parenthesized_expression "(symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                     )" ( (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n                     super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n                     super__Vector_base<gold" (field_expression "symbols->\n                     super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar8 = ppSVar11;" (assignment_expression "ppSVar8 = ppSVar11" identifier = identifier) ;) (if_statement "if (ppSVar10 == ppSVar11) break;" if (parenthesized_expression "(ppSVar10 == ppSVar11)" ( (binary_expression "ppSVar10 == ppSVar11" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "pSVar3 = *ppSVar11;" (assignment_expression "pSVar3 = *ppSVar11" identifier = (pointer_expression "*ppSVar11" * identifier)) ;) (if_statement "if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;" if (parenthesized_expression "((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0))" ( (binary_expression "(((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||\n             (((pSVar2->super_Symbol).field_0x3a & 7) != 0)" (parenthesized_expression "(((pSVar3->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar3->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar3->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar3->super_Symbol).field_0x3a & 7" (field_expression "(pSVar3->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((pSVar2->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((pSVar2->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((pSVar2->super_Symbol).field_0x3a & 7)" ( (binary_expression "(pSVar2->super_Symbol).field_0x3a & 7" (field_expression "(pSVar2->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar2->super_Symbol)" ( (field_expression "pSVar2->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00287a26;" goto statement_identifier ;)) (expression_statement "ppSVar8 = ppSVar10;" (assignment_expression "ppSVar8 = ppSVar10" identifier = identifier) ;) (if_statement "if (((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)) break;" if (parenthesized_expression "(((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_))" ( (binary_expression "((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx) ||\n             (pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)" (parenthesized_expression "((pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx)" ( (binary_expression "(pSVar3->super_Symbol).u2_.shndx != (pSVar2->super_Symbol).u2_.shndx" (field_expression "(pSVar3->super_Symbol).u2_.shndx" (field_expression "(pSVar3->super_Symbol).u2_" (parenthesized_expression "(pSVar3->super_Symbol)" ( (field_expression "pSVar3->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (field_expression "(pSVar2->super_Symbol).u2_.shndx" (field_expression "(pSVar2->super_Symbol).u2_" (parenthesized_expression "(pSVar2->super_Symbol)" ( (field_expression "pSVar2->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) )) || (parenthesized_expression "(pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_)" ( (comma_expression "pSVar9 = pSVar2, ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_" (assignment_expression "pSVar9 = pSVar2" identifier = identifier) , (comma_expression "ppSVar10 = ppSVar11, pSVar2->value_ != pSVar3->value_" (assignment_expression "ppSVar10 = ppSVar11" identifier = identifier) , (binary_expression "pSVar2->value_ != pSVar3->value_" (field_expression "pSVar2->value_" identifier -> field_identifier) != (field_expression "pSVar3->value_" identifier -> field_identifier)))) ))) )) (break_statement "break;" break ;)) })) (if_statement "if (pSVar2 == *ppSVar7) goto LAB_002878e0;" if (parenthesized_expression "(pSVar2 == *ppSVar7)" ( (binary_expression "pSVar2 == *ppSVar7" identifier == (pointer_expression "*ppSVar7" * identifier)) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (expression_statement "apSStack_40[0] = pSVar2;" (assignment_expression "apSStack_40[0] = pSVar2" (subscript_expression "apSStack_40[0]" identifier [ number_literal ]) = identifier) ;) (ERROR "ppSVar6 = std::__detail::\n                  _Map_base<gold::Symbol*,_std::pair<gold::" (assignment_expression "ppSVar6 = std" identifier = identifier) : : (comma_expression "__detail::\n                  _Map_base<gold::Symbol*,_std" identifier (ERROR "::\n                  _Map_base<gold::Symbol*" : : (binary_expression "_Map_base<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : :) (declaration "Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                  ::operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)" type_identifier (pointer_declarator "*_const" * identifier) , (ERROR "_gold::" identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::allocator<std::pair<gold::Symbol" identifier : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier) , (ERROR "_gold::Symbol*>" identifier : : identifier * >) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::hash<gold::" identifier : : identifier < identifier : :) identifier (ERROR "*>" * >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier (ERROR "<false" < false) , identifier , identifier (ERROR ">" >) , (ERROR "_true>\n                  ::" identifier > : :) (function_declarator "operator[]((_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)" (array_declarator "operator[]" identifier [ ]) (ERROR "(" () (parameter_list "(_Map_base<gold::Symbol*,_std::pair<gold::Symbol*_const,_gold::Symbol*>,_std::allocator<std::pair<gold::Symbol*_const,_gold::Symbol*>_>,_std::__detail::_Select1st,_std::equal_to<gold::Symbol*>,_std::hash<gold::Symbol*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>,_true>\n                                *)" ( (parameter_declaration "_Map_base<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::pair<gold::Symbol*_const" type_identifier (ERROR "::pair<gold::Symbol" : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol" type_identifier (ERROR "::" : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::allocator<std::pair<gold::Symbol*_const" type_identifier (ERROR "::allocator<std::pair<gold::Symbol" : : identifier < identifier : : identifier < identifier : : identifier) (pointer_declarator "*_const" * identifier)) , (parameter_declaration "_gold::Symbol*>_" type_identifier (ERROR "::Symbol*>" : : identifier * >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<gold::Symbol" type_identifier (ERROR "::equal_to<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::hash<gold::Symbol" type_identifier (ERROR "::hash<gold::" : : identifier < identifier : :) identifier) (ERROR "*>" * >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true" type_identifier) (ERROR ">" >) , (parameter_declaration "_true>\n                                *" type_identifier (ERROR ">" >) (abstract_pointer_declarator "*" *)) ))) ;) (expression_statement "&this->weak_aliases_,(key_type *)apSStack_40);" (comma_expression "&this->weak_aliases_,(key_type *)apSStack_40" (pointer_expression "&this->weak_aliases_" & (field_expression "this->weak_aliases_" identifier -> field_identifier)) , (cast_expression "(key_type *)apSStack_40" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR ")" )) ;) (expression_statement "*ppSVar6 = &(*ppSVar7)->super_Symbol;" (assignment_expression "*ppSVar6 = &(*ppSVar7)->super_Symbol" (pointer_expression "*ppSVar6" * identifier) = (pointer_expression "&(*ppSVar7)->super_Symbol" & (field_expression "(*ppSVar7)->super_Symbol" (parenthesized_expression "(*ppSVar7)" ( (pointer_expression "*ppSVar7" * identifier) )) -> field_identifier))) ;) (expression_statement "puVar1 = &(pSVar2->super_Symbol).field_0x3a;" (assignment_expression "puVar1 = &(pSVar2->super_Symbol).field_0x3a" identifier = (pointer_expression "&(pSVar2->super_Symbol).field_0x3a" & (field_expression "(pSVar2->super_Symbol).field_0x3a" (parenthesized_expression "(pSVar2->super_Symbol)" ( (field_expression "pSVar2->super_Symbol" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x20;" (assignment_expression "*puVar1 = *puVar1 | 0x20" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x20" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish;" (assignment_expression "ppSVar8 = (symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish" identifier = (field_expression "(symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl._M_finish" (field_expression "(symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )._M_impl" (parenthesized_expression "(symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>\n                  )" ( (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_>" (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_" (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64" (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std::allocator<gold" (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64>*,_std" (binary_expression "symbols->\n                  super__Vector_base<gold::Sized_symbol<64" (binary_expression "symbols->\n                  super__Vector_base<gold" (field_expression "symbols->\n                  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_symbol" : : identifier) < number_literal) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar7 = ppSVar11;" (assignment_expression "ppSVar7 = ppSVar11" identifier = identifier) ;) }) while (parenthesized_expression "(ppSVar8 != ppSVar11)" ( (binary_expression "ppSVar8 != ppSVar11" identifier != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00287850(long param_1,long *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00287850(long param_1,long *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00287850(long param_1,long *param_2)" identifier (parameter_list "(long param_1,long *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (declaration "long alStack_40 [2];" (sized_type_specifier "long" long) (array_declarator "alStack_40 [2]" identifier [ number_literal ]) ;) (expression_statement "lVar6 = param_2[1];" (assignment_expression "lVar6 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "lVar1 = *param_2;" (assignment_expression "lVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" if (parenthesized_expression "(lVar6 != lVar1)" ( (binary_expression "lVar6 != lVar1" identifier != identifier) )) (compound_statement "{\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" { (expression_statement "uVar2 = lVar6 - lVar1 >> 3;" (assignment_expression "uVar2 = lVar6 - lVar1 >> 3" identifier = (binary_expression "lVar6 - lVar1 >> 3" (binary_expression "lVar6 - lVar1" identifier - identifier) >> number_literal)) ;) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" identifier = number_literal) ;) (if_statement "if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" { (for_statement "for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" for ( ; (binary_expression "uVar2 >> lVar4 == 0" (binary_expression "uVar2 >> lVar4" identifier >> identifier) == number_literal) ; (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) })) (expression_statement "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);" (call_expression "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" identifier (argument_list "(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" ( identifier , identifier , (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" ( (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" number_literal - (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((uint)lVar4 ^ 0x3f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)lVar4 ^ 0x3f)" ( (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier) ^ number_literal) ))))) )) * number_literal) ))) ;) (if_statement "if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" if (parenthesized_expression "(lVar6 - lVar1 < 0x81)" ( (binary_expression "lVar6 - lVar1 < 0x81" (binary_expression "lVar6 - lVar1" identifier - identifier) < number_literal) )) (compound_statement "{\n      FUN_00285ed0(lVar1,lVar6);\n    }" { (expression_statement "FUN_00285ed0(lVar1,lVar6);" (call_expression "FUN_00285ed0(lVar1,lVar6)" identifier (argument_list "(lVar1,lVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" else (compound_statement "{\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" { (expression_statement "lVar4 = lVar1 + 0x80;" (assignment_expression "lVar4 = lVar1 + 0x80" identifier = (binary_expression "lVar1 + 0x80" identifier + number_literal)) ;) (expression_statement "FUN_00285ed0(lVar1,lVar4);" (call_expression "FUN_00285ed0(lVar1,lVar4)" identifier (argument_list "(lVar1,lVar4)" ( identifier , identifier ))) ;) (for_statement "for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }" for ( ; (binary_expression "lVar6 != lVar4" identifier != identifier) ; (assignment_expression "lVar4 = lVar4 + 8" identifier = (binary_expression "lVar4 + 8" identifier + number_literal)) ) (compound_statement "{\n        FUN_00285e90(lVar4);\n      }" { (expression_statement "FUN_00285e90(lVar4);" (call_expression "FUN_00285e90(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) })) }))) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (if_statement "if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" if (parenthesized_expression "((long *)*param_2 != plVar3)" ( (binary_expression "(long *)*param_2 != plVar3" (cast_expression "(long *)*param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) != identifier) )) (compound_statement "{\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" { (expression_statement "plVar5 = (long *)*param_2;" (assignment_expression "plVar5 = (long *)*param_2" identifier = (cast_expression "(long *)*param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (do_statement "do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);" do (compound_statement "{\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      }" { (while_statement "while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" { (expression_statement "lVar6 = *plVar5;" (assignment_expression "lVar6 = *plVar5" identifier = (pointer_expression "*plVar5" * identifier)) ;) (expression_statement "plVar7 = plVar5 + 1;" (assignment_expression "plVar7 = plVar5 + 1" identifier = (binary_expression "plVar5 + 1" identifier + number_literal)) ;) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (if_statement "if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;" if (parenthesized_expression "((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3))" ( (binary_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)" (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" ( (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" * (cast_expression "(byte *)(lVar6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x38)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) )))) >> number_literal) == number_literal) )) && (parenthesized_expression "(plVar8 = plVar3, plVar7 != plVar3)" ( (comma_expression "plVar8 = plVar3, plVar7 != plVar3" (assignment_expression "plVar8 = plVar3" identifier = identifier) , (binary_expression "plVar7 != plVar3" identifier != identifier)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002878e0:\n          plVar5 = plVar8;" statement_identifier : (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" identifier = identifier) ;)) (if_statement "if (plVar3 == plVar5) {\n            return;\n          }" if (parenthesized_expression "(plVar3 == plVar5)" ( (binary_expression "plVar3 == plVar5" identifier == identifier) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) })) (expression_statement "lVar1 = plVar5[1];" (assignment_expression "lVar1 = plVar5[1]" identifier = (subscript_expression "plVar5[1]" identifier [ number_literal ])) ;) (if_statement "if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" if (parenthesized_expression "(((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" { (labeled_statement "LAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;)) })) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" identifier = identifier) ;) (if_statement "if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;" if (parenthesized_expression "((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)))" ( (binary_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" (parenthesized_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18))" ( (binary_expression "*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)" (pointer_expression "*(int *)(lVar1 + 0x18)" * (cast_expression "(int *)(lVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(lVar6 + 0x18)" * (cast_expression "(int *)(lVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) )) || (parenthesized_expression "(*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" ( (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" * (cast_expression "(long *)(lVar1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x40)" ( (binary_expression "lVar1 + 0x40" identifier + number_literal) )))) != (pointer_expression "*(long *)(lVar6 + 0x40)" * (cast_expression "(long *)(lVar6 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x40)" ( (binary_expression "lVar6 + 0x40" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (while_statement "while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" { (expression_statement "plVar8 = plVar7 + 1;" (assignment_expression "plVar8 = plVar7 + 1" identifier = (binary_expression "plVar7 + 1" identifier + number_literal)) ;) (expression_statement "alStack_40[0] = lVar6;" (assignment_expression "alStack_40[0] = lVar6" (subscript_expression "alStack_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier = (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier (argument_list "(param_1 + 0x130,alStack_40)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) , identifier ))))) ;) (expression_statement "lVar1 = *plVar7;" (assignment_expression "lVar1 = *plVar7" identifier = (pointer_expression "*plVar7" * identifier)) ;) (expression_statement "*plVar3 = lVar1;" (assignment_expression "*plVar3 = lVar1" (pointer_expression "*plVar3" * identifier) = identifier) ;) (expression_statement "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" * (cast_expression "(byte *)(lVar6 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x3a)" ( (binary_expression "lVar6 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar7 = (long *)param_2[1];" (assignment_expression "plVar7 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar3 = plVar8;" (assignment_expression "plVar3 = plVar8" identifier = identifier) ;) (if_statement "if (plVar7 == plVar8) break;" if (parenthesized_expression "(plVar7 == plVar8)" ( (binary_expression "plVar7 == plVar8" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = *plVar8;" (assignment_expression "lVar4 = *plVar8" identifier = (pointer_expression "*plVar8" * identifier)) ;) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;" if (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))" ( (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" * (cast_expression "(byte *)(lVar4 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x3a)" ( (binary_expression "lVar4 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" ( (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00287a26;" goto statement_identifier ;)) (expression_statement "plVar3 = plVar7;" (assignment_expression "plVar3 = plVar7" identifier = identifier) ;) (if_statement "if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;" if (parenthesized_expression "((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))" ( (binary_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" (parenthesized_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18))" ( (binary_expression "*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)" (pointer_expression "*(int *)(lVar4 + 0x18)" * (cast_expression "(int *)(lVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) != (pointer_expression "*(int *)(lVar1 + 0x18)" * (cast_expression "(int *)(lVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x18)" ( (binary_expression "lVar1 + 0x18" identifier + number_literal) ))))) )) || (parenthesized_expression "(lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" ( (comma_expression "lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "lVar6 = lVar1" identifier = identifier) , (comma_expression "plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "plVar7 = plVar8" identifier = identifier) , (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" * (cast_expression "(long *)(lVar1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x40)" ( (binary_expression "lVar1 + 0x40" identifier + number_literal) )))) != (pointer_expression "*(long *)(lVar4 + 0x40)" * (cast_expression "(long *)(lVar4 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x40)" ( (binary_expression "lVar4 + 0x40" identifier + number_literal) ))))))) ))) )) (break_statement "break;" break ;)) })) (if_statement "if (lVar1 == *plVar5) goto LAB_002878e0;" if (parenthesized_expression "(lVar1 == *plVar5)" ( (binary_expression "lVar1 == *plVar5" identifier == (pointer_expression "*plVar5" * identifier)) )) (goto_statement "goto LAB_002878e0;" goto statement_identifier ;)) (expression_statement "alStack_40[0] = lVar1;" (assignment_expression "alStack_40[0] = lVar1" (subscript_expression "alStack_40[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier = (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" identifier (argument_list "(param_1 + 0x130,alStack_40)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) , identifier ))))) ;) (expression_statement "*plVar3 = *plVar5;" (assignment_expression "*plVar3 = *plVar5" (pointer_expression "*plVar3" * identifier) = (pointer_expression "*plVar5" * identifier)) ;) (expression_statement "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" * (cast_expression "(byte *)(lVar1 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x3a)" ( (binary_expression "lVar1 + 0x3a" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" identifier = (cast_expression "(long *)param_2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" identifier = identifier) ;) }) while (parenthesized_expression "(plVar3 != plVar8)" ( (binary_expression "plVar3 != plVar8" identifier != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( ; (binary_expression (binary_expression IDENT >> IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ LIT) ))))) )) * LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_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) ))))) ))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (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) ))))))) ))) )) (break_statement break ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_00287850(long param_1,long *param_2)\n\n{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00287850(long param_1,long *param_2)" (identifier "FUN_00287850") (parameter_list "(long param_1,long *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  long *plVar3;\n  long lVar4;\n  long *plVar5;\n  long lVar6;\n  long *plVar7;\n  long *plVar8;\n  long alStack_40 [2];\n  \n  lVar6 = param_2[1];\n  lVar1 = *param_2;\n  if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "long *plVar5;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar5" (* "*") (identifier "plVar5")) (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "long *plVar8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar8" (* "*") (identifier "plVar8")) (; ";")) (declaration "long alStack_40 [2];" (sized_type_specifier "long" (long "long")) (array_declarator "alStack_40 [2]" (identifier "alStack_40") ([ "[") (number_literal "2") (] "]")) (; ";")) (expression_statement "lVar6 = param_2[1];" (assignment_expression "lVar6 = param_2[1]" (identifier "lVar6") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "lVar1 = *param_2;" (assignment_expression "lVar1 = *param_2" (identifier "lVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (lVar6 != lVar1) {\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" (if "if") (parenthesized_expression "(lVar6 != lVar1)" (( "(") (binary_expression "lVar6 != lVar1" (identifier "lVar6") (!= "!=") (identifier "lVar1")) () ")")) (compound_statement "{\n    uVar2 = lVar6 - lVar1 >> 3;\n    lVar4 = 0x3f;\n    if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }\n    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);\n    if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }\n    plVar3 = (long *)param_2[1];\n    if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }\n  }" ({ "{") (expression_statement "uVar2 = lVar6 - lVar1 >> 3;" (assignment_expression "uVar2 = lVar6 - lVar1 >> 3" (identifier "uVar2") (= "=") (binary_expression "lVar6 - lVar1 >> 3" (binary_expression "lVar6 - lVar1" (identifier "lVar6") (- "-") (identifier "lVar1")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "lVar4 = 0x3f;" (assignment_expression "lVar4 = 0x3f" (identifier "lVar4") (= "=") (number_literal "0x3f")) (; ";")) (if_statement "if (uVar2 != 0) {\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }\n    }" ({ "{") (for_statement "for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {\n      }" (for "for") (( "(") (; ";") (binary_expression "uVar2 >> lVar4 == 0" (binary_expression "uVar2 >> lVar4" (identifier "uVar2") (>> ">>") (identifier "lVar4")) (== "==") (number_literal "0")) (; ";") (assignment_expression "lVar4 = lVar4 + -1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + -1" (identifier "lVar4") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      }" ({ "{") (} "}"))) (} "}"))) (expression_statement "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);" (call_expression "FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" (identifier "FUN_00287600") (argument_list "(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2)" (( "(") (identifier "lVar1") (, ",") (identifier "lVar6") (, ",") (binary_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2" (parenthesized_expression "(0x3f - (long)(int)((uint)lVar4 ^ 0x3f))" (( "(") (binary_expression "0x3f - (long)(int)((uint)lVar4 ^ 0x3f)" (number_literal "0x3f") (- "-") (cast_expression "(long)(int)((uint)lVar4 ^ 0x3f)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)((uint)lVar4 ^ 0x3f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)lVar4 ^ 0x3f)" (( "(") (binary_expression "(uint)lVar4 ^ 0x3f" (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4")) (^ "^") (number_literal "0x3f")) () ")"))))) () ")")) (* "*") (number_literal "2")) () ")"))) (; ";")) (if_statement "if (lVar6 - lVar1 < 0x81) {\n      FUN_00285ed0(lVar1,lVar6);\n    }\n    else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" (if "if") (parenthesized_expression "(lVar6 - lVar1 < 0x81)" (( "(") (binary_expression "lVar6 - lVar1 < 0x81" (binary_expression "lVar6 - lVar1" (identifier "lVar6") (- "-") (identifier "lVar1")) (< "<") (number_literal "0x81")) () ")")) (compound_statement "{\n      FUN_00285ed0(lVar1,lVar6);\n    }" ({ "{") (expression_statement "FUN_00285ed0(lVar1,lVar6);" (call_expression "FUN_00285ed0(lVar1,lVar6)" (identifier "FUN_00285ed0") (argument_list "(lVar1,lVar6)" (( "(") (identifier "lVar1") (, ",") (identifier "lVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" (else "else") (compound_statement "{\n      lVar4 = lVar1 + 0x80;\n      FUN_00285ed0(lVar1,lVar4);\n      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }\n    }" ({ "{") (expression_statement "lVar4 = lVar1 + 0x80;" (assignment_expression "lVar4 = lVar1 + 0x80" (identifier "lVar4") (= "=") (binary_expression "lVar1 + 0x80" (identifier "lVar1") (+ "+") (number_literal "0x80"))) (; ";")) (expression_statement "FUN_00285ed0(lVar1,lVar4);" (call_expression "FUN_00285ed0(lVar1,lVar4)" (identifier "FUN_00285ed0") (argument_list "(lVar1,lVar4)" (( "(") (identifier "lVar1") (, ",") (identifier "lVar4") () ")"))) (; ";")) (for_statement "for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {\n        FUN_00285e90(lVar4);\n      }" (for "for") (( "(") (; ";") (binary_expression "lVar6 != lVar4" (identifier "lVar6") (!= "!=") (identifier "lVar4")) (; ";") (assignment_expression "lVar4 = lVar4 + 8" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 8" (identifier "lVar4") (+ "+") (number_literal "8"))) () ")") (compound_statement "{\n        FUN_00285e90(lVar4);\n      }" ({ "{") (expression_statement "FUN_00285e90(lVar4);" (call_expression "FUN_00285e90(lVar4)" (identifier "FUN_00285e90") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" (identifier "plVar3") (= "=") (cast_expression "(long *)param_2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if ((long *)*param_2 != plVar3) {\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" (if "if") (parenthesized_expression "((long *)*param_2 != plVar3)" (( "(") (binary_expression "(long *)*param_2 != plVar3" (cast_expression "(long *)*param_2" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (!= "!=") (identifier "plVar3")) () ")")) (compound_statement "{\n      plVar5 = (long *)*param_2;\n      do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);\n    }" ({ "{") (expression_statement "plVar5 = (long *)*param_2;" (assignment_expression "plVar5 = (long *)*param_2" (identifier "plVar5") (= "=") (cast_expression "(long *)*param_2" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (do_statement "do {\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      } while (plVar3 != plVar8);" (do "do") (compound_statement "{\n        while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }\n        lVar1 = plVar5[1];\n        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }\n        plVar8 = plVar7;\n        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;\n        while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }\n        if (lVar1 == *plVar5) goto LAB_002878e0;\n        alStack_40[0] = lVar1;\n        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n        *plVar3 = *plVar5;\n        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;\n        plVar3 = (long *)param_2[1];\n        plVar5 = plVar8;\n      }" ({ "{") (while_statement "while( true ) {\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          lVar6 = *plVar5;\n          plVar7 = plVar5 + 1;\n          plVar8 = plVar7;\n          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;\nLAB_002878e0:\n          plVar5 = plVar8;\n          if (plVar3 == plVar5) {\n            return;\n          }\n        }" ({ "{") (expression_statement "lVar6 = *plVar5;" (assignment_expression "lVar6 = *plVar5" (identifier "lVar6") (= "=") (pointer_expression "*plVar5" (* "*") (identifier "plVar5"))) (; ";")) (expression_statement "plVar7 = plVar5 + 1;" (assignment_expression "plVar7 = plVar5 + 1" (identifier "plVar7") (= "=") (binary_expression "plVar5 + 1" (identifier "plVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" (identifier "plVar8") (= "=") (identifier "plVar7")) (; ";")) (if_statement "if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3))" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)" (parenthesized_expression "(*(byte *)(lVar6 + 0x38) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x38) >> 4 == 2" (binary_expression "*(byte *)(lVar6 + 0x38) >> 4" (pointer_expression "*(byte *)(lVar6 + 0x38)" (* "*") (cast_expression "(byte *)(lVar6 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x38)" (( "(") (binary_expression "lVar6 + 0x38" (identifier "lVar6") (+ "+") (number_literal "0x38")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(plVar8 = plVar3, plVar7 != plVar3)" (( "(") (comma_expression "plVar8 = plVar3, plVar7 != plVar3" (assignment_expression "plVar8 = plVar3" (identifier "plVar8") (= "=") (identifier "plVar3")) (, ",") (binary_expression "plVar7 != plVar3" (identifier "plVar7") (!= "!=") (identifier "plVar3"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_002878e0:\n          plVar5 = plVar8;" (statement_identifier "LAB_002878e0") (: ":") (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" (identifier "plVar5") (= "=") (identifier "plVar8")) (; ";"))) (if_statement "if (plVar3 == plVar5) {\n            return;\n          }" (if "if") (parenthesized_expression "(plVar3 == plVar5)" (( "(") (binary_expression "plVar3 == plVar5" (identifier "plVar3") (== "==") (identifier "plVar5")) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "lVar1 = plVar5[1];" (assignment_expression "lVar1 = plVar5[1]" (identifier "lVar1") (= "=") (subscript_expression "plVar5[1]" (identifier "plVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" (if "if") (parenthesized_expression "(((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0))" (( "(") (binary_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x3a)" (( "(") (binary_expression "lVar1 + 0x3a" (identifier "lVar1") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar6 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n        }" ({ "{") (labeled_statement "LAB_00287a26:\n                    \n          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (statement_identifier "LAB_00287a26") (: ":") (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar8 = plVar7;" (assignment_expression "plVar8 = plVar7" (identifier "plVar8") (= "=") (identifier "plVar7")) (; ";")) (if_statement "if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;" (if "if") (parenthesized_expression "((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)))" (( "(") (binary_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||\n           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" (parenthesized_expression "(*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18))" (( "(") (binary_expression "*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)" (pointer_expression "*(int *)(lVar1 + 0x18)" (* "*") (cast_expression "(int *)(lVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x18)" (( "(") (binary_expression "lVar1 + 0x18" (identifier "lVar1") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (pointer_expression "*(int *)(lVar6 + 0x18)" (* "*") (cast_expression "(int *)(lVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))" (( "(") (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" (* "*") (cast_expression "(long *)(lVar1 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x40)" (( "(") (binary_expression "lVar1 + 0x40" (identifier "lVar1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (pointer_expression "*(long *)(lVar6 + 0x40)" (* "*") (cast_expression "(long *)(lVar6 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x40)" (( "(") (binary_expression "lVar6 + 0x40" (identifier "lVar6") (+ "+") (number_literal "0x40")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_002878e0;" (goto "goto") (statement_identifier "LAB_002878e0") (; ";"))) (while_statement "while( true ) {\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          plVar8 = plVar7 + 1;\n          alStack_40[0] = lVar6;\n          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);\n          lVar1 = *plVar7;\n          *plVar3 = lVar1;\n          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;\n          plVar7 = (long *)param_2[1];\n          plVar3 = plVar8;\n          if (plVar7 == plVar8) break;\n          lVar4 = *plVar8;\n          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;\n          plVar3 = plVar7;\n          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;\n        }" ({ "{") (expression_statement "plVar8 = plVar7 + 1;" (assignment_expression "plVar8 = plVar7 + 1" (identifier "plVar8") (= "=") (binary_expression "plVar7 + 1" (identifier "plVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "alStack_40[0] = lVar6;" (assignment_expression "alStack_40[0] = lVar6" (subscript_expression "alStack_40[0]" (identifier "alStack_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" (identifier "plVar3") (= "=") (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" (identifier "FUN_0027bd20") (argument_list "(param_1 + 0x130,alStack_40)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) (, ",") (identifier "alStack_40") () ")"))))) (; ";")) (expression_statement "lVar1 = *plVar7;" (assignment_expression "lVar1 = *plVar7" (identifier "lVar1") (= "=") (pointer_expression "*plVar7" (* "*") (identifier "plVar7"))) (; ";")) (expression_statement "*plVar3 = lVar1;" (assignment_expression "*plVar3 = lVar1" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar6 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar6 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar6 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x3a)" (( "(") (binary_expression "lVar6 + 0x3a" (identifier "lVar6") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "0x20"))) (; ";")) (expression_statement "plVar7 = (long *)param_2[1];" (assignment_expression "plVar7 = (long *)param_2[1]" (identifier "plVar7") (= "=") (cast_expression "(long *)param_2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar3 = plVar8;" (assignment_expression "plVar3 = plVar8" (identifier "plVar3") (= "=") (identifier "plVar8")) (; ";")) (if_statement "if (plVar7 == plVar8) break;" (if "if") (parenthesized_expression "(plVar7 == plVar8)" (( "(") (binary_expression "plVar7 == plVar8" (identifier "plVar7") (== "==") (identifier "plVar8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar4 = *plVar8;" (assignment_expression "lVar4 = *plVar8" (identifier "lVar4") (= "=") (pointer_expression "*plVar8" (* "*") (identifier "plVar8"))) (; ";")) (if_statement "if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))\n          goto LAB_00287a26;" (if "if") (parenthesized_expression "(((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))" (( "(") (binary_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0)" (parenthesized_expression "((*(byte *)(lVar4 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar4 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar4 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar4 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar4 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar4 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x3a)" (( "(") (binary_expression "lVar4 + 0x3a" (identifier "lVar4") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar1 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(lVar1 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(lVar1 + 0x3a) & 7" (pointer_expression "*(byte *)(lVar1 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x3a)" (( "(") (binary_expression "lVar1 + 0x3a" (identifier "lVar1") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00287a26;" (goto "goto") (statement_identifier "LAB_00287a26") (; ";"))) (expression_statement "plVar3 = plVar7;" (assignment_expression "plVar3 = plVar7" (identifier "plVar3") (= "=") (identifier "plVar7")) (; ";")) (if_statement "if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))\n          break;" (if "if") (parenthesized_expression "((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))" (( "(") (binary_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||\n             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" (parenthesized_expression "(*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18))" (( "(") (binary_expression "*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)" (pointer_expression "*(int *)(lVar4 + 0x18)" (* "*") (cast_expression "(int *)(lVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x18)" (( "(") (binary_expression "lVar4 + 0x18" (identifier "lVar4") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (pointer_expression "*(int *)(lVar1 + 0x18)" (* "*") (cast_expression "(int *)(lVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x18)" (( "(") (binary_expression "lVar1 + 0x18" (identifier "lVar1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40))" (( "(") (comma_expression "lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "lVar6 = lVar1" (identifier "lVar6") (= "=") (identifier "lVar1")) (, ",") (comma_expression "plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (assignment_expression "plVar7 = plVar8" (identifier "plVar7") (= "=") (identifier "plVar8")) (, ",") (binary_expression "*(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)" (pointer_expression "*(long *)(lVar1 + 0x40)" (* "*") (cast_expression "(long *)(lVar1 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x40)" (( "(") (binary_expression "lVar1 + 0x40" (identifier "lVar1") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (pointer_expression "*(long *)(lVar4 + 0x40)" (* "*") (cast_expression "(long *)(lVar4 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x40)" (( "(") (binary_expression "lVar4 + 0x40" (identifier "lVar4") (+ "+") (number_literal "0x40")) () ")"))))))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (if_statement "if (lVar1 == *plVar5) goto LAB_002878e0;" (if "if") (parenthesized_expression "(lVar1 == *plVar5)" (( "(") (binary_expression "lVar1 == *plVar5" (identifier "lVar1") (== "==") (pointer_expression "*plVar5" (* "*") (identifier "plVar5"))) () ")")) (goto_statement "goto LAB_002878e0;" (goto "goto") (statement_identifier "LAB_002878e0") (; ";"))) (expression_statement "alStack_40[0] = lVar1;" (assignment_expression "alStack_40[0] = lVar1" (subscript_expression "alStack_40[0]" (identifier "alStack_40") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);" (assignment_expression "plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" (identifier "plVar3") (= "=") (cast_expression "(long *)FUN_0027bd20(param_1 + 0x130,alStack_40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0027bd20(param_1 + 0x130,alStack_40)" (identifier "FUN_0027bd20") (argument_list "(param_1 + 0x130,alStack_40)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) (, ",") (identifier "alStack_40") () ")"))))) (; ";")) (expression_statement "*plVar3 = *plVar5;" (assignment_expression "*plVar3 = *plVar5" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (= "=") (pointer_expression "*plVar5" (* "*") (identifier "plVar5"))) (; ";")) (expression_statement "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;" (assignment_expression "*(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x3a)" (( "(") (binary_expression "lVar1 + 0x3a" (identifier "lVar1") (+ "+") (number_literal "0x3a")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar1 + 0x3a) | 0x20" (pointer_expression "*(byte *)(lVar1 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar1 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x3a)" (( "(") (binary_expression "lVar1 + 0x3a" (identifier "lVar1") (+ "+") (number_literal "0x3a")) () ")")))) (| "|") (number_literal "0x20"))) (; ";")) (expression_statement "plVar3 = (long *)param_2[1];" (assignment_expression "plVar3 = (long *)param_2[1]" (identifier "plVar3") (= "=") (cast_expression "(long *)param_2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar5 = plVar8;" (assignment_expression "plVar5 = plVar8" (identifier "plVar5") (= "=") (identifier "plVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar3 != plVar8)" (( "(") (binary_expression "plVar3 != plVar8" (identifier "plVar3") (!= "!=") (identifier "plVar8")) () ")")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void record_weak_aliases<64>(Symbol_table * this,
   vector<gold::Sized_symbol<64>*,_std::allocator<gold::Sized_symbol<64>*>_> * symbols) */

void __thiscall
var_2::type_1::function_1<64>
          (type_1 *this,
          type_2<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9> *symbols)

{
  type_4 *puVar1;
  var_1<64> *var_13;
  var_1<64> *pSVar3;
  long var_7;
  type_5 var_6;
  type_6 *ppSVar6;
  type_7 var_4;
  type_7 var_5;
  var_1<64> *pSVar9;
  type_7 var_10;
  type_7 var_12;
  var_1<64> *apSStack_40 [2];
  
  var_4 = (symbols->
            super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3).
            _M_impl._M_finish;
  var_5 = (symbols->
            super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3).
            _M_impl._M_start;
  if (var_4 != var_5) {
    var_6 = (long)var_4 - (long)var_5 >> 3;
    var_7 = 0x3f;
    if (var_6 != 0) {
      for (; var_6 >> var_7 == 0; var_7 = var_7 + -1) {
      }
    }
    std::
    __introsort_loop<__gnu_cxx::__normal_iterator<var_2::var_1<64>**,type_3::type_2<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_9>,_long_int,___gnu_cxx::__ops::_Iter_comp_iter<var_2::var_8<64>var_9>var_9>
              (var_5,var_4,(0x3f - (long)(int)((type_8)var_7 ^ 0x3f)) * 2);
    if ((long)var_4 - (long)var_5 < 0x81) {
      std::
      __insertion_sort<__gnu_cxx::__normal_iterator<var_2::var_1<64>**,type_3::type_2<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_9>,___gnu_cxx::__ops::_Iter_comp_iter<var_2::var_8<64>var_9>var_9>
                (var_5,var_4);
    }
    else {
      var_10 = var_5 + 0x10;
      std::
      __insertion_sort<__gnu_cxx::__normal_iterator<var_2::var_1<64>**,type_3::type_2<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_9>,___gnu_cxx::__ops::_Iter_comp_iter<var_2::var_8<64>var_9>var_9>
                (var_5,var_10);
      for (; var_4 != var_10; var_10 = var_10 + 1) {
        std::
        __unguarded_linear_insert<__gnu_cxx::__normal_iterator<var_2::var_1<64>**,type_3::type_2<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_9>,___gnu_cxx::__ops::_Val_comp_iter<var_2::var_8<64>var_9>var_9>
                  (var_10);
      }
    }
    var_4 = (symbols->
              super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3)
              ._M_impl._M_start;
    var_5 = (symbols->
              super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3)
              ._M_impl._M_finish;
    if (var_4 != var_5) {
      do {
        while( true ) {
          pSVar9 = *var_4;
          var_10 = var_4 + 1;
          var_12 = var_10;
          if (((byte)(pSVar9->super_Symbol).field_0x38 >> 4 == 2) &&
             (var_12 = var_5, var_10 != var_5)) break;
LAB_002878e0:
          var_4 = var_12;
          if (var_5 == var_4) {
            return;
          }
        }
        var_13 = var_4[1];
        if ((((var_13->super_Symbol).field_0x3a & 7) != 0) ||
           (((pSVar9->super_Symbol).field_0x3a & 7) != 0)) {
LAB_00287a26:
                    /* WARNING: Subroutine does not return */
          var_11("../../gold/symtab.h",0xaa,"shndx");
        }
        var_12 = var_10;
        if (((var_13->super_Symbol).u2_.shndx != (pSVar9->super_Symbol).u2_.shndx) ||
           (var_13->value_ != pSVar9->value_)) goto LAB_002878e0;
        while( true ) {
          var_12 = var_10 + 1;
          apSStack_40[0] = pSVar9;
          ppSVar6 = std::__detail::
                    type_10<var_2::type_9*,type_3::pair<var_2::type_9*_const,type_11::type_9*>,type_3::allocator<std::pair<var_2::type_9*_const,type_11::type_9*>var_9>,type_3::__detail::_Select1st,type_3::equal_to<var_2::type_9*>,type_3::hash<var_2::type_9*>,type_3::__detail::_Mod_range_hashing,type_3::__detail::_Default_ranged_hash,type_3::__detail::_Prime_rehash_policy,type_3::__detail::_Hashtable_traits<false,type_12,type_13>,type_13>
                    ::operator[]((type_10<var_2::type_9*,type_3::pair<var_2::type_9*_const,type_11::type_9*>,type_3::allocator<std::pair<var_2::type_9*_const,type_11::type_9*>var_9>,type_3::__detail::_Select1st,type_3::equal_to<var_2::type_9*>,type_3::hash<var_2::type_9*>,type_3::__detail::_Mod_range_hashing,type_3::__detail::_Default_ranged_hash,type_3::__detail::_Prime_rehash_policy,type_3::__detail::_Hashtable_traits<false,type_12,type_13>,type_13>
                                  *)&this->weak_aliases_,(type_14 *)apSStack_40);
          var_13 = *var_10;
          *ppSVar6 = &var_13->super_Symbol;
          puVar1 = &(pSVar9->super_Symbol).field_0x3a;
          *puVar1 = *puVar1 | 0x20;
          var_10 = (symbols->
                     super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3
                     )._M_impl._M_finish;
          var_5 = var_12;
          if (var_10 == var_12) break;
          pSVar3 = *var_12;
          if ((((pSVar3->super_Symbol).field_0x3a & 7) != 0) ||
             (((var_13->super_Symbol).field_0x3a & 7) != 0)) goto LAB_00287a26;
          var_5 = var_10;
          if (((pSVar3->super_Symbol).u2_.shndx != (var_13->super_Symbol).u2_.shndx) ||
             (pSVar9 = var_13, var_10 = var_12, var_13->value_ != pSVar3->value_)) break;
        }
        if (var_13 == *var_4) goto LAB_002878e0;
        apSStack_40[0] = var_13;
        ppSVar6 = std::__detail::
                  type_10<var_2::type_9*,type_3::pair<var_2::type_9*_const,type_11::type_9*>,type_3::allocator<std::pair<var_2::type_9*_const,type_11::type_9*>var_9>,type_3::__detail::_Select1st,type_3::equal_to<var_2::type_9*>,type_3::hash<var_2::type_9*>,type_3::__detail::_Mod_range_hashing,type_3::__detail::_Default_ranged_hash,type_3::__detail::_Prime_rehash_policy,type_3::__detail::_Hashtable_traits<false,type_12,type_13>,type_13>
                  ::operator[]((type_10<var_2::type_9*,type_3::pair<var_2::type_9*_const,type_11::type_9*>,type_3::allocator<std::pair<var_2::type_9*_const,type_11::type_9*>var_9>,type_3::__detail::_Select1st,type_3::equal_to<var_2::type_9*>,type_3::hash<var_2::type_9*>,type_3::__detail::_Mod_range_hashing,type_3::__detail::_Default_ranged_hash,type_3::__detail::_Prime_rehash_policy,type_3::__detail::_Hashtable_traits<false,type_12,type_13>,type_13>
                                *)&this->weak_aliases_,(type_14 *)apSStack_40);
        *ppSVar6 = &(*var_4)->super_Symbol;
        puVar1 = &(var_13->super_Symbol).field_0x3a;
        *puVar1 = *puVar1 | 0x20;
        var_5 = (symbols->
                  super__Vector_base<var_2::var_1<64>*,type_3::allocator<var_2::var_1<64>*>var_9>var_3
                  )._M_impl._M_finish;
        var_4 = var_12;
      } while (var_5 != var_12);
    }
  }
  return;
}


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

void MASKED(long param_1,long *param_2)

{
  long lVar1;
  ulong uVar2;
  long *plVar3;
  long lVar4;
  long *plVar5;
  long lVar6;
  long *plVar7;
  long *plVar8;
  long alStack_40 [2];
  
  lVar6 = param_2[1];
  lVar1 = *param_2;
  if (lVar6 != lVar1) {
    uVar2 = lVar6 - lVar1 >> 3;
    lVar4 = 0x3f;
    if (uVar2 != 0) {
      for (; uVar2 >> lVar4 == 0; lVar4 = lVar4 + -1) {
      }
    }
    FUN_00287600(lVar1,lVar6,(0x3f - (long)(int)((uint)lVar4 ^ 0x3f)) * 2);
    if (lVar6 - lVar1 < 0x81) {
      FUN_00285ed0(lVar1,lVar6);
    }
    else {
      lVar4 = lVar1 + 0x80;
      FUN_00285ed0(lVar1,lVar4);
      for (; lVar6 != lVar4; lVar4 = lVar4 + 8) {
        FUN_00285e90(lVar4);
      }
    }
    plVar3 = (long *)param_2[1];
    if ((long *)*param_2 != plVar3) {
      plVar5 = (long *)*param_2;
      do {
        while( true ) {
          lVar6 = *plVar5;
          plVar7 = plVar5 + 1;
          plVar8 = plVar7;
          if ((*(byte *)(lVar6 + 0x38) >> 4 == 2) && (plVar8 = plVar3, plVar7 != plVar3)) break;
LAB_002878e0:
          plVar5 = plVar8;
          if (plVar3 == plVar5) {
            return;
          }
        }
        lVar1 = plVar5[1];
        if (((*(byte *)(lVar1 + 0x3a) & 7) != 0) || ((*(byte *)(lVar6 + 0x3a) & 7) != 0)) {
LAB_00287a26:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");
        }
        plVar8 = plVar7;
        if ((*(int *)(lVar1 + 0x18) != *(int *)(lVar6 + 0x18)) ||
           (*(long *)(lVar1 + 0x40) != *(long *)(lVar6 + 0x40))) goto LAB_002878e0;
        while( true ) {
          plVar8 = plVar7 + 1;
          alStack_40[0] = lVar6;
          plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);
          lVar1 = *plVar7;
          *plVar3 = lVar1;
          *(byte *)(lVar6 + 0x3a) = *(byte *)(lVar6 + 0x3a) | 0x20;
          plVar7 = (long *)param_2[1];
          plVar3 = plVar8;
          if (plVar7 == plVar8) break;
          lVar4 = *plVar8;
          if (((*(byte *)(lVar4 + 0x3a) & 7) != 0) || ((*(byte *)(lVar1 + 0x3a) & 7) != 0))
          goto LAB_00287a26;
          plVar3 = plVar7;
          if ((*(int *)(lVar4 + 0x18) != *(int *)(lVar1 + 0x18)) ||
             (lVar6 = lVar1, plVar7 = plVar8, *(long *)(lVar1 + 0x40) != *(long *)(lVar4 + 0x40)))
          break;
        }
        if (lVar1 == *plVar5) goto LAB_002878e0;
        alStack_40[0] = lVar1;
        plVar3 = (long *)FUN_0027bd20(param_1 + 0x130,alStack_40);
        *plVar3 = *plVar5;
        *(byte *)(lVar1 + 0x3a) = *(byte *)(lVar1 + 0x3a) | 0x20;
        plVar3 = (long *)param_2[1];
        plVar5 = plVar8;
      } while (plVar3 != plVar8);
    }
  }
  return;
}

