
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void rescan(Plugin_manager * this, Task * task) */

void __thiscall gold::Plugin_manager::rescan(Plugin_manager *this,Task *task)

{
  pointer pRVar1;
  Symbol **ppSVar2;
  Symbol *pSVar3;
  Archive *pAVar4;
  Task *pTVar5;
  bool bVar6;
  Task *pTVar7;
  pointer ppSVar8;
  pointer ppSVar9;
  Symbol_table *pSVar10;
  Symbol **ppSVar11;
  Task *pTVar12;
  pointer ppAVar13;
  uint uVar14;
  Symbol **__args_0;
  Input_group *pIVar15;
  Task *in_stack_ffffffb8;
  iterator __position;
  Task *local_30;
  size_t local_2c;
  Task *local_24;
  
  pTVar7 = (Task *)((int)(this->rescannable_).
                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
                         ._M_impl._M_finish -
                    (int)(this->rescannable_).
                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
                         ._M_impl._M_start >> 3);
  ppSVar8 = (this->undefined_symbols_).
            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish;
  ppSVar9 = (this->undefined_symbols_).
            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;
  if (ppSVar9 == ppSVar8) {
    return;
  }
  if (pTVar7 != (Task *)0x0) {
    uVar14 = (int)ppSVar8 - (int)ppSVar9;
    if ((uint)((int)uVar14 >> 2) < 0x40000000) {
      local_30 = (Task *)0x0;
      do {
        ppSVar8 = (pointer)operator_new(uVar14);
        ppSVar2 = (this->undefined_symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        ppSVar11 = (this->undefined_symbols_).
                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                   _M_finish;
        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>
        ._M_impl._M_start = ppSVar8;
        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>
        ._M_impl._M_finish = ppSVar8;
        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>
        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);
        __args_0 = ppSVar2;
        local_24 = pTVar7;
        if (ppSVar2 == ppSVar11) {
LAB_001a782c:
          if (ppSVar11 == (Symbol **)0x0) {
            return;
          }
          operator_delete(ppSVar11);
          return;
        }
        do {
          pSVar3 = *__args_0;
          pTVar5 = local_24;
          if ((pSVar3->field_0x2a & 7) == 0) {
            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;
          }
          else if ((pSVar3->field_0x2a & 7) == 4) {
LAB_001a75db:
            __position._M_current =
                 (this->undefined_symbols_).
                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish
            ;
            if (__position._M_current ==
                (this->undefined_symbols_).
                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                _M_end_of_storage) {
                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */
              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::
              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)
              ;
            }
            else {
              *__position._M_current = pSVar3;
              (this->undefined_symbols_).
              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =
                   __position._M_current + 1;
              __position._M_current = (Symbol **)in_stack_ffffffb8;
            }
            pTVar12 = local_30;
            in_stack_ffffffb8 = (Task *)__position._M_current;
            if (local_30 < local_24) {
              do {
                in_stack_ffffffb8 = pTVar12;
                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */
                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);
                pTVar5 = pTVar12;
                if (bVar6) break;
                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);
                pTVar5 = local_24;
              } while (local_24 != pTVar12);
            }
          }
          __args_0 = __args_0 + 1;
          local_24 = pTVar5;
        } while (ppSVar11 != __args_0);
        ppSVar11 = ppSVar2;
        if (pTVar7 <= pTVar5) goto LAB_001a782c;
        pRVar1 = (this->rescannable_).
                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
                 ._M_impl._M_start + (int)pTVar5;
        pIVar15 = (pRVar1->u).input_group;
        if (pRVar1->is_archive == false) {
          pSVar10 = this->symtab_;
          local_2c = pSVar10->saw_undefined_;
          while( true ) {
            ppAVar13 = (pIVar15->archives_).
                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.
                       _M_start;
            if (ppAVar13 !=
                (pIVar15->archives_).
                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.
                _M_finish) {
              do {
                pAVar4 = *ppAVar13;
                File_read::lock(&pAVar4->input_file_->file_,task);
                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */
                Archive::add_symbols
                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_
                          );
                ppAVar13 = ppAVar13 + 1;
                in_stack_ffffffb8 = task;
                File_read::unlock(&pAVar4->input_file_->file_,task);
              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);
              pSVar10 = this->symtab_;
            }
            if (local_2c == pSVar10->saw_undefined_) break;
            pIVar15 = (pRVar1->u).input_group;
            local_2c = pSVar10->saw_undefined_;
          }
        }
        else {
          File_read::lock((File_read *)
                          ((int)pIVar15[3].archives_.
                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.
                                _M_impl._M_start + 0x1c),task);
                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */
          Archive::add_symbols
                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,
                     this->mapfile_);
          in_stack_ffffffb8 = task;
          File_read::unlock((File_read *)
                            ((int)pIVar15[3].archives_.
                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>
                                  ._M_impl._M_start + 0x1c),task);
        }
        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);
        if (local_30 < pTVar12) {
          while( true ) {
            pRVar1 = (this->rescannable_).
                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
                     ._M_impl._M_start + (int)local_30;
            pIVar15 = (pRVar1->u).input_group;
            if (pRVar1->is_archive == false) {
              if (pIVar15 != (Input_group *)0x0) {
                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);
                in_stack_ffffffb8 = (Task *)0xc;
                operator_delete(pIVar15,0xc);
              }
            }
            else if (pIVar15 != (Input_group *)0x0) {
              (*(code *)(pIVar15->archives_).
                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.
                        _M_start[1])(pIVar15);
            }
            if (pTVar5 == local_30) break;
            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);
          }
        }
        if (ppSVar2 != (Symbol **)0x0) {
          operator_delete(ppSVar2);
        }
        ppSVar8 = (this->undefined_symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                  _M_finish;
        ppSVar9 = (this->undefined_symbols_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
        ;
        if (ppSVar9 == ppSVar8) {
          return;
        }
        if (pTVar7 <= pTVar12) goto LAB_001a7847;
        uVar14 = (int)ppSVar8 - (int)ppSVar9;
        local_30 = pTVar12;
      } while ((uint)((int)uVar14 >> 2) < 0x40000000);
    }
                    /* WARNING: Subroutine does not return */
    std::__throw_length_error("vector::reserve");
  }
LAB_001a7847:
  (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
  _M_impl._M_finish = ppSVar9;
  return;
}



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

void FUN_001a7510(int param_1,undefined4 param_2)

{
  char *pcVar1;
  int *piVar2;
  uint uVar3;
  char cVar4;
  uint uVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  uint uVar9;
  int *piVar10;
  int iVar11;
  uint local_30;
  int local_2c;
  uint local_24;
  
  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;
  iVar11 = *(int *)(param_1 + 0x54);
  if (iVar11 == *(int *)(param_1 + 0x58)) {
    return;
  }
  if (uVar5 != 0) {
    iVar11 = *(int *)(param_1 + 0x58) - iVar11;
    if ((uint)(iVar11 >> 2) < 0x40000000) {
      local_30 = 0;
      do {
        iVar6 = FUN_00246670(iVar11);
        piVar2 = *(int **)(param_1 + 0x54);
        piVar8 = *(int **)(param_1 + 0x58);
        *(int *)(param_1 + 0x54) = iVar6;
        *(int *)(param_1 + 0x58) = iVar6;
        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;
        piVar7 = piVar2;
        local_24 = uVar5;
        if (piVar2 == piVar8) {
LAB_001a782c:
          if (piVar8 == (int *)0x0) {
            return;
          }
          FUN_00248220(piVar8);
          return;
        }
        do {
          iVar11 = *piVar7;
          uVar3 = local_24;
          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {
            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))
            goto LAB_001a75db;
          }
          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {
LAB_001a75db:
            piVar10 = *(int **)(param_1 + 0x58);
            if (piVar10 == *(int **)(param_1 + 0x5c)) {
                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */
              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);
            }
            else {
              *piVar10 = iVar11;
              *(int **)(param_1 + 0x58) = piVar10 + 1;
            }
            uVar9 = local_30;
            if (local_30 < local_24) {
              do {
                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */
                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);
                uVar3 = uVar9;
                if (cVar4 != '\0') break;
                uVar9 = uVar9 + 1;
                uVar3 = local_24;
              } while (local_24 != uVar9);
            }
          }
          piVar7 = piVar7 + 1;
          local_24 = uVar3;
        } while (piVar8 != piVar7);
        piVar8 = piVar2;
        if (uVar5 <= uVar3) goto LAB_001a782c;
        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);
        piVar8 = *(int **)(pcVar1 + 4);
        if (*pcVar1 == '\0') {
          piVar7 = *(int **)(param_1 + 0x74);
          local_2c = *piVar7;
          while( true ) {
            piVar10 = (int *)*piVar8;
            if (piVar10 != (int *)piVar8[1]) {
              do {
                iVar11 = *piVar10;
                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);
                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */
                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),
                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),
                             *(undefined4 *)(param_1 + 0x80));
                piVar10 = piVar10 + 1;
                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);
              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);
              piVar7 = *(int **)(param_1 + 0x74);
            }
            if (local_2c == *piVar7) break;
            piVar8 = *(int **)(pcVar1 + 4);
            local_2c = *piVar7;
          }
        }
        else {
          FUN_000d2820(piVar8[9] + 0x1c,param_2);
                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */
          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),
                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),
                       *(undefined4 *)(param_1 + 0x80));
          FUN_000d3850(piVar8[9] + 0x1c,param_2);
        }
        uVar9 = uVar3 + 1;
        if (local_30 < uVar9) {
          while( true ) {
            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);
            piVar8 = *(int **)(pcVar1 + 4);
            if (*pcVar1 == '\0') {
              if (piVar8 != (int *)0x0) {
                FUN_001ae490(piVar8);
                FUN_00248200(piVar8,0xc);
              }
            }
            else if (piVar8 != (int *)0x0) {
              (**(code **)(*piVar8 + 4))(piVar8);
            }
            if (uVar3 == local_30) break;
            local_30 = local_30 + 1;
          }
        }
        if (piVar2 != (int *)0x0) {
          FUN_00248220(piVar2);
        }
        iVar11 = *(int *)(param_1 + 0x54);
        if (iVar11 == *(int *)(param_1 + 0x58)) {
          return;
        }
        if (uVar5 <= uVar9) goto LAB_001a7847;
        iVar11 = *(int *)(param_1 + 0x58) - iVar11;
        local_30 = uVar9;
      } while ((uint)(iVar11 >> 2) < 0x40000000);
    }
                    /* WARNING: Subroutine does not return */
    FUN_0028dc10("vector::reserve");
  }
LAB_001a7847:
  *(int *)(param_1 + 0x58) = iVar11;
  return;
}


