
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

void gold::Dynobj::create_elf_hash_table
               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynsyms,uint param_2,
               uchar **pphash,uint *phashlen)

{
  byte bVar1;
  bool bVar2;
  uint uVar3;
  int iVar4;
  pointer puVar5;
  uint uVar6;
  uint *puVar7;
  uint uVar8;
  int *piVar9;
  int iVar10;
  int *piVar11;
  int *piVar12;
  uint uVar13;
  uint uVar14;
  int *piVar15;
  byte *pbVar16;
  pointer puVar17;
  pointer ppSVar18;
  int *piVar19;
  pointer ppSVar20;
  int iVar21;
  int *local_4c;
  int *local_48;
  int *local_38;
  int *local_34;
  vector<unsigned_int,_std::allocator<unsigned_int>_> dynsym_hashvals;
  
  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start =
       (pointer)0x0;
  puVar17 = (pointer)((int)(dynsyms->
                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).
                           _M_impl._M_finish -
                     (int)(dynsyms->
                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl
                          ._M_start);
  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_finish
       = (pointer)0x0;
  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
  _M_end_of_storage = (pointer)0x0;
  uVar6 = (int)puVar17 >> 2;
  puVar5 = puVar17;
  if (uVar6 != 0) {
    if (0x3fffffff < uVar6) {
                    /* WARNING: Subroutine does not return */
      std::__throw_bad_alloc();
    }
    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start
         = (pointer)operator_new((uint)puVar17);
    uVar14 = 0;
    do {
      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
      _M_start[uVar14] = 0;
      uVar14 = uVar14 + 1;
    } while (uVar6 != uVar14);
    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.
                _M_impl._M_start + uVar6;
    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
               _M_start;
    ppSVar20 = ppSVar18 + uVar6;
    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl
             ._M_start;
    do {
      pbVar16 = (byte *)(*ppSVar18)->name_;
      uVar14 = 0;
      while (bVar1 = *pbVar16, bVar1 != 0) {
        while( true ) {
          pbVar16 = pbVar16 + 1;
          uVar14 = uVar14 * 0x10 + (uint)bVar1;
          if ((uVar14 & 0xf0000000) == 0) break;
          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar16;
          if (bVar1 == 0) goto LAB_0016aff8;
        }
      }
LAB_0016aff8:
      ppSVar18 = ppSVar18 + 1;
      *puVar7 = uVar14;
      puVar7 = puVar7 + 1;
      puVar5 = (pointer)((int)puVar17 +
                        (int)dynsym_hashvals.
                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl
                             ._M_start);
    } while (ppSVar18 != ppSVar20);
  }
  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
  _M_end_of_storage = puVar5;
                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */
  uVar14 = compute_bucket_count(&dynsym_hashvals,false);
  if (uVar14 == 0) {
    local_34 = (int *)0x0;
    local_48 = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar14) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */
      std::__throw_bad_alloc();
    }
    local_34 = (int *)operator_new(uVar14 * 4);
    uVar8 = 0;
    do {
      local_34[uVar8] = 0;
      uVar8 = uVar8 + 1;
    } while (uVar14 != uVar8);
    local_48 = local_34 + uVar14;
  }
  uVar8 = uVar6 + param_2;
  if (uVar8 == 0) {
    local_38 = (int *)0x0;
    local_4c = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar8) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */
      std::__throw_bad_alloc();
    }
                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */
    local_38 = (int *)operator_new(uVar8 * 4);
    local_4c = local_38 + uVar8;
    piVar9 = local_38;
    do {
      *piVar9 = 0;
      piVar9 = piVar9 + 1;
    } while (piVar9 != local_4c);
  }
  if (uVar6 == 0) {
LAB_0016b10b:
    if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x69,"target");
    }
    iVar10 = parameters->target_->pti_->hash_entry_size;
    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;
                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */
    piVar9 = (int *)operator_new__(uVar6);
    if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */
      do_gold_unreachable("../../gold/parameters.h",0x69,"target");
    }
    bVar2 = parameters->target_->pti_->is_big_endian;
    if (iVar10 == 0x20) {
      if (bVar2 != false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */
        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");
      }
      iVar10 = (int)local_48 - (int)local_34 >> 2;
      piVar11 = piVar9 + 2;
      iVar21 = (int)local_4c - (int)local_38 >> 2;
      *piVar9 = iVar10;
      piVar9[1] = iVar21;
      if (iVar10 != 0) {
        piVar19 = local_34;
        do {
          iVar4 = *piVar19;
          piVar15 = piVar11 + 1;
          piVar19 = piVar19 + 1;
          *piVar11 = iVar4;
          piVar11 = piVar15;
        } while (piVar9 + iVar10 + 2 != piVar15);
        piVar11 = piVar9 + iVar10 + 2;
      }
      piVar19 = piVar11;
      if (iVar21 != 0) {
        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);
        piVar15 = local_38;
        do {
          iVar10 = *piVar15;
          piVar12 = piVar11 + 1;
          piVar15 = piVar15 + 1;
          *piVar11 = iVar10;
          piVar11 = piVar12;
        } while (piVar12 != piVar19);
      }
      if (uVar6 != (int)piVar19 - (int)piVar9) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");
      }
    }
    else {
      if (iVar10 != 0x40) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");
      }
      if (bVar2 != false) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");
      }
      piVar11 = piVar9 + 4;
      piVar9[1] = 0;
      piVar9[3] = 0;
      iVar10 = (int)local_4c - (int)local_38 >> 2;
      iVar21 = (int)local_48 - (int)local_34 >> 2;
      piVar9[2] = iVar10;
      *piVar9 = iVar21;
      piVar19 = local_34;
      piVar15 = piVar11;
      if (iVar21 != 0) {
        do {
          iVar4 = *piVar19;
          piVar19 = piVar19 + 1;
          piVar15[1] = 0;
          *piVar15 = iVar4;
          piVar15 = piVar15 + 2;
        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));
        piVar11 = piVar11 + iVar21 * 2;
      }
      if (iVar10 != 0) {
        piVar19 = local_38;
        piVar15 = piVar11;
        do {
          iVar21 = *piVar19;
          piVar19 = piVar19 + 1;
          piVar15[1] = 0;
          *piVar15 = iVar21;
          piVar15 = piVar15 + 2;
        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);
        piVar11 = piVar11 + iVar10 * 2;
      }
      if (uVar6 != (int)piVar11 - (int)piVar9) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");
      }
    }
    *pphash = (uchar *)piVar9;
    *phashlen = uVar6;
    if (local_38 != (int *)0x0) {
      operator_delete(local_38);
    }
    if (local_34 != (int *)0x0) {
      operator_delete(local_34);
    }
    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
        _M_start != (pointer)0x0) {
      operator_delete(dynsym_hashvals.
                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.
                      _M_start);
    }
    return;
  }
  ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.
             _M_start;
  uVar8 = (*ppSVar18)->dynsym_index_;
  if (uVar8 != 0) {
    uVar13 = 0;
    do {
      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.
              _M_impl._M_start[uVar13];
      uVar13 = uVar13 + 1;
      local_38[uVar8] = local_34[uVar3 % uVar14];
      local_34[uVar3 % uVar14] = uVar8;
      if (uVar13 == uVar6) goto LAB_0016b10b;
      uVar8 = ppSVar18[uVar13]->dynsym_index_;
    } while (uVar8 != 0);
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");
}



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

void FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)

{
  byte bVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint *puVar6;
  uint uVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  int *piVar12;
  uint uVar13;
  int *piVar14;
  byte *pbVar15;
  int iVar16;
  undefined4 *puVar17;
  int *piVar18;
  int *piVar19;
  undefined4 *puVar20;
  int *local_4c;
  int *local_48;
  int *local_38;
  int *local_34;
  uint *local_28;
  uint *local_24;
  int local_20;
  
  local_28 = (uint *)0x0;
  iVar16 = param_1[1] - *param_1;
  local_24 = (uint *)0x0;
  local_20 = 0;
  uVar5 = iVar16 >> 2;
  iVar9 = iVar16;
  if (uVar5 != 0) {
    if (0x3fffffff < uVar5) {
                    /* WARNING: Subroutine does not return */
      FUN_001f1cb0();
    }
    local_28 = (uint *)FUN_001aa8c0(iVar16);
    uVar13 = 0;
    do {
      local_28[uVar13] = 0;
      uVar13 = uVar13 + 1;
    } while (uVar5 != uVar13);
    local_24 = local_28 + uVar5;
    puVar17 = (undefined4 *)*param_1;
    puVar20 = puVar17 + uVar5;
    puVar6 = local_28;
    do {
      pbVar15 = *(byte **)*puVar17;
      uVar13 = 0;
      while (bVar1 = *pbVar15, bVar1 != 0) {
        while( true ) {
          pbVar15 = pbVar15 + 1;
          uVar13 = uVar13 * 0x10 + (uint)bVar1;
          if ((uVar13 & 0xf0000000) == 0) break;
          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar15;
          if (bVar1 == 0) goto LAB_0016aff8;
        }
      }
LAB_0016aff8:
      puVar17 = puVar17 + 1;
      *puVar6 = uVar13;
      puVar6 = puVar6 + 1;
      iVar9 = iVar16 + (int)local_28;
    } while (puVar17 != puVar20);
  }
  local_20 = iVar9;
                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */
  uVar13 = FUN_0016ae10(&local_28,0);
  if (uVar13 == 0) {
    local_34 = (int *)0x0;
    local_48 = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar13) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */
      FUN_001f1cb0();
    }
    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);
    uVar7 = 0;
    do {
      local_34[uVar7] = 0;
      uVar7 = uVar7 + 1;
    } while (uVar13 != uVar7);
    local_48 = local_34 + uVar13;
  }
  uVar7 = uVar5 + param_2;
  if (uVar7 == 0) {
    local_38 = (int *)0x0;
    local_4c = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar7) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */
      FUN_001f1cb0();
    }
                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */
    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);
    local_4c = local_38 + uVar7;
    piVar8 = local_38;
    do {
      *piVar8 = 0;
      piVar8 = piVar8 + 1;
    } while (piVar8 != local_4c);
  }
  if (uVar5 == 0) {
LAB_0016b10b:
    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
    }
    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);
    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);
                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */
    piVar8 = (int *)FUN_001aa840(piVar18);
    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */
      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
    }
    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);
    if (iVar9 == 0x20) {
      if (cVar2 != '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */
        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);
      }
      iVar9 = (int)local_48 - (int)local_34 >> 2;
      piVar11 = piVar8 + 2;
      iVar16 = (int)local_4c - (int)local_38 >> 2;
      *piVar8 = iVar9;
      piVar8[1] = iVar16;
      piVar10 = piVar18;
      if (iVar9 != 0) {
        piVar10 = (int *)(iVar9 * 4 + 8);
        piVar19 = local_34;
        do {
          iVar4 = *piVar19;
          piVar14 = piVar11 + 1;
          piVar19 = piVar19 + 1;
          *piVar11 = iVar4;
          piVar11 = piVar14;
        } while (piVar8 + iVar9 + 2 != piVar14);
        piVar11 = piVar8 + iVar9 + 2;
      }
      piVar19 = piVar11;
      if (iVar16 != 0) {
        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);
        piVar14 = local_38;
        do {
          iVar9 = *piVar14;
          piVar12 = piVar11 + 1;
          piVar14 = piVar14 + 1;
          *piVar11 = iVar9;
          piVar11 = piVar12;
          piVar10 = piVar19;
        } while (piVar12 != piVar19);
      }
      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);
      }
    }
    else {
      if (iVar9 != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);
      }
      if (cVar2 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);
      }
      piVar11 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[3] = 0;
      iVar9 = (int)local_4c - (int)local_38 >> 2;
      iVar16 = (int)local_48 - (int)local_34 >> 2;
      piVar8[2] = iVar9;
      *piVar8 = iVar16;
      piVar10 = local_34;
      piVar19 = piVar11;
      piVar14 = piVar11;
      if (iVar16 != 0) {
        do {
          iVar4 = *piVar10;
          piVar10 = piVar10 + 1;
          piVar19[1] = 0;
          piVar14 = piVar19 + 2;
          *piVar19 = iVar4;
          piVar19 = piVar14;
        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));
        piVar11 = piVar11 + iVar16 * 2;
      }
      if (iVar9 != 0) {
        piVar10 = local_38;
        piVar19 = piVar11;
        do {
          iVar16 = *piVar10;
          piVar10 = piVar10 + 1;
          piVar19[1] = 0;
          piVar14 = piVar19 + 2;
          *piVar19 = iVar16;
          piVar19 = piVar14;
        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);
        piVar11 = piVar11 + iVar9 * 2;
      }
      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);
      }
    }
    *param_3 = (int)piVar8;
    *param_4 = piVar18;
    if (local_38 != (int *)0x0) {
      FUN_001ac470(local_38);
    }
    if (local_34 != (int *)0x0) {
      FUN_001ac470(local_34);
    }
    if (local_28 != (uint *)0x0) {
      FUN_001ac470(local_28);
    }
    return;
  }
  param_1 = (int *)*param_1;
  iVar9 = *(int *)(*param_1 + 0x14);
  if (iVar9 != 0) {
    uVar7 = 0;
    do {
      uVar3 = local_28[uVar7];
      uVar7 = uVar7 + 1;
      local_38[iVar9] = local_34[uVar3 % uVar13];
      local_34[uVar3 % uVar13] = iVar9;
      if (uVar7 == uVar5) goto LAB_0016b10b;
      iVar9 = *(int *)(param_1[uVar7] + 0x14);
    } while (iVar9 != 0);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");
}