CALL 0x000b4846
ADD EAX,0x26caeb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x2c
MOV dword ptr [EBP + -0x1c],EAX
MOV ECX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x4c]
SUB EAX,dword ptr [ECX + 0x48]
SAR EAX,0x3
MOV ECX,EAX
MOV dword ptr [EBP + -0x34],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EAX + 0x58]
MOV EAX,dword ptr [EAX + 0x54]
CMP EAX,EDI
JZ 0x001a783f
TEST ECX,ECX
JZ 0x001a7847
SUB EDI,EAX
MOV EAX,EDI
SAR EAX,0x2
CMP EAX,0x3fffffff
JA 0x001a7761
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x2c],0x0
ADD EAX,0x54
MOV dword ptr [EBP + -0x38],EAX
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH EDI
CALL 0x00246670
MOV EDX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0x8]
ADD ESP,0x10
MOV ECX,dword ptr [ECX + 0x54]
MOV EBX,dword ptr [EDX + 0x58]
MOV dword ptr [EDX + 0x54],EAX
MOV dword ptr [EDX + 0x58],EAX
ADD EAX,EDI
MOV dword ptr [EBP + -0x30],ECX
MOV dword ptr [EDX + 0x5c],EAX
CMP ECX,EBX
JZ 0x001a782c
MOV EAX,dword ptr [EBP + -0x34]
MOV EDI,dword ptr [EBP + -0x30]
MOV dword ptr [EBP + -0x20],EAX
JMP 0x001a75cc
MOV EAX,dword ptr [EDX + 0xc]
TEST EAX,EAX
JNZ 0x001a75c5
TEST byte ptr [EDX + 0x2b],0x20
JNZ 0x001a75db
ADD EDI,0x4
CMP EBX,EDI
JZ 0x001a762f
MOV EDX,dword ptr [EDI]
MOVZX EAX,byte ptr [EDX + 0x2a]
AND EAX,0x7
JZ 0x001a75b8
CMP AL,0x4
JNZ 0x001a75c5
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x58]
CMP EAX,dword ptr [ECX + 0x5c]
JZ 0x001a7778
MOV dword ptr [EAX],EDX
ADD EAX,0x4
MOV dword ptr [ECX + 0x58],EAX
MOV EAX,dword ptr [EBP + -0x2c]
CMP dword ptr [EBP + -0x20],EAX
JBE 0x001a75c5
MOV ESI,EAX
JMP 0x001a7610
ADD ESI,0x1
CMP dword ptr [EBP + -0x20],ESI
JZ 0x001a75c5
SUB ESP,0x4
PUSH dword ptr [EDI]
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x001a68f0
ADD ESP,0x10
TEST AL,AL
JZ 0x001a7608
ADD EDI,0x4
MOV dword ptr [EBP + -0x20],ESI
CMP EBX,EDI
JNZ 0x001a75cc
MOV ECX,dword ptr [EBP + -0x34]
CMP dword ptr [EBP + -0x20],ECX
JNC 0x001a7829
MOV EAX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [EAX + 0x48]
LEA ESI,[EAX + ECX*0x8]
CMP byte ptr [ESI],0x0
MOV EDI,dword ptr [ESI + 0x4]
MOV dword ptr [EBP + -0x24],ESI
JZ 0x001a7790
SUB ESP,0x8
PUSH dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EDI + 0x24]
MOV EBX,dword ptr [EBP + -0x1c]
ADD EAX,0x1c
PUSH EAX
CALL 0x000d2820
POP EAX
MOV EAX,dword ptr [EBP + 0x8]
PUSH dword ptr [EAX + 0x80]
PUSH dword ptr [EAX + 0x70]
PUSH dword ptr [EAX + 0x78]
PUSH dword ptr [EAX + 0x74]
PUSH dword ptr [ESI + 0x4]
MOV ESI,dword ptr [EBP + -0x1c]
MOV EBX,ESI
CALL 0x000b7e90
ADD ESP,0x18
PUSH dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EDI + 0x24]
ADD EAX,0x1c
PUSH EAX
CALL 0x000d3850
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x20]
LEA ESI,[EAX + 0x1]
CMP ESI,dword ptr [EBP + -0x2c]
JBE 0x001a771a
MOV dword ptr [EBP + -0x24],ESI
MOV EDI,dword ptr [EBP + -0x2c]
MOV ESI,dword ptr [EBP + -0x20]
JMP 0x001a76d9
TEST EAX,EAX
JZ 0x001a76d0
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x4]
ADD ESP,0x10
LEA EAX,[EDI + 0x1]
CMP ESI,EDI
JZ 0x001a7717
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x48]
LEA EDX,[EAX + EDI*0x8]
CMP byte ptr [EDX],0x0
MOV EAX,dword ptr [EDX + 0x4]
JNZ 0x001a76c0
TEST EAX,EAX
JZ 0x001a76d0
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + -0x20],EAX
PUSH EAX
CALL 0x001ae490
MOV EAX,dword ptr [EBP + -0x20]
POP ECX
POP EBX
MOV EBX,dword ptr [EBP + -0x1c]
PUSH 0xc
PUSH EAX
CALL 0x00248200
ADD ESP,0x10
LEA EAX,[EDI + 0x1]
CMP ESI,EDI
JNZ 0x001a76d7
MOV ESI,dword ptr [EBP + -0x24]
MOV EAX,dword ptr [EBP + -0x30]
TEST EAX,EAX
JZ 0x001a7732
SUB ESP,0xc
PUSH dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x1c]
CALL 0x00248220
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EAX + 0x58]
MOV EAX,dword ptr [EAX + 0x54]
CMP EAX,EDI
JZ 0x001a783f
CMP dword ptr [EBP + -0x34],ESI
JBE 0x001a7847
SUB EDI,EAX
MOV dword ptr [EBP + -0x2c],ESI
MOV EAX,EDI
SAR EAX,0x2
CMP EAX,0x3fffffff
JBE 0x001a7578
MOV EBX,dword ptr [EBP + -0x1c]
SUB ESP,0xc
LEA EAX,[EBX + 0xffee519a]
PUSH EAX
CALL 0x0028dc10
SUB ESP,0x4
PUSH EDI
PUSH EAX
PUSH dword ptr [EBP + -0x38]
CALL 0x000a82c0
ADD ESP,0x10
JMP 0x001a75f5
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EAX + 0x74]
MOV EAX,dword ptr [EDX]
MOV dword ptr [EBP + -0x28],EAX
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [EDI]
CMP ESI,dword ptr [EDI + 0x4]
JZ 0x001a7810
LEA ESI,[ESI]
NOP
MOV EDI,dword ptr [ESI]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x1c]
PUSH dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EDI + 0x24]
ADD EAX,0x1c
PUSH EAX
CALL 0x000d2820
POP EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x1c]
PUSH dword ptr [EAX + 0x80]
PUSH dword ptr [EAX + 0x70]
PUSH dword ptr [EAX + 0x78]
PUSH dword ptr [EAX + 0x74]
PUSH dword ptr [ESI]
CALL 0x000b7e90
ADD ESP,0x18
PUSH dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EDI + 0x24]
ADD ESI,0x4
MOV EBX,dword ptr [EBP + -0x1c]
ADD EAX,0x1c
PUSH EAX
CALL 0x000d3850
MOV EAX,dword ptr [EBP + -0x24]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],ESI
JNZ 0x001a77b0
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EAX + 0x74]
MOV EAX,dword ptr [EDX]
CMP dword ptr [EBP + -0x28],EAX
JZ 0x001a76a0
MOV ECX,dword ptr [EBP + -0x24]
MOV dword ptr [EBP + -0x28],EAX
MOV EDI,dword ptr [ECX + 0x4]
JMP 0x001a77a0
MOV EBX,dword ptr [EBP + -0x30]
TEST EBX,EBX
JZ 0x001a783f
SUB ESP,0xc
PUSH EBX
MOV EBX,dword ptr [EBP + -0x1c]
CALL 0x00248220
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [ECX + 0x58],EAX
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_001a7510(int param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}\n\n" comment (function_definition "void FUN_001a7510(int param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" primitive_type (function_declarator "FUN_001a7510(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;" (assignment_expression "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" identifier = (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" identifier = (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }" if (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" ( (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" identifier == (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("vector::reserve");\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("vector::reserve");\n  }" { (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" identifier = (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" if (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" ( (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) ))) < number_literal) )) (compound_statement "{\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);" do (compound_statement "{\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      }" { (expression_statement "iVar6 = FUN_00246670(iVar11);" (assignment_expression "iVar6 = FUN_00246670(iVar11)" identifier = (call_expression "FUN_00246670(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "piVar2 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x58)" identifier = (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x54) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x54) = iVar6" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x58) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar6" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x5c) = iVar6 + iVar11;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar6 + iVar11" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = (binary_expression "iVar6 + iVar11" identifier + identifier)) ;) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" identifier = identifier) ;) (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" identifier = identifier) ;) (if_statement "if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" if (parenthesized_expression "(piVar2 == piVar8)" ( (binary_expression "piVar2 == piVar8" identifier == identifier) )) (compound_statement "{\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" { (labeled_statement "LAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }" statement_identifier : (if_statement "if (piVar8 == (int *)0x0) {\n            return;\n          }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_00248220(piVar8);" (call_expression "FUN_00248220(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);" do (compound_statement "{\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        }" { (expression_statement "iVar11 = *piVar7;" (assignment_expression "iVar11 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }" { (if_statement "if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;" if (parenthesized_expression "((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xc) == 0" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar11 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar11 + 0x2b)" * (cast_expression "(byte *)(iVar11 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001a75db;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" else (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" { (labeled_statement "LAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);" statement_identifier : (expression_statement "piVar10 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x58)" identifier = (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;)) (if_statement "if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" if (parenthesized_expression "(piVar10 == *(int **)(param_1 + 0x5c))" ( (binary_expression "piVar10 == *(int **)(param_1 + 0x5c)" identifier == (pointer_expression "*(int **)(param_1 + 0x5c)" * (cast_expression "(int **)(param_1 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }" { comment (expression_statement "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);" (call_expression "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7)" identifier (argument_list "(param_1 + 0x54,piVar10,piVar7)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" else (compound_statement "{\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" { (expression_statement "*piVar10 = iVar11;" (assignment_expression "*piVar10 = iVar11" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "*(int **)(param_1 + 0x58) = piVar10 + 1;" (assignment_expression "*(int **)(param_1 + 0x58) = piVar10 + 1" (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar9 = local_30;" (assignment_expression "uVar9 = local_30" identifier = identifier) ;) (if_statement "if (local_30 < local_24) {\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" if (parenthesized_expression "(local_30 < local_24)" ( (binary_expression "local_30 < local_24" identifier < identifier) )) (compound_statement "{\n              do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" { (do_statement "do {\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);" do (compound_statement "{\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              }" { comment (expression_statement "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);" (assignment_expression "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7)" identifier = (call_expression "FUN_001a68f0(param_1,uVar9,*piVar7)" identifier (argument_list "(param_1,uVar9,*piVar7)" ( identifier , identifier , (pointer_expression "*piVar7" * identifier) )))) ;) (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) (if_statement "if (cVar4 != '\0') break;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) }) while (parenthesized_expression "(local_24 != uVar9)" ( (binary_expression "local_24 != uVar9" identifier != identifier) )) ;) })) })))) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "local_24 = uVar3;" (assignment_expression "local_24 = uVar3" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 != piVar7)" ( (binary_expression "piVar8 != piVar7" identifier != identifier) )) ;) (expression_statement "piVar8 = piVar2;" (assignment_expression "piVar8 = piVar2" identifier = identifier) ;) (if_statement "if (uVar5 <= uVar3) goto LAB_001a782c;" if (parenthesized_expression "(uVar5 <= uVar3)" ( (binary_expression "uVar5 <= uVar3" identifier <= identifier) )) (goto_statement "goto LAB_001a782c;" goto statement_identifier ;)) (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x48) + uVar3 * 8)" ( (binary_expression "*(int *)(param_1 + 0x48) + uVar3 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) + (binary_expression "uVar3 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" if (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }" { (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" identifier = (pointer_expression "*(int **)(param_1 + 0x74)" * (cast_expression "(int **)(param_1 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (while_statement "while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" { (expression_statement "piVar10 = (int *)*piVar8;" (assignment_expression "piVar10 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" if (parenthesized_expression "(piVar10 != (int *)piVar8[1])" ( (binary_expression "piVar10 != (int *)piVar8[1]" identifier != (cast_expression "(int *)piVar8[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" { (do_statement "do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);" do (compound_statement "{\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              }" { (expression_statement "iVar11 = *piVar10;" (assignment_expression "iVar11 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" identifier (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" ( (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) comment (expression_statement "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" identifier (argument_list "(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" ( (pointer_expression "*piVar10" * identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" identifier (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" ( (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) while (parenthesized_expression "(*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10)" ( (binary_expression "*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10" (pointer_expression "*(int **)(*(int *)(pcVar1 + 4) + 4)" * (cast_expression "(int **)(*(int *)(pcVar1 + 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar1 + 4) + 4)" ( (binary_expression "*(int *)(pcVar1 + 4) + 4" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) + number_literal) )))) != identifier) )) ;) (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" identifier = (pointer_expression "*(int **)(param_1 + 0x74)" * (cast_expression "(int **)(param_1 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) })) (if_statement "if (local_2c == *piVar7) break;" if (parenthesized_expression "(local_2c == *piVar7)" ( (binary_expression "local_2c == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) })) }) (else_clause "else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" else (compound_statement "{\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" { (expression_statement "FUN_000d2820(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar8[9] + 0x1c,param_2)" identifier (argument_list "(piVar8[9] + 0x1c,param_2)" ( (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) comment (expression_statement "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" identifier (argument_list "(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" ( (pointer_expression "*(undefined4 *)(pcVar1 + 4)" * (cast_expression "(undefined4 *)(pcVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000d3850(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar8[9] + 0x1c,param_2)" identifier (argument_list "(piVar8[9] + 0x1c,param_2)" ( (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) }))) (expression_statement "uVar9 = uVar3 + 1;" (assignment_expression "uVar9 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (if_statement "if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" if (parenthesized_expression "(local_30 < uVar9)" ( (binary_expression "local_30 < uVar9" identifier < identifier) )) (compound_statement "{\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" { (while_statement "while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" { (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x48) + local_30 * 8)" ( (binary_expression "*(int *)(param_1 + 0x48) + local_30 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) + (binary_expression "local_30 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" if (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }" { (if_statement "if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" { (expression_statement "FUN_001ae490(piVar8);" (call_expression "FUN_001ae490(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))) ;) (expression_statement "FUN_00248200(piVar8,0xc);" (call_expression "FUN_00248200(piVar8,0xc)" identifier (argument_list "(piVar8,0xc)" ( identifier , number_literal ))) ;) })) }) (else_clause "else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" else (if_statement "if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" { (expression_statement "(**(code **)(*piVar8 + 4))(piVar8);" (call_expression "(**(code **)(*piVar8 + 4))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 4))" ( (pointer_expression "**(code **)(*piVar8 + 4)" * (pointer_expression "*(code **)(*piVar8 + 4)" * (cast_expression "(code **)(*piVar8 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 4)" ( (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))) ;) })))) (if_statement "if (uVar3 == local_30) break;" if (parenthesized_expression "(uVar3 == local_30)" ( (binary_expression "uVar3 == local_30" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00248220(piVar2);\n        }" { (expression_statement "FUN_00248220(piVar2);" (call_expression "FUN_00248220(piVar2)" identifier (argument_list "(piVar2)" ( identifier ))) ;) })) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" identifier = (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }" if (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" ( (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" identifier == (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (uVar5 <= uVar9) goto LAB_001a7847;" if (parenthesized_expression "(uVar5 <= uVar9)" ( (binary_expression "uVar5 <= uVar9" identifier <= identifier) )) (goto_statement "goto LAB_001a7847;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" identifier = (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) - identifier)) ;) (expression_statement "local_30 = uVar9;" (assignment_expression "local_30 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" ( (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) ))) < number_literal) )) ;) })) comment (expression_statement "FUN_0028dc10("vector::reserve");" (call_expression "FUN_0028dc10("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (labeled_statement "LAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x58) = iVar11;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void rescan(Plugin_manager * this, Task * task) */\n\nvoid __thiscall gold::Plugin_manager::rescan(Plugin_manager *this,Task *task)\n\n{\n  pointer pRVar1;\n  Symbol **ppSVar2;\n  Symbol *pSVar3;\n  Archive *pAVar4;\n  Task *pTVar5;\n  bool bVar6;\n  Task *pTVar7;\n  pointer ppSVar8;\n  pointer ppSVar9;\n  Symbol_table *pSVar10;\n  Symbol **ppSVar11;\n  Task *pTVar12;\n  pointer ppAVar13;\n  uint uVar14;\n  Symbol **__args_0;\n  Input_group *pIVar15;\n  Task *in_stack_ffffffb8;\n  iterator __position;\n  Task *local_30;\n  size_t local_2c;\n  Task *local_24;\n  \n  pTVar7 = (Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3);\n  ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish;\n  ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;\n  if (ppSVar9 == ppSVar8) {\n    return;\n  }\n  if (pTVar7 != (Task *)0x0) {\n    uVar14 = (int)ppSVar8 - (int)ppSVar9;\n    if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\nLAB_001a7847:\n  (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n  _M_impl._M_finish = ppSVar9;\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Plugin_manager::rescan(Plugin_manager *this,Task *task)\n\n{\n  pointer pRVar1;\n  Symbol **ppSVar2;\n  Symbol *pSVar3;\n  Archive *pAVar4;\n  Task *pTVar5;\n  bool bVar6;\n  Task *pTVar7;\n  pointer ppSVar8;\n  pointer ppSVar9;\n  Symbol_table *pSVar10;\n  Symbol **ppSVar11;\n  Task *pTVar12;\n  pointer ppAVar13;\n  uint uVar14;\n  Symbol **__args_0;\n  Input_group *pIVar15;\n  Task *in_stack_ffffffb8;\n  iterator __position;\n  Task *local_30;\n  size_t local_2c;\n  Task *local_24;\n  \n  pTVar7 = (Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3);\n  ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish;\n  ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;\n  if (ppSVar9 == ppSVar8) {\n    return;\n  }\n  if (pTVar7 != (Task *)0x0) {\n    uVar14 = (int)ppSVar8 - (int)ppSVar9;\n    if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\nLAB_001a7847:\n  (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n  _M_impl._M_finish = ppSVar9;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Plugin_manager::" identifier : : identifier : :) (function_declarator "rescan(Plugin_manager *this,Task *task)" identifier (parameter_list "(Plugin_manager *this,Task *task)" ( (parameter_declaration "Plugin_manager *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Task *task" type_identifier (pointer_declarator "*task" * identifier)) ))) (compound_statement "{\n  pointer pRVar1;\n  Symbol **ppSVar2;\n  Symbol *pSVar3;\n  Archive *pAVar4;\n  Task *pTVar5;\n  bool bVar6;\n  Task *pTVar7;\n  pointer ppSVar8;\n  pointer ppSVar9;\n  Symbol_table *pSVar10;\n  Symbol **ppSVar11;\n  Task *pTVar12;\n  pointer ppAVar13;\n  uint uVar14;\n  Symbol **__args_0;\n  Input_group *pIVar15;\n  Task *in_stack_ffffffb8;\n  iterator __position;\n  Task *local_30;\n  size_t local_2c;\n  Task *local_24;\n  \n  pTVar7 = (Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3);\n  ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish;\n  ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;\n  if (ppSVar9 == ppSVar8) {\n    return;\n  }\n  if (pTVar7 != (Task *)0x0) {\n    uVar14 = (int)ppSVar8 - (int)ppSVar9;\n    if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }\nLAB_001a7847:\n  (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n  _M_impl._M_finish = ppSVar9;\n  return;\n}" { (declaration "pointer pRVar1;" type_identifier identifier ;) (declaration "Symbol **ppSVar2;" type_identifier (pointer_declarator "**ppSVar2" * (pointer_declarator "*ppSVar2" * identifier)) ;) (declaration "Symbol *pSVar3;" type_identifier (pointer_declarator "*pSVar3" * identifier) ;) (declaration "Archive *pAVar4;" type_identifier (pointer_declarator "*pAVar4" * identifier) ;) (declaration "Task *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "Task *pTVar7;" type_identifier (pointer_declarator "*pTVar7" * identifier) ;) (declaration "pointer ppSVar8;" type_identifier identifier ;) (declaration "pointer ppSVar9;" type_identifier identifier ;) (declaration "Symbol_table *pSVar10;" type_identifier (pointer_declarator "*pSVar10" * identifier) ;) (declaration "Symbol **ppSVar11;" type_identifier (pointer_declarator "**ppSVar11" * (pointer_declarator "*ppSVar11" * identifier)) ;) (declaration "Task *pTVar12;" type_identifier (pointer_declarator "*pTVar12" * identifier) ;) (declaration "pointer ppAVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "Symbol **__args_0;" type_identifier (pointer_declarator "**__args_0" * (pointer_declarator "*__args_0" * identifier)) ;) (declaration "Input_group *pIVar15;" type_identifier (pointer_declarator "*pIVar15" * identifier) ;) (declaration "Task *in_stack_ffffffb8;" type_identifier (pointer_declarator "*in_stack_ffffffb8" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Task *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "size_t local_2c;" primitive_type identifier ;) (declaration "Task *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "pTVar7 = (Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3);" (assignment_expression "pTVar7 = (Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3)" identifier = (cast_expression "(Task *)((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_start >> 3)" ( (ERROR "(int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::" (comma_expression "(int)(this->rescannable_).\n                         super__Vector_base<gold::Plugin_manager::Rescannable,_std" (binary_expression "(int)(this->rescannable_).\n                         super__Vector_base<gold" (cast_expression "(int)(this->rescannable_).\n                         super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->rescannable_).\n                         super__Vector_base" (parenthesized_expression "(this->rescannable_)" ( (field_expression "this->rescannable_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Plugin_manager::Rescannable" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base<gold" (binary_expression "Rescannable>_>\n                         ._M_impl._M_finish -\n                    (int)(this->rescannable_).\n                         super__Vector_base" (field_expression "Rescannable>_>\n                         ._M_impl._M_finish" (field_expression "Rescannable>_>\n                         ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)(this->rescannable_).\n                         super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->rescannable_).\n                         super__Vector_base" (parenthesized_expression "(this->rescannable_)" ( (field_expression "this->rescannable_" identifier -> field_identifier) )) . field_identifier))) < identifier) : : identifier : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Rescannable>_>\n                         ._M_impl._M_start >> 3" (field_expression "Rescannable>_>\n                         ._M_impl._M_start" (field_expression "Rescannable>_>\n                         ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) )))) ;) (expression_statement "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish;" (field_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish" (field_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar8 = (this->undefined_symbols_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n            super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n            super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start;" (field_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar9 = (this->undefined_symbols_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n            super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n            super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppSVar9 == ppSVar8) {\n    return;\n  }" if (parenthesized_expression "(ppSVar9 == ppSVar8)" ( (binary_expression "ppSVar9 == ppSVar8" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (pTVar7 != (Task *)0x0) {\n    uVar14 = (int)ppSVar8 - (int)ppSVar9;\n    if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }" if (parenthesized_expression "(pTVar7 != (Task *)0x0)" ( (binary_expression "pTVar7 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar14 = (int)ppSVar8 - (int)ppSVar9;\n    if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }\n                    /* WARNING: Subroutine does not return */\n    std::__throw_length_error("vector::reserve");\n  }" { (expression_statement "uVar14 = (int)ppSVar8 - (int)ppSVar9;" (assignment_expression "uVar14 = (int)ppSVar8 - (int)ppSVar9" identifier = (binary_expression "(int)ppSVar8 - (int)ppSVar9" (cast_expression "(int)ppSVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uint)((int)uVar14 >> 2) < 0x40000000) {\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }" if (parenthesized_expression "((uint)((int)uVar14 >> 2) < 0x40000000)" ( (binary_expression "(uint)((int)uVar14 >> 2) < 0x40000000" (call_expression "(uint)((int)uVar14 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar14 >> 2)" ( (binary_expression "(int)uVar14 >> 2" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) < number_literal) )) (compound_statement "{\n      local_30 = (Task *)0x0;\n      do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);\n    }" { (expression_statement "local_30 = (Task *)0x0;" (assignment_expression "local_30 = (Task *)0x0" identifier = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      } while ((uint)((int)uVar14 >> 2) < 0x40000000);" do (compound_statement "{\n        ppSVar8 = (pointer)operator_new(uVar14);\n        ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;\n        (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);\n        __args_0 = ppSVar2;\n        local_24 = pTVar7;\n        if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }\n        do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);\n        ppSVar11 = ppSVar2;\n        if (pTVar7 <= pTVar5) goto LAB_001a782c;\n        pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;\n        pIVar15 = (pRVar1->u).input_group;\n        if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }\n        pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);\n        if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }\n        if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }\n        ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;\n        ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;\n        if (ppSVar9 == ppSVar8) {\n          return;\n        }\n        if (pTVar7 <= pTVar12) goto LAB_001a7847;\n        uVar14 = (int)ppSVar8 - (int)ppSVar9;\n        local_30 = pTVar12;\n      }" { (expression_statement "ppSVar8 = (pointer)operator_new(uVar14);" (assignment_expression "ppSVar8 = (pointer)operator_new(uVar14)" identifier = (cast_expression "(pointer)operator_new(uVar14)" ( (type_descriptor "pointer" type_identifier) ) (call_expression "operator_new(uVar14)" identifier (argument_list "(uVar14)" ( identifier ))))) ;) (expression_statement "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar2 = (this->undefined_symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n                  super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                  super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish;" (field_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                   _M_finish" (field_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar11 = (this->undefined_symbols_).\n                   super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n                   super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                   super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8;" (assignment_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start = ppSVar8" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_start" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold" (field_expression "(this->undefined_symbols_).super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8;" (assignment_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish = ppSVar8" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_finish" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold" (field_expression "(this->undefined_symbols_).super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14);" (assignment_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage = (pointer)((int)ppSVar8 + uVar14)" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl._M_end_of_storage" (field_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n        ._M_impl" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold" (field_expression "(this->undefined_symbols_).super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (call_expression "(pointer)((int)ppSVar8 + uVar14)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)ppSVar8 + uVar14)" ( (binary_expression "(int)ppSVar8 + uVar14" (cast_expression "(int)ppSVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "__args_0 = ppSVar2;" (assignment_expression "__args_0 = ppSVar2" identifier = identifier) ;) (expression_statement "local_24 = pTVar7;" (assignment_expression "local_24 = pTVar7" identifier = identifier) ;) (if_statement "if (ppSVar2 == ppSVar11) {\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }" if (parenthesized_expression "(ppSVar2 == ppSVar11)" ( (binary_expression "ppSVar2 == ppSVar11" identifier == identifier) )) (compound_statement "{\nLAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }\n          operator_delete(ppSVar11);\n          return;\n        }" { (labeled_statement "LAB_001a782c:\n          if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }" statement_identifier : (if_statement "if (ppSVar11 == (Symbol **)0x0) {\n            return;\n          }" if (parenthesized_expression "(ppSVar11 == (Symbol **)0x0)" ( (binary_expression "ppSVar11 == (Symbol **)0x0" identifier == (cast_expression "(Symbol **)0x0" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) }))) (expression_statement "operator_delete(ppSVar11);" (call_expression "operator_delete(ppSVar11)" identifier (argument_list "(ppSVar11)" ( identifier ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        } while (ppSVar11 != __args_0);" do (compound_statement "{\n          pSVar3 = *__args_0;\n          pTVar5 = local_24;\n          if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }\n          __args_0 = __args_0 + 1;\n          local_24 = pTVar5;\n        }" { (expression_statement "pSVar3 = *__args_0;" (assignment_expression "pSVar3 = *__args_0" identifier = (pointer_expression "*__args_0" * identifier)) ;) (expression_statement "pTVar5 = local_24;" (assignment_expression "pTVar5 = local_24" identifier = identifier) ;) (if_statement "if ((pSVar3->field_0x2a & 7) == 0) {\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }\n          else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }" if (parenthesized_expression "((pSVar3->field_0x2a & 7) == 0)" ( (binary_expression "(pSVar3->field_0x2a & 7) == 0" (parenthesized_expression "(pSVar3->field_0x2a & 7)" ( (binary_expression "pSVar3->field_0x2a & 7" (field_expression "pSVar3->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;\n          }" { (if_statement "if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;" if (parenthesized_expression "(((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0))" ( (binary_expression "((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)" (parenthesized_expression "((pSVar3->u2_).shndx == 0)" ( (binary_expression "(pSVar3->u2_).shndx == 0" (field_expression "(pSVar3->u2_).shndx" (parenthesized_expression "(pSVar3->u2_)" ( (field_expression "pSVar3->u2_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) && (parenthesized_expression "((pSVar3->field_0x2b & 0x20) != 0)" ( (binary_expression "(pSVar3->field_0x2b & 0x20) != 0" (parenthesized_expression "(pSVar3->field_0x2b & 0x20)" ( (binary_expression "pSVar3->field_0x2b & 0x20" (field_expression "pSVar3->field_0x2b" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001a75db;" goto statement_identifier ;)) }) (else_clause "else if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }" else (if_statement "if ((pSVar3->field_0x2a & 7) == 4) {\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }" if (parenthesized_expression "((pSVar3->field_0x2a & 7) == 4)" ( (binary_expression "(pSVar3->field_0x2a & 7) == 4" (parenthesized_expression "(pSVar3->field_0x2a & 7)" ( (binary_expression "pSVar3->field_0x2a & 7" (field_expression "pSVar3->field_0x2a" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;\n            if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }\n            pTVar12 = local_30;\n            in_stack_ffffffb8 = (Task *)__position._M_current;\n            if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }\n          }" { (labeled_statement "LAB_001a75db:\n            __position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish\n            ;" statement_identifier : (ERROR "__position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "__position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*,_std" (binary_expression "__position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold::Symbol*" (assignment_expression "__position._M_current =\n                 (this->undefined_symbols_).\n                 super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->undefined_symbols_).\n                 super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                 super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Symbol*>_>._M_impl._M_finish\n            ;" (field_expression "Symbol*>_>._M_impl._M_finish" (field_expression "Symbol*>_>._M_impl" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if (__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage) {\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }\n            else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }" if (parenthesized_expression "(__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage)" ( (field_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                _M_end_of_storage" (field_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold::Symbol*,_std" (binary_expression "__position._M_current ==\n                (this->undefined_symbols_).\n                super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(this->undefined_symbols_).\n                super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */\n              std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;\n            }" { comment (ERROR "std::vector<gold::Symbol*,_std::allocator<gold::Symbol*>_>::\n              _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Symbol*,_std" identifier (ERROR "::vector<gold::Symbol*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol*>_>::\n              _M_realloc_insert<gold" (binary_expression "Symbol*>_>::\n              _M_realloc_insert" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)\n              ;" (binary_expression "Symbol*_const&>(&this->undefined_symbols_,__position,__args_0)" (binary_expression "Symbol*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(&this->undefined_symbols_,__position,__args_0)" ( (comma_expression "&this->undefined_symbols_,__position,__args_0" (pointer_expression "&this->undefined_symbols_" & (field_expression "this->undefined_symbols_" identifier -> field_identifier)) , (comma_expression "__position,__args_0" identifier , identifier)) ))) ;) }) (else_clause "else {\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }" else (compound_statement "{\n              *__position._M_current = pSVar3;\n              (this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;\n              __position._M_current = (Symbol **)in_stack_ffffffb8;\n            }" { (expression_statement "*__position._M_current = pSVar3;" (assignment_expression "*__position._M_current = pSVar3" (pointer_expression "*__position._M_current" * (field_expression "__position._M_current" identifier . field_identifier)) = identifier) ;) (expression_statement "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1;" (assignment_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish =\n                   __position._M_current + 1" (field_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_finish" (field_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(this->undefined_symbols_).\n              super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->undefined_symbols_).\n              super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n              super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;) (expression_statement "__position._M_current = (Symbol **)in_stack_ffffffb8;" (assignment_expression "__position._M_current = (Symbol **)in_stack_ffffffb8" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Symbol **)in_stack_ffffffb8" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "pTVar12 = local_30;" (assignment_expression "pTVar12 = local_30" identifier = identifier) ;) (expression_statement "in_stack_ffffffb8 = (Task *)__position._M_current;" (assignment_expression "in_stack_ffffffb8 = (Task *)__position._M_current" identifier = (cast_expression "(Task *)__position._M_current" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__position._M_current" identifier . field_identifier))) ;) (if_statement "if (local_30 < local_24) {\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }" if (parenthesized_expression "(local_30 < local_24)" ( (binary_expression "local_30 < local_24" identifier < identifier) )) (compound_statement "{\n              do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);\n            }" { (do_statement "do {\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              } while (local_24 != pTVar12);" do (compound_statement "{\n                in_stack_ffffffb8 = pTVar12;\n                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */\n                bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);\n                pTVar5 = pTVar12;\n                if (bVar6) break;\n                pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);\n                pTVar5 = local_24;\n              }" { (expression_statement "in_stack_ffffffb8 = pTVar12;" (assignment_expression "in_stack_ffffffb8 = pTVar12" identifier = identifier) ;) comment (expression_statement "bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0);" (assignment_expression "bVar6 = rescannable_defines(this,(size_t)pTVar12,*__args_0)" identifier = (call_expression "rescannable_defines(this,(size_t)pTVar12,*__args_0)" identifier (argument_list "(this,(size_t)pTVar12,*__args_0)" ( identifier , (cast_expression "(size_t)pTVar12" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "*__args_0" * identifier) )))) ;) (expression_statement "pTVar5 = pTVar12;" (assignment_expression "pTVar5 = pTVar12" identifier = identifier) ;) (if_statement "if (bVar6) break;" if (parenthesized_expression "(bVar6)" ( identifier )) (break_statement "break;" break ;)) (expression_statement "pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1);" (assignment_expression "pTVar12 = (Task *)((int)&pTVar12->_vptr_Task + 1)" identifier = (cast_expression "(Task *)((int)&pTVar12->_vptr_Task + 1)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar12->_vptr_Task + 1)" ( (binary_expression "(int)&pTVar12->_vptr_Task + 1" (cast_expression "(int)&pTVar12->_vptr_Task" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar12->_vptr_Task" & (field_expression "pTVar12->_vptr_Task" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pTVar5 = local_24;" (assignment_expression "pTVar5 = local_24" identifier = identifier) ;) }) while (parenthesized_expression "(local_24 != pTVar12)" ( (binary_expression "local_24 != pTVar12" identifier != identifier) )) ;) })) })))) (expression_statement "__args_0 = __args_0 + 1;" (assignment_expression "__args_0 = __args_0 + 1" identifier = (binary_expression "__args_0 + 1" identifier + number_literal)) ;) (expression_statement "local_24 = pTVar5;" (assignment_expression "local_24 = pTVar5" identifier = identifier) ;) }) while (parenthesized_expression "(ppSVar11 != __args_0)" ( (binary_expression "ppSVar11 != __args_0" identifier != identifier) )) ;) (expression_statement "ppSVar11 = ppSVar2;" (assignment_expression "ppSVar11 = ppSVar2" identifier = identifier) ;) (if_statement "if (pTVar7 <= pTVar5) goto LAB_001a782c;" if (parenthesized_expression "(pTVar7 <= pTVar5)" ( (binary_expression "pTVar7 <= pTVar5" identifier <= identifier) )) (goto_statement "goto LAB_001a782c;" goto statement_identifier ;)) (ERROR "pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold::" (assignment_expression "pRVar1 = (this->rescannable_).\n                 super__Vector_base<gold" identifier = (binary_expression "(this->rescannable_).\n                 super__Vector_base<gold" (field_expression "(this->rescannable_).\n                 super__Vector_base" (parenthesized_expression "(this->rescannable_)" ( (field_expression "this->rescannable_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;" statement_identifier (ERROR "::Rescannable,_std::allocator<gold:" : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Plugin_manager::Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;" statement_identifier : (ERROR ":" :) (expression_statement "Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5;" (binary_expression "Rescannable>_>\n                 ._M_impl._M_start + (int)pTVar5" (field_expression "Rescannable>_>\n                 ._M_impl._M_start" (field_expression "Rescannable>_>\n                 ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (cast_expression "(int)pTVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;))) (expression_statement "pIVar15 = (pRVar1->u).input_group;" (assignment_expression "pIVar15 = (pRVar1->u).input_group" identifier = (field_expression "(pRVar1->u).input_group" (parenthesized_expression "(pRVar1->u)" ( (field_expression "pRVar1->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pRVar1->is_archive == false) {\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }\n        else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }" if (parenthesized_expression "(pRVar1->is_archive == false)" ( (binary_expression "pRVar1->is_archive == false" (field_expression "pRVar1->is_archive" identifier -> field_identifier) == false) )) (compound_statement "{\n          pSVar10 = this->symtab_;\n          local_2c = pSVar10->saw_undefined_;\n          while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }\n        }" { (expression_statement "pSVar10 = this->symtab_;" (assignment_expression "pSVar10 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) (expression_statement "local_2c = pSVar10->saw_undefined_;" (assignment_expression "local_2c = pSVar10->saw_undefined_" identifier = (field_expression "pSVar10->saw_undefined_" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;\n            if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }\n            if (local_2c == pSVar10->saw_undefined_) break;\n            pIVar15 = (pRVar1->u).input_group;\n            local_2c = pSVar10->saw_undefined_;\n          }" { (expression_statement "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start;" (field_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                       _M_start" (field_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl" (binary_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_" (binary_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std::allocator<gold" (binary_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold::Archive*,_std" (assignment_expression "ppAVar13 = (pIVar15->archives_).\n                       super__Vector_base<gold" identifier = (binary_expression "(pIVar15->archives_).\n                       super__Vector_base<gold" (field_expression "(pIVar15->archives_).\n                       super__Vector_base" (parenthesized_expression "(pIVar15->archives_)" ( (field_expression "pIVar15->archives_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Archive" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Archive" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish) {\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }" if (parenthesized_expression "(ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish)" ( (field_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                _M_finish" (field_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl" (binary_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_" (binary_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std::allocator<gold" (binary_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold::Archive*,_std" (binary_expression "ppAVar13 !=\n                (pIVar15->archives_).\n                super__Vector_base<gold" identifier != (binary_expression "(pIVar15->archives_).\n                super__Vector_base<gold" (field_expression "(pIVar15->archives_).\n                super__Vector_base" (parenthesized_expression "(pIVar15->archives_)" ( (field_expression "pIVar15->archives_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Archive" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Archive" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n              do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);\n              pSVar10 = this->symtab_;\n            }" { (do_statement "do {\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13);" do (compound_statement "{\n                pAVar4 = *ppAVar13;\n                File_read::lock(&pAVar4->input_file_->file_,task);\n                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */\n                Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );\n                ppAVar13 = ppAVar13 + 1;\n                in_stack_ffffffb8 = task;\n                File_read::unlock(&pAVar4->input_file_->file_,task);\n              }" { (expression_statement "pAVar4 = *ppAVar13;" (assignment_expression "pAVar4 = *ppAVar13" identifier = (pointer_expression "*ppAVar13" * identifier)) ;) (labeled_statement "File_read::lock(&pAVar4->input_file_->file_,task);" statement_identifier : (ERROR ":" :) (expression_statement "lock(&pAVar4->input_file_->file_,task);" (call_expression "lock(&pAVar4->input_file_->file_,task)" identifier (argument_list "(&pAVar4->input_file_->file_,task)" ( (pointer_expression "&pAVar4->input_file_->file_" & (field_expression "pAVar4->input_file_->file_" (field_expression "pAVar4->input_file_" identifier -> field_identifier) -> field_identifier)) , identifier ))) ;)) comment (labeled_statement "Archive::add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );" statement_identifier : (ERROR ":" :) (expression_statement "add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          );" (call_expression "add_symbols\n                          (*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          )" identifier (argument_list "(*ppAVar13,this->symtab_,this->layout_,this->input_objects_,this->mapfile_\n                          )" ( (pointer_expression "*ppAVar13" * identifier) , (field_expression "this->symtab_" identifier -> field_identifier) , (field_expression "this->layout_" identifier -> field_identifier) , (field_expression "this->input_objects_" identifier -> field_identifier) , (field_expression "this->mapfile_" identifier -> field_identifier) ))) ;)) (expression_statement "ppAVar13 = ppAVar13 + 1;" (assignment_expression "ppAVar13 = ppAVar13 + 1" identifier = (binary_expression "ppAVar13 + 1" identifier + number_literal)) ;) (expression_statement "in_stack_ffffffb8 = task;" (assignment_expression "in_stack_ffffffb8 = task" identifier = identifier) ;) (labeled_statement "File_read::unlock(&pAVar4->input_file_->file_,task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock(&pAVar4->input_file_->file_,task);" (call_expression "unlock(&pAVar4->input_file_->file_,task)" identifier (argument_list "(&pAVar4->input_file_->file_,task)" ( (pointer_expression "&pAVar4->input_file_->file_" & (field_expression "pAVar4->input_file_->file_" (field_expression "pAVar4->input_file_" identifier -> field_identifier) -> field_identifier)) , identifier ))) ;)) }) while (parenthesized_expression "((((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13)" ( (binary_expression "(((pRVar1->u).archive)->super_Library_base).task_ != (Task *)ppAVar13" (field_expression "(((pRVar1->u).archive)->super_Library_base).task_" (parenthesized_expression "(((pRVar1->u).archive)->super_Library_base)" ( (field_expression "((pRVar1->u).archive)->super_Library_base" (parenthesized_expression "((pRVar1->u).archive)" ( (field_expression "(pRVar1->u).archive" (parenthesized_expression "(pRVar1->u)" ( (field_expression "pRVar1->u" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier) != (cast_expression "(Task *)ppAVar13" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "pSVar10 = this->symtab_;" (assignment_expression "pSVar10 = this->symtab_" identifier = (field_expression "this->symtab_" identifier -> field_identifier)) ;) })) (if_statement "if (local_2c == pSVar10->saw_undefined_) break;" if (parenthesized_expression "(local_2c == pSVar10->saw_undefined_)" ( (binary_expression "local_2c == pSVar10->saw_undefined_" identifier == (field_expression "pSVar10->saw_undefined_" identifier -> field_identifier)) )) (break_statement "break;" break ;)) (expression_statement "pIVar15 = (pRVar1->u).input_group;" (assignment_expression "pIVar15 = (pRVar1->u).input_group" identifier = (field_expression "(pRVar1->u).input_group" (parenthesized_expression "(pRVar1->u)" ( (field_expression "pRVar1->u" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_2c = pSVar10->saw_undefined_;" (assignment_expression "local_2c = pSVar10->saw_undefined_" identifier = (field_expression "pSVar10->saw_undefined_" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }" else (compound_statement "{\n          File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);\n                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */\n          Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);\n          in_stack_ffffffb8 = task;\n          File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);\n        }" { (labeled_statement "File_read::lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);" statement_identifier : (ERROR ":" :) (expression_statement "lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task);" (call_expression "lock((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task)" identifier (argument_list "((File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c),task)" ( (cast_expression "(File_read *)\n                          ((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c)" ( (type_descriptor "File_read *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c)" ( (binary_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start + 0x1c" (field_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl._M_start" (field_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>.\n                                _M_impl" (binary_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_" (binary_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std::allocator<gold" (binary_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold::Archive*,_std" (binary_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base<gold" (cast_expression "(int)pIVar15[3].archives_.\n                                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar15[3].archives_.\n                                super__Vector_base" (field_expression "pIVar15[3].archives_" (subscript_expression "pIVar15[3]" identifier [ number_literal ]) . field_identifier) . field_identifier)) < identifier) (ERROR "::Archive" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Archive" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))) , identifier ))) ;)) comment (labeled_statement "Archive::add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);" statement_identifier : (ERROR ":" :) (expression_statement "add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_);" (call_expression "add_symbols\n                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_)" identifier (argument_list "((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,\n                     this->mapfile_)" ( (field_expression "(pRVar1->u).archive" (parenthesized_expression "(pRVar1->u)" ( (field_expression "pRVar1->u" identifier -> field_identifier) )) . field_identifier) , (field_expression "this->symtab_" identifier -> field_identifier) , (field_expression "this->layout_" identifier -> field_identifier) , (field_expression "this->input_objects_" identifier -> field_identifier) , (field_expression "this->mapfile_" identifier -> field_identifier) ))) ;)) (expression_statement "in_stack_ffffffb8 = task;" (assignment_expression "in_stack_ffffffb8 = task" identifier = identifier) ;) (labeled_statement "File_read::unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);" statement_identifier : (ERROR ":" :) (expression_statement "unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task);" (call_expression "unlock((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task)" identifier (argument_list "((File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c),task)" ( (cast_expression "(File_read *)\n                            ((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c)" ( (type_descriptor "File_read *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c)" ( (binary_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start + 0x1c" (field_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl._M_start" (field_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>\n                                  ._M_impl" (binary_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_" (binary_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std::allocator<gold" (binary_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold::Archive*,_std" (binary_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base<gold" (cast_expression "(int)pIVar15[3].archives_.\n                                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "pIVar15[3].archives_.\n                                  super__Vector_base" (field_expression "pIVar15[3].archives_" (subscript_expression "pIVar15[3]" identifier [ number_literal ]) . field_identifier) . field_identifier)) < identifier) (ERROR "::Archive" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Archive" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + number_literal) ))) , identifier ))) ;)) }))) (expression_statement "pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1);" (assignment_expression "pTVar12 = (Task *)((int)&pTVar5->_vptr_Task + 1)" identifier = (cast_expression "(Task *)((int)&pTVar5->_vptr_Task + 1)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar5->_vptr_Task + 1)" ( (binary_expression "(int)&pTVar5->_vptr_Task + 1" (cast_expression "(int)&pTVar5->_vptr_Task" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar5->_vptr_Task" & (field_expression "pTVar5->_vptr_Task" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (local_30 < pTVar12) {\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }" if (parenthesized_expression "(local_30 < pTVar12)" ( (binary_expression "local_30 < pTVar12" identifier < identifier) )) (compound_statement "{\n          while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }\n        }" { (while_statement "while( true ) {\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;\n            pIVar15 = (pRVar1->u).input_group;\n            if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }\n            if (pTVar5 == local_30) break;\n            local_30 = (Task *)((int)&local_30->_vptr_Task + 1);\n          }" { (ERROR "pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold::" (assignment_expression "pRVar1 = (this->rescannable_).\n                     super__Vector_base<gold" identifier = (binary_expression "(this->rescannable_).\n                     super__Vector_base<gold" (field_expression "(this->rescannable_).\n                     super__Vector_base" (parenthesized_expression "(this->rescannable_)" ( (field_expression "this->rescannable_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;" statement_identifier (ERROR "::Rescannable,_std::allocator<gold:" : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Plugin_manager::Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;" statement_identifier : (ERROR ":" :) (expression_statement "Rescannable>_>\n                     ._M_impl._M_start + (int)local_30;" (binary_expression "Rescannable>_>\n                     ._M_impl._M_start + (int)local_30" (field_expression "Rescannable>_>\n                     ._M_impl._M_start" (field_expression "Rescannable>_>\n                     ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;))) (expression_statement "pIVar15 = (pRVar1->u).input_group;" (assignment_expression "pIVar15 = (pRVar1->u).input_group" identifier = (field_expression "(pRVar1->u).input_group" (parenthesized_expression "(pRVar1->u)" ( (field_expression "pRVar1->u" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pRVar1->is_archive == false) {\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }\n            else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }" if (parenthesized_expression "(pRVar1->is_archive == false)" ( (binary_expression "pRVar1->is_archive == false" (field_expression "pRVar1->is_archive" identifier -> field_identifier) == false) )) (compound_statement "{\n              if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }\n            }" { (if_statement "if (pIVar15 != (Input_group *)0x0) {\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }" if (parenthesized_expression "(pIVar15 != (Input_group *)0x0)" ( (binary_expression "pIVar15 != (Input_group *)0x0" identifier != (cast_expression "(Input_group *)0x0" ( (type_descriptor "Input_group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);\n                in_stack_ffffffb8 = (Task *)0xc;\n                operator_delete(pIVar15,0xc);\n              }" { (labeled_statement "Input_group::~Input_group(pIVar15,(int)in_stack_ffffffb8);" statement_identifier : (ERROR ":" :) (expression_statement "~Input_group(pIVar15,(int)in_stack_ffffffb8);" (unary_expression "~Input_group(pIVar15,(int)in_stack_ffffffb8)" ~ (call_expression "Input_group(pIVar15,(int)in_stack_ffffffb8)" identifier (argument_list "(pIVar15,(int)in_stack_ffffffb8)" ( identifier , (cast_expression "(int)in_stack_ffffffb8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (expression_statement "in_stack_ffffffb8 = (Task *)0xc;" (assignment_expression "in_stack_ffffffb8 = (Task *)0xc" identifier = (cast_expression "(Task *)0xc" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "operator_delete(pIVar15,0xc);" (call_expression "operator_delete(pIVar15,0xc)" identifier (argument_list "(pIVar15,0xc)" ( identifier , number_literal ))) ;) })) }) (else_clause "else if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }" else (if_statement "if (pIVar15 != (Input_group *)0x0) {\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }" if (parenthesized_expression "(pIVar15 != (Input_group *)0x0)" ( (binary_expression "pIVar15 != (Input_group *)0x0" identifier != (cast_expression "(Input_group *)0x0" ( (type_descriptor "Input_group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);\n            }" { (expression_statement "(*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15);" (call_expression "(*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])(pIVar15)" (parenthesized_expression "(*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1])" ( (subscript_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start[1]" (field_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl.\n                        _M_start" (field_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_>._M_impl" (binary_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold::Archive*>_" (binary_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std::allocator<gold" (binary_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold::Archive*,_std" (binary_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base<gold" (pointer_expression "*(code *)(pIVar15->archives_).\n                        super__Vector_base" * (cast_expression "(code *)(pIVar15->archives_).\n                        super__Vector_base" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pIVar15->archives_).\n                        super__Vector_base" (parenthesized_expression "(pIVar15->archives_)" ( (field_expression "pIVar15->archives_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::Archive" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Archive" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) )) (argument_list "(pIVar15)" ( identifier ))) ;) })))) (if_statement "if (pTVar5 == local_30) break;" if (parenthesized_expression "(pTVar5 == local_30)" ( (binary_expression "pTVar5 == local_30" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "local_30 = (Task *)((int)&local_30->_vptr_Task + 1);" (assignment_expression "local_30 = (Task *)((int)&local_30->_vptr_Task + 1)" identifier = (cast_expression "(Task *)((int)&local_30->_vptr_Task + 1)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->_vptr_Task + 1)" ( (binary_expression "(int)&local_30->_vptr_Task + 1" (cast_expression "(int)&local_30->_vptr_Task" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->_vptr_Task" & (field_expression "local_30->_vptr_Task" identifier -> field_identifier))) + number_literal) )))) ;) })) })) (if_statement "if (ppSVar2 != (Symbol **)0x0) {\n          operator_delete(ppSVar2);\n        }" if (parenthesized_expression "(ppSVar2 != (Symbol **)0x0)" ( (binary_expression "ppSVar2 != (Symbol **)0x0" identifier != (cast_expression "(Symbol **)0x0" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n          operator_delete(ppSVar2);\n        }" { (expression_statement "operator_delete(ppSVar2);" (call_expression "operator_delete(ppSVar2)" identifier (argument_list "(ppSVar2)" ( identifier ))) ;) })) (expression_statement "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish;" (field_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                  _M_finish" (field_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar8 = (this->undefined_symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n                  super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                  super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n        ;" (field_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar9 = (this->undefined_symbols_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->undefined_symbols_).\n                  super__Vector_base<gold" (field_expression "(this->undefined_symbols_).\n                  super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppSVar9 == ppSVar8) {\n          return;\n        }" if (parenthesized_expression "(ppSVar9 == ppSVar8)" ( (binary_expression "ppSVar9 == ppSVar8" identifier == identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (pTVar7 <= pTVar12) goto LAB_001a7847;" if (parenthesized_expression "(pTVar7 <= pTVar12)" ( (binary_expression "pTVar7 <= pTVar12" identifier <= identifier) )) (goto_statement "goto LAB_001a7847;" goto statement_identifier ;)) (expression_statement "uVar14 = (int)ppSVar8 - (int)ppSVar9;" (assignment_expression "uVar14 = (int)ppSVar8 - (int)ppSVar9" identifier = (binary_expression "(int)ppSVar8 - (int)ppSVar9" (cast_expression "(int)ppSVar8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppSVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_30 = pTVar12;" (assignment_expression "local_30 = pTVar12" identifier = identifier) ;) }) while (parenthesized_expression "((uint)((int)uVar14 >> 2) < 0x40000000)" ( (binary_expression "(uint)((int)uVar14 >> 2) < 0x40000000" (call_expression "(uint)((int)uVar14 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar14 >> 2)" ( (binary_expression "(int)uVar14 >> 2" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) < number_literal) )) ;) })) comment (labeled_statement "std::__throw_length_error("vector::reserve");" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error("vector::reserve");" (call_expression "__throw_length_error("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;)) })) (labeled_statement "LAB_001a7847:\n  (this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n  _M_impl._M_finish = ppSVar9;" statement_identifier : (ERROR "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::" (comma_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold::Symbol*" (binary_expression "(this->undefined_symbols_).super__Vector_base<gold" (field_expression "(this->undefined_symbols_).super__Vector_base" (parenthesized_expression "(this->undefined_symbols_)" ( (field_expression "this->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Symbol*>_>.\n  _M_impl._M_finish = ppSVar9;" (assignment_expression "Symbol*>_>.\n  _M_impl._M_finish = ppSVar9" (field_expression "Symbol*>_>.\n  _M_impl._M_finish" (field_expression "Symbol*>_>.\n  _M_impl" (binary_expression "Symbol*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = identifier) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001a7510(int param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}\n\n" (function_definition "void FUN_001a7510(int param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" primitive_type (function_declarator "FUN_001a7510(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (expression_statement "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;" (assignment_expression "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" identifier = (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" identifier = (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }" if (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" ( (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" identifier == (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }" { (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" identifier = (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" if (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" ( (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) ))) < number_literal) )) (compound_statement "{\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);" do (compound_statement "{\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      }" { (expression_statement "iVar6 = FUN_00246670(iVar11);" (assignment_expression "iVar6 = FUN_00246670(iVar11)" identifier = (call_expression "FUN_00246670(iVar11)" identifier (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "piVar2 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x58)" identifier = (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x54) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x54) = iVar6" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x58) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar6" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x5c) = iVar6 + iVar11;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar6 + iVar11" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = (binary_expression "iVar6 + iVar11" identifier + identifier)) ;) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" identifier = identifier) ;) (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" identifier = identifier) ;) (if_statement "if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" if (parenthesized_expression "(piVar2 == piVar8)" ( (binary_expression "piVar2 == piVar8" identifier == identifier) )) (compound_statement "{\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" { (labeled_statement "LAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }" statement_identifier : (if_statement "if (piVar8 == (int *)0x0) {\n            return;\n          }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_00248220(piVar8);" (call_expression "FUN_00248220(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))) ;) (return_statement "return;" return ;) })) (do_statement "do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);" do (compound_statement "{\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        }" { (expression_statement "iVar11 = *piVar7;" (assignment_expression "iVar11 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }" { (if_statement "if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;" if (parenthesized_expression "((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))" ( (binary_expression "(*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 0)" ( (binary_expression "*(int *)(iVar11 + 0xc) == 0" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(iVar11 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar11 + 0x2b)" * (cast_expression "(byte *)(iVar11 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2b)" ( (binary_expression "iVar11 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_001a75db;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" else (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 4)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" { (labeled_statement "LAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);" statement_identifier : (expression_statement "piVar10 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x58)" identifier = (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;)) (if_statement "if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" if (parenthesized_expression "(piVar10 == *(int **)(param_1 + 0x5c))" ( (binary_expression "piVar10 == *(int **)(param_1 + 0x5c)" identifier == (pointer_expression "*(int **)(param_1 + 0x5c)" * (cast_expression "(int **)(param_1 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }" { (expression_statement "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);" (call_expression "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7)" identifier (argument_list "(param_1 + 0x54,piVar10,piVar7)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" else (compound_statement "{\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" { (expression_statement "*piVar10 = iVar11;" (assignment_expression "*piVar10 = iVar11" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "*(int **)(param_1 + 0x58) = piVar10 + 1;" (assignment_expression "*(int **)(param_1 + 0x58) = piVar10 + 1" (pointer_expression "*(int **)(param_1 + 0x58)" * (cast_expression "(int **)(param_1 + 0x58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar9 = local_30;" (assignment_expression "uVar9 = local_30" identifier = identifier) ;) (if_statement "if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" if (parenthesized_expression "(local_30 < local_24)" ( (binary_expression "local_30 < local_24" identifier < identifier) )) (compound_statement "{\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" { (do_statement "do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);" do (compound_statement "{\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              }" { (expression_statement "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);" (assignment_expression "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7)" identifier = (call_expression "FUN_001a68f0(param_1,uVar9,*piVar7)" identifier (argument_list "(param_1,uVar9,*piVar7)" ( identifier , identifier , (pointer_expression "*piVar7" * identifier) )))) ;) (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" identifier = identifier) ;) (if_statement "if (cVar4 != '\0') break;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" identifier = identifier) ;) }) while (parenthesized_expression "(local_24 != uVar9)" ( (binary_expression "local_24 != uVar9" identifier != identifier) )) ;) })) })))) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "local_24 = uVar3;" (assignment_expression "local_24 = uVar3" identifier = identifier) ;) }) while (parenthesized_expression "(piVar8 != piVar7)" ( (binary_expression "piVar8 != piVar7" identifier != identifier) )) ;) (expression_statement "piVar8 = piVar2;" (assignment_expression "piVar8 = piVar2" identifier = identifier) ;) (if_statement "if (uVar5 <= uVar3) goto LAB_001a782c;" if (parenthesized_expression "(uVar5 <= uVar3)" ( (binary_expression "uVar5 <= uVar3" identifier <= identifier) )) (goto_statement "goto LAB_001a782c;" goto statement_identifier ;)) (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x48) + uVar3 * 8)" ( (binary_expression "*(int *)(param_1 + 0x48) + uVar3 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) + (binary_expression "uVar3 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" if (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }" { (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" identifier = (pointer_expression "*(int **)(param_1 + 0x74)" * (cast_expression "(int **)(param_1 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (while_statement "while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" { (expression_statement "piVar10 = (int *)*piVar8;" (assignment_expression "piVar10 = (int *)*piVar8" identifier = (cast_expression "(int *)*piVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" if (parenthesized_expression "(piVar10 != (int *)piVar8[1])" ( (binary_expression "piVar10 != (int *)piVar8[1]" identifier != (cast_expression "(int *)piVar8[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" { (do_statement "do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);" do (compound_statement "{\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              }" { (expression_statement "iVar11 = *piVar10;" (assignment_expression "iVar11 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" identifier (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" ( (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) (expression_statement "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" identifier (argument_list "(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" ( (pointer_expression "*piVar10" * identifier) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" identifier = (binary_expression "piVar10 + 1" identifier + number_literal)) ;) (expression_statement "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" identifier (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" ( (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" * (cast_expression "(int *)(iVar11 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) )))) + number_literal) , identifier ))) ;) }) while (parenthesized_expression "(*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10)" ( (binary_expression "*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10" (pointer_expression "*(int **)(*(int *)(pcVar1 + 4) + 4)" * (cast_expression "(int **)(*(int *)(pcVar1 + 4) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar1 + 4) + 4)" ( (binary_expression "*(int *)(pcVar1 + 4) + 4" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) + number_literal) )))) != identifier) )) ;) (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" identifier = (pointer_expression "*(int **)(param_1 + 0x74)" * (cast_expression "(int **)(param_1 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) })) (if_statement "if (local_2c == *piVar7) break;" if (parenthesized_expression "(local_2c == *piVar7)" ( (binary_expression "local_2c == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (break_statement "break;" break ;)) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) })) }) (else_clause "else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" else (compound_statement "{\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" { (expression_statement "FUN_000d2820(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar8[9] + 0x1c,param_2)" identifier (argument_list "(piVar8[9] + 0x1c,param_2)" ( (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) (expression_statement "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" identifier (argument_list "(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" ( (pointer_expression "*(undefined4 *)(pcVar1 + 4)" * (cast_expression "(undefined4 *)(pcVar1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x74)" * (cast_expression "(undefined4 *)(param_1 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x78)" * (cast_expression "(undefined4 *)(param_1 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x70)" * (cast_expression "(undefined4 *)(param_1 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x80)" * (cast_expression "(undefined4 *)(param_1 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000d3850(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar8[9] + 0x1c,param_2)" identifier (argument_list "(piVar8[9] + 0x1c,param_2)" ( (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" identifier [ number_literal ]) + number_literal) , identifier ))) ;) }))) (expression_statement "uVar9 = uVar3 + 1;" (assignment_expression "uVar9 = uVar3 + 1" identifier = (binary_expression "uVar3 + 1" identifier + number_literal)) ;) (if_statement "if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" if (parenthesized_expression "(local_30 < uVar9)" ( (binary_expression "local_30 < uVar9" identifier < identifier) )) (compound_statement "{\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" { (while_statement "while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" { (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x48) + local_30 * 8)" ( (binary_expression "*(int *)(param_1 + 0x48) + local_30 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) + (binary_expression "local_30 * 8" identifier * number_literal)) )))) ;) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" identifier = (pointer_expression "*(int **)(pcVar1 + 4)" * (cast_expression "(int **)(pcVar1 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" if (parenthesized_expression "(*pcVar1 == '\0')" ( (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }" { (if_statement "if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" { (expression_statement "FUN_001ae490(piVar8);" (call_expression "FUN_001ae490(piVar8)" identifier (argument_list "(piVar8)" ( identifier ))) ;) (expression_statement "FUN_00248200(piVar8,0xc);" (call_expression "FUN_00248200(piVar8,0xc)" identifier (argument_list "(piVar8,0xc)" ( identifier , number_literal ))) ;) })) }) (else_clause "else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" else (if_statement "if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" { (expression_statement "(**(code **)(*piVar8 + 4))(piVar8);" (call_expression "(**(code **)(*piVar8 + 4))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 4))" ( (pointer_expression "**(code **)(*piVar8 + 4)" * (pointer_expression "*(code **)(*piVar8 + 4)" * (cast_expression "(code **)(*piVar8 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar8 + 4)" ( (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) (argument_list "(piVar8)" ( identifier ))) ;) })))) (if_statement "if (uVar3 == local_30) break;" if (parenthesized_expression "(uVar3 == local_30)" ( (binary_expression "uVar3 == local_30" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00248220(piVar2);\n        }" { (expression_statement "FUN_00248220(piVar2);" (call_expression "FUN_00248220(piVar2)" identifier (argument_list "(piVar2)" ( identifier ))) ;) })) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" identifier = (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }" if (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" ( (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" identifier == (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (uVar5 <= uVar9) goto LAB_001a7847;" if (parenthesized_expression "(uVar5 <= uVar9)" ( (binary_expression "uVar5 <= uVar9" identifier <= identifier) )) (goto_statement "goto LAB_001a7847;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" identifier = (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) - identifier)) ;) (expression_statement "local_30 = uVar9;" (assignment_expression "local_30 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" ( (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) ))) < number_literal) )) ;) })) (expression_statement "FUN_0028dc10("vector::reserve");" (call_expression "FUN_0028dc10("vector::reserve")" identifier (argument_list "("vector::reserve")" ( (string_literal ""vector::reserve"" " string_content ") ))) ;) })) (labeled_statement "LAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;" statement_identifier : (expression_statement "*(int *)(param_1 + 0x58) = iVar11;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" * (cast_expression "(int *)(param_1 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) )))) = identifier) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (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 ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (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 ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) < LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (return_statement return ;) })))
(function_definition "void FUN_001a7510(int param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001a7510(int param_1,undefined4 param_2)" (identifier "FUN_001a7510") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  int *piVar2;\n  uint uVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  int *piVar7;\n  int *piVar8;\n  uint uVar9;\n  int *piVar10;\n  int iVar11;\n  uint local_30;\n  int local_2c;\n  uint local_24;\n  \n  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;\n  iVar11 = *(int *)(param_1 + 0x54);\n  if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }\n  if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }\nLAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;\n  return;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (expression_statement "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;" (assignment_expression "uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" (identifier "uVar5") (= "=") (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3" (binary_expression "*(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" (( "(") (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" (identifier "iVar11") (== "==") (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar5 != 0) {\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n    if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }\n                    \n    FUN_0028dc10("vector::reserve");\n  }" ({ "{") (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" (identifier "iVar11") (= "=") (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (identifier "iVar11"))) (; ";")) (if_statement "if ((uint)(iVar11 >> 2) < 0x40000000) {\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" (if "if") (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" (( "(") (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 >> 2)" (( "(") (binary_expression "iVar11 >> 2" (identifier "iVar11") (>> ">>") (number_literal "2")) () ")"))) (< "<") (number_literal "0x40000000")) () ")")) (compound_statement "{\n      local_30 = 0;\n      do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);\n    }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      } while ((uint)(iVar11 >> 2) < 0x40000000);" (do "do") (compound_statement "{\n        iVar6 = FUN_00246670(iVar11);\n        piVar2 = *(int **)(param_1 + 0x54);\n        piVar8 = *(int **)(param_1 + 0x58);\n        *(int *)(param_1 + 0x54) = iVar6;\n        *(int *)(param_1 + 0x58) = iVar6;\n        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;\n        piVar7 = piVar2;\n        local_24 = uVar5;\n        if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }\n        do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);\n        piVar8 = piVar2;\n        if (uVar5 <= uVar3) goto LAB_001a782c;\n        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);\n        piVar8 = *(int **)(pcVar1 + 4);\n        if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }\n        uVar9 = uVar3 + 1;\n        if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }\n        if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }\n        iVar11 = *(int *)(param_1 + 0x54);\n        if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }\n        if (uVar5 <= uVar9) goto LAB_001a7847;\n        iVar11 = *(int *)(param_1 + 0x58) - iVar11;\n        local_30 = uVar9;\n      }" ({ "{") (expression_statement "iVar6 = FUN_00246670(iVar11);" (assignment_expression "iVar6 = FUN_00246670(iVar11)" (identifier "iVar6") (= "=") (call_expression "FUN_00246670(iVar11)" (identifier "FUN_00246670") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")")))) (; ";")) (expression_statement "piVar2 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x54)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x58)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x58)" (* "*") (cast_expression "(int **)(param_1 + 0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x54) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x54) = iVar6" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)(param_1 + 0x58) = iVar6;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar6" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(int *)(param_1 + 0x5c) = iVar6 + iVar11;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar6 + iVar11" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (binary_expression "iVar6 + iVar11" (identifier "iVar6") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "piVar7 = piVar2;" (assignment_expression "piVar7 = piVar2" (identifier "piVar7") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "local_24 = uVar5;" (assignment_expression "local_24 = uVar5" (identifier "local_24") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (piVar2 == piVar8) {\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" (if "if") (parenthesized_expression "(piVar2 == piVar8)" (( "(") (binary_expression "piVar2 == piVar8" (identifier "piVar2") (== "==") (identifier "piVar8")) () ")")) (compound_statement "{\nLAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }\n          FUN_00248220(piVar8);\n          return;\n        }" ({ "{") (labeled_statement "LAB_001a782c:\n          if (piVar8 == (int *)0x0) {\n            return;\n          }" (statement_identifier "LAB_001a782c") (: ":") (if_statement "if (piVar8 == (int *)0x0) {\n            return;\n          }" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            return;\n          }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_00248220(piVar8);" (call_expression "FUN_00248220(piVar8)" (identifier "FUN_00248220") (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (do_statement "do {\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        } while (piVar8 != piVar7);" (do "do") (compound_statement "{\n          iVar11 = *piVar7;\n          uVar3 = local_24;\n          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }\n          piVar7 = piVar7 + 1;\n          local_24 = uVar3;\n        }" ({ "{") (expression_statement "iVar11 = *piVar7;" (assignment_expression "iVar11 = *piVar7" (identifier "iVar11") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" (identifier "uVar3") (= "=") (identifier "local_24")) (; ";")) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }\n          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar11 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a)" (( "(") (binary_expression "iVar11 + 0x2a" (identifier "iVar11") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;\n          }" ({ "{") (if_statement "if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))\n            goto LAB_001a75db;" (if "if") (parenthesized_expression "((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))" (( "(") (binary_expression "(*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" (parenthesized_expression "(*(int *)(iVar11 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) == 0" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar11 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar11 + 0x2b) & 0x20" (pointer_expression "*(byte *)(iVar11 + 0x2b)" (* "*") (cast_expression "(byte *)(iVar11 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2b)" (( "(") (binary_expression "iVar11 + 0x2b" (identifier "iVar11") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001a75db;" (goto "goto") (statement_identifier "LAB_001a75db") (; ";"))) (} "}")) (else_clause "else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" (else "else") (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 7) == 4)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0x2a) & 7) == 4" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(iVar11 + 0x2a) & 7" (pointer_expression "*(byte *)(iVar11 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar11 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a)" (( "(") (binary_expression "iVar11 + 0x2a" (identifier "iVar11") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "4")) () ")")) (compound_statement "{\nLAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);\n            if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }\n            uVar9 = local_30;\n            if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }\n          }" ({ "{") (labeled_statement "LAB_001a75db:\n            piVar10 = *(int **)(param_1 + 0x58);" (statement_identifier "LAB_001a75db") (: ":") (expression_statement "piVar10 = *(int **)(param_1 + 0x58);" (assignment_expression "piVar10 = *(int **)(param_1 + 0x58)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(param_1 + 0x58)" (* "*") (cast_expression "(int **)(param_1 + 0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";"))) (if_statement "if (piVar10 == *(int **)(param_1 + 0x5c)) {\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }\n            else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" (if "if") (parenthesized_expression "(piVar10 == *(int **)(param_1 + 0x5c))" (( "(") (binary_expression "piVar10 == *(int **)(param_1 + 0x5c)" (identifier "piVar10") (== "==") (pointer_expression "*(int **)(param_1 + 0x5c)" (* "*") (cast_expression "(int **)(param_1 + 0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (compound_statement "{\n                    \n              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);\n            }" ({ "{") (expression_statement "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);" (call_expression "FUN_000a82c0(param_1 + 0x54,piVar10,piVar7)" (identifier "FUN_000a82c0") (argument_list "(param_1 + 0x54,piVar10,piVar7)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) (, ",") (identifier "piVar10") (, ",") (identifier "piVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" (else "else") (compound_statement "{\n              *piVar10 = iVar11;\n              *(int **)(param_1 + 0x58) = piVar10 + 1;\n            }" ({ "{") (expression_statement "*piVar10 = iVar11;" (assignment_expression "*piVar10 = iVar11" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(int **)(param_1 + 0x58) = piVar10 + 1;" (assignment_expression "*(int **)(param_1 + 0x58) = piVar10 + 1" (pointer_expression "*(int **)(param_1 + 0x58)" (* "*") (cast_expression "(int **)(param_1 + 0x58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar9 = local_30;" (assignment_expression "uVar9 = local_30" (identifier "uVar9") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 < local_24) {\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" (if "if") (parenthesized_expression "(local_30 < local_24)" (( "(") (binary_expression "local_30 < local_24" (identifier "local_30") (< "<") (identifier "local_24")) () ")")) (compound_statement "{\n              do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);\n            }" ({ "{") (do_statement "do {\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              } while (local_24 != uVar9);" (do "do") (compound_statement "{\n                    \n                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);\n                uVar3 = uVar9;\n                if (cVar4 != '\0') break;\n                uVar9 = uVar9 + 1;\n                uVar3 = local_24;\n              }" ({ "{") (expression_statement "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);" (assignment_expression "cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7)" (identifier "cVar4") (= "=") (call_expression "FUN_001a68f0(param_1,uVar9,*piVar7)" (identifier "FUN_001a68f0") (argument_list "(param_1,uVar9,*piVar7)" (( "(") (identifier "param_1") (, ",") (identifier "uVar9") (, ",") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) () ")")))) (; ";")) (expression_statement "uVar3 = uVar9;" (assignment_expression "uVar3 = uVar9" (identifier "uVar3") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (cVar4 != '\0') break;" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = local_24;" (assignment_expression "uVar3 = local_24" (identifier "uVar3") (= "=") (identifier "local_24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_24 != uVar9)" (( "(") (binary_expression "local_24 != uVar9" (identifier "local_24") (!= "!=") (identifier "uVar9")) () ")")) (; ";")) (} "}"))) (} "}"))))) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_24 = uVar3;" (assignment_expression "local_24 = uVar3" (identifier "local_24") (= "=") (identifier "uVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != piVar7)" (( "(") (binary_expression "piVar8 != piVar7" (identifier "piVar8") (!= "!=") (identifier "piVar7")) () ")")) (; ";")) (expression_statement "piVar8 = piVar2;" (assignment_expression "piVar8 = piVar2" (identifier "piVar8") (= "=") (identifier "piVar2")) (; ";")) (if_statement "if (uVar5 <= uVar3) goto LAB_001a782c;" (if "if") (parenthesized_expression "(uVar5 <= uVar3)" (( "(") (binary_expression "uVar5 <= uVar3" (identifier "uVar5") (<= "<=") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_001a782c;" (goto "goto") (statement_identifier "LAB_001a782c") (; ";"))) (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(*(int *)(param_1 + 0x48) + uVar3 * 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x48) + uVar3 * 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x48) + uVar3 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (binary_expression "uVar3 * 8" (identifier "uVar3") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(pcVar1 + 4)" (* "*") (cast_expression "(int **)(pcVar1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*pcVar1 == '\0') {\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }\n        else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" (if "if") (parenthesized_expression "(*pcVar1 == '\0')" (( "(") (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          piVar7 = *(int **)(param_1 + 0x74);\n          local_2c = *piVar7;\n          while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }\n        }" ({ "{") (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(param_1 + 0x74)" (* "*") (cast_expression "(int **)(param_1 + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" (identifier "local_2c") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (while_statement "while( true ) {\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            piVar10 = (int *)*piVar8;\n            if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }\n            if (local_2c == *piVar7) break;\n            piVar8 = *(int **)(pcVar1 + 4);\n            local_2c = *piVar7;\n          }" ({ "{") (expression_statement "piVar10 = (int *)*piVar8;" (assignment_expression "piVar10 = (int *)*piVar8" (identifier "piVar10") (= "=") (cast_expression "(int *)*piVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (piVar10 != (int *)piVar8[1]) {\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" (if "if") (parenthesized_expression "(piVar10 != (int *)piVar8[1])" (( "(") (binary_expression "piVar10 != (int *)piVar8[1]" (identifier "piVar10") (!= "!=") (cast_expression "(int *)piVar8[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n              do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);\n              piVar7 = *(int **)(param_1 + 0x74);\n            }" ({ "{") (do_statement "do {\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);" (do "do") (compound_statement "{\n                iVar11 = *piVar10;\n                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n                    \n                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));\n                piVar10 = piVar10 + 1;\n                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);\n              }" ({ "{") (expression_statement "iVar11 = *piVar10;" (assignment_expression "iVar11 = *piVar10" (identifier "iVar11") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" (identifier "FUN_000d2820") (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" (( "(") (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" (* "*") (cast_expression "(int *)(iVar11 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" (identifier "FUN_000b7e90") (argument_list "(*piVar10,*(undefined4 *)(param_1 + 0x74),\n                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                             *(undefined4 *)(param_1 + 0x80))" (( "(") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar10 = piVar10 + 1;" (assignment_expression "piVar10 = piVar10 + 1" (identifier "piVar10") (= "=") (binary_expression "piVar10 + 1" (identifier "piVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);" (call_expression "FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" (identifier "FUN_000d3850") (argument_list "(*(int *)(iVar11 + 0x24) + 0x1c,param_2)" (( "(") (binary_expression "*(int *)(iVar11 + 0x24) + 0x1c" (pointer_expression "*(int *)(iVar11 + 0x24)" (* "*") (cast_expression "(int *)(iVar11 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x24)" (( "(") (binary_expression "iVar11 + 0x24" (identifier "iVar11") (+ "+") (number_literal "0x24")) () ")")))) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10)" (( "(") (binary_expression "*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10" (pointer_expression "*(int **)(*(int *)(pcVar1 + 4) + 4)" (* "*") (cast_expression "(int **)(*(int *)(pcVar1 + 4) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar1 + 4) + 4)" (( "(") (binary_expression "*(int *)(pcVar1 + 4) + 4" (pointer_expression "*(int *)(pcVar1 + 4)" (* "*") (cast_expression "(int *)(pcVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "piVar10")) () ")")) (; ";")) (expression_statement "piVar7 = *(int **)(param_1 + 0x74);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x74)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(param_1 + 0x74)" (* "*") (cast_expression "(int **)(param_1 + 0x74)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (local_2c == *piVar7) break;" (if "if") (parenthesized_expression "(local_2c == *piVar7)" (( "(") (binary_expression "local_2c == *piVar7" (identifier "local_2c") (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(pcVar1 + 4)" (* "*") (cast_expression "(int **)(pcVar1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_2c = *piVar7;" (assignment_expression "local_2c = *piVar7" (identifier "local_2c") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" (else "else") (compound_statement "{\n          FUN_000d2820(piVar8[9] + 0x1c,param_2);\n                    \n          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));\n          FUN_000d3850(piVar8[9] + 0x1c,param_2);\n        }" ({ "{") (expression_statement "FUN_000d2820(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d2820(piVar8[9] + 0x1c,param_2)" (identifier "FUN_000d2820") (argument_list "(piVar8[9] + 0x1c,param_2)" (( "(") (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80));" (call_expression "FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" (identifier "FUN_000b7e90") (argument_list "(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),\n                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),\n                       *(undefined4 *)(param_1 + 0x80))" (( "(") (pointer_expression "*(undefined4 *)(pcVar1 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x74)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x78)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x80)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_000d3850(piVar8[9] + 0x1c,param_2);" (call_expression "FUN_000d3850(piVar8[9] + 0x1c,param_2)" (identifier "FUN_000d3850") (argument_list "(piVar8[9] + 0x1c,param_2)" (( "(") (binary_expression "piVar8[9] + 0x1c" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (+ "+") (number_literal "0x1c")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar9 = uVar3 + 1;" (assignment_expression "uVar9 = uVar3 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_30 < uVar9) {\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(local_30 < uVar9)" (( "(") (binary_expression "local_30 < uVar9" (identifier "local_30") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n          while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }\n        }" ({ "{") (while_statement "while( true ) {\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);\n            piVar8 = *(int **)(pcVar1 + 4);\n            if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }\n            if (uVar3 == local_30) break;\n            local_30 = local_30 + 1;\n          }" ({ "{") (expression_statement "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);" (assignment_expression "pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(*(int *)(param_1 + 0x48) + local_30 * 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x48) + local_30 * 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x48) + local_30 * 8" (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (binary_expression "local_30 * 8" (identifier "local_30") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "piVar8 = *(int **)(pcVar1 + 4);" (assignment_expression "piVar8 = *(int **)(pcVar1 + 4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(pcVar1 + 4)" (* "*") (cast_expression "(int **)(pcVar1 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*pcVar1 == '\0') {\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }\n            else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" (if "if") (parenthesized_expression "(*pcVar1 == '\0')" (( "(") (binary_expression "*pcVar1 == '\0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }\n            }" ({ "{") (if_statement "if (piVar8 != (int *)0x0) {\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                FUN_001ae490(piVar8);\n                FUN_00248200(piVar8,0xc);\n              }" ({ "{") (expression_statement "FUN_001ae490(piVar8);" (call_expression "FUN_001ae490(piVar8)" (identifier "FUN_001ae490") (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))) (; ";")) (expression_statement "FUN_00248200(piVar8,0xc);" (call_expression "FUN_00248200(piVar8,0xc)" (identifier "FUN_00248200") (argument_list "(piVar8,0xc)" (( "(") (identifier "piVar8") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" (else "else") (if_statement "if (piVar8 != (int *)0x0) {\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (**(code **)(*piVar8 + 4))(piVar8);\n            }" ({ "{") (expression_statement "(**(code **)(*piVar8 + 4))(piVar8);" (call_expression "(**(code **)(*piVar8 + 4))(piVar8)" (parenthesized_expression "(**(code **)(*piVar8 + 4))" (( "(") (pointer_expression "**(code **)(*piVar8 + 4)" (* "*") (pointer_expression "*(code **)(*piVar8 + 4)" (* "*") (cast_expression "(code **)(*piVar8 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar8 + 4)" (( "(") (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(piVar8)" (( "(") (identifier "piVar8") () ")"))) (; ";")) (} "}"))))) (if_statement "if (uVar3 == local_30) break;" (if "if") (parenthesized_expression "(uVar3 == local_30)" (( "(") (binary_expression "uVar3 == local_30" (identifier "uVar3") (== "==") (identifier "local_30")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" (identifier "local_30") (= "=") (binary_expression "local_30 + 1" (identifier "local_30") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (piVar2 != (int *)0x0) {\n          FUN_00248220(piVar2);\n        }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_00248220(piVar2);\n        }" ({ "{") (expression_statement "FUN_00248220(piVar2);" (call_expression "FUN_00248220(piVar2)" (identifier "FUN_00248220") (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(param_1 + 0x54);" (assignment_expression "iVar11 = *(int *)(param_1 + 0x54)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (iVar11 == *(int *)(param_1 + 0x58)) {\n          return;\n        }" (if "if") (parenthesized_expression "(iVar11 == *(int *)(param_1 + 0x58))" (( "(") (binary_expression "iVar11 == *(int *)(param_1 + 0x58)" (identifier "iVar11") (== "==") (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar5 <= uVar9) goto LAB_001a7847;" (if "if") (parenthesized_expression "(uVar5 <= uVar9)" (( "(") (binary_expression "uVar5 <= uVar9" (identifier "uVar5") (<= "<=") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_001a7847;" (goto "goto") (statement_identifier "LAB_001a7847") (; ";"))) (expression_statement "iVar11 = *(int *)(param_1 + 0x58) - iVar11;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x58) - iVar11" (identifier "iVar11") (= "=") (binary_expression "*(int *)(param_1 + 0x58) - iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (identifier "iVar11"))) (; ";")) (expression_statement "local_30 = uVar9;" (assignment_expression "local_30 = uVar9" (identifier "local_30") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)(iVar11 >> 2) < 0x40000000)" (( "(") (binary_expression "(uint)(iVar11 >> 2) < 0x40000000" (call_expression "(uint)(iVar11 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar11 >> 2)" (( "(") (binary_expression "iVar11 >> 2" (identifier "iVar11") (>> ">>") (number_literal "2")) () ")"))) (< "<") (number_literal "0x40000000")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0028dc10("vector::reserve");" (call_expression "FUN_0028dc10("vector::reserve")" (identifier "FUN_0028dc10") (argument_list "("vector::reserve")" (( "(") (string_literal ""vector::reserve"" (" """) (string_content "vector::reserve") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001a7847:\n  *(int *)(param_1 + 0x58) = iVar11;" (statement_identifier "LAB_001a7847") (: ":") (expression_statement "*(int *)(param_1 + 0x58) = iVar11;" (assignment_expression "*(int *)(param_1 + 0x58) = iVar11" (pointer_expression "*(int *)(param_1 + 0x58)" (* "*") (cast_expression "(int *)(param_1 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "iVar11")) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void rescan(Plugin_manager * this, Task * task) */

void __thiscall var_3::type_1::function_1(type_1 *this,type_2 *task)

{
  type_3 pRVar1;
  type_4 **var_10;
  type_4 *pSVar3;
  type_5 *pAVar4;
  type_2 *var_19;
  bool bVar6;
  type_2 *var_7;
  type_3 var_6;
  type_3 var_5;
  type_6 *pSVar10;
  type_4 **var_11;
  type_2 *var_17;
  type_3 var_20;
  type_7 var_9;
  type_4 **var_18;
  type_8 *var_25;
  type_2 *in_stack_ffffffb8;
  type_9 __position;
  type_2 *var_14;
  size_t var_24;
  type_2 *var_15;
  
  var_7 = (type_2 *)((int)(this->rescannable_).
                         super__Vector_base<var_3::type_1::var_1,var_4::allocator<var_3::type_1::var_1>var_2>
                         ._M_impl._M_finish -
                    (int)(this->rescannable_).
                         super__Vector_base<var_3::type_1::var_1,var_4::allocator<var_3::type_1::var_1>var_2>
                         ._M_impl._M_start >> 3);
  var_6 = (this->undefined_symbols_).
            super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_finish;
  var_5 = (this->undefined_symbols_).
            super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_start;
  if (var_5 == var_6) {
    return;
  }
  if (var_7 != (type_2 *)0x0) {
    var_9 = (int)var_6 - (int)var_5;
    if ((type_7)((int)var_9 >> 2) < 0x40000000) {
      var_14 = (type_2 *)0x0;
      do {
        var_6 = (type_3)var_8(var_9);
        var_10 = (this->undefined_symbols_).
                  super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_start
        ;
        var_11 = (this->undefined_symbols_).
                   super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl.
                   _M_finish;
        (this->undefined_symbols_).super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>
        ._M_impl._M_start = var_6;
        (this->undefined_symbols_).super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>
        ._M_impl._M_finish = var_6;
        (this->undefined_symbols_).super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>
        ._M_impl._M_end_of_storage = (type_3)((int)var_6 + var_9);
        var_18 = var_10;
        var_15 = var_7;
        if (var_10 == var_11) {
LAB_001a782c:
          if (var_11 == (type_4 **)0x0) {
            return;
          }
          var_12(var_11);
          return;
        }
        do {
          pSVar3 = *var_18;
          var_19 = var_15;
          if ((pSVar3->field_0x2a & 7) == 0) {
            if (((pSVar3->u2_).shndx == 0) && ((pSVar3->field_0x2b & 0x20) != 0)) goto LAB_001a75db;
          }
          else if ((pSVar3->field_0x2a & 7) == 4) {
LAB_001a75db:
            __position._M_current =
                 (this->undefined_symbols_).
                 super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_finish
            ;
            if (__position._M_current ==
                (this->undefined_symbols_).
                super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl.
                _M_end_of_storage) {
                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */
              std::vector<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>::
              _M_realloc_insert<var_3::type_4*var_13&>(&this->undefined_symbols_,__position,var_18)
              ;
            }
            else {
              *__position._M_current = pSVar3;
              (this->undefined_symbols_).
              super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_finish =
                   __position._M_current + 1;
              __position._M_current = (type_4 **)in_stack_ffffffb8;
            }
            var_17 = var_14;
            in_stack_ffffffb8 = (type_2 *)__position._M_current;
            if (var_14 < var_15) {
              do {
                in_stack_ffffffb8 = var_17;
                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */
                bVar6 = var_16(this,(size_t)var_17,*var_18);
                var_19 = var_17;
                if (bVar6) break;
                var_17 = (type_2 *)((int)&var_17->_vptr_Task + 1);
                var_19 = var_15;
              } while (var_15 != var_17);
            }
          }
          var_18 = var_18 + 1;
          var_15 = var_19;
        } while (var_11 != var_18);
        var_11 = var_10;
        if (var_7 <= var_19) goto LAB_001a782c;
        pRVar1 = (this->rescannable_).
                 super__Vector_base<var_3::Plugin_manager::var_1,var_4::allocator<var_3::Plugin_manager::var_1>var_2>
                 ._M_impl._M_start + (int)var_19;
        var_25 = (pRVar1->u).input_group;
        if (pRVar1->is_archive == false) {
          pSVar10 = this->symtab_;
          var_24 = pSVar10->saw_undefined_;
          while( true ) {
            var_20 = (var_25->archives_).
                       super__Vector_base<var_3::type_5*,var_4::allocator<var_3::type_5*>var_2>._M_impl.
                       _M_start;
            if (var_20 !=
                (var_25->archives_).
                super__Vector_base<var_3::type_5*,var_4::allocator<var_3::type_5*>var_2>._M_impl.
                _M_finish) {
              do {
                pAVar4 = *var_20;
                File_read::var_21(&pAVar4->input_file_->file_,task);
                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */
                Archive::var_22
                          (*var_20,this->symtab_,this->layout_,this->input_objects_,this->mapfile_
                          );
                var_20 = var_20 + 1;
                in_stack_ffffffb8 = task;
                File_read::var_23(&pAVar4->input_file_->file_,task);
              } while ((((pRVar1->u).archive)->super_Library_base).task_ != (type_2 *)var_20);
              pSVar10 = this->symtab_;
            }
            if (var_24 == pSVar10->saw_undefined_) break;
            var_25 = (pRVar1->u).input_group;
            var_24 = pSVar10->saw_undefined_;
          }
        }
        else {
          File_read::var_21((type_10 *)
                          ((int)var_25[3].archives_.
                                super__Vector_base<var_3::type_5*,var_4::allocator<var_3::type_5*>var_2>.
                                _M_impl._M_start + 0x1c),task);
                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */
          Archive::var_22
                    ((pRVar1->u).archive,this->symtab_,this->layout_,this->input_objects_,
                     this->mapfile_);
          in_stack_ffffffb8 = task;
          File_read::var_23((type_10 *)
                            ((int)var_25[3].archives_.
                                  super__Vector_base<var_3::type_5*,var_4::allocator<var_3::type_5*>var_2>
                                  ._M_impl._M_start + 0x1c),task);
        }
        var_17 = (type_2 *)((int)&var_19->_vptr_Task + 1);
        if (var_14 < var_17) {
          while( true ) {
            pRVar1 = (this->rescannable_).
                     super__Vector_base<var_3::Plugin_manager::var_1,var_4::allocator<var_3::Plugin_manager::var_1>var_2>
                     ._M_impl._M_start + (int)var_14;
            var_25 = (pRVar1->u).input_group;
            if (pRVar1->is_archive == false) {
              if (var_25 != (type_8 *)0x0) {
                Input_group::~type_8(var_25,(int)in_stack_ffffffb8);
                in_stack_ffffffb8 = (type_2 *)0xc;
                var_12(var_25,0xc);
              }
            }
            else if (var_25 != (type_8 *)0x0) {
              (*(type_11 *)(var_25->archives_).
                        super__Vector_base<var_3::type_5*,var_4::allocator<var_3::type_5*>var_2>._M_impl.
                        _M_start[1])(var_25);
            }
            if (var_19 == var_14) break;
            var_14 = (type_2 *)((int)&var_14->_vptr_Task + 1);
          }
        }
        if (var_10 != (type_4 **)0x0) {
          var_12(var_10);
        }
        var_6 = (this->undefined_symbols_).
                  super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl.
                  _M_finish;
        var_5 = (this->undefined_symbols_).
                  super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>._M_impl._M_start
        ;
        if (var_5 == var_6) {
          return;
        }
        if (var_7 <= var_17) goto LAB_001a7847;
        var_9 = (int)var_6 - (int)var_5;
        var_14 = var_17;
      } while ((type_7)((int)var_9 >> 2) < 0x40000000);
    }
                    /* WARNING: Subroutine does not return */
    std::var_26("vector::reserve");
  }
LAB_001a7847:
  (this->undefined_symbols_).super__Vector_base<var_3::type_4*,var_4::allocator<var_3::type_4*>var_2>.
  _M_impl._M_finish = var_5;
  return;
}


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

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

void MASKED(int param_1,undefined4 param_2)

{
  char *pcVar1;
  int *piVar2;
  uint uVar3;
  char cVar4;
  uint uVar5;
  int iVar6;
  int *piVar7;
  int *piVar8;
  uint uVar9;
  int *piVar10;
  int iVar11;
  uint local_30;
  int local_2c;
  uint local_24;
  
  uVar5 = *(int *)(param_1 + 0x4c) - *(int *)(param_1 + 0x48) >> 3;
  iVar11 = *(int *)(param_1 + 0x54);
  if (iVar11 == *(int *)(param_1 + 0x58)) {
    return;
  }
  if (uVar5 != 0) {
    iVar11 = *(int *)(param_1 + 0x58) - iVar11;
    if ((uint)(iVar11 >> 2) < 0x40000000) {
      local_30 = 0;
      do {
        iVar6 = FUN_00246670(iVar11);
        piVar2 = *(int **)(param_1 + 0x54);
        piVar8 = *(int **)(param_1 + 0x58);
        *(int *)(param_1 + 0x54) = iVar6;
        *(int *)(param_1 + 0x58) = iVar6;
        *(int *)(param_1 + 0x5c) = iVar6 + iVar11;
        piVar7 = piVar2;
        local_24 = uVar5;
        if (piVar2 == piVar8) {
LAB_001a782c:
          if (piVar8 == (int *)0x0) {
            return;
          }
          FUN_00248220(piVar8);
          return;
        }
        do {
          iVar11 = *piVar7;
          uVar3 = local_24;
          if ((*(byte *)(iVar11 + 0x2a) & 7) == 0) {
            if ((*(int *)(iVar11 + 0xc) == 0) && ((*(byte *)(iVar11 + 0x2b) & 0x20) != 0))
            goto LAB_001a75db;
          }
          else if ((*(byte *)(iVar11 + 0x2a) & 7) == 4) {
LAB_001a75db:
            piVar10 = *(int **)(param_1 + 0x58);
            if (piVar10 == *(int **)(param_1 + 0x5c)) {
                    /* try { // try from 001a7780 to 001a77c6 has its CatchHandler @ 001a7855 */
              FUN_000a82c0(param_1 + 0x54,piVar10,piVar7);
            }
            else {
              *piVar10 = iVar11;
              *(int **)(param_1 + 0x58) = piVar10 + 1;
            }
            uVar9 = local_30;
            if (local_30 < local_24) {
              do {
                    /* try { // try from 001a7619 to 001a766a has its CatchHandler @ 001a7855 */
                cVar4 = FUN_001a68f0(param_1,uVar9,*piVar7);
                uVar3 = uVar9;
                if (cVar4 != '\0') break;
                uVar9 = uVar9 + 1;
                uVar3 = local_24;
              } while (local_24 != uVar9);
            }
          }
          piVar7 = piVar7 + 1;
          local_24 = uVar3;
        } while (piVar8 != piVar7);
        piVar8 = piVar2;
        if (uVar5 <= uVar3) goto LAB_001a782c;
        pcVar1 = (char *)(*(int *)(param_1 + 0x48) + uVar3 * 8);
        piVar8 = *(int **)(pcVar1 + 4);
        if (*pcVar1 == '\0') {
          piVar7 = *(int **)(param_1 + 0x74);
          local_2c = *piVar7;
          while( true ) {
            piVar10 = (int *)*piVar8;
            if (piVar10 != (int *)piVar8[1]) {
              do {
                iVar11 = *piVar10;
                FUN_000d2820(*(int *)(iVar11 + 0x24) + 0x1c,param_2);
                    /* try { // try from 001a77df to 001a77e3 has its CatchHandler @ 001a785c */
                FUN_000b7e90(*piVar10,*(undefined4 *)(param_1 + 0x74),
                             *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),
                             *(undefined4 *)(param_1 + 0x80));
                piVar10 = piVar10 + 1;
                FUN_000d3850(*(int *)(iVar11 + 0x24) + 0x1c,param_2);
              } while (*(int **)(*(int *)(pcVar1 + 4) + 4) != piVar10);
              piVar7 = *(int **)(param_1 + 0x74);
            }
            if (local_2c == *piVar7) break;
            piVar8 = *(int **)(pcVar1 + 4);
            local_2c = *piVar7;
          }
        }
        else {
          FUN_000d2820(piVar8[9] + 0x1c,param_2);
                    /* try { // try from 001a7686 to 001a768a has its CatchHandler @ 001a7863 */
          FUN_000b7e90(*(undefined4 *)(pcVar1 + 4),*(undefined4 *)(param_1 + 0x74),
                       *(undefined4 *)(param_1 + 0x78),*(undefined4 *)(param_1 + 0x70),
                       *(undefined4 *)(param_1 + 0x80));
          FUN_000d3850(piVar8[9] + 0x1c,param_2);
        }
        uVar9 = uVar3 + 1;
        if (local_30 < uVar9) {
          while( true ) {
            pcVar1 = (char *)(*(int *)(param_1 + 0x48) + local_30 * 8);
            piVar8 = *(int **)(pcVar1 + 4);
            if (*pcVar1 == '\0') {
              if (piVar8 != (int *)0x0) {
                FUN_001ae490(piVar8);
                FUN_00248200(piVar8,0xc);
              }
            }
            else if (piVar8 != (int *)0x0) {
              (**(code **)(*piVar8 + 4))(piVar8);
            }
            if (uVar3 == local_30) break;
            local_30 = local_30 + 1;
          }
        }
        if (piVar2 != (int *)0x0) {
          FUN_00248220(piVar2);
        }
        iVar11 = *(int *)(param_1 + 0x54);
        if (iVar11 == *(int *)(param_1 + 0x58)) {
          return;
        }
        if (uVar5 <= uVar9) goto LAB_001a7847;
        iVar11 = *(int *)(param_1 + 0x58) - iVar11;
        local_30 = uVar9;
      } while ((uint)(iVar11 >> 2) < 0x40000000);
    }
                    /* WARNING: Subroutine does not return */
    FUN_0028dc10("vector::reserve");
  }
LAB_001a7847:
  *(int *)(param_1 + 0x58) = iVar11;
  return;
}