CALL 0x00058c42
ADD EAX,0x1d40db
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x24],0x0
MOV ESI,dword ptr [EAX + 0x4]
SUB ESI,dword ptr [EAX]
MOV dword ptr [EBP + -0x20],0x0
MOV EAX,ESI
MOV dword ptr [EBP + -0x1c],0x0
SAR EAX,0x2
MOV dword ptr [EBP + -0x2c],EAX
JZ 0x0016b336
CMP EAX,0x3fffffff
JA 0x0016b3f5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH ESI
CALL 0x001aa8c0
MOV ECX,dword ptr [EBP + -0x2c]
ADD ESP,0x10
XOR EDX,EDX
ADD ESI,EAX
MOV dword ptr [EBP + -0x24],EAX
MOV dword ptr [EBP + -0x1c],ESI
LEA ESI,[ESI]
NOP
MOV dword ptr [EAX + EDX*0x4],0x0
ADD EDX,0x1
CMP ECX,EDX
JNZ 0x0016af90
MOV ESI,dword ptr [EBP + -0x2c]
LEA EDI,[ESI*0x4 + 0x0]
MOV ESI,dword ptr [EBP + 0x8]
LEA EDX,[EAX + EDI*0x1]
MOV ESI,dword ptr [ESI]
MOV dword ptr [EBP + -0x20],EDX
ADD EDI,ESI
LEA ESI,[ESI]
MOV ECX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [ESI]
MOV dword ptr [EBP + -0x30],ECX
MOV EBX,dword ptr [EDX]
XOR EDX,EDX
LEA ESI,[ESI]
ADD EBX,0x1
MOVZX ECX,byte ptr [EBX + -0x1]
TEST CL,CL
JZ 0x0016aff8
SHL EDX,0x4
ADD EDX,ECX
MOV ECX,EDX
AND ECX,0xf0000000
JZ 0x0016afc8
SHR ECX,0x18
AND EDX,0xfffffff
ADD EBX,0x1
XOR EDX,ECX
MOVZX ECX,byte ptr [EBX + -0x1]
TEST CL,CL
JNZ 0x0016afd3
MOV EBX,dword ptr [EBP + -0x30]
ADD ESI,0x4
MOV dword ptr [EAX],EDX
ADD EAX,0x4
MOV dword ptr [EBP + 0x8],EBX
CMP ESI,EDI
JNZ 0x0016afb8
SUB ESP,0x8
LEA EAX,[EBP + -0x24]
PUSH 0x0
PUSH EAX
CALL 0x0016ae10
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0016b323
CMP EAX,0x3fffffff
JA 0x0016b3d1
LEA EDI,[EAX*0x4 + 0x0]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDI
CALL 0x001aa8c0
MOV EDX,EAX
MOV dword ptr [EBP + -0x30],EAX
ADD ESP,0x10
XOR EAX,EAX
LEA ESI,[ESI]
MOV dword ptr [EDX + EAX*0x4],0x0
ADD EAX,0x1
CMP ESI,EAX
JNZ 0x0016b050
ADD EDI,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x44],EDI
MOV EDI,dword ptr [EBP + -0x2c]
ADD EDI,dword ptr [EBP + 0xc]
JZ 0x0016b310
CMP EDI,0x3fffffff
JA 0x0016b3c9
SHL EDI,0x2
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDI
CALL 0x001aa8c0
ADD EDI,EAX
MOV dword ptr [EBP + -0x34],EAX
ADD ESP,0x10
MOV dword ptr [EBP + -0x48],EDI
MOV EDX,EDI
LEA ESI,[ESI]
NOP
MOV dword ptr [EAX],0x0
ADD EAX,0x4
CMP EAX,EDX
JNZ 0x0016b0a0
MOV EAX,dword ptr [EBP + -0x2c]
TEST EAX,EAX
JZ 0x0016b10b
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX]
MOV EDX,EAX
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x14]
TEST EBX,EBX
JZ 0x0016b33e
MOV EDI,dword ptr [EBP + -0x24]
XOR ECX,ECX
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x38],EDI
JMP 0x0016b0e9
MOV EAX,dword ptr [EBP + -0x3c]
MOV EAX,dword ptr [EAX + ECX*0x4]
MOV EBX,dword ptr [EAX + 0x14]
TEST EBX,EBX
JZ 0x0016b33e
MOV EAX,dword ptr [EBP + -0x38]
XOR EDX,EDX
MOV EDI,dword ptr [EBP + -0x34]
MOV EAX,dword ptr [EAX + ECX*0x4]
ADD ECX,0x1
DIV ESI
MOV EAX,dword ptr [EBP + -0x30]
LEA EAX,[EAX + EDX*0x4]
MOV EDX,dword ptr [EAX]
MOV dword ptr [EDI + EBX*0x4],EDX
MOV dword ptr [EAX],EBX
CMP ECX,dword ptr [EBP + -0x2c]
JNZ 0x0016b0d8
MOV EAX,dword ptr [EBP + -0x40]
LEA EDI,[EAX + 0x2f0]
MOV EAX,dword ptr [EDI]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0016b3b0
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EBP + -0x2c]
SUB ESP,0xc
MOV EBX,dword ptr [EAX + 0x5c]
MOV EAX,dword ptr [EBP + 0xc]
LEA EAX,[EAX + EDX*0x1 + 0x2]
MOV dword ptr [EBP + -0x3c],EBX
ADD ESI,EAX
IMUL ESI,EBX
MOV EBX,dword ptr [EBP + -0x40]
SHR ESI,0x3
PUSH ESI
MOV dword ptr [EBP + -0x38],ESI
CALL 0x001aa840
MOV EBX,EAX
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0016b3fd
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EBP + -0x3c],0x20
MOVZX EAX,byte ptr [EAX + 0x4]
JZ 0x0016b26e
CMP dword ptr [EBP + -0x3c],0x40
JNZ 0x0016b394
TEST AL,AL
JNZ 0x0016b378
MOV ECX,dword ptr [EBP + -0x30]
MOV EDX,dword ptr [EBP + -0x44]
LEA ESI,[EBX + 0x10]
MOV dword ptr [EBX + 0x4],0x0
MOV EAX,dword ptr [EBP + -0x48]
SUB EAX,dword ptr [EBP + -0x34]
MOV dword ptr [EBX + 0xc],0x0
SUB EDX,ECX
MOV dword ptr [EBP + -0x3c],EAX
SAR EAX,0x2
MOV EDI,EDX
MOV dword ptr [EBP + -0x2c],EAX
SAR EDI,0x2
MOV dword ptr [EBX + 0x8],EAX
MOV EAX,ECX
ADD ECX,EDX
MOV dword ptr [EBX],EDI
MOV EDX,ESI
TEST EDI,EDI
JZ 0x0016b1dc
MOV dword ptr [EBP + -0x44],EBX
NOP
MOV EBX,dword ptr [EAX]
ADD EAX,0x4
MOV dword ptr [EDX + 0x4],0x0
ADD EDX,0x8
MOV dword ptr [EDX + -0x8],EBX
CMP EAX,ECX
JNZ 0x0016b1c0
MOV EBX,dword ptr [EBP + -0x44]
LEA ESI,[ESI + EDI*0x8]
MOV ECX,dword ptr [EBP + -0x2c]
TEST ECX,ECX
JZ 0x0016b20c
MOV EDI,dword ptr [EBP + -0x34]
MOV ECX,dword ptr [EBP + -0x3c]
MOV EDX,ESI
MOV EAX,EDI
ADD ECX,EDI
NOP
MOV EDI,dword ptr [EAX]
ADD EAX,0x4
MOV dword ptr [EDX + 0x4],0x0
ADD EDX,0x8
MOV dword ptr [EDX + -0x8],EDI
CMP ECX,EAX
JNZ 0x0016b1f0
MOV EAX,dword ptr [EBP + -0x2c]
LEA ESI,[ESI + EAX*0x8]
SUB ESI,EBX
CMP dword ptr [EBP + -0x38],ESI
JNZ 0x0016b35c
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EBP + -0x38]
MOV dword ptr [EAX],EBX
MOV EAX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX],EDI
MOV EAX,dword ptr [EBP + -0x34]
TEST EAX,EAX
JZ 0x0016b23a
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
TEST EAX,EAX
JZ 0x0016b250
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x24]
TEST EAX,EAX
JZ 0x0016b266
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST AL,AL
JNZ 0x0016b3d9
MOV EDI,dword ptr [EBP + -0x44]
SUB EDI,dword ptr [EBP + -0x30]
SAR EDI,0x2
MOV EAX,dword ptr [EBP + -0x48]
SUB EAX,dword ptr [EBP + -0x34]
MOV EDX,EDI
MOV EDI,EAX
MOV dword ptr [EBP + -0x3c],EAX
LEA EAX,[EBX + 0x8]
SAR EDI,0x2
MOV dword ptr [EBX],EDX
MOV dword ptr [EBX + 0x4],EDI
TEST EDX,EDX
JZ 0x0016b2c7
LEA ESI,[EDX*0x4 + 0x8]
MOV dword ptr [EBP + -0x44],EBX
MOV ECX,dword ptr [EBP + -0x30]
LEA EDX,[EBX + ESI*0x1]
MOV dword ptr [EBP + -0x2c],EDX
MOV EDX,EAX
MOV EBX,dword ptr [ECX]
ADD EDX,0x4
ADD ECX,0x4
MOV dword ptr [EDX + -0x4],EBX
CMP dword ptr [EBP + -0x2c],EDX
JNZ 0x0016b2b0
MOV EBX,dword ptr [EBP + -0x44]
LEA EAX,[EAX + ESI*0x1 + -0x8]
TEST EDI,EDI
JZ 0x0016b2e9
MOV ESI,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBP + -0x34]
ADD ESI,EAX
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [EDX]
ADD EAX,0x4
ADD EDX,0x4
MOV dword ptr [EAX + -0x4],ECX
CMP EAX,ESI
JNZ 0x0016b2d8
MOV EAX,ESI
SUB EAX,EBX
CMP dword ptr [EBP + -0x38],EAX
JZ 0x0016b217
MOV EBX,dword ptr [EBP + -0x40]
PUSH ESI
LEA EAX,[EBX + 0xfff28544]
PUSH EAX
LEA EAX,[EBX + 0xfff27f51]
PUSH 0x40e
PUSH EAX
CALL 0x0008b620
MOV dword ptr [EBP + -0x34],0x0
MOV dword ptr [EBP + -0x48],0x0
JMP 0x0016b0ad
MOV dword ptr [EBP + -0x30],0x0
MOV dword ptr [EBP + -0x44],0x0
JMP 0x0016b064
MOV dword ptr [EBP + -0x1c],ESI
JMP 0x0016b00a
MOV EBX,dword ptr [EBP + -0x40]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff28568]
PUSH EAX
LEA EAX,[EBX + 0xfff0c3e0]
PUSH 0x19a
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDX
LEA EAX,[EBX + 0xfff28528]
PUSH EAX
LEA EAX,[EBX + 0xfff27f51]
PUSH 0x40e
PUSH EAX
CALL 0x0008b620
PUSH EBX
MOV EBX,dword ptr [EBP + -0x40]
LEA EAX,[EBX + 0xfff28578]
PUSH EAX
LEA EAX,[EBX + 0xfff27f51]
PUSH 0x3db
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
LEA EAX,[EBX + 0xfff28578]
PUSH EAX
LEA EAX,[EBX + 0xfff27f51]
PUSH 0x3e9
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
LEA EAX,[EBX + 0xfff28560]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x69
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x40]
CALL 0x001f1cb0
MOV EBX,dword ptr [EBP + -0x40]
CALL 0x001f1cb0
MOV EBX,dword ptr [EBP + -0x40]
PUSH EDI
LEA EAX,[EBX + 0xfff28578]
PUSH EAX
LEA EAX,[EBX + 0xfff27f51]
PUSH 0x3c6
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x40]
CALL 0x001f1cb0
MOV EBX,dword ptr [EBP + -0x40]
PUSH EAX
LEA EAX,[EBX + 0xfff28560]
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x69
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}\n\n" comment (function_definition "void FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" primitive_type (function_declarator "FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_28 = (uint *)0x0;" (assignment_expression "local_28 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar16 = param_1[1] - *param_1;" (assignment_expression "iVar16 = param_1[1] - *param_1" identifier = (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) - (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_24 = (uint *)0x0;" (assignment_expression "local_24 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = iVar16 >> 2;" (assignment_expression "uVar5 = iVar16 >> 2" identifier = (binary_expression "iVar16 >> 2" identifier >> number_literal)) ;) (expression_statement "iVar9 = iVar16;" (assignment_expression "iVar9 = iVar16" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" { (if_statement "if (0x3fffffff < uVar5) {\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar5)" ( (binary_expression "0x3fffffff < uVar5" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_001f1cb0();\n    }" { comment (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_28 = (uint *)FUN_001aa8c0(iVar16);" (assignment_expression "local_28 = (uint *)FUN_001aa8c0(iVar16)" identifier = (cast_expression "(uint *)FUN_001aa8c0(iVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);" do (compound_statement "{\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    }" { (expression_statement "local_28[uVar13] = 0;" (assignment_expression "local_28[uVar13] = 0" (subscript_expression "local_28[uVar13]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != uVar13)" ( (binary_expression "uVar5 != uVar13" identifier != identifier) )) ;) (expression_statement "local_24 = local_28 + uVar5;" (assignment_expression "local_24 = local_28 + uVar5" identifier = (binary_expression "local_28 + uVar5" identifier + identifier)) ;) (expression_statement "puVar17 = (undefined4 *)*param_1;" (assignment_expression "puVar17 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar20 = puVar17 + uVar5;" (assignment_expression "puVar20 = puVar17 + uVar5" identifier = (binary_expression "puVar17 + uVar5" identifier + identifier)) ;) (expression_statement "puVar6 = local_28;" (assignment_expression "puVar6 = local_28" identifier = identifier) ;) (do_statement "do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);" do (compound_statement "{\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    }" { (expression_statement "pbVar15 = *(byte **)*puVar17;" (assignment_expression "pbVar15 = *(byte **)*puVar17" identifier = (pointer_expression "*(byte **)*puVar17" * (cast_expression "(byte **)*puVar17" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar17" * identifier)))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (while_statement "while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar15, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar15, bVar1 != 0" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" { (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 * 0x10 + (uint)bVar1;" (assignment_expression "uVar13 = uVar13 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar13 * 0x10 + (uint)bVar1" (binary_expression "uVar13 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar13 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar13 & 0xf0000000) == 0)" ( (binary_expression "(uVar13 & 0xf0000000) == 0" (parenthesized_expression "(uVar13 & 0xf0000000)" ( (binary_expression "uVar13 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;" (assignment_expression "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" (binary_expression "uVar13 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar13 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar13 & 0xf0000000)" ( (binary_expression "uVar13 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0016aff8;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0016aff8;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0016aff8:\n      puVar17 = puVar17 + 1;" statement_identifier : (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;)) (expression_statement "*puVar6 = uVar13;" (assignment_expression "*puVar6 = uVar13" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar16 + (int)local_28;" (assignment_expression "iVar9 = iVar16 + (int)local_28" identifier = (binary_expression "iVar16 + (int)local_28" identifier + (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(puVar17 != puVar20)" ( (binary_expression "puVar17 != puVar20" identifier != identifier) )) ;) })) (expression_statement "local_20 = iVar9;" (assignment_expression "local_20 = iVar9" identifier = identifier) ;) comment (expression_statement "uVar13 = FUN_0016ae10(&local_28,0);" (assignment_expression "uVar13 = FUN_0016ae10(&local_28,0)" identifier = (call_expression "FUN_0016ae10(&local_28,0)" identifier (argument_list "(&local_28,0)" ( (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }" { (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" { (if_statement "if (0x3fffffff < uVar13) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar13)" ( (binary_expression "0x3fffffff < uVar13" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      FUN_001f1cb0();\n    }" { comment comment (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_34 = (int *)FUN_001aa8c0(uVar13 * 4);" (assignment_expression "local_34 = (int *)FUN_001aa8c0(uVar13 * 4)" identifier = (cast_expression "(int *)FUN_001aa8c0(uVar13 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(uVar13 * 4)" identifier (argument_list "(uVar13 * 4)" ( (binary_expression "uVar13 * 4" identifier * number_literal) ))))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);" do (compound_statement "{\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    }" { (expression_statement "local_34[uVar7] = 0;" (assignment_expression "local_34[uVar7] = 0" (subscript_expression "local_34[uVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 != uVar7)" ( (binary_expression "uVar13 != uVar7" identifier != identifier) )) ;) (expression_statement "local_48 = local_34 + uVar13;" (assignment_expression "local_48 = local_34 + uVar13" identifier = (binary_expression "local_34 + uVar13" identifier + identifier)) ;) }))) (expression_statement "uVar7 = uVar5 + param_2;" (assignment_expression "uVar7 = uVar5 + param_2" identifier = (binary_expression "uVar5 + param_2" identifier + identifier)) ;) (if_statement "if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }" { (expression_statement "local_38 = (int *)0x0;" (assignment_expression "local_38 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" { (if_statement "if (0x3fffffff < uVar7) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar7)" ( (binary_expression "0x3fffffff < uVar7" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      FUN_001f1cb0();\n    }" { comment comment (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "local_38 = (int *)FUN_001aa8c0(uVar7 * 4);" (assignment_expression "local_38 = (int *)FUN_001aa8c0(uVar7 * 4)" identifier = (cast_expression "(int *)FUN_001aa8c0(uVar7 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(uVar7 * 4)" identifier (argument_list "(uVar7 * 4)" ( (binary_expression "uVar7 * 4" identifier * number_literal) ))))) ;) (expression_statement "local_4c = local_38 + uVar7;" (assignment_expression "local_4c = local_38 + uVar7" identifier = (binary_expression "local_38 + uVar7" identifier + identifier)) ;) (expression_statement "piVar8 = local_38;" (assignment_expression "piVar8 = local_38" identifier = identifier) ;) (do_statement "do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);" do (compound_statement "{\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != local_4c)" ( (binary_expression "piVar8 != local_4c" identifier != identifier) )) ;) }))) (if_statement "if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" { (labeled_statement "LAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" statement_identifier : (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" { comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) }))) (expression_statement "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);" (assignment_expression "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" identifier = (cast_expression "(int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" ( (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3" (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9" (parenthesized_expression "(uVar13 + param_2 + 2 + uVar5)" ( (binary_expression "uVar13 + param_2 + 2 + uVar5" (binary_expression "uVar13 + param_2 + 2" (binary_expression "uVar13 + param_2" identifier + identifier) + number_literal) + identifier) )) * identifier) >> number_literal) )))) ;) comment (expression_statement "piVar8 = (int *)FUN_001aa840(piVar18);" (assignment_expression "piVar8 = (int *)FUN_001aa840(piVar18)" identifier = (cast_expression "(int *)FUN_001aa840(piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa840(piVar18)" identifier (argument_list "(piVar18)" ( identifier ))))) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" { comment comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);" (assignment_expression "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }" { (if_statement "if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" { comment comment (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" identifier (argument_list "("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , (pointer_expression "&DAT_0033f2f0" & identifier) ))) ;) })) (expression_statement "iVar9 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar9 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar11 = piVar8 + 2;" (assignment_expression "piVar11 = piVar8 + 2" identifier = (binary_expression "piVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar16 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar16 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "*piVar8 = iVar9;" (assignment_expression "*piVar8 = iVar9" (pointer_expression "*piVar8" * identifier) = identifier) ;) (expression_statement "piVar8[1] = iVar16;" (assignment_expression "piVar8[1] = iVar16" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10 = piVar18;" (assignment_expression "piVar10 = piVar18" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" { (expression_statement "piVar10 = (int *)(iVar9 * 4 + 8);" (assignment_expression "piVar10 = (int *)(iVar9 * 4 + 8)" identifier = (cast_expression "(int *)(iVar9 * 4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 * 4 + 8)" ( (binary_expression "iVar9 * 4 + 8" (binary_expression "iVar9 * 4" identifier * number_literal) + number_literal) )))) ;) (expression_statement "piVar19 = local_34;" (assignment_expression "piVar19 = local_34" identifier = identifier) ;) (do_statement "do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);" do (compound_statement "{\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar14 = piVar11 + 1;" (assignment_expression "piVar14 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar4;" (assignment_expression "*piVar11 = iVar4" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar14;" (assignment_expression "piVar11 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 + iVar9 + 2 != piVar14)" ( (binary_expression "piVar8 + iVar9 + 2 != piVar14" (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "piVar11 = piVar8 + iVar9 + 2;" (assignment_expression "piVar11 = piVar8 + iVar9 + 2" identifier = (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" identifier + identifier) + number_literal)) ;) })) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (if_statement "if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" { (expression_statement "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);" (assignment_expression "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11)" identifier = (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)piVar11)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)piVar11" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar14 = local_38;" (assignment_expression "piVar14 = local_38" identifier = identifier) ;) (do_statement "do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);" do (compound_statement "{\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        }" { (expression_statement "iVar9 = *piVar14;" (assignment_expression "iVar9 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "piVar12 = piVar11 + 1;" (assignment_expression "piVar12 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar9;" (assignment_expression "*piVar11 = iVar9" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) (expression_statement "piVar10 = piVar19;" (assignment_expression "piVar10 = piVar19" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != piVar19)" ( (binary_expression "piVar12 != piVar19" identifier != identifier) )) ;) })) (if_statement "if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" if (parenthesized_expression "(piVar18 != (int *)((int)piVar19 - (int)piVar8))" ( (binary_expression "piVar18 != (int *)((int)piVar19 - (int)piVar8)" identifier != (cast_expression "(int *)((int)piVar19 - (int)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 - (int)piVar8)" ( (binary_expression "(int)piVar19 - (int)piVar8" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") , identifier ))) ;) })) }) (else_clause "else {\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" else (compound_statement "{\n      if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" { (if_statement "if (iVar9 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" if (parenthesized_expression "(iVar9 != 0x40)" ( (binary_expression "iVar9 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" identifier (argument_list "("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , identifier ))) ;) })) (if_statement "if (cVar2 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" identifier (argument_list "("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar11 = piVar8 + 4;" (assignment_expression "piVar11 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar9 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar16 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar16 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar8[2] = iVar9;" (assignment_expression "piVar8[2] = iVar9" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar8 = iVar16;" (assignment_expression "*piVar8 = iVar16" (pointer_expression "*piVar8" * identifier) = identifier) ;) (expression_statement "piVar10 = local_34;" (assignment_expression "piVar10 = local_34" identifier = identifier) ;) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (expression_statement "piVar14 = piVar11;" (assignment_expression "piVar14 = piVar11" identifier = identifier) ;) (if_statement "if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" { (do_statement "do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));" do (compound_statement "{\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        }" { (expression_statement "iVar4 = *piVar10;" (assignment_expression "iVar4 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)))" ( (binary_expression "piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34))" identifier != (cast_expression "(int *)((int)local_34 + ((int)local_48 - (int)local_34))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + ((int)local_48 - (int)local_34))" ( (binary_expression "(int)local_34 + ((int)local_48 - (int)local_34)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_48 - (int)local_34)" ( (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (expression_statement "piVar11 = piVar11 + iVar16 * 2;" (assignment_expression "piVar11 = piVar11 + iVar16 * 2" identifier = (binary_expression "piVar11 + iVar16 * 2" identifier + (binary_expression "iVar16 * 2" identifier * number_literal))) ;) })) (if_statement "if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" { (expression_statement "piVar10 = local_38;" (assignment_expression "piVar10 = local_38" identifier = identifier) ;) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (do_statement "do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);" do (compound_statement "{\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        }" { (expression_statement "iVar16 = *piVar10;" (assignment_expression "iVar16 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar19 = iVar16;" (assignment_expression "*piVar19 = iVar16" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10)" ( (binary_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10" (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)local_38)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)local_38" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) != identifier) )) ;) (expression_statement "piVar11 = piVar11 + iVar9 * 2;" (assignment_expression "piVar11 = piVar11 + iVar9 * 2" identifier = (binary_expression "piVar11 + iVar9 * 2" identifier + (binary_expression "iVar9 * 2" identifier * number_literal))) ;) })) (if_statement "if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" if (parenthesized_expression "(piVar18 != (int *)((int)piVar11 - (int)piVar8))" ( (binary_expression "piVar18 != (int *)((int)piVar11 - (int)piVar8)" identifier != (cast_expression "(int *)((int)piVar11 - (int)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 - (int)piVar8)" ( (binary_expression "(int)piVar11 - (int)piVar8" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") , identifier ))) ;) })) }))) (expression_statement "*param_3 = (int)piVar8;" (assignment_expression "*param_3 = (int)piVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_4 = piVar18;" (assignment_expression "*param_4 = piVar18" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }" if (parenthesized_expression "(local_38 != (int *)0x0)" ( (binary_expression "local_38 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_38);\n    }" { (expression_statement "FUN_001ac470(local_38);" (call_expression "FUN_001ac470(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) })) (if_statement "if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }" if (parenthesized_expression "(local_34 != (int *)0x0)" ( (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_34);\n    }" { (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (if_statement "if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }" if (parenthesized_expression "(local_28 != (uint *)0x0)" ( (binary_expression "local_28 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_28);\n    }" { (expression_statement "FUN_001ac470(local_28);" (call_expression "FUN_001ac470(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar9 = *(int *)(*param_1 + 0x14);" (assignment_expression "iVar9 = *(int *)(*param_1 + 0x14)" identifier = (pointer_expression "*(int *)(*param_1 + 0x14)" * (cast_expression "(int *)(*param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x14)" ( (binary_expression "*param_1 + 0x14" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);" do (compound_statement "{\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    }" { (expression_statement "uVar3 = local_28[uVar7];" (assignment_expression "uVar3 = local_28[uVar7]" identifier = (subscript_expression "local_28[uVar7]" identifier [ identifier ])) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "local_38[iVar9] = local_34[uVar3 % uVar13];" (assignment_expression "local_38[iVar9] = local_34[uVar3 % uVar13]" (subscript_expression "local_38[iVar9]" identifier [ identifier ]) = (subscript_expression "local_34[uVar3 % uVar13]" identifier [ (binary_expression "uVar3 % uVar13" identifier % identifier) ])) ;) (expression_statement "local_34[uVar3 % uVar13] = iVar9;" (assignment_expression "local_34[uVar3 % uVar13] = iVar9" (subscript_expression "local_34[uVar3 % uVar13]" identifier [ (binary_expression "uVar3 % uVar13" identifier % identifier) ]) = identifier) ;) (if_statement "if (uVar7 == uVar5) goto LAB_0016b10b;" if (parenthesized_expression "(uVar7 == uVar5)" ( (binary_expression "uVar7 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_0016b10b;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(param_1[uVar7] + 0x14);" (assignment_expression "iVar9 = *(int *)(param_1[uVar7] + 0x14)" identifier = (pointer_expression "*(int *)(param_1[uVar7] + 0x14)" * (cast_expression "(int *)(param_1[uVar7] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[uVar7] + 0x14)" ( (binary_expression "param_1[uVar7] + 0x14" (subscript_expression "param_1[uVar7]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) })) comment (expression_statement "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n\nvoid gold::Dynobj::create_elf_hash_table\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynsyms,uint param_2,\n               uchar **pphash,uint *phashlen)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  int iVar4;\n  pointer puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  int *piVar15;\n  byte *pbVar16;\n  pointer puVar17;\n  pointer ppSVar18;\n  int *piVar19;\n  pointer ppSVar20;\n  int iVar21;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  vector<unsigned_int,_std::allocator<unsigned_int>_> dynsym_hashvals;\n  \n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start =\n       (pointer)0x0;\n  puVar17 = (pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start);\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_finish\n       = (pointer)0x0;\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  uVar6 = (int)puVar17 >> 2;\n  puVar5 = puVar17;\n  if (uVar6 != 0) {\n    if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);\n    uVar14 = 0;\n    do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;\n    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;\n    ppSVar20 = ppSVar18 + uVar6;\n    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n             ._M_start;\n    do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);\n  }\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = puVar5;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar14 = compute_bucket_count(&dynsym_hashvals,false);\n  if (uVar14 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }\n  uVar8 = uVar6 + param_2;\n  if (uVar8 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }\n  if (uVar6 == 0) {\nLAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar10 = parameters->target_->pti_->hash_entry_size;\n    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar9 = (int *)operator_new__(uVar6);\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    bVar2 = parameters->target_->pti_->is_big_endian;\n    if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    *pphash = (uchar *)piVar9;\n    *phashlen = uVar6;\n    if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }\n    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }\n    return;\n  }\n  ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  uVar8 = (*ppSVar18)->dynsym_index_;\n  if (uVar8 != 0) {\n    uVar13 = 0;\n    do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n}\n\n" comment comment comment (function_definition "void gold::Dynobj::create_elf_hash_table\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynsyms,uint param_2,\n               uchar **pphash,uint *phashlen)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  int iVar4;\n  pointer puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  int *piVar15;\n  byte *pbVar16;\n  pointer puVar17;\n  pointer ppSVar18;\n  int *piVar19;\n  pointer ppSVar20;\n  int iVar21;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  vector<unsigned_int,_std::allocator<unsigned_int>_> dynsym_hashvals;\n  \n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start =\n       (pointer)0x0;\n  puVar17 = (pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start);\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_finish\n       = (pointer)0x0;\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  uVar6 = (int)puVar17 >> 2;\n  puVar5 = puVar17;\n  if (uVar6 != 0) {\n    if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);\n    uVar14 = 0;\n    do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;\n    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;\n    ppSVar20 = ppSVar18 + uVar6;\n    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n             ._M_start;\n    do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);\n  }\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = puVar5;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar14 = compute_bucket_count(&dynsym_hashvals,false);\n  if (uVar14 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }\n  uVar8 = uVar6 + param_2;\n  if (uVar8 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }\n  if (uVar6 == 0) {\nLAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar10 = parameters->target_->pti_->hash_entry_size;\n    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar9 = (int *)operator_new__(uVar6);\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    bVar2 = parameters->target_->pti_->is_big_endian;\n    if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    *pphash = (uchar *)piVar9;\n    *phashlen = uVar6;\n    if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }\n    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }\n    return;\n  }\n  ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  uVar8 = (*ppSVar18)->dynsym_index_;\n  if (uVar8 != 0) {\n    uVar13 = 0;\n    do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n}" primitive_type (ERROR "gold::Dynobj::" identifier : : identifier : :) (function_declarator "create_elf_hash_table\n               (vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynsyms,uint param_2,\n               uchar **pphash,uint *phashlen)" identifier (parameter_list "(vector<gold::Symbol*,_std::allocator<gold::Symbol*>_> *dynsyms,uint param_2,\n               uchar **pphash,uint *phashlen)" ( (parameter_declaration "vector<gold::Symbol*" type_identifier (ERROR "<gold::Symbol" < identifier : : identifier) (abstract_pointer_declarator "*" *)) , (parameter_declaration "_std::allocator<gold::Symbol*>_> *dynsyms" type_identifier (ERROR "::allocator<gold::Symbol*>_>" : : identifier < identifier : : identifier * > identifier >) (pointer_declarator "*dynsyms" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uchar **pphash" type_identifier (pointer_declarator "**pphash" * (pointer_declarator "*pphash" * identifier))) , (parameter_declaration "uint *phashlen" type_identifier (pointer_declarator "*phashlen" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  int iVar4;\n  pointer puVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint uVar8;\n  int *piVar9;\n  int iVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  uint uVar14;\n  int *piVar15;\n  byte *pbVar16;\n  pointer puVar17;\n  pointer ppSVar18;\n  int *piVar19;\n  pointer ppSVar20;\n  int iVar21;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  vector<unsigned_int,_std::allocator<unsigned_int>_> dynsym_hashvals;\n  \n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start =\n       (pointer)0x0;\n  puVar17 = (pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start);\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_finish\n       = (pointer)0x0;\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;\n  uVar6 = (int)puVar17 >> 2;\n  puVar5 = puVar17;\n  if (uVar6 != 0) {\n    if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);\n    uVar14 = 0;\n    do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;\n    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;\n    ppSVar20 = ppSVar18 + uVar6;\n    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n             ._M_start;\n    do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);\n  }\n  dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = puVar5;\n                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */\n  uVar14 = compute_bucket_count(&dynsym_hashvals,false);\n  if (uVar14 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }\n  uVar8 = uVar6 + param_2;\n  if (uVar8 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }\n  if (uVar6 == 0) {\nLAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar10 = parameters->target_->pti_->hash_entry_size;\n    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar9 = (int *)operator_new__(uVar6);\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    bVar2 = parameters->target_->pti_->is_big_endian;\n    if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    *pphash = (uchar *)piVar9;\n    *phashlen = uVar6;\n    if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }\n    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }\n    return;\n  }\n  ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;\n  uVar8 = (*ppSVar18)->dynsym_index_;\n  if (uVar8 != 0) {\n    uVar13 = 0;\n    do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "pointer puVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "pointer puVar17;" type_identifier identifier ;) (declaration "pointer ppSVar18;" type_identifier identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "pointer ppSVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (ERROR "vector<unsigned_int,_std::" (comma_expression "vector<unsigned_int,_std" (binary_expression "vector<unsigned_int" identifier < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_> dynsym_hashvals;" (binary_expression "allocator<unsigned_int>_> dynsym_hashvals" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) ;) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl._M_start =\n       (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl._M_start =\n       (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl._M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "puVar17 = (pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start);" (assignment_expression "puVar17 = (pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start)" identifier = (call_expression "(pointer)((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start)" ( (binary_expression "(int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish -\n                     (int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start" (cast_expression "(int)(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish" ( (type_descriptor "int" primitive_type) ) (field_expression "(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl._M_finish" (field_expression "(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>).\n                           _M_impl" (parenthesized_expression "(dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "dynsyms->\n                           super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "dynsyms->\n                           super__Vector_base<gold::Symbol*,_std" (binary_expression "dynsyms->\n                           super__Vector_base<gold" (field_expression "dynsyms->\n                           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(int)(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start" ( (type_descriptor "int" primitive_type) ) (field_expression "(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl\n                          ._M_start" (field_expression "(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (binary_expression "dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>" (binary_expression "dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "dynsyms->\n                          super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "dynsyms->\n                          super__Vector_base<gold::Symbol*,_std" (binary_expression "dynsyms->\n                          super__Vector_base<gold" (field_expression "dynsyms->\n                          super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier))) )))) ;) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl._M_finish\n       = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl._M_finish\n       = (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl._M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "uVar6 = (int)puVar17 >> 2;" (assignment_expression "uVar6 = (int)puVar17 >> 2" identifier = (binary_expression "(int)puVar17 >> 2" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar5 = puVar17;" (assignment_expression "puVar5 = puVar17" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n    if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);\n    uVar14 = 0;\n    do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;\n    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;\n    ppSVar20 = ppSVar18 + uVar6;\n    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n             ._M_start;\n    do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);\n    uVar14 = 0;\n    do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);\n    dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;\n    ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;\n    ppSVar20 = ppSVar18 + uVar6;\n    puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n             ._M_start;\n    do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);\n  }" { (if_statement "if (0x3fffffff < uVar6) {\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }" if (parenthesized_expression "(0x3fffffff < uVar6)" ( (binary_expression "0x3fffffff < uVar6" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      std::__throw_bad_alloc();\n    }" { comment (labeled_statement "std::__throw_bad_alloc();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_alloc();" (call_expression "__throw_bad_alloc()" identifier (argument_list "()" ( ))) ;)) })) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17);" (assignment_expression "allocator<unsigned_int>_>._M_impl._M_start\n         = (pointer)operator_new((uint)puVar17)" (field_expression "allocator<unsigned_int>_>._M_impl._M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)operator_new((uint)puVar17)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new((uint)puVar17)" identifier (argument_list "((uint)puVar17)" ( (cast_expression "(uint)puVar17" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    } while (uVar6 != uVar14);" do (compound_statement "{\n      dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;\n      uVar14 = uVar14 + 1;\n    }" { (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14] = 0" (subscript_expression "allocator<unsigned_int>_>._M_impl.\n      _M_start[uVar14]" (field_expression "allocator<unsigned_int>_>._M_impl.\n      _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 != uVar14)" ( (binary_expression "uVar6 != uVar14" identifier != identifier) )) ;) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : : (comma_expression "allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int,_std" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n    _M_finish = dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "allocator<unsigned_int>_>._M_impl.\n    _M_finish" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6;" (binary_expression "allocator<unsigned_int>_>.\n                _M_impl._M_start + uVar6" (field_expression "allocator<unsigned_int>_>.\n                _M_impl._M_start" (field_expression "allocator<unsigned_int>_>.\n                _M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + identifier) ;) (expression_statement "ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start;" (assignment_expression "ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start" identifier = (field_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n               _M_start" (field_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "dynsyms->super__Vector_base<gold::Symbol*,_std" (binary_expression "dynsyms->super__Vector_base<gold::Symbol*" (binary_expression "dynsyms->super__Vector_base<gold" (field_expression "dynsyms->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "ppSVar20 = ppSVar18 + uVar6;" (assignment_expression "ppSVar20 = ppSVar18 + uVar6" identifier = (binary_expression "ppSVar18 + uVar6" identifier + identifier)) ;) (ERROR "puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int,_std" (assignment_expression "puVar7 = dynsym_hashvals.super__Vector_base<unsigned_int" identifier = (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl\n             ._M_start;" (field_expression "allocator<unsigned_int>_>._M_impl\n             ._M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (do_statement "do {\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    } while (ppSVar18 != ppSVar20);" do (compound_statement "{\n      pbVar16 = (byte *)(*ppSVar18)->name_;\n      uVar14 = 0;\n      while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;\n      *puVar7 = uVar14;\n      puVar7 = puVar7 + 1;\n      puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);\n    }" { (expression_statement "pbVar16 = (byte *)(*ppSVar18)->name_;" (assignment_expression "pbVar16 = (byte *)(*ppSVar18)->name_" identifier = (cast_expression "(byte *)(*ppSVar18)->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*ppSVar18)->name_" (parenthesized_expression "(*ppSVar18)" ( (pointer_expression "*ppSVar18" * identifier) )) -> field_identifier))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (while_statement "while (bVar1 = *pbVar16, bVar1 != 0) {\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar16, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar16, bVar1 != 0" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar16 = pbVar16 + 1;\n          uVar14 = uVar14 * 0x10 + (uint)bVar1;\n          if ((uVar14 & 0xf0000000) == 0) break;\n          uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar16;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" { (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = uVar14 * 0x10 + (uint)bVar1;" (assignment_expression "uVar14 = uVar14 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar14 * 0x10 + (uint)bVar1" (binary_expression "uVar14 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar14 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar14 & 0xf0000000) == 0)" ( (binary_expression "(uVar14 & 0xf0000000) == 0" (parenthesized_expression "(uVar14 & 0xf0000000)" ( (binary_expression "uVar14 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18;" (assignment_expression "uVar14 = uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar14 & 0xfffffff ^ (uVar14 & 0xf0000000) >> 0x18" (binary_expression "uVar14 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar14 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar14 & 0xf0000000)" ( (binary_expression "uVar14 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar16;" (assignment_expression "bVar1 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0016aff8;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0016aff8;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0016aff8:\n      ppSVar18 = ppSVar18 + 1;" statement_identifier : (expression_statement "ppSVar18 = ppSVar18 + 1;" (assignment_expression "ppSVar18 = ppSVar18 + 1" identifier = (binary_expression "ppSVar18 + 1" identifier + number_literal)) ;)) (expression_statement "*puVar7 = uVar14;" (assignment_expression "*puVar7 = uVar14" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start);" (assignment_expression "puVar5 = (pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start)" identifier = (call_expression "(pointer)((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl\n                             ._M_start)" ( (binary_expression "(int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base<unsigned_int" (binary_expression "(int)puVar17 +\n                        (int)dynsym_hashvals.\n                             super__Vector_base" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)dynsym_hashvals.\n                             super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "dynsym_hashvals.\n                             super__Vector_base" identifier . field_identifier))) < identifier) , (ERROR "_std::" identifier : :) (field_expression "allocator<unsigned_int>_>._M_impl\n                             ._M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )))) ;) }) while (parenthesized_expression "(ppSVar18 != ppSVar20)" ( (binary_expression "ppSVar18 != ppSVar20" identifier != identifier) )) ;) })) (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (expression_statement "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = puVar5;" (assignment_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage = puVar5" (field_expression "allocator<unsigned_int>_>._M_impl.\n  _M_end_of_storage" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) comment (expression_statement "uVar14 = compute_bucket_count(&dynsym_hashvals,false);" (assignment_expression "uVar14 = compute_bucket_count(&dynsym_hashvals,false)" identifier = (call_expression "compute_bucket_count(&dynsym_hashvals,false)" identifier (argument_list "(&dynsym_hashvals,false)" ( (pointer_expression "&dynsym_hashvals" & identifier) , false )))) ;) (if_statement "if (uVar14 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }" { (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }\n    local_34 = (int *)operator_new(uVar14 * 4);\n    uVar8 = 0;\n    do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);\n    local_48 = local_34 + uVar14;\n  }" { (if_statement "if (0x3fffffff < uVar14) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }" if (parenthesized_expression "(0x3fffffff < uVar14)" ( (binary_expression "0x3fffffff < uVar14" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */\n      std::__throw_bad_alloc();\n    }" { comment comment (labeled_statement "std::__throw_bad_alloc();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_alloc();" (call_expression "__throw_bad_alloc()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "local_34 = (int *)operator_new(uVar14 * 4);" (assignment_expression "local_34 = (int *)operator_new(uVar14 * 4)" identifier = (cast_expression "(int *)operator_new(uVar14 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(uVar14 * 4)" identifier (argument_list "(uVar14 * 4)" ( (binary_expression "uVar14 * 4" identifier * number_literal) ))))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    } while (uVar14 != uVar8);" do (compound_statement "{\n      local_34[uVar8] = 0;\n      uVar8 = uVar8 + 1;\n    }" { (expression_statement "local_34[uVar8] = 0;" (assignment_expression "local_34[uVar8] = 0" (subscript_expression "local_34[uVar8]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != uVar8)" ( (binary_expression "uVar14 != uVar8" identifier != identifier) )) ;) (expression_statement "local_48 = local_34 + uVar14;" (assignment_expression "local_48 = local_34 + uVar14" identifier = (binary_expression "local_34 + uVar14" identifier + identifier)) ;) }))) (expression_statement "uVar8 = uVar6 + param_2;" (assignment_expression "uVar8 = uVar6 + param_2" identifier = (binary_expression "uVar6 + param_2" identifier + identifier)) ;) (if_statement "if (uVar8 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }" { (expression_statement "local_38 = (int *)0x0;" (assignment_expression "local_38 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }\n                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */\n    local_38 = (int *)operator_new(uVar8 * 4);\n    local_4c = local_38 + uVar8;\n    piVar9 = local_38;\n    do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);\n  }" { (if_statement "if (0x3fffffff < uVar8) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }" if (parenthesized_expression "(0x3fffffff < uVar8)" ( (binary_expression "0x3fffffff < uVar8" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */\n      std::__throw_bad_alloc();\n    }" { comment comment (labeled_statement "std::__throw_bad_alloc();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_alloc();" (call_expression "__throw_bad_alloc()" identifier (argument_list "()" ( ))) ;)) })) comment (expression_statement "local_38 = (int *)operator_new(uVar8 * 4);" (assignment_expression "local_38 = (int *)operator_new(uVar8 * 4)" identifier = (cast_expression "(int *)operator_new(uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(uVar8 * 4)" identifier (argument_list "(uVar8 * 4)" ( (binary_expression "uVar8 * 4" identifier * number_literal) ))))) ;) (expression_statement "local_4c = local_38 + uVar8;" (assignment_expression "local_4c = local_38 + uVar8" identifier = (binary_expression "local_38 + uVar8" identifier + identifier)) ;) (expression_statement "piVar9 = local_38;" (assignment_expression "piVar9 = local_38" identifier = identifier) ;) (do_statement "do {\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    } while (piVar9 != local_4c);" do (compound_statement "{\n      *piVar9 = 0;\n      piVar9 = piVar9 + 1;\n    }" { (expression_statement "*piVar9 = 0;" (assignment_expression "*piVar9 = 0" (pointer_expression "*piVar9" * identifier) = number_literal) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 != local_4c)" ( (binary_expression "piVar9 != local_4c" identifier != identifier) )) ;) }))) (if_statement "if (uVar6 == 0) {\nLAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar10 = parameters->target_->pti_->hash_entry_size;\n    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar9 = (int *)operator_new__(uVar6);\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    bVar2 = parameters->target_->pti_->is_big_endian;\n    if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    *pphash = (uchar *)piVar9;\n    *phashlen = uVar6;\n    if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }\n    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    iVar10 = parameters->target_->pti_->hash_entry_size;\n    uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;\n                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */\n    piVar9 = (int *)operator_new__(uVar6);\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }\n    bVar2 = parameters->target_->pti_->is_big_endian;\n    if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    *pphash = (uchar *)piVar9;\n    *phashlen = uVar6;\n    if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }\n    if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }\n    return;\n  }" { (labeled_statement "LAB_0016b10b:\n    if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" statement_identifier : (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) }))) (expression_statement "iVar10 = parameters->target_->pti_->hash_entry_size;" (assignment_expression "iVar10 = parameters->target_->pti_->hash_entry_size" identifier = (field_expression "parameters->target_->pti_->hash_entry_size" (field_expression "parameters->target_->pti_" (field_expression "parameters->target_" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3;" (assignment_expression "uVar6 = (uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3" identifier = (binary_expression "(uVar14 + param_2 + 2 + uVar6) * iVar10 >> 3" (binary_expression "(uVar14 + param_2 + 2 + uVar6) * iVar10" (parenthesized_expression "(uVar14 + param_2 + 2 + uVar6)" ( (binary_expression "uVar14 + param_2 + 2 + uVar6" (binary_expression "uVar14 + param_2 + 2" (binary_expression "uVar14 + param_2" identifier + identifier) + number_literal) + identifier) )) * identifier) >> number_literal)) ;) comment (expression_statement "piVar9 = (int *)operator_new__(uVar6);" (assignment_expression "piVar9 = (int *)operator_new__(uVar6)" identifier = (cast_expression "(int *)operator_new__(uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new__(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))))) ;) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */\n      do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n    }" { comment comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "bVar2 = parameters->target_->pti_->is_big_endian;" (assignment_expression "bVar2 = parameters->target_->pti_->is_big_endian" identifier = (field_expression "parameters->target_->pti_->is_big_endian" (field_expression "parameters->target_->pti_" (field_expression "parameters->target_" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (if_statement "if (iVar10 == 0x20) {\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }\n    else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }" if (parenthesized_expression "(iVar10 == 0x20)" ( (binary_expression "iVar10 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }\n      iVar10 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar9 + 2;\n      iVar21 = (int)local_4c - (int)local_38 >> 2;\n      *piVar9 = iVar10;\n      piVar9[1] = iVar21;\n      if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }\n      if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }" { (if_statement "if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }" if (parenthesized_expression "(bVar2 != false)" ( (binary_expression "bVar2 != false" identifier != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");\n      }" { comment comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table")" identifier (argument_list "("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") ))) ;) })) (expression_statement "iVar10 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar10 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar11 = piVar9 + 2;" (assignment_expression "piVar11 = piVar9 + 2" identifier = (binary_expression "piVar9 + 2" identifier + number_literal)) ;) (expression_statement "iVar21 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar21 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "*piVar9 = iVar10;" (assignment_expression "*piVar9 = iVar10" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "piVar9[1] = iVar21;" (assignment_expression "piVar9[1] = iVar21" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar10 != 0) {\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);\n        piVar11 = piVar9 + iVar10 + 2;\n      }" { (expression_statement "piVar19 = local_34;" (assignment_expression "piVar19 = local_34" identifier = identifier) ;) (do_statement "do {\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        } while (piVar9 + iVar10 + 2 != piVar15);" do (compound_statement "{\n          iVar4 = *piVar19;\n          piVar15 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar15;\n        }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar15 = piVar11 + 1;" (assignment_expression "piVar15 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar4;" (assignment_expression "*piVar11 = iVar4" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar15;" (assignment_expression "piVar11 = piVar15" identifier = identifier) ;) }) while (parenthesized_expression "(piVar9 + iVar10 + 2 != piVar15)" ( (binary_expression "piVar9 + iVar10 + 2 != piVar15" (binary_expression "piVar9 + iVar10 + 2" (binary_expression "piVar9 + iVar10" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "piVar11 = piVar9 + iVar10 + 2;" (assignment_expression "piVar11 = piVar9 + iVar10 + 2" identifier = (binary_expression "piVar9 + iVar10 + 2" (binary_expression "piVar9 + iVar10" identifier + identifier) + number_literal)) ;) })) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (if_statement "if (iVar21 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar15 = local_38;\n        do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);\n      }" { (expression_statement "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);" (assignment_expression "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11)" identifier = (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)piVar11)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)piVar11" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar15 = local_38;" (assignment_expression "piVar15 = local_38" identifier = identifier) ;) (do_statement "do {\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        } while (piVar12 != piVar19);" do (compound_statement "{\n          iVar10 = *piVar15;\n          piVar12 = piVar11 + 1;\n          piVar15 = piVar15 + 1;\n          *piVar11 = iVar10;\n          piVar11 = piVar12;\n        }" { (expression_statement "iVar10 = *piVar15;" (assignment_expression "iVar10 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piVar12 = piVar11 + 1;" (assignment_expression "piVar12 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar10;" (assignment_expression "*piVar11 = iVar10" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != piVar19)" ( (binary_expression "piVar12 != piVar19" identifier != identifier) )) ;) })) (if_statement "if (uVar6 != (int)piVar19 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }" if (parenthesized_expression "(uVar6 != (int)piVar19 - (int)piVar9)" ( (binary_expression "uVar6 != (int)piVar19 - (int)piVar9" identifier != (binary_expression "(int)piVar19 - (int)piVar9" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table")" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") ))) ;) })) }) (else_clause "else {\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }" else (compound_statement "{\n      if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }\n      if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }\n      piVar11 = piVar9 + 4;\n      piVar9[1] = 0;\n      piVar9[3] = 0;\n      iVar10 = (int)local_4c - (int)local_38 >> 2;\n      iVar21 = (int)local_48 - (int)local_34 >> 2;\n      piVar9[2] = iVar10;\n      *piVar9 = iVar21;\n      piVar19 = local_34;\n      piVar15 = piVar11;\n      if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }\n      if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }\n      if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }\n    }" { (if_statement "if (iVar10 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }" if (parenthesized_expression "(iVar10 != 0x40)" ( (binary_expression "iVar10 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table")" identifier (argument_list "("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") ))) ;) })) (if_statement "if (bVar2 != false) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }" if (parenthesized_expression "(bVar2 != false)" ( (binary_expression "bVar2 != false" identifier != false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x3db,"create_elf_hash_table")" identifier (argument_list "("../../gold/dynobj.cc",0x3db,"create_elf_hash_table")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") ))) ;) })) (expression_statement "piVar11 = piVar9 + 4;" (assignment_expression "piVar11 = piVar9 + 4" identifier = (binary_expression "piVar9 + 4" identifier + number_literal)) ;) (expression_statement "piVar9[1] = 0;" (assignment_expression "piVar9[1] = 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar9[3] = 0;" (assignment_expression "piVar9[3] = 0" (subscript_expression "piVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar10 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar21 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar21 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar9[2] = iVar10;" (assignment_expression "piVar9[2] = iVar10" (subscript_expression "piVar9[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar9 = iVar21;" (assignment_expression "*piVar9 = iVar21" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "piVar19 = local_34;" (assignment_expression "piVar19 = local_34" identifier = identifier) ;) (expression_statement "piVar15 = piVar11;" (assignment_expression "piVar15 = piVar11" identifier = identifier) ;) (if_statement "if (iVar21 != 0) {\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar21 * 2;\n      }" { (do_statement "do {\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        } while (piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));" do (compound_statement "{\n          iVar4 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar4;\n          piVar15 = piVar15 + 2;\n        }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar15[1] = 0;" (assignment_expression "piVar15[1] = 0" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar15 = iVar4;" (assignment_expression "*piVar15 = iVar4" (pointer_expression "*piVar15" * identifier) = identifier) ;) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)))" ( (binary_expression "piVar19 != (int *)((int)local_34 + ((int)local_48 - (int)local_34))" identifier != (cast_expression "(int *)((int)local_34 + ((int)local_48 - (int)local_34))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + ((int)local_48 - (int)local_34))" ( (binary_expression "(int)local_34 + ((int)local_48 - (int)local_34)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_48 - (int)local_34)" ( (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (expression_statement "piVar11 = piVar11 + iVar21 * 2;" (assignment_expression "piVar11 = piVar11 + iVar21 * 2" identifier = (binary_expression "piVar11 + iVar21 * 2" identifier + (binary_expression "iVar21 * 2" identifier * number_literal))) ;) })) (if_statement "if (iVar10 != 0) {\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar19 = local_38;\n        piVar15 = piVar11;\n        do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);\n        piVar11 = piVar11 + iVar10 * 2;\n      }" { (expression_statement "piVar19 = local_38;" (assignment_expression "piVar19 = local_38" identifier = identifier) ;) (expression_statement "piVar15 = piVar11;" (assignment_expression "piVar15 = piVar11" identifier = identifier) ;) (do_statement "do {\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19);" do (compound_statement "{\n          iVar21 = *piVar19;\n          piVar19 = piVar19 + 1;\n          piVar15[1] = 0;\n          *piVar15 = iVar21;\n          piVar15 = piVar15 + 2;\n        }" { (expression_statement "iVar21 = *piVar19;" (assignment_expression "iVar21 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar15[1] = 0;" (assignment_expression "piVar15[1] = 0" (subscript_expression "piVar15[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*piVar15 = iVar21;" (assignment_expression "*piVar15 = iVar21" (pointer_expression "*piVar15" * identifier) = identifier) ;) (expression_statement "piVar15 = piVar15 + 2;" (assignment_expression "piVar15 = piVar15 + 2" identifier = (binary_expression "piVar15 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19)" ( (binary_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar19" (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)local_38)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)local_38" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) != identifier) )) ;) (expression_statement "piVar11 = piVar11 + iVar10 * 2;" (assignment_expression "piVar11 = piVar11 + iVar10 * 2" identifier = (binary_expression "piVar11 + iVar10 * 2" identifier + (binary_expression "iVar10 * 2" identifier * number_literal))) ;) })) (if_statement "if (uVar6 != (int)piVar11 - (int)piVar9) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }" if (parenthesized_expression "(uVar6 != (int)piVar11 - (int)piVar9)" ( (binary_expression "uVar6 != (int)piVar11 - (int)piVar9" identifier != (binary_expression "(int)piVar11 - (int)piVar9" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");" (call_expression "do_gold_unreachable("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table")" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table")" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") ))) ;) })) }))) (expression_statement "*pphash = (uchar *)piVar9;" (assignment_expression "*pphash = (uchar *)piVar9" (pointer_expression "*pphash" * identifier) = (cast_expression "(uchar *)piVar9" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*phashlen = uVar6;" (assignment_expression "*phashlen = uVar6" (pointer_expression "*phashlen" * identifier) = identifier) ;) (if_statement "if (local_38 != (int *)0x0) {\n      operator_delete(local_38);\n    }" if (parenthesized_expression "(local_38 != (int *)0x0)" ( (binary_expression "local_38 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete(local_38);\n    }" { (expression_statement "operator_delete(local_38);" (call_expression "operator_delete(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) })) (if_statement "if (local_34 != (int *)0x0) {\n      operator_delete(local_34);\n    }" if (parenthesized_expression "(local_34 != (int *)0x0)" ( (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete(local_34);\n    }" { (expression_statement "operator_delete(local_34);" (call_expression "operator_delete(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (if_statement "if (dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0) {\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }" if (parenthesized_expression "(dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0)" ( (ERROR "dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "dynsym_hashvals.super__Vector_base<unsigned_int,_std" (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>._M_impl.\n        _M_start != (pointer)0x0" (field_expression "allocator<unsigned_int>_>._M_impl.\n        _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n      operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);\n    }" { (expression_statement "operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start);" (call_expression "operator_delete(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start)" identifier (argument_list "(dynsym_hashvals.\n                      super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>._M_impl.\n                      _M_start)" ( (binary_expression "dynsym_hashvals.\n                      super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.\n                      super__Vector_base" identifier . field_identifier) < identifier) , (ERROR "_std::" identifier : :) (field_expression "allocator<unsigned_int>_>._M_impl.\n                      _M_start" (field_expression "allocator<unsigned_int>_>._M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start;" (assignment_expression "ppSVar18 = (dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" identifier = (field_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl.\n             _M_start" (field_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)._M_impl" (parenthesized_expression "(dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>)" ( (ERROR "dynsyms->super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "dynsyms->super__Vector_base<gold::Symbol*,_std" (binary_expression "dynsyms->super__Vector_base<gold::Symbol*" (binary_expression "dynsyms->super__Vector_base<gold" (field_expression "dynsyms->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Symbol*>_>" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar8 = (*ppSVar18)->dynsym_index_;" (assignment_expression "uVar8 = (*ppSVar18)->dynsym_index_" identifier = (field_expression "(*ppSVar18)->dynsym_index_" (parenthesized_expression "(*ppSVar18)" ( (pointer_expression "*ppSVar18" * identifier) )) -> field_identifier)) ;) (if_statement "if (uVar8 != 0) {\n    uVar13 = 0;\n    do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);\n  }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = 0;\n    do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    } while (uVar8 != 0);" do (compound_statement "{\n      uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];\n      uVar13 = uVar13 + 1;\n      local_38[uVar8] = local_34[uVar3 % uVar14];\n      local_34[uVar3 % uVar14] = uVar8;\n      if (uVar13 == uVar6) goto LAB_0016b10b;\n      uVar8 = ppSVar18[uVar13]->dynsym_index_;\n    }" { (ERROR "uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std::" (comma_expression "uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int,_std" (assignment_expression "uVar3 = dynsym_hashvals.super__Vector_base<unsigned_int" identifier = (binary_expression "dynsym_hashvals.super__Vector_base<unsigned_int" (field_expression "dynsym_hashvals.super__Vector_base" identifier . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13];" (subscript_expression "allocator<unsigned_int>_>.\n              _M_impl._M_start[uVar13]" (field_expression "allocator<unsigned_int>_>.\n              _M_impl._M_start" (field_expression "allocator<unsigned_int>_>.\n              _M_impl" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_38[uVar8] = local_34[uVar3 % uVar14];" (assignment_expression "local_38[uVar8] = local_34[uVar3 % uVar14]" (subscript_expression "local_38[uVar8]" identifier [ identifier ]) = (subscript_expression "local_34[uVar3 % uVar14]" identifier [ (binary_expression "uVar3 % uVar14" identifier % identifier) ])) ;) (expression_statement "local_34[uVar3 % uVar14] = uVar8;" (assignment_expression "local_34[uVar3 % uVar14] = uVar8" (subscript_expression "local_34[uVar3 % uVar14]" identifier [ (binary_expression "uVar3 % uVar14" identifier % identifier) ]) = identifier) ;) (if_statement "if (uVar13 == uVar6) goto LAB_0016b10b;" if (parenthesized_expression "(uVar13 == uVar6)" ( (binary_expression "uVar13 == uVar6" identifier == identifier) )) (goto_statement "goto LAB_0016b10b;" goto statement_identifier ;)) (expression_statement "uVar8 = ppSVar18[uVar13]->dynsym_index_;" (assignment_expression "uVar8 = ppSVar18[uVar13]->dynsym_index_" identifier = (field_expression "ppSVar18[uVar13]->dynsym_index_" (subscript_expression "ppSVar18[uVar13]" identifier [ identifier ]) -> field_identifier)) ;) }) while (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;) })))
(translation_unit "void FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    \n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    \n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}\n\n" (function_definition "void FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    \n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    \n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" primitive_type (function_declarator "FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    \n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    \n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "uint *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_28 = (uint *)0x0;" (assignment_expression "local_28 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar16 = param_1[1] - *param_1;" (assignment_expression "iVar16 = param_1[1] - *param_1" identifier = (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" identifier [ number_literal ]) - (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_24 = (uint *)0x0;" (assignment_expression "local_24 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = iVar16 >> 2;" (assignment_expression "uVar5 = iVar16 >> 2" identifier = (binary_expression "iVar16 >> 2" identifier >> number_literal)) ;) (expression_statement "iVar9 = iVar16;" (assignment_expression "iVar9 = iVar16" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" { (if_statement "if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar5)" ( (binary_expression "0x3fffffff < uVar5" number_literal < identifier) )) (compound_statement "{\n                    \n      FUN_001f1cb0();\n    }" { (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_28 = (uint *)FUN_001aa8c0(iVar16);" (assignment_expression "local_28 = (uint *)FUN_001aa8c0(iVar16)" identifier = (cast_expression "(uint *)FUN_001aa8c0(iVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(iVar16)" identifier (argument_list "(iVar16)" ( identifier ))))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);" do (compound_statement "{\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    }" { (expression_statement "local_28[uVar13] = 0;" (assignment_expression "local_28[uVar13] = 0" (subscript_expression "local_28[uVar13]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != uVar13)" ( (binary_expression "uVar5 != uVar13" identifier != identifier) )) ;) (expression_statement "local_24 = local_28 + uVar5;" (assignment_expression "local_24 = local_28 + uVar5" identifier = (binary_expression "local_28 + uVar5" identifier + identifier)) ;) (expression_statement "puVar17 = (undefined4 *)*param_1;" (assignment_expression "puVar17 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "puVar20 = puVar17 + uVar5;" (assignment_expression "puVar20 = puVar17 + uVar5" identifier = (binary_expression "puVar17 + uVar5" identifier + identifier)) ;) (expression_statement "puVar6 = local_28;" (assignment_expression "puVar6 = local_28" identifier = identifier) ;) (do_statement "do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);" do (compound_statement "{\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    }" { (expression_statement "pbVar15 = *(byte **)*puVar17;" (assignment_expression "pbVar15 = *(byte **)*puVar17" identifier = (pointer_expression "*(byte **)*puVar17" * (cast_expression "(byte **)*puVar17" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar17" * identifier)))) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (while_statement "while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" while (parenthesized_expression "(bVar1 = *pbVar15, bVar1 != 0)" ( (comma_expression "bVar1 = *pbVar15, bVar1 != 0" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) , (binary_expression "bVar1 != 0" identifier != number_literal)) )) (compound_statement "{\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" { (while_statement "while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" { (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 * 0x10 + (uint)bVar1;" (assignment_expression "uVar13 = uVar13 * 0x10 + (uint)bVar1" identifier = (binary_expression "uVar13 * 0x10 + (uint)bVar1" (binary_expression "uVar13 * 0x10" identifier * number_literal) + (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((uVar13 & 0xf0000000) == 0) break;" if (parenthesized_expression "((uVar13 & 0xf0000000) == 0)" ( (binary_expression "(uVar13 & 0xf0000000) == 0" (parenthesized_expression "(uVar13 & 0xf0000000)" ( (binary_expression "uVar13 & 0xf0000000" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;" (assignment_expression "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" identifier = (binary_expression "uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" (binary_expression "uVar13 & 0xfffffff" identifier & number_literal) ^ (binary_expression "(uVar13 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar13 & 0xf0000000)" ( (binary_expression "uVar13 & 0xf0000000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (if_statement "if (bVar1 == 0) goto LAB_0016aff8;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0016aff8;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_0016aff8:\n      puVar17 = puVar17 + 1;" statement_identifier : (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;)) (expression_statement "*puVar6 = uVar13;" (assignment_expression "*puVar6 = uVar13" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = iVar16 + (int)local_28;" (assignment_expression "iVar9 = iVar16 + (int)local_28" identifier = (binary_expression "iVar16 + (int)local_28" identifier + (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(puVar17 != puVar20)" ( (binary_expression "puVar17 != puVar20" identifier != identifier) )) ;) })) (expression_statement "local_20 = iVar9;" (assignment_expression "local_20 = iVar9" identifier = identifier) ;) (expression_statement "uVar13 = FUN_0016ae10(&local_28,0);" (assignment_expression "uVar13 = FUN_0016ae10(&local_28,0)" identifier = (call_expression "FUN_0016ae10(&local_28,0)" identifier (argument_list "(&local_28,0)" ( (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }" { (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" { (if_statement "if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar13)" ( (binary_expression "0x3fffffff < uVar13" number_literal < identifier) )) (compound_statement "{\n                    \n                    \n      FUN_001f1cb0();\n    }" { (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_34 = (int *)FUN_001aa8c0(uVar13 * 4);" (assignment_expression "local_34 = (int *)FUN_001aa8c0(uVar13 * 4)" identifier = (cast_expression "(int *)FUN_001aa8c0(uVar13 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(uVar13 * 4)" identifier (argument_list "(uVar13 * 4)" ( (binary_expression "uVar13 * 4" identifier * number_literal) ))))) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);" do (compound_statement "{\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    }" { (expression_statement "local_34[uVar7] = 0;" (assignment_expression "local_34[uVar7] = 0" (subscript_expression "local_34[uVar7]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar13 != uVar7)" ( (binary_expression "uVar13 != uVar7" identifier != identifier) )) ;) (expression_statement "local_48 = local_34 + uVar13;" (assignment_expression "local_48 = local_34 + uVar13" identifier = (binary_expression "local_34 + uVar13" identifier + identifier)) ;) }))) (expression_statement "uVar7 = uVar5 + param_2;" (assignment_expression "uVar7 = uVar5 + param_2" identifier = (binary_expression "uVar5 + param_2" identifier + identifier)) ;) (if_statement "if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }" { (expression_statement "local_38 = (int *)0x0;" (assignment_expression "local_38 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" else (compound_statement "{\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" { (if_statement "if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }" if (parenthesized_expression "(0x3fffffff < uVar7)" ( (binary_expression "0x3fffffff < uVar7" number_literal < identifier) )) (compound_statement "{\n                    \n                    \n      FUN_001f1cb0();\n    }" { (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_38 = (int *)FUN_001aa8c0(uVar7 * 4);" (assignment_expression "local_38 = (int *)FUN_001aa8c0(uVar7 * 4)" identifier = (cast_expression "(int *)FUN_001aa8c0(uVar7 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(uVar7 * 4)" identifier (argument_list "(uVar7 * 4)" ( (binary_expression "uVar7 * 4" identifier * number_literal) ))))) ;) (expression_statement "local_4c = local_38 + uVar7;" (assignment_expression "local_4c = local_38 + uVar7" identifier = (binary_expression "local_38 + uVar7" identifier + identifier)) ;) (expression_statement "piVar8 = local_38;" (assignment_expression "piVar8 = local_38" identifier = identifier) ;) (do_statement "do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);" do (compound_statement "{\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    }" { (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != local_4c)" ( (binary_expression "piVar8 != local_4c" identifier != identifier) )) ;) }))) (if_statement "if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" { (labeled_statement "LAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" statement_identifier : (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" { (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) }))) (expression_statement "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" * (cast_expression "(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" ( (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);" (assignment_expression "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" identifier = (cast_expression "(int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" ( (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3" (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9" (parenthesized_expression "(uVar13 + param_2 + 2 + uVar5)" ( (binary_expression "uVar13 + param_2 + 2 + uVar5" (binary_expression "uVar13 + param_2 + 2" (binary_expression "uVar13 + param_2" identifier + identifier) + number_literal) + identifier) )) * identifier) >> number_literal) )))) ;) (expression_statement "piVar8 = (int *)FUN_001aa840(piVar18);" (assignment_expression "piVar8 = (int *)FUN_001aa840(piVar18)" identifier = (cast_expression "(int *)FUN_001aa840(piVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa840(piVar18)" identifier (argument_list "(piVar18)" ( identifier ))))) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" { (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);" (assignment_expression "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" if (parenthesized_expression "(iVar9 == 0x20)" ( (binary_expression "iVar9 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }" { (if_statement "if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" { (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" identifier (argument_list "("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , (pointer_expression "&DAT_0033f2f0" & identifier) ))) ;) })) (expression_statement "iVar9 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar9 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar11 = piVar8 + 2;" (assignment_expression "piVar11 = piVar8 + 2" identifier = (binary_expression "piVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar16 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar16 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "*piVar8 = iVar9;" (assignment_expression "*piVar8 = iVar9" (pointer_expression "*piVar8" * identifier) = identifier) ;) (expression_statement "piVar8[1] = iVar16;" (assignment_expression "piVar8[1] = iVar16" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10 = piVar18;" (assignment_expression "piVar10 = piVar18" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" { (expression_statement "piVar10 = (int *)(iVar9 * 4 + 8);" (assignment_expression "piVar10 = (int *)(iVar9 * 4 + 8)" identifier = (cast_expression "(int *)(iVar9 * 4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 * 4 + 8)" ( (binary_expression "iVar9 * 4 + 8" (binary_expression "iVar9 * 4" identifier * number_literal) + number_literal) )))) ;) (expression_statement "piVar19 = local_34;" (assignment_expression "piVar19 = local_34" identifier = identifier) ;) (do_statement "do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);" do (compound_statement "{\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        }" { (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar14 = piVar11 + 1;" (assignment_expression "piVar14 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" identifier = (binary_expression "piVar19 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar4;" (assignment_expression "*piVar11 = iVar4" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar14;" (assignment_expression "piVar11 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 + iVar9 + 2 != piVar14)" ( (binary_expression "piVar8 + iVar9 + 2 != piVar14" (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "piVar11 = piVar8 + iVar9 + 2;" (assignment_expression "piVar11 = piVar8 + iVar9 + 2" identifier = (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" identifier + identifier) + number_literal)) ;) })) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (if_statement "if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" { (expression_statement "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);" (assignment_expression "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11)" identifier = (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)piVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)piVar11)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)piVar11" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar14 = local_38;" (assignment_expression "piVar14 = local_38" identifier = identifier) ;) (do_statement "do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);" do (compound_statement "{\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        }" { (expression_statement "iVar9 = *piVar14;" (assignment_expression "iVar9 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "piVar12 = piVar11 + 1;" (assignment_expression "piVar12 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) (expression_statement "*piVar11 = iVar9;" (assignment_expression "*piVar11 = iVar9" (pointer_expression "*piVar11" * identifier) = identifier) ;) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" identifier = identifier) ;) (expression_statement "piVar10 = piVar19;" (assignment_expression "piVar10 = piVar19" identifier = identifier) ;) }) while (parenthesized_expression "(piVar12 != piVar19)" ( (binary_expression "piVar12 != piVar19" identifier != identifier) )) ;) })) (if_statement "if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" if (parenthesized_expression "(piVar18 != (int *)((int)piVar19 - (int)piVar8))" ( (binary_expression "piVar18 != (int *)((int)piVar19 - (int)piVar8)" identifier != (cast_expression "(int *)((int)piVar19 - (int)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 - (int)piVar8)" ( (binary_expression "(int)piVar19 - (int)piVar8" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" { (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") , identifier ))) ;) })) }) (else_clause "else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" else (compound_statement "{\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" { (if_statement "if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" if (parenthesized_expression "(iVar9 != 0x40)" ( (binary_expression "iVar9 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" { (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" identifier (argument_list "("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , identifier ))) ;) })) (if_statement "if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" { (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" identifier (argument_list "("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""create_elf_hash_table"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar11 = piVar8 + 4;" (assignment_expression "piVar11 = piVar8 + 4" identifier = (binary_expression "piVar8 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar9 = (int)local_4c - (int)local_38 >> 2" identifier = (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar16 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar16 = (int)local_48 - (int)local_34 >> 2" identifier = (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "piVar8[2] = iVar9;" (assignment_expression "piVar8[2] = iVar9" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar8 = iVar16;" (assignment_expression "*piVar8 = iVar16" (pointer_expression "*piVar8" * identifier) = identifier) ;) (expression_statement "piVar10 = local_34;" (assignment_expression "piVar10 = local_34" identifier = identifier) ;) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (expression_statement "piVar14 = piVar11;" (assignment_expression "piVar14 = piVar11" identifier = identifier) ;) (if_statement "if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" { (do_statement "do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));" do (compound_statement "{\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        }" { (expression_statement "iVar4 = *piVar10;" (assignment_expression "iVar4 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "(piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)))" ( (binary_expression "piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34))" identifier != (cast_expression "(int *)((int)local_34 + ((int)local_48 - (int)local_34))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34 + ((int)local_48 - (int)local_34))" ( (binary_expression "(int)local_34 + ((int)local_48 - (int)local_34)" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_48 - (int)local_34)" ( (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) )) ;) (expression_statement "piVar11 = piVar11 + iVar16 * 2;" (assignment_expression "piVar11 = piVar11 + iVar16 * 2" identifier = (binary_expression "piVar11 + iVar16 * 2" identifier + (binary_expression "iVar16 * 2" identifier * number_literal))) ;) })) (if_statement "if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" { (expression_statement "piVar10 = local_38;" (assignment_expression "piVar10 = local_38" identifier = identifier) ;) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" identifier = identifier) ;) (do_statement "do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);" do (compound_statement "{\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        }" { (expression_statement "iVar16 = *piVar10;" (assignment_expression "iVar16 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar19 = iVar16;" (assignment_expression "*piVar19 = iVar16" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" identifier = identifier) ;) }) while (parenthesized_expression "((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10)" ( (binary_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10" (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)local_38)" ( (binary_expression "((int)local_4c - (int)local_38) + (int)local_38" (parenthesized_expression "((int)local_4c - (int)local_38)" ( (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) ))) != identifier) )) ;) (expression_statement "piVar11 = piVar11 + iVar9 * 2;" (assignment_expression "piVar11 = piVar11 + iVar9 * 2" identifier = (binary_expression "piVar11 + iVar9 * 2" identifier + (binary_expression "iVar9 * 2" identifier * number_literal))) ;) })) (if_statement "if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" if (parenthesized_expression "(piVar18 != (int *)((int)piVar11 - (int)piVar8))" ( (binary_expression "piVar18 != (int *)((int)piVar11 - (int)piVar8)" identifier != (cast_expression "(int *)((int)piVar11 - (int)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 - (int)piVar8)" ( (binary_expression "(int)piVar11 - (int)piVar8" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" { (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" identifier (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" ( (string_literal ""../../gold/dynobj.cc"" " string_content ") , number_literal , (string_literal ""sized_create_elf_hash_table"" " string_content ") , identifier ))) ;) })) }))) (expression_statement "*param_3 = (int)piVar8;" (assignment_expression "*param_3 = (int)piVar8" (pointer_expression "*param_3" * identifier) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_4 = piVar18;" (assignment_expression "*param_4 = piVar18" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }" if (parenthesized_expression "(local_38 != (int *)0x0)" ( (binary_expression "local_38 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_38);\n    }" { (expression_statement "FUN_001ac470(local_38);" (call_expression "FUN_001ac470(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) })) (if_statement "if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }" if (parenthesized_expression "(local_34 != (int *)0x0)" ( (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_34);\n    }" { (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) })) (if_statement "if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }" if (parenthesized_expression "(local_28 != (uint *)0x0)" ( (binary_expression "local_28 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_001ac470(local_28);\n    }" { (expression_statement "FUN_001ac470(local_28);" (call_expression "FUN_001ac470(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar9 = *(int *)(*param_1 + 0x14);" (assignment_expression "iVar9 = *(int *)(*param_1 + 0x14)" identifier = (pointer_expression "*(int *)(*param_1 + 0x14)" * (cast_expression "(int *)(*param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x14)" ( (binary_expression "*param_1 + 0x14" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);" do (compound_statement "{\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    }" { (expression_statement "uVar3 = local_28[uVar7];" (assignment_expression "uVar3 = local_28[uVar7]" identifier = (subscript_expression "local_28[uVar7]" identifier [ identifier ])) ;) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "local_38[iVar9] = local_34[uVar3 % uVar13];" (assignment_expression "local_38[iVar9] = local_34[uVar3 % uVar13]" (subscript_expression "local_38[iVar9]" identifier [ identifier ]) = (subscript_expression "local_34[uVar3 % uVar13]" identifier [ (binary_expression "uVar3 % uVar13" identifier % identifier) ])) ;) (expression_statement "local_34[uVar3 % uVar13] = iVar9;" (assignment_expression "local_34[uVar3 % uVar13] = iVar9" (subscript_expression "local_34[uVar3 % uVar13]" identifier [ (binary_expression "uVar3 % uVar13" identifier % identifier) ]) = identifier) ;) (if_statement "if (uVar7 == uVar5) goto LAB_0016b10b;" if (parenthesized_expression "(uVar7 == uVar5)" ( (binary_expression "uVar7 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_0016b10b;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)(param_1[uVar7] + 0x14);" (assignment_expression "iVar9 = *(int *)(param_1[uVar7] + 0x14)" identifier = (pointer_expression "*(int *)(param_1[uVar7] + 0x14)" * (cast_expression "(int *)(param_1[uVar7] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[uVar7] + 0x14)" ( (binary_expression "param_1[uVar7] + 0x14" (subscript_expression "param_1[uVar7]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) })) (expression_statement "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index")" identifier (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""dynsym_index"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != LIT)) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) ^ (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) + IDENT) )) * IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (subscript_expression IDENT [ (binary_expression IDENT % IDENT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT % IDENT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    \n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    \n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" (primitive_type "void") (function_declarator "FUN_0016af20(int *param_1,int param_2,int *param_3,undefined4 *param_4)" (identifier "FUN_0016af20") (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  uint *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int *piVar12;\n  uint uVar13;\n  int *piVar14;\n  byte *pbVar15;\n  int iVar16;\n  undefined4 *puVar17;\n  int *piVar18;\n  int *piVar19;\n  undefined4 *puVar20;\n  int *local_4c;\n  int *local_48;\n  int *local_38;\n  int *local_34;\n  uint *local_28;\n  uint *local_24;\n  int local_20;\n  \n  local_28 = (uint *)0x0;\n  iVar16 = param_1[1] - *param_1;\n  local_24 = (uint *)0x0;\n  local_20 = 0;\n  uVar5 = iVar16 >> 2;\n  iVar9 = iVar16;\n  if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }\n  local_20 = iVar9;\n                    \n  uVar13 = FUN_0016ae10(&local_28,0);\n  if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }\n  uVar7 = uVar5 + param_2;\n  if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }\n  if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }\n  param_1 = (int *)*param_1;\n  iVar9 = *(int *)(*param_1 + 0x14);\n  if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }\n                    \n  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int *local_4c;" (primitive_type "int") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int *local_38;" (primitive_type "int") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint *local_28;" (type_identifier "uint") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "uint *local_24;" (type_identifier "uint") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "local_28 = (uint *)0x0;" (assignment_expression "local_28 = (uint *)0x0" (identifier "local_28") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar16 = param_1[1] - *param_1;" (assignment_expression "iVar16 = param_1[1] - *param_1" (identifier "iVar16") (= "=") (binary_expression "param_1[1] - *param_1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_24 = (uint *)0x0;" (assignment_expression "local_24 = (uint *)0x0" (identifier "local_24") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = iVar16 >> 2;" (assignment_expression "uVar5 = iVar16 >> 2" (identifier "uVar5") (= "=") (binary_expression "iVar16 >> 2" (identifier "iVar16") (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar9 = iVar16;" (assignment_expression "iVar9 = iVar16" (identifier "iVar9") (= "=") (identifier "iVar16")) (; ";")) (if_statement "if (uVar5 != 0) {\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }\n    local_28 = (uint *)FUN_001aa8c0(iVar16);\n    uVar13 = 0;\n    do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);\n    local_24 = local_28 + uVar5;\n    puVar17 = (undefined4 *)*param_1;\n    puVar20 = puVar17 + uVar5;\n    puVar6 = local_28;\n    do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);\n  }" ({ "{") (if_statement "if (0x3fffffff < uVar5) {\n                    \n      FUN_001f1cb0();\n    }" (if "if") (parenthesized_expression "(0x3fffffff < uVar5)" (( "(") (binary_expression "0x3fffffff < uVar5" (number_literal "0x3fffffff") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n                    \n      FUN_001f1cb0();\n    }" ({ "{") (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" (identifier "FUN_001f1cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_28 = (uint *)FUN_001aa8c0(iVar16);" (assignment_expression "local_28 = (uint *)FUN_001aa8c0(iVar16)" (identifier "local_28") (= "=") (cast_expression "(uint *)FUN_001aa8c0(iVar16)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(iVar16)" (identifier "FUN_001aa8c0") (argument_list "(iVar16)" (( "(") (identifier "iVar16") () ")"))))) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    } while (uVar5 != uVar13);" (do "do") (compound_statement "{\n      local_28[uVar13] = 0;\n      uVar13 = uVar13 + 1;\n    }" ({ "{") (expression_statement "local_28[uVar13] = 0;" (assignment_expression "local_28[uVar13] = 0" (subscript_expression "local_28[uVar13]" (identifier "local_28") ([ "[") (identifier "uVar13") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != uVar13)" (( "(") (binary_expression "uVar5 != uVar13" (identifier "uVar5") (!= "!=") (identifier "uVar13")) () ")")) (; ";")) (expression_statement "local_24 = local_28 + uVar5;" (assignment_expression "local_24 = local_28 + uVar5" (identifier "local_24") (= "=") (binary_expression "local_28 + uVar5" (identifier "local_28") (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "puVar17 = (undefined4 *)*param_1;" (assignment_expression "puVar17 = (undefined4 *)*param_1" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "puVar20 = puVar17 + uVar5;" (assignment_expression "puVar20 = puVar17 + uVar5" (identifier "puVar20") (= "=") (binary_expression "puVar17 + uVar5" (identifier "puVar17") (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "puVar6 = local_28;" (assignment_expression "puVar6 = local_28" (identifier "puVar6") (= "=") (identifier "local_28")) (; ";")) (do_statement "do {\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    } while (puVar17 != puVar20);" (do "do") (compound_statement "{\n      pbVar15 = *(byte **)*puVar17;\n      uVar13 = 0;\n      while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }\nLAB_0016aff8:\n      puVar17 = puVar17 + 1;\n      *puVar6 = uVar13;\n      puVar6 = puVar6 + 1;\n      iVar9 = iVar16 + (int)local_28;\n    }" ({ "{") (expression_statement "pbVar15 = *(byte **)*puVar17;" (assignment_expression "pbVar15 = *(byte **)*puVar17" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)*puVar17" (* "*") (cast_expression "(byte **)*puVar17" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))))) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (while_statement "while (bVar1 = *pbVar15, bVar1 != 0) {\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" (while "while") (parenthesized_expression "(bVar1 = *pbVar15, bVar1 != 0)" (( "(") (comma_expression "bVar1 = *pbVar15, bVar1 != 0" (assignment_expression "bVar1 = *pbVar15" (identifier "bVar1") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (, ",") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar15 = pbVar15 + 1;\n          uVar13 = uVar13 * 0x10 + (uint)bVar1;\n          if ((uVar13 & 0xf0000000) == 0) break;\n          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;\n          bVar1 = *pbVar15;\n          if (bVar1 == 0) goto LAB_0016aff8;\n        }" ({ "{") (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar13 = uVar13 * 0x10 + (uint)bVar1;" (assignment_expression "uVar13 = uVar13 * 0x10 + (uint)bVar1" (identifier "uVar13") (= "=") (binary_expression "uVar13 * 0x10 + (uint)bVar1" (binary_expression "uVar13 * 0x10" (identifier "uVar13") (* "*") (number_literal "0x10")) (+ "+") (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")))) (; ";")) (if_statement "if ((uVar13 & 0xf0000000) == 0) break;" (if "if") (parenthesized_expression "((uVar13 & 0xf0000000) == 0)" (( "(") (binary_expression "(uVar13 & 0xf0000000) == 0" (parenthesized_expression "(uVar13 & 0xf0000000)" (( "(") (binary_expression "uVar13 & 0xf0000000" (identifier "uVar13") (& "&") (number_literal "0xf0000000")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;" (assignment_expression "uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" (identifier "uVar13") (= "=") (binary_expression "uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18" (binary_expression "uVar13 & 0xfffffff" (identifier "uVar13") (& "&") (number_literal "0xfffffff")) (^ "^") (binary_expression "(uVar13 & 0xf0000000) >> 0x18" (parenthesized_expression "(uVar13 & 0xf0000000)" (( "(") (binary_expression "uVar13 & 0xf0000000" (identifier "uVar13") (& "&") (number_literal "0xf0000000")) () ")")) (>> ">>") (number_literal "0x18")))) (; ";")) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" (identifier "bVar1") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (; ";")) (if_statement "if (bVar1 == 0) goto LAB_0016aff8;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0016aff8;" (goto "goto") (statement_identifier "LAB_0016aff8") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0016aff8:\n      puVar17 = puVar17 + 1;" (statement_identifier "LAB_0016aff8") (: ":") (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 1" (identifier "puVar17") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*puVar6 = uVar13;" (assignment_expression "*puVar6 = uVar13" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = iVar16 + (int)local_28;" (assignment_expression "iVar9 = iVar16 + (int)local_28" (identifier "iVar9") (= "=") (binary_expression "iVar16 + (int)local_28" (identifier "iVar16") (+ "+") (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar17 != puVar20)" (( "(") (binary_expression "puVar17 != puVar20" (identifier "puVar17") (!= "!=") (identifier "puVar20")) () ")")) (; ";")) (} "}"))) (expression_statement "local_20 = iVar9;" (assignment_expression "local_20 = iVar9" (identifier "local_20") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar13 = FUN_0016ae10(&local_28,0);" (assignment_expression "uVar13 = FUN_0016ae10(&local_28,0)" (identifier "uVar13") (= "=") (call_expression "FUN_0016ae10(&local_28,0)" (identifier "FUN_0016ae10") (argument_list "(&local_28,0)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (uVar13 == 0) {\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_34 = (int *)0x0;\n    local_48 = (int *)0x0;\n  }" ({ "{") (expression_statement "local_34 = (int *)0x0;" (assignment_expression "local_34 = (int *)0x0" (identifier "local_34") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" (identifier "local_48") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" (else "else") (compound_statement "{\n    if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);\n    uVar7 = 0;\n    do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);\n    local_48 = local_34 + uVar13;\n  }" ({ "{") (if_statement "if (0x3fffffff < uVar13) {\n                    \n                    \n      FUN_001f1cb0();\n    }" (if "if") (parenthesized_expression "(0x3fffffff < uVar13)" (( "(") (binary_expression "0x3fffffff < uVar13" (number_literal "0x3fffffff") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n                    \n                    \n      FUN_001f1cb0();\n    }" ({ "{") (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" (identifier "FUN_001f1cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34 = (int *)FUN_001aa8c0(uVar13 * 4);" (assignment_expression "local_34 = (int *)FUN_001aa8c0(uVar13 * 4)" (identifier "local_34") (= "=") (cast_expression "(int *)FUN_001aa8c0(uVar13 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(uVar13 * 4)" (identifier "FUN_001aa8c0") (argument_list "(uVar13 * 4)" (( "(") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    } while (uVar13 != uVar7);" (do "do") (compound_statement "{\n      local_34[uVar7] = 0;\n      uVar7 = uVar7 + 1;\n    }" ({ "{") (expression_statement "local_34[uVar7] = 0;" (assignment_expression "local_34[uVar7] = 0" (subscript_expression "local_34[uVar7]" (identifier "local_34") ([ "[") (identifier "uVar7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar13 != uVar7)" (( "(") (binary_expression "uVar13 != uVar7" (identifier "uVar13") (!= "!=") (identifier "uVar7")) () ")")) (; ";")) (expression_statement "local_48 = local_34 + uVar13;" (assignment_expression "local_48 = local_34 + uVar13" (identifier "local_48") (= "=") (binary_expression "local_34 + uVar13" (identifier "local_34") (+ "+") (identifier "uVar13"))) (; ";")) (} "}")))) (expression_statement "uVar7 = uVar5 + param_2;" (assignment_expression "uVar7 = uVar5 + param_2" (identifier "uVar7") (= "=") (binary_expression "uVar5 + param_2" (identifier "uVar5") (+ "+") (identifier "param_2"))) (; ";")) (if_statement "if (uVar7 == 0) {\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }\n  else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_38 = (int *)0x0;\n    local_4c = (int *)0x0;\n  }" ({ "{") (expression_statement "local_38 = (int *)0x0;" (assignment_expression "local_38 = (int *)0x0" (identifier "local_38") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c = (int *)0x0;" (assignment_expression "local_4c = (int *)0x0" (identifier "local_4c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" (else "else") (compound_statement "{\n    if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }\n                    \n    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);\n    local_4c = local_38 + uVar7;\n    piVar8 = local_38;\n    do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);\n  }" ({ "{") (if_statement "if (0x3fffffff < uVar7) {\n                    \n                    \n      FUN_001f1cb0();\n    }" (if "if") (parenthesized_expression "(0x3fffffff < uVar7)" (( "(") (binary_expression "0x3fffffff < uVar7" (number_literal "0x3fffffff") (< "<") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n                    \n      FUN_001f1cb0();\n    }" ({ "{") (expression_statement "FUN_001f1cb0();" (call_expression "FUN_001f1cb0()" (identifier "FUN_001f1cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_38 = (int *)FUN_001aa8c0(uVar7 * 4);" (assignment_expression "local_38 = (int *)FUN_001aa8c0(uVar7 * 4)" (identifier "local_38") (= "=") (cast_expression "(int *)FUN_001aa8c0(uVar7 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(uVar7 * 4)" (identifier "FUN_001aa8c0") (argument_list "(uVar7 * 4)" (( "(") (binary_expression "uVar7 * 4" (identifier "uVar7") (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_4c = local_38 + uVar7;" (assignment_expression "local_4c = local_38 + uVar7" (identifier "local_4c") (= "=") (binary_expression "local_38 + uVar7" (identifier "local_38") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "piVar8 = local_38;" (assignment_expression "piVar8 = local_38" (identifier "piVar8") (= "=") (identifier "local_38")) (; ";")) (do_statement "do {\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != local_4c);" (do "do") (compound_statement "{\n      *piVar8 = 0;\n      piVar8 = piVar8 + 1;\n    }" ({ "{") (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != local_4c)" (( "(") (binary_expression "piVar8 != local_4c" (identifier "piVar8") (!= "!=") (identifier "local_4c")) () ")")) (; ";")) (} "}")))) (if_statement "if (uVar5 == 0) {\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);\n    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);\n                    \n    piVar8 = (int *)FUN_001aa840(piVar18);\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }\n    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);\n    if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }\n    *param_3 = (int)piVar8;\n    *param_4 = piVar18;\n    if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }\n    if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }\n    if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }\n    return;\n  }" ({ "{") (labeled_statement "LAB_0016b10b:\n    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" (statement_identifier "LAB_0016b10b") (: ":") (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" ({ "{") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x69,"target",0)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);" (assignment_expression "iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);" (assignment_expression "piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" (identifier "piVar18") (= "=") (cast_expression "(int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3)" (( "(") (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3" (binary_expression "(uVar13 + param_2 + 2 + uVar5) * iVar9" (parenthesized_expression "(uVar13 + param_2 + 2 + uVar5)" (( "(") (binary_expression "uVar13 + param_2 + 2 + uVar5" (binary_expression "uVar13 + param_2 + 2" (binary_expression "uVar13 + param_2" (identifier "uVar13") (+ "+") (identifier "param_2")) (+ "+") (number_literal "2")) (+ "+") (identifier "uVar5")) () ")")) (* "*") (identifier "iVar9")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "piVar8 = (int *)FUN_001aa840(piVar18);" (assignment_expression "piVar8 = (int *)FUN_001aa840(piVar18)" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_001aa840(piVar18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa840(piVar18)" (identifier "FUN_001aa840") (argument_list "(piVar18)" (( "(") (identifier "piVar18") () ")"))))) (; ";")) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);\n    }" ({ "{") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",0)" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x69,"target",0)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);" (assignment_expression "cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar9 == 0x20) {\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }\n    else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" (if "if") (parenthesized_expression "(iVar9 == 0x20)" (( "(") (binary_expression "iVar9 == 0x20" (identifier "iVar9") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }\n      iVar9 = (int)local_48 - (int)local_34 >> 2;\n      piVar11 = piVar8 + 2;\n      iVar16 = (int)local_4c - (int)local_38 >> 2;\n      *piVar8 = iVar9;\n      piVar8[1] = iVar16;\n      piVar10 = piVar18;\n      if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }\n      piVar19 = piVar11;\n      if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }\n      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }\n    }" ({ "{") (if_statement "if (cVar2 != '\0') {\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x3c6") (, ",") (string_literal ""create_elf_hash_table"" (" """) (string_content "create_elf_hash_table") (" """)) (, ",") (pointer_expression "&DAT_0033f2f0" (& "&") (identifier "DAT_0033f2f0")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar9 = (int)local_48 - (int)local_34 >> 2" (identifier "iVar9") (= "=") (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (- "-") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "piVar11 = piVar8 + 2;" (assignment_expression "piVar11 = piVar8 + 2" (identifier "piVar11") (= "=") (binary_expression "piVar8 + 2" (identifier "piVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar16 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar16 = (int)local_4c - (int)local_38 >> 2" (identifier "iVar16") (= "=") (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "*piVar8 = iVar9;" (assignment_expression "*piVar8 = iVar9" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar8[1] = iVar16;" (assignment_expression "piVar8[1] = iVar16" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar10 = piVar18;" (assignment_expression "piVar10 = piVar18" (identifier "piVar10") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (iVar9 != 0) {\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar10 = (int *)(iVar9 * 4 + 8);\n        piVar19 = local_34;\n        do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);\n        piVar11 = piVar8 + iVar9 + 2;\n      }" ({ "{") (expression_statement "piVar10 = (int *)(iVar9 * 4 + 8);" (assignment_expression "piVar10 = (int *)(iVar9 * 4 + 8)" (identifier "piVar10") (= "=") (cast_expression "(int *)(iVar9 * 4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 * 4 + 8)" (( "(") (binary_expression "iVar9 * 4 + 8" (binary_expression "iVar9 * 4" (identifier "iVar9") (* "*") (number_literal "4")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "piVar19 = local_34;" (assignment_expression "piVar19 = local_34" (identifier "piVar19") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        } while (piVar8 + iVar9 + 2 != piVar14);" (do "do") (compound_statement "{\n          iVar4 = *piVar19;\n          piVar14 = piVar11 + 1;\n          piVar19 = piVar19 + 1;\n          *piVar11 = iVar4;\n          piVar11 = piVar14;\n        }" ({ "{") (expression_statement "iVar4 = *piVar19;" (assignment_expression "iVar4 = *piVar19" (identifier "iVar4") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "piVar14 = piVar11 + 1;" (assignment_expression "piVar14 = piVar11 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19 = piVar19 + 1;" (assignment_expression "piVar19 = piVar19 + 1" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar11 = iVar4;" (assignment_expression "*piVar11 = iVar4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar11 = piVar14;" (assignment_expression "piVar11 = piVar14" (identifier "piVar11") (= "=") (identifier "piVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 + iVar9 + 2 != piVar14)" (( "(") (binary_expression "piVar8 + iVar9 + 2 != piVar14" (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" (identifier "piVar8") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "2")) (!= "!=") (identifier "piVar14")) () ")")) (; ";")) (expression_statement "piVar11 = piVar8 + iVar9 + 2;" (assignment_expression "piVar11 = piVar8 + iVar9 + 2" (identifier "piVar11") (= "=") (binary_expression "piVar8 + iVar9 + 2" (binary_expression "piVar8 + iVar9" (identifier "piVar8") (+ "+") (identifier "iVar9")) (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" (identifier "piVar19") (= "=") (identifier "piVar11")) (; ";")) (if_statement "if (iVar16 != 0) {\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);\n        piVar14 = local_38;\n        do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);\n      }" ({ "{") (expression_statement "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);" (assignment_expression "piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11)" (identifier "piVar19") (= "=") (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)piVar11)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)piVar11)" (( "(") (binary_expression "((int)local_4c - (int)local_38) + (int)piVar11" (parenthesized_expression "((int)local_4c - (int)local_38)" (( "(") (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")")) (+ "+") (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11"))) () ")")))) (; ";")) (expression_statement "piVar14 = local_38;" (assignment_expression "piVar14 = local_38" (identifier "piVar14") (= "=") (identifier "local_38")) (; ";")) (do_statement "do {\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        } while (piVar12 != piVar19);" (do "do") (compound_statement "{\n          iVar9 = *piVar14;\n          piVar12 = piVar11 + 1;\n          piVar14 = piVar14 + 1;\n          *piVar11 = iVar9;\n          piVar11 = piVar12;\n          piVar10 = piVar19;\n        }" ({ "{") (expression_statement "iVar9 = *piVar14;" (assignment_expression "iVar9 = *piVar14" (identifier "iVar9") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "piVar12 = piVar11 + 1;" (assignment_expression "piVar12 = piVar11 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 1" (identifier "piVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar11 = iVar9;" (assignment_expression "*piVar11 = iVar9" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar11 = piVar12;" (assignment_expression "piVar11 = piVar12" (identifier "piVar11") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar10 = piVar19;" (assignment_expression "piVar10 = piVar19" (identifier "piVar10") (= "=") (identifier "piVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != piVar19)" (( "(") (binary_expression "piVar12 != piVar19" (identifier "piVar12") (!= "!=") (identifier "piVar19")) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" (if "if") (parenthesized_expression "(piVar18 != (int *)((int)piVar19 - (int)piVar8))" (( "(") (binary_expression "piVar18 != (int *)((int)piVar19 - (int)piVar8)" (identifier "piVar18") (!= "!=") (cast_expression "(int *)((int)piVar19 - (int)piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar19 - (int)piVar8)" (( "(") (binary_expression "(int)piVar19 - (int)piVar8" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (- "-") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) () ")")))) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x40e") (, ",") (string_literal ""sized_create_elf_hash_table"" (" """) (string_content "sized_create_elf_hash_table") (" """)) (, ",") (identifier "piVar10") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" (else "else") (compound_statement "{\n      if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }\n      if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }\n      piVar11 = piVar8 + 4;\n      piVar8[1] = 0;\n      piVar8[3] = 0;\n      iVar9 = (int)local_4c - (int)local_38 >> 2;\n      iVar16 = (int)local_48 - (int)local_34 >> 2;\n      piVar8[2] = iVar9;\n      *piVar8 = iVar16;\n      piVar10 = local_34;\n      piVar19 = piVar11;\n      piVar14 = piVar11;\n      if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }\n      if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }\n      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }\n    }" ({ "{") (if_statement "if (iVar9 != 0x40) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" (if "if") (parenthesized_expression "(iVar9 != 0x40)" (( "(") (binary_expression "iVar9 != 0x40" (identifier "iVar9") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x3e9") (, ",") (string_literal ""create_elf_hash_table"" (" """) (string_content "create_elf_hash_table") (" """)) (, ",") (identifier "cVar2") () ")"))) (; ";")) (} "}"))) (if_statement "if (cVar2 != '\0') {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x3db") (, ",") (string_literal ""create_elf_hash_table"" (" """) (string_content "create_elf_hash_table") (" """)) (, ",") (identifier "piVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar11 = piVar8 + 4;" (assignment_expression "piVar11 = piVar8 + 4" (identifier "piVar11") (= "=") (binary_expression "piVar8 + 4" (identifier "piVar8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = (int)local_4c - (int)local_38 >> 2;" (assignment_expression "iVar9 = (int)local_4c - (int)local_38 >> 2" (identifier "iVar9") (= "=") (binary_expression "(int)local_4c - (int)local_38 >> 2" (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar16 = (int)local_48 - (int)local_34 >> 2;" (assignment_expression "iVar16 = (int)local_48 - (int)local_34 >> 2" (identifier "iVar16") (= "=") (binary_expression "(int)local_48 - (int)local_34 >> 2" (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (- "-") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "piVar8[2] = iVar9;" (assignment_expression "piVar8[2] = iVar9" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*piVar8 = iVar16;" (assignment_expression "*piVar8 = iVar16" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar10 = local_34;" (assignment_expression "piVar10 = local_34" (identifier "piVar10") (= "=") (identifier "local_34")) (; ";")) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" (identifier "piVar19") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "piVar14 = piVar11;" (assignment_expression "piVar14 = piVar11" (identifier "piVar14") (= "=") (identifier "piVar11")) (; ";")) (if_statement "if (iVar16 != 0) {\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));\n        piVar11 = piVar11 + iVar16 * 2;\n      }" ({ "{") (do_statement "do {\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));" (do "do") (compound_statement "{\n          iVar4 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar4;\n          piVar19 = piVar14;\n        }" ({ "{") (expression_statement "iVar4 = *piVar10;" (assignment_expression "iVar4 = *piVar10" (identifier "iVar4") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" (identifier "piVar14") (= "=") (binary_expression "piVar19 + 2" (identifier "piVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" (identifier "piVar19") (= "=") (identifier "piVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)))" (( "(") (binary_expression "piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34))" (identifier "piVar10") (!= "!=") (cast_expression "(int *)((int)local_34 + ((int)local_48 - (int)local_34))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_34 + ((int)local_48 - (int)local_34))" (( "(") (binary_expression "(int)local_34 + ((int)local_48 - (int)local_34)" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (+ "+") (parenthesized_expression "((int)local_48 - (int)local_34)" (( "(") (binary_expression "(int)local_48 - (int)local_34" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (- "-") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) () ")"))) () ")")))) () ")")) (; ";")) (expression_statement "piVar11 = piVar11 + iVar16 * 2;" (assignment_expression "piVar11 = piVar11 + iVar16 * 2" (identifier "piVar11") (= "=") (binary_expression "piVar11 + iVar16 * 2" (identifier "piVar11") (+ "+") (binary_expression "iVar16 * 2" (identifier "iVar16") (* "*") (number_literal "2")))) (; ";")) (} "}"))) (if_statement "if (iVar9 != 0) {\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar10 = local_38;\n        piVar19 = piVar11;\n        do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);\n        piVar11 = piVar11 + iVar9 * 2;\n      }" ({ "{") (expression_statement "piVar10 = local_38;" (assignment_expression "piVar10 = local_38" (identifier "piVar10") (= "=") (identifier "local_38")) (; ";")) (expression_statement "piVar19 = piVar11;" (assignment_expression "piVar19 = piVar11" (identifier "piVar19") (= "=") (identifier "piVar11")) (; ";")) (do_statement "do {\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);" (do "do") (compound_statement "{\n          iVar16 = *piVar10;\n          piVar10 = piVar10 + 1;\n          piVar19[1] = 0;\n          piVar14 = piVar19 + 2;\n          *piVar19 = iVar16;\n          piVar19 = piVar14;\n        }" ({ "{") (expression_statement "iVar16 = *piVar10;" (assignment_expression "iVar16 = *piVar10" (identifier "iVar16") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar14 = piVar19 + 2;" (assignment_expression "piVar14 = piVar19 + 2" (identifier "piVar14") (= "=") (binary_expression "piVar19 + 2" (identifier "piVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar19 = iVar16;" (assignment_expression "*piVar19 = iVar16" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar19 = piVar14;" (assignment_expression "piVar19 = piVar14" (identifier "piVar19") (= "=") (identifier "piVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10)" (( "(") (binary_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10" (cast_expression "(int *)(((int)local_4c - (int)local_38) + (int)local_38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)local_4c - (int)local_38) + (int)local_38)" (( "(") (binary_expression "((int)local_4c - (int)local_38) + (int)local_38" (parenthesized_expression "((int)local_4c - (int)local_38)" (( "(") (binary_expression "(int)local_4c - (int)local_38" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")")) (+ "+") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")"))) (!= "!=") (identifier "piVar10")) () ")")) (; ";")) (expression_statement "piVar11 = piVar11 + iVar9 * 2;" (assignment_expression "piVar11 = piVar11 + iVar9 * 2" (identifier "piVar11") (= "=") (binary_expression "piVar11 + iVar9 * 2" (identifier "piVar11") (+ "+") (binary_expression "iVar9 * 2" (identifier "iVar9") (* "*") (number_literal "2")))) (; ";")) (} "}"))) (if_statement "if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" (if "if") (parenthesized_expression "(piVar18 != (int *)((int)piVar11 - (int)piVar8))" (( "(") (binary_expression "piVar18 != (int *)((int)piVar11 - (int)piVar8)" (identifier "piVar18") (!= "!=") (cast_expression "(int *)((int)piVar11 - (int)piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 - (int)piVar8)" (( "(") (binary_expression "(int)piVar11 - (int)piVar8" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (- "-") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) () ")")))) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);" (call_expression "FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" (identifier "FUN_0008b620") (argument_list "("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14)" (( "(") (string_literal ""../../gold/dynobj.cc"" (" """) (string_content "../../gold/dynobj.cc") (" """)) (, ",") (number_literal "0x40e") (, ",") (string_literal ""sized_create_elf_hash_table"" (" """) (string_content "sized_create_elf_hash_table") (" """)) (, ",") (identifier "piVar14") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*param_3 = (int)piVar8;" (assignment_expression "*param_3 = (int)piVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (; ";")) (expression_statement "*param_4 = piVar18;" (assignment_expression "*param_4 = piVar18" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (local_38 != (int *)0x0) {\n      FUN_001ac470(local_38);\n    }" (if "if") (parenthesized_expression "(local_38 != (int *)0x0)" (( "(") (binary_expression "local_38 != (int *)0x0" (identifier "local_38") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001ac470(local_38);\n    }" ({ "{") (expression_statement "FUN_001ac470(local_38);" (call_expression "FUN_001ac470(local_38)" (identifier "FUN_001ac470") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_34 != (int *)0x0) {\n      FUN_001ac470(local_34);\n    }" (if "if") (parenthesized_expression "(local_34 != (int *)0x0)" (( "(") (binary_expression "local_34 != (int *)0x0" (identifier "local_34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001ac470(local_34);\n    }" ({ "{") (expression_statement "FUN_001ac470(local_34);" (call_expression "FUN_001ac470(local_34)" (identifier "FUN_001ac470") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_28 != (uint *)0x0) {\n      FUN_001ac470(local_28);\n    }" (if "if") (parenthesized_expression "(local_28 != (uint *)0x0)" (( "(") (binary_expression "local_28 != (uint *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_001ac470(local_28);\n    }" ({ "{") (expression_statement "FUN_001ac470(local_28);" (call_expression "FUN_001ac470(local_28)" (identifier "FUN_001ac470") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar9 = *(int *)(*param_1 + 0x14);" (assignment_expression "iVar9 = *(int *)(*param_1 + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*param_1 + 0x14)" (* "*") (cast_expression "(int *)(*param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x14)" (( "(") (binary_expression "*param_1 + 0x14" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = 0;\n    do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);\n  }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    } while (iVar9 != 0);" (do "do") (compound_statement "{\n      uVar3 = local_28[uVar7];\n      uVar7 = uVar7 + 1;\n      local_38[iVar9] = local_34[uVar3 % uVar13];\n      local_34[uVar3 % uVar13] = iVar9;\n      if (uVar7 == uVar5) goto LAB_0016b10b;\n      iVar9 = *(int *)(param_1[uVar7] + 0x14);\n    }" ({ "{") (expression_statement "uVar3 = local_28[uVar7];" (assignment_expression "uVar3 = local_28[uVar7]" (identifier "uVar3") (= "=") (subscript_expression "local_28[uVar7]" (identifier "local_28") ([ "[") (identifier "uVar7") (] "]"))) (; ";")) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_38[iVar9] = local_34[uVar3 % uVar13];" (assignment_expression "local_38[iVar9] = local_34[uVar3 % uVar13]" (subscript_expression "local_38[iVar9]" (identifier "local_38") ([ "[") (identifier "iVar9") (] "]")) (= "=") (subscript_expression "local_34[uVar3 % uVar13]" (identifier "local_34") ([ "[") (binary_expression "uVar3 % uVar13" (identifier "uVar3") (% "%") (identifier "uVar13")) (] "]"))) (; ";")) (expression_statement "local_34[uVar3 % uVar13] = iVar9;" (assignment_expression "local_34[uVar3 % uVar13] = iVar9" (subscript_expression "local_34[uVar3 % uVar13]" (identifier "local_34") ([ "[") (binary_expression "uVar3 % uVar13" (identifier "uVar3") (% "%") (identifier "uVar13")) (] "]")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (uVar7 == uVar5) goto LAB_0016b10b;" (if "if") (parenthesized_expression "(uVar7 == uVar5)" (( "(") (binary_expression "uVar7 == uVar5" (identifier "uVar7") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_0016b10b;" (goto "goto") (statement_identifier "LAB_0016b10b") (; ";"))) (expression_statement "iVar9 = *(int *)(param_1[uVar7] + 0x14);" (assignment_expression "iVar9 = *(int *)(param_1[uVar7] + 0x14)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1[uVar7] + 0x14)" (* "*") (cast_expression "(int *)(param_1[uVar7] + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[uVar7] + 0x14)" (( "(") (binary_expression "param_1[uVar7] + 0x14" (subscript_expression "param_1[uVar7]" (identifier "param_1") ([ "[") (identifier "uVar7") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");" (call_expression "FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index")" (identifier "FUN_0008b620") (argument_list "("../../gold/symtab.h",0x19a,"dynsym_index")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x19a") (, ",") (string_literal ""dynsym_index"" (" """) (string_content "dynsym_index") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */

void var_5::Dynobj::function_1
               (type_1<var_5::var_11*,type_2::var_1<var_5::var_11*>var_3> *dynsyms,type_3 var_20,
               type_4 **pphash,type_3 *phashlen)

{
  type_5 var_13;
  bool var_27;
  type_3 var_35;
  int iVar4;
  type_6 puVar5;
  type_3 var_7;
  type_3 *var_15;
  type_3 var_18;
  int *var_22;
  int var_25;
  int *var_28;
  int *var_32;
  type_3 var_34;
  type_3 var_10;
  int *var_30;
  type_5 *var_14;
  type_6 puVar17;
  type_6 var_12;
  int *var_29;
  type_6 var_16;
  int var_31;
  int *var_23;
  int *local_48;
  int *var_21;
  int *var_19;
  type_1<var_2,type_2::var_1<var_2>var_3> var_4;
  
  var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl._M_start =
       (type_6)0x0;
  puVar17 = (type_6)((int)(dynsyms->
                           super__Vector_base<var_5::var_11*,type_2::var_1<var_5::var_11*>var_3>var_6).
                           _M_impl._M_finish -
                     (int)(dynsyms->
                          super__Vector_base<var_5::var_11*,type_2::var_1<var_5::var_11*>var_3>var_6)._M_impl
                          ._M_start);
  var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl._M_finish
       = (type_6)0x0;
  var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
  _M_end_of_storage = (type_6)0x0;
  var_7 = (int)puVar17 >> 2;
  puVar5 = puVar17;
  if (var_7 != 0) {
    if (0x3fffffff < var_7) {
                    /* WARNING: Subroutine does not return */
      std::var_8();
    }
    var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl._M_start
         = (type_6)var_9((type_3)puVar17);
    var_10 = 0;
    do {
      var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
      _M_start[var_10] = 0;
      var_10 = var_10 + 1;
    } while (var_7 != var_10);
    var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
    _M_finish = var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>.
                _M_impl._M_start + var_7;
    var_12 = (dynsyms->super__Vector_base<var_5::var_11*var_6,type_2::var_1<var_5::var_11*>var_3>var_6)._M_impl.
               _M_start;
    var_16 = var_12 + var_7;
    var_15 = var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl
             ._M_start;
    do {
      var_14 = (type_5 *)(*var_12)->name_;
      var_10 = 0;
      while (var_13 = *var_14, var_13 != 0) {
        while( true ) {
          var_14 = var_14 + 1;
          var_10 = var_10 * 0x10 + (type_3)var_13;
          if ((var_10 & 0xf0000000) == 0) break;
          var_10 = var_10 & 0xfffffff ^ (var_10 & 0xf0000000) >> 0x18;
          var_13 = *var_14;
          if (var_13 == 0) goto LAB_0016aff8;
        }
      }
LAB_0016aff8:
      var_12 = var_12 + 1;
      *var_15 = var_10;
      var_15 = var_15 + 1;
      puVar5 = (type_6)((int)puVar17 +
                        (int)var_4.
                             super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl
                             ._M_start);
    } while (var_12 != var_16);
  }
  var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
  _M_end_of_storage = puVar5;
                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */
  var_10 = var_17(&var_4,false);
  if (var_10 == 0) {
    var_19 = (int *)0x0;
    local_48 = (int *)0x0;
  }
  else {
    if (0x3fffffff < var_10) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */
      std::var_8();
    }
    var_19 = (int *)var_9(var_10 * 4);
    var_18 = 0;
    do {
      var_19[var_18] = 0;
      var_18 = var_18 + 1;
    } while (var_10 != var_18);
    local_48 = var_19 + var_10;
  }
  var_18 = var_7 + var_20;
  if (var_18 == 0) {
    var_21 = (int *)0x0;
    var_23 = (int *)0x0;
  }
  else {
    if (0x3fffffff < var_18) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */
      std::var_8();
    }
                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */
    var_21 = (int *)var_9(var_18 * 4);
    var_23 = var_21 + var_18;
    var_22 = var_21;
    do {
      *var_22 = 0;
      var_22 = var_22 + 1;
    } while (var_22 != var_23);
  }
  if (var_7 == 0) {
LAB_0016b10b:
    if (parameters->target_ == (type_7 *)0x0) {
                    /* WARNING: Subroutine does not return */
      var_24("../../gold/parameters.h",0x69,"target");
    }
    var_25 = parameters->target_->pti_->hash_entry_size;
    var_7 = (var_10 + var_20 + 2 + var_7) * var_25 >> 3;
                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */
    var_22 = (int *)var_26(var_7);
    if (parameters->target_ == (type_7 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */
      var_24("../../gold/parameters.h",0x69,"target");
    }
    var_27 = parameters->target_->pti_->is_big_endian;
    if (var_25 == 0x20) {
      if (var_27 != false) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */
        var_24("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table");
      }
      var_25 = (int)local_48 - (int)var_19 >> 2;
      var_28 = var_22 + 2;
      var_31 = (int)var_23 - (int)var_21 >> 2;
      *var_22 = var_25;
      var_22[1] = var_31;
      if (var_25 != 0) {
        var_29 = var_19;
        do {
          iVar4 = *var_29;
          var_30 = var_28 + 1;
          var_29 = var_29 + 1;
          *var_28 = iVar4;
          var_28 = var_30;
        } while (var_22 + var_25 + 2 != var_30);
        var_28 = var_22 + var_25 + 2;
      }
      var_29 = var_28;
      if (var_31 != 0) {
        var_29 = (int *)(((int)var_23 - (int)var_21) + (int)var_28);
        var_30 = var_21;
        do {
          var_25 = *var_30;
          var_32 = var_28 + 1;
          var_30 = var_30 + 1;
          *var_28 = var_25;
          var_28 = var_32;
        } while (var_32 != var_29);
      }
      if (var_7 != (int)var_29 - (int)var_22) {
                    /* WARNING: Subroutine does not return */
        var_24("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");
      }
    }
    else {
      if (var_25 != 0x40) {
                    /* WARNING: Subroutine does not return */
        var_24("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table");
      }
      if (var_27 != false) {
                    /* WARNING: Subroutine does not return */
        var_24("../../gold/dynobj.cc",0x3db,"create_elf_hash_table");
      }
      var_28 = var_22 + 4;
      var_22[1] = 0;
      var_22[3] = 0;
      var_25 = (int)var_23 - (int)var_21 >> 2;
      var_31 = (int)local_48 - (int)var_19 >> 2;
      var_22[2] = var_25;
      *var_22 = var_31;
      var_29 = var_19;
      var_30 = var_28;
      if (var_31 != 0) {
        do {
          iVar4 = *var_29;
          var_29 = var_29 + 1;
          var_30[1] = 0;
          *var_30 = iVar4;
          var_30 = var_30 + 2;
        } while (var_29 != (int *)((int)var_19 + ((int)local_48 - (int)var_19)));
        var_28 = var_28 + var_31 * 2;
      }
      if (var_25 != 0) {
        var_29 = var_21;
        var_30 = var_28;
        do {
          var_31 = *var_29;
          var_29 = var_29 + 1;
          var_30[1] = 0;
          *var_30 = var_31;
          var_30 = var_30 + 2;
        } while ((int *)(((int)var_23 - (int)var_21) + (int)var_21) != var_29);
        var_28 = var_28 + var_25 * 2;
      }
      if (var_7 != (int)var_28 - (int)var_22) {
                    /* WARNING: Subroutine does not return */
        var_24("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table");
      }
    }
    *pphash = (type_4 *)var_22;
    *phashlen = var_7;
    if (var_21 != (int *)0x0) {
      var_33(var_21);
    }
    if (var_19 != (int *)0x0) {
      var_33(var_19);
    }
    if (var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
        _M_start != (type_6)0x0) {
      var_33(var_4.
                      super__Vector_base<var_2,type_2::var_1<var_2>var_3>._M_impl.
                      _M_start);
    }
    return;
  }
  var_12 = (dynsyms->super__Vector_base<var_5::var_11*var_6,type_2::var_1<var_5::var_11*>var_3>var_6)._M_impl.
             _M_start;
  var_18 = (*var_12)->dynsym_index_;
  if (var_18 != 0) {
    var_34 = 0;
    do {
      var_35 = var_4.super__Vector_base<var_2,type_2::var_1<var_2>var_3>.
              _M_impl._M_start[var_34];
      var_34 = var_34 + 1;
      var_21[var_18] = var_19[var_35 % var_10];
      var_19[var_35 % var_10] = var_18;
      if (var_34 == var_7) goto LAB_0016b10b;
      var_18 = var_12[var_34]->dynsym_index_;
    } while (var_18 != 0);
  }
                    /* WARNING: Subroutine does not return */
  var_24("../../gold/symtab.h",0x19a,"dynsym_index");
}


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

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

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

{
  byte bVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint *puVar6;
  uint uVar7;
  int *piVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  int *piVar12;
  uint uVar13;
  int *piVar14;
  byte *pbVar15;
  int iVar16;
  undefined4 *puVar17;
  int *piVar18;
  int *piVar19;
  undefined4 *puVar20;
  int *local_4c;
  int *local_48;
  int *local_38;
  int *local_34;
  uint *local_28;
  uint *local_24;
  int local_20;
  
  local_28 = (uint *)0x0;
  iVar16 = param_1[1] - *param_1;
  local_24 = (uint *)0x0;
  local_20 = 0;
  uVar5 = iVar16 >> 2;
  iVar9 = iVar16;
  if (uVar5 != 0) {
    if (0x3fffffff < uVar5) {
                    /* WARNING: Subroutine does not return */
      FUN_001f1cb0();
    }
    local_28 = (uint *)FUN_001aa8c0(iVar16);
    uVar13 = 0;
    do {
      local_28[uVar13] = 0;
      uVar13 = uVar13 + 1;
    } while (uVar5 != uVar13);
    local_24 = local_28 + uVar5;
    puVar17 = (undefined4 *)*param_1;
    puVar20 = puVar17 + uVar5;
    puVar6 = local_28;
    do {
      pbVar15 = *(byte **)*puVar17;
      uVar13 = 0;
      while (bVar1 = *pbVar15, bVar1 != 0) {
        while( true ) {
          pbVar15 = pbVar15 + 1;
          uVar13 = uVar13 * 0x10 + (uint)bVar1;
          if ((uVar13 & 0xf0000000) == 0) break;
          uVar13 = uVar13 & 0xfffffff ^ (uVar13 & 0xf0000000) >> 0x18;
          bVar1 = *pbVar15;
          if (bVar1 == 0) goto LAB_0016aff8;
        }
      }
LAB_0016aff8:
      puVar17 = puVar17 + 1;
      *puVar6 = uVar13;
      puVar6 = puVar6 + 1;
      iVar9 = iVar16 + (int)local_28;
    } while (puVar17 != puVar20);
  }
  local_20 = iVar9;
                    /* try { // try from 0016b013 to 0016b042 has its CatchHandler @ 0016b424 */
  uVar13 = FUN_0016ae10(&local_28,0);
  if (uVar13 == 0) {
    local_34 = (int *)0x0;
    local_48 = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar13) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3d4 to 0016b3d8 has its CatchHandler @ 0016b424 */
      FUN_001f1cb0();
    }
    local_34 = (int *)FUN_001aa8c0(uVar13 * 4);
    uVar7 = 0;
    do {
      local_34[uVar7] = 0;
      uVar7 = uVar7 + 1;
    } while (uVar13 != uVar7);
    local_48 = local_34 + uVar13;
  }
  uVar7 = uVar5 + param_2;
  if (uVar7 == 0) {
    local_38 = (int *)0x0;
    local_4c = (int *)0x0;
  }
  else {
    if (0x3fffffff < uVar7) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3cc to 0016b3d0 has its CatchHandler @ 0016b416 */
      FUN_001f1cb0();
    }
                    /* try { // try from 0016b086 to 0016b08a has its CatchHandler @ 0016b416 */
    local_38 = (int *)FUN_001aa8c0(uVar7 * 4);
    local_4c = local_38 + uVar7;
    piVar8 = local_38;
    do {
      *piVar8 = 0;
      piVar8 = piVar8 + 1;
    } while (piVar8 != local_4c);
  }
  if (uVar5 == 0) {
LAB_0016b10b:
    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
    }
    iVar9 = *(int *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 0x5c);
    piVar18 = (int *)((uVar13 + param_2 + 2 + uVar5) * iVar9 >> 3);
                    /* try { // try from 0016b146 to 0016b3c8 has its CatchHandler @ 0016b41d */
    piVar8 = (int *)FUN_001aa840(piVar18);
    if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b411 to 0016b415 has its CatchHandler @ 0016b41d */
      FUN_0008b620("../../gold/parameters.h",0x69,"target",0);
    }
    cVar2 = *(char *)(*(int *)(*(int *)(DAT_0033f2f0 + 0xc) + 4) + 4);
    if (iVar9 == 0x20) {
      if (cVar2 != '\0') {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0016b3f0 to 0016b3f4 has its CatchHandler @ 0016b41d */
        FUN_0008b620("../../gold/dynobj.cc",0x3c6,"create_elf_hash_table",&DAT_0033f2f0);
      }
      iVar9 = (int)local_48 - (int)local_34 >> 2;
      piVar11 = piVar8 + 2;
      iVar16 = (int)local_4c - (int)local_38 >> 2;
      *piVar8 = iVar9;
      piVar8[1] = iVar16;
      piVar10 = piVar18;
      if (iVar9 != 0) {
        piVar10 = (int *)(iVar9 * 4 + 8);
        piVar19 = local_34;
        do {
          iVar4 = *piVar19;
          piVar14 = piVar11 + 1;
          piVar19 = piVar19 + 1;
          *piVar11 = iVar4;
          piVar11 = piVar14;
        } while (piVar8 + iVar9 + 2 != piVar14);
        piVar11 = piVar8 + iVar9 + 2;
      }
      piVar19 = piVar11;
      if (iVar16 != 0) {
        piVar19 = (int *)(((int)local_4c - (int)local_38) + (int)piVar11);
        piVar14 = local_38;
        do {
          iVar9 = *piVar14;
          piVar12 = piVar11 + 1;
          piVar14 = piVar14 + 1;
          *piVar11 = iVar9;
          piVar11 = piVar12;
          piVar10 = piVar19;
        } while (piVar12 != piVar19);
      }
      if (piVar18 != (int *)((int)piVar19 - (int)piVar8)) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar10);
      }
    }
    else {
      if (iVar9 != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x3e9,"create_elf_hash_table",cVar2);
      }
      if (cVar2 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x3db,"create_elf_hash_table",piVar8);
      }
      piVar11 = piVar8 + 4;
      piVar8[1] = 0;
      piVar8[3] = 0;
      iVar9 = (int)local_4c - (int)local_38 >> 2;
      iVar16 = (int)local_48 - (int)local_34 >> 2;
      piVar8[2] = iVar9;
      *piVar8 = iVar16;
      piVar10 = local_34;
      piVar19 = piVar11;
      piVar14 = piVar11;
      if (iVar16 != 0) {
        do {
          iVar4 = *piVar10;
          piVar10 = piVar10 + 1;
          piVar19[1] = 0;
          piVar14 = piVar19 + 2;
          *piVar19 = iVar4;
          piVar19 = piVar14;
        } while (piVar10 != (int *)((int)local_34 + ((int)local_48 - (int)local_34)));
        piVar11 = piVar11 + iVar16 * 2;
      }
      if (iVar9 != 0) {
        piVar10 = local_38;
        piVar19 = piVar11;
        do {
          iVar16 = *piVar10;
          piVar10 = piVar10 + 1;
          piVar19[1] = 0;
          piVar14 = piVar19 + 2;
          *piVar19 = iVar16;
          piVar19 = piVar14;
        } while ((int *)(((int)local_4c - (int)local_38) + (int)local_38) != piVar10);
        piVar11 = piVar11 + iVar9 * 2;
      }
      if (piVar18 != (int *)((int)piVar11 - (int)piVar8)) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/dynobj.cc",0x40e,"sized_create_elf_hash_table",piVar14);
      }
    }
    *param_3 = (int)piVar8;
    *param_4 = piVar18;
    if (local_38 != (int *)0x0) {
      FUN_001ac470(local_38);
    }
    if (local_34 != (int *)0x0) {
      FUN_001ac470(local_34);
    }
    if (local_28 != (uint *)0x0) {
      FUN_001ac470(local_28);
    }
    return;
  }
  param_1 = (int *)*param_1;
  iVar9 = *(int *)(*param_1 + 0x14);
  if (iVar9 != 0) {
    uVar7 = 0;
    do {
      uVar3 = local_28[uVar7];
      uVar7 = uVar7 + 1;
      local_38[iVar9] = local_34[uVar3 % uVar13];
      local_34[uVar3 % uVar13] = iVar9;
      if (uVar7 == uVar5) goto LAB_0016b10b;
      iVar9 = *(int *)(param_1[uVar7] + 0x14);
    } while (iVar9 != 0);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0008b620("../../gold/symtab.h",0x19a,"dynsym_index");
}

