
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_process_got_plt(Sized_incremental_binary<64,_true> * this,
   Symbol_table * symtab, Layout * layout) */

void __thiscall
gold::Sized_incremental_binary<64,_true>::do_process_got_plt
          (Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)

{
  byte bVar1;
  uint uVar2;
  uchar *puVar3;
  uchar *puVar4;
  uint *puVar5;
  Target *pTVar6;
  long lVar7;
  pointer ppSVar8;
  Sized_relobj_incr<64,_true> *pSVar9;
  Symbol *pSVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  long lVar15;
  long *plVar16;
  uint uVar17;
  uint uVar18;
  ulong uVar19;
  uint uVar20;
  ulong uVar21;
  ulong uVar22;
  uint uVar23;
  
  puVar3 = (this->got_plt_reader_).p_;
  puVar4 = (this->got_plt_reader_).got_desc_p_;
  uVar14 = (this->got_plt_reader_).got_count_;
  puVar5 = (uint *)(this->got_plt_reader_).plt_desc_p_;
  pTVar6 = parameters->target_;
  if (pTVar6 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
  }
  uVar23 = (uint)((this->main_symtab_loc_).data_size / 0x18);
  lVar7 = (this->symtab_reader_).len_;
  lVar15 = lVar7 + 3;
  if (-1 < lVar7) {
    lVar15 = lVar7;
  }
  uVar19 = 0;
  iVar12 = (int)(lVar15 >> 2);
  uVar17 = uVar23 - iVar12;
  uVar13 = *(uint *)(puVar3 + 4);
  uVar13 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;
  plVar16 = (long *)(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13);
  if (uVar14 != 0) {
    do {
      while( true ) {
        iVar11 = (int)uVar19;
        bVar1 = puVar3[iVar11 + 8];
        uVar18 = (uint)bVar1;
        if ((char)(uVar18 & 0x7f) != '\x7f') break;
        (**(code **)(*plVar16 + 200))(plVar16,uVar19);
LAB_001888cf:
        uVar19 = (ulong)(iVar11 + 1U);
        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;
      }
      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));
      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;
      if (-1 < (char)bVar1) {
        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");
        }
        pSVar10 = (this->symbol_map_).
                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
                  [(iVar12 - uVar23) + uVar20];
        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {
          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)
             ) {
            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,
                          pSVar10->name_);
          }
          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);
        }
        goto LAB_001888cf;
      }
      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);
      uVar21 = (ulong)(uVar18 & 0x7f);
      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);
        uVar21 = (ulong)uVar18 & 0x7f;
      }
      ppSVar8 = (this->input_objects_).
                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>
                ._M_impl._M_start;
      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |
                      uVar2 << 0x18);
      if ((ulong)((long)(this->input_objects_).
                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>
                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");
      }
      pSVar9 = ppSVar8[uVar22];
      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;
      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);
      uVar19 = (ulong)(iVar11 + 1U);
    } while (uVar14 != iVar11 + 1U);
  }
LAB_001889a8:
  if (uVar13 == 0) {
    return;
  }
  uVar14 = *puVar5;
  uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;
  if ((uVar17 <= uVar14) && (uVar14 < uVar23)) {
    uVar18 = 0;
    do {
      pSVar10 = (this->symbol_map_).
                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start
                [uVar14 + (iVar12 - uVar23)];
      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {
        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);
        }
        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);
      }
      uVar18 = uVar18 + 1;
      if (uVar13 == uVar18) {
        return;
      }
      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));
      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;
    } while ((uVar17 <= uVar14) && (uVar14 < uVar23));
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/incremental.cc",700,"do_process_got_plt");
}



void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)

{
  byte bVar1;
  int iVar2;
  long lVar3;
  long lVar4;
  uint *puVar5;
  long *plVar6;
  long lVar7;
  undefined8 *puVar8;
  int iVar9;
  uint uVar10;
  long lVar11;
  long *plVar12;
  uint uVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  ulong uVar18;
  uint uVar19;
  
  lVar3 = *(long *)(param_1 + 0x140);
  lVar4 = *(long *)(param_1 + 0x150);
  iVar2 = *(int *)(param_1 + 0x148);
  puVar5 = *(uint **)(param_1 + 0x158);
  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
  if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");
  }
  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);
  lVar7 = *(long *)(param_1 + 0x128);
  lVar11 = lVar7 + 3;
  if (-1 < lVar7) {
    lVar11 = lVar7;
  }
  iVar14 = 0;
  iVar9 = (int)(lVar11 >> 2);
  uVar13 = uVar19 - iVar9;
  uVar10 = *(uint *)(lVar3 + 4);
  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;
  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);
  if (iVar2 != 0) {
    do {
      while( true ) {
        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));
        if ((bVar1 & 0x7f) != 0x7f) break;
        (**(code **)(*plVar12 + 200))(plVar12,iVar14);
LAB_001888cf:
        iVar14 = iVar14 + 1;
        if (iVar2 == iVar14) goto LAB_001889a8;
      }
      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));
      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
      if (-1 < (char)bVar1) {
        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");
        }
        puVar8 = *(undefined8 **)
                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);
        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {
          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,
                         *puVar8);
          }
          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);
        }
        goto LAB_001888cf;
      }
      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));
      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",
                     iVar14,bVar1 & 0x7f);
      }
      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                      uVar17 << 0x18);
      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");
      }
      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);
      if (lVar7 == 0) goto LAB_001888cf;
      iVar15 = iVar14 + 1;
      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);
      iVar14 = iVar15;
    } while (iVar2 != iVar15);
  }
LAB_001889a8:
  if (uVar10 == 0) {
    return;
  }
  uVar16 = *puVar5;
  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {
    uVar17 = 0;
    do {
      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);
      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);
        }
        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);
      }
      uVar17 = uVar17 + 1;
      if (uVar10 == uVar17) {
        return;
      }
      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));
      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x68
MOV RAX,qword ptr [RDI + 0x140]
MOV R15,qword ptr [RDI + 0x150]
MOV qword ptr [RSP + 0x20],RSI
MOV qword ptr [RSP + 0x38],RAX
MOV EAX,dword ptr [RDI + 0x148]
MOV qword ptr [RSP + 0x28],RDX
MOV dword ptr [RSP + 0x10],EAX
MOV RAX,qword ptr [RDI + 0x158]
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [0x0043e6b0]
MOV R12,qword ptr [RAX + 0x18]
TEST R12,R12
JZ 0x00188b05
MOV RCX,qword ptr [RDI + 0xe0]
MOV R14,RDI
MOV RSI,qword ptr [RSP + 0x20]
MOV RDX,0x2aaaaaaaaaaaaaab
MOV RAX,RCX
SAR RCX,0x3f
IMUL RDX
SAR RDX,0x2
SUB RDX,RCX
MOV RCX,RDX
MOV qword ptr [RSP + 0x50],RDX
MOV R13D,EDX
MOV RDX,qword ptr [RDI + 0x128]
MOV RDI,R12
TEST RDX,RDX
LEA RAX,[RDX + 0x3]
CMOVNS RAX,RDX
MOV RDX,qword ptr [RSP + 0x28]
XOR EBX,EBX
SAR RAX,0x2
SUB ECX,EAX
MOV qword ptr [RSP + 0x58],RAX
MOV EBP,EAX
MOV RAX,qword ptr [RSP + 0x38]
MOV dword ptr [RSP + 0xc],ECX
MOV ECX,dword ptr [RSP + 0x10]
SUB EBP,R13D
MOV EAX,dword ptr [RAX + 0x4]
BSWAP EAX
MOV R8D,EAX
MOV dword ptr [RSP + 0x14],EAX
MOV RAX,qword ptr [R12]
CALL qword ptr [RAX + 0x1c0]
MOV EDX,dword ptr [RSP + 0x10]
MOV dword ptr [RSP + 0x40],EBP
MOV qword ptr [RSP + 0x30],RAX
TEST EDX,EDX
JZ 0x001889a8
MOV RAX,R14
MOV dword ptr [RSP + 0x18],R13D
MOV R14,R15
MOV R13,R12
MOV R15,RAX
MOV R12,qword ptr [RSP + 0x38]
JMP 0x001888dc
CMP dword ptr [RSP + 0xc],EBP
JA 0x00188ad5
CMP dword ptr [RSP + 0x18],EBP
JBE 0x00188ad5
MOV EAX,dword ptr [RSP + 0x40]
LEA ECX,[RAX + RBP*0x1]
MOV RAX,qword ptr [R15 + 0xa8]
MOV R11,qword ptr [RAX + RCX*0x8]
TEST R11,R11
JZ 0x001888cf
CMP byte ptr [R11 + 0x3a],0x0
JNS 0x001888cf
MOV RAX,qword ptr [0x0043e6b0]
MOVZX EBP,DL
CMP qword ptr [RAX + 0x10],0x0
JZ 0x001888bb
TEST byte ptr [RAX + 0x24],0x10
JZ 0x001888bb
MOV R8,qword ptr [R11]
MOV RDI,qword ptr [RAX]
MOV ECX,EBP
MOV EDX,EBX
LEA RSI,[0x373670]
XOR EAX,EAX
MOV qword ptr [RSP + 0x38],R11
CALL 0x00178100
MOV R11,qword ptr [RSP + 0x38]
MOV RAX,qword ptr [R13]
MOV ECX,EBP
MOV RDX,R11
MOV ESI,EBX
MOV RDI,R13
CALL qword ptr [RAX + 0x1d0]
ADD EBX,0x1
CMP dword ptr [RSP + 0x10],EBX
JZ 0x0018899d
LEA EAX,[RBX + 0x8]
MOVZX EDX,byte ptr [R12 + RAX*0x1]
MOV R8D,EDX
AND R8D,0x7f
CMP R8B,0x7f
JZ 0x00188aa8
LEA EAX,[RBX*0x8]
MOV EBP,dword ptr [R14 + RAX*0x1]
BSWAP EBP
TEST DL,DL
JNS 0x00188850
MOV R11D,dword ptr [R14 + RAX*0x1 + 0x4]
MOV RAX,qword ptr [0x0043e6b0]
MOVZX R8D,R8B
CMP qword ptr [RAX + 0x10],0x0
BSWAP R11D
JZ 0x00188954
TEST byte ptr [RAX + 0x24],0x10
JZ 0x00188954
MOV RDI,qword ptr [RAX]
MOV ECX,R8D
MOV EDX,EBX
LEA RSI,[0x373648]
XOR EAX,EAX
MOV dword ptr [RSP + 0x44],R11D
MOV dword ptr [RSP + 0x38],R8D
CALL 0x00178100
MOV R11D,dword ptr [RSP + 0x44]
MOV R8D,dword ptr [RSP + 0x38]
MOV RDX,qword ptr [R15 + 0x78]
MOV RAX,qword ptr [R15 + 0x80]
MOV R11D,R11D
SUB RAX,RDX
SAR RAX,0x3
CMP R11,RAX
JNC 0x00188aed
MOV RDX,qword ptr [RDX + R11*0x8]
TEST RDX,RDX
JZ 0x001888cf
MOV RAX,qword ptr [R13]
MOV ESI,EBX
MOV ECX,EBP
MOV RDI,R13
ADD EBX,0x1
CALL qword ptr [RAX + 0x1c8]
CMP dword ptr [RSP + 0x10],EBX
JNZ 0x001888dc
MOV R12,R13
MOV R13D,dword ptr [RSP + 0x18]
MOV R14,R15
MOV EAX,dword ptr [RSP + 0x14]
TEST EAX,EAX
JZ 0x00188a92
MOV RAX,qword ptr [RSP + 0x48]
MOV EAX,dword ptr [RAX]
BSWAP EAX
CMP dword ptr [RSP + 0xc],EAX
JA 0x00188abd
CMP EAX,dword ptr [RSP + 0x50]
JNC 0x00188abd
MOV R15D,dword ptr [RSP + 0x58]
SUB R15D,dword ptr [RSP + 0x50]
XOR EBP,EBP
MOV dword ptr [RSP + 0x10],R13D
MOV ECX,R15D
LEA RBX,[0x37368c]
MOV R15,R12
MOV R13,qword ptr [RSP + 0x48]
MOV R12D,ECX
JMP 0x00188a22
LEA EAX,[RBP*0x4]
MOV EAX,dword ptr [R13 + RAX*0x1]
BSWAP EAX
CMP dword ptr [RSP + 0xc],EAX
JA 0x00188abd
CMP dword ptr [RSP + 0x10],EAX
JBE 0x00188abd
LEA EDX,[RAX + R12*0x1]
MOV RAX,qword ptr [R14 + 0xa8]
MOV R8,qword ptr [RAX + RDX*0x8]
TEST R8,R8
JZ 0x00188a85
CMP byte ptr [R8 + 0x3a],0x0
JNS 0x00188a85
MOV RAX,qword ptr [0x0043e6b0]
CMP qword ptr [RAX + 0x10],0x0
JZ 0x00188a6d
TEST byte ptr [RAX + 0x24],0x10
JZ 0x00188a6d
MOV RCX,qword ptr [R8]
MOV RDI,qword ptr [RAX]
MOV EDX,EBP
MOV RSI,RBX
XOR EAX,EAX
MOV qword ptr [RSP + 0x18],R8
CALL 0x00178100
MOV R8,qword ptr [RSP + 0x18]
MOV RAX,qword ptr [R15]
MOV ECX,EBP
MOV RDX,qword ptr [RSP + 0x28]
MOV RDI,R15
MOV RSI,qword ptr [RSP + 0x20]
CALL qword ptr [RAX + 0x1d8]
ADD EBP,0x1
CMP dword ptr [RSP + 0x14],EBP
JNZ 0x00188a00
ADD RSP,0x68
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [RSP + 0x30]
MOV ESI,EBX
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0xc8]
JMP 0x001888cf
LEA RDX,[0x373f10]
MOV ESI,0x2bc
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x373f10]
MOV ESI,0x2aa
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x373fe0]
MOV ESI,0x654
LEA RDI,[0x373482]
CALL 0x0017c650
LEA RDX,[0x375178]
MOV ESI,0x73
LEA RDI,[0x3726d0]
CALL 0x0017c650
(translation_unit "void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}\n\n" (function_definition "void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" primitive_type (function_declarator "FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x140);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x140)" identifier = (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1 + 0x150);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x150)" identifier = (pointer_expression "*(long *)(param_1 + 0x150)" * (cast_expression "(long *)(param_1 + 0x150)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x150)" ( (binary_expression "param_1 + 0x150" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x148);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x148)" identifier = (pointer_expression "*(int *)(param_1 + 0x148)" * (cast_expression "(int *)(param_1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = *(uint **)(param_1 + 0x158);" (assignment_expression "puVar5 = *(uint **)(param_1 + 0x158)" identifier = (pointer_expression "*(uint **)(param_1 + 0x158)" * (cast_expression "(uint **)(param_1 + 0x158)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);" (assignment_expression "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18)" identifier = (call_expression "(uint)(*(long *)(param_1 + 0xe0) / 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(long *)(param_1 + 0xe0) / 0x18)" ( (binary_expression "*(long *)(param_1 + 0xe0) / 0x18" (pointer_expression "*(long *)(param_1 + 0xe0)" * (cast_expression "(long *)(param_1 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe0)" ( (binary_expression "param_1 + 0xe0" identifier + number_literal) )))) / number_literal) )))) ;) (expression_statement "lVar7 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x128)" identifier = (pointer_expression "*(long *)(param_1 + 0x128)" * (cast_expression "(long *)(param_1 + 0x128)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = lVar7 + 3;" (assignment_expression "lVar11 = lVar7 + 3" identifier = (binary_expression "lVar7 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }" if (parenthesized_expression "(-1 < lVar7)" ( (binary_expression "-1 < lVar7" number_literal < identifier) )) (compound_statement "{\n    lVar11 = lVar7;\n  }" { (expression_statement "lVar11 = lVar7;" (assignment_expression "lVar11 = lVar7" identifier = identifier) ;) })) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = (int)(lVar11 >> 2);" (assignment_expression "iVar9 = (int)(lVar11 >> 2)" identifier = (cast_expression "(int)(lVar11 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar11 >> 2)" ( (binary_expression "lVar11 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar13 = uVar19 - iVar9;" (assignment_expression "uVar13 = uVar19 - iVar9" identifier = (binary_expression "uVar19 - iVar9" identifier - identifier)) ;) (expression_statement "uVar10 = *(uint *)(lVar3 + 4);" (assignment_expression "uVar10 = *(uint *)(lVar3 + 4)" identifier = (pointer_expression "*(uint *)(lVar3 + 4)" * (cast_expression "(uint *)(lVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4)" ( (binary_expression "lVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);" (assignment_expression "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" identifier = (cast_expression "(long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c0))" ( (pointer_expression "**(code **)(*plVar6 + 0x1c0)" * (pointer_expression "*(code **)(*plVar6 + 0x1c0)" * (cast_expression "(code **)(*plVar6 + 0x1c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1c0)" ( (binary_expression "*plVar6 + 0x1c0" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,param_2,param_3,iVar2,uVar10)" ( identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" { (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);" do (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    }" { (while_statement "while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" { (expression_statement "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));" (assignment_expression "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8))" identifier = (pointer_expression "*(byte *)(lVar3 + (ulong)(iVar14 + 8))" * (cast_expression "(byte *)(lVar3 + (ulong)(iVar14 + 8))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + (ulong)(iVar14 + 8))" ( (binary_expression "lVar3 + (ulong)(iVar14 + 8)" identifier + (call_expression "(ulong)(iVar14 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if ((bVar1 & 0x7f) != 0x7f) break;" if (parenthesized_expression "((bVar1 & 0x7f) != 0x7f)" ( (binary_expression "(bVar1 & 0x7f) != 0x7f" (parenthesized_expression "(bVar1 & 0x7f)" ( (binary_expression "bVar1 & 0x7f" identifier & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(*plVar12 + 200))(plVar12,iVar14);" (call_expression "(**(code **)(*plVar12 + 200))(plVar12,iVar14)" (parenthesized_expression "(**(code **)(*plVar12 + 200))" ( (pointer_expression "**(code **)(*plVar12 + 200)" * (pointer_expression "*(code **)(*plVar12 + 200)" * (cast_expression "(code **)(*plVar12 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 200)" ( (binary_expression "*plVar12 + 200" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12,iVar14)" ( identifier , identifier ))) ;) (labeled_statement "LAB_001888cf:\n        iVar14 = iVar14 + 1;" statement_identifier : (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar2 == iVar14) goto LAB_001889a8;" if (parenthesized_expression "(iVar2 == iVar14)" ( (binary_expression "iVar2 == iVar14" identifier == identifier) )) (goto_statement "goto LAB_001889a8;" goto statement_identifier ;)) })) (expression_statement "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" identifier = (pointer_expression "*(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" * (cast_expression "(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + (ulong)(uint)(iVar14 * 8))" ( (binary_expression "lVar4 + (ulong)(uint)(iVar14 * 8)" identifier + (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar14 * 8)" ( (binary_expression "iVar14 * 8" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" { (if_statement "if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" if (parenthesized_expression "((uVar16 < uVar13) || (uVar19 <= uVar16))" ( (binary_expression "(uVar16 < uVar13) || (uVar19 <= uVar16)" (parenthesized_expression "(uVar16 < uVar13)" ( (binary_expression "uVar16 < uVar13" identifier < identifier) )) || (parenthesized_expression "(uVar19 <= uVar16)" ( (binary_expression "uVar19 <= uVar16" identifier <= identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) })) (expression_statement "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);" (assignment_expression "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" identifier = (pointer_expression "*(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" * (cast_expression "(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "(ulong)((iVar9 - uVar19) + uVar16) * 8" (call_expression "(ulong)((iVar9 - uVar19) + uVar16)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar9 - uVar19) + uVar16)" ( (binary_expression "(iVar9 - uVar19) + uVar16" (parenthesized_expression "(iVar9 - uVar19)" ( (binary_expression "iVar9 - uVar19" identifier - identifier) )) + identifier) ))) * number_literal)) ))))) ;) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" if (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" ( (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" ( (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" * (cast_expression "(char *)((long)puVar8 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x3a)" ( (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""GOT entry %d, type %02x: %s"" " string_content ") , identifier , identifier , (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);" (call_expression "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d0))" ( (pointer_expression "**(code **)(*plVar6 + 0x1d0)" * (pointer_expression "*(code **)(*plVar6 + 0x1d0)" * (cast_expression "(code **)(*plVar6 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1d0)" ( (binary_expression "*plVar6 + 0x1d0" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,iVar14,puVar8,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;) })) (expression_statement "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" identifier = (pointer_expression "*(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" * (cast_expression "(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" ( (binary_expression "lVar4 + 4 + (ulong)(uint)(iVar14 * 8)" (binary_expression "lVar4 + 4" identifier + number_literal) + (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar14 * 8)" ( (binary_expression "iVar14 * 8" identifier * number_literal) )))) ))))) ;) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""GOT entry %d, type %02x: (local symbol)"" " string_content ") , identifier , (binary_expression "bVar1 & 0x7f" identifier & number_literal) ))) ;) })) (expression_statement "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);" (assignment_expression "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" identifier = (call_expression "(ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" ( (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" if (parenthesized_expression "((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18)" ( (binary_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18" (call_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" ( (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3" (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78)" (pointer_expression "*(long *)(param_1 + 0x80)" * (cast_expression "(long *)(param_1 + 0x80)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.h",0x654,"input_object");" (call_expression "FUN_0017c650("../../gold/incremental.h",0x654,"input_object")" identifier (argument_list "("../../gold/incremental.h",0x654,"input_object")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""input_object"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x78) + uVar18 * 8)" ( (binary_expression "*(long *)(param_1 + 0x78) + uVar18 * 8" (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (lVar7 == 0) goto LAB_001888cf;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;)) (expression_statement "iVar15 = iVar14 + 1;" (assignment_expression "iVar15 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);" (call_expression "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c8))" ( (pointer_expression "**(code **)(*plVar6 + 0x1c8)" * (pointer_expression "*(code **)(*plVar6 + 0x1c8)" * (cast_expression "(code **)(*plVar6 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1c8)" ( (binary_expression "*plVar6 + 0x1c8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,iVar14,lVar7,uVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != iVar15)" ( (binary_expression "iVar2 != iVar15" identifier != identifier) )) ;) })) (labeled_statement "LAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (uVar10 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar16 = *puVar5;" (assignment_expression "uVar16 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" if (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" ( (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" ( (binary_expression "uVar13 <= uVar16" identifier <= identifier) )) && (parenthesized_expression "(uVar16 < uVar19)" ( (binary_expression "uVar16 < uVar19" identifier < identifier) ))) )) (compound_statement "{\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));" do (compound_statement "{\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    }" { (expression_statement "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);" (assignment_expression "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" * (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "(ulong)(uVar16 + (iVar9 - uVar19)) * 8" (call_expression "(ulong)(uVar16 + (iVar9 - uVar19))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 + (iVar9 - uVar19))" ( (binary_expression "uVar16 + (iVar9 - uVar19)" identifier + (parenthesized_expression "(iVar9 - uVar19)" ( (binary_expression "iVar9 - uVar19" identifier - identifier) ))) ))) * number_literal)) ))))) ;) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" if (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" ( (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" ( (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" * (cast_expression "(char *)((long)puVar8 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x3a)" ( (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""PLT entry %d: %s"" " string_content ") , identifier , (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);" (call_expression "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d8))" ( (pointer_expression "**(code **)(*plVar6 + 0x1d8)" * (pointer_expression "*(code **)(*plVar6 + 0x1d8)" * (cast_expression "(code **)(*plVar6 + 0x1d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1d8)" ( (binary_expression "*plVar6 + 0x1d8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,param_2,param_3,uVar17,puVar8)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 == uVar17) {\n        return;\n      }" if (parenthesized_expression "(uVar10 == uVar17)" ( (binary_expression "uVar10 == uVar17" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));" (assignment_expression "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" identifier = (pointer_expression "*(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" * (cast_expression "(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + (ulong)(uVar17 * 4))" ( (binary_expression "(long)puVar5 + (ulong)(uVar17 * 4)" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar17 * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 * 4)" ( (binary_expression "uVar17 * 4" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }) while (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" ( (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" ( (binary_expression "uVar13 <= uVar16" identifier <= identifier) )) && (parenthesized_expression "(uVar16 < uVar19)" ( (binary_expression "uVar16 < uVar19" identifier < identifier) ))) )) ;) })) comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",700,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void do_process_got_plt(Sized_incremental_binary<64,_true> * this,\n   Symbol_table * symtab, Layout * layout) */\n\nvoid __thiscall\ngold::Sized_incremental_binary<64,_true>::do_process_got_plt\n          (Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  uint *puVar5;\n  Target *pTVar6;\n  long lVar7;\n  pointer ppSVar8;\n  Sized_relobj_incr<64,_true> *pSVar9;\n  Symbol *pSVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  long lVar15;\n  long *plVar16;\n  uint uVar17;\n  uint uVar18;\n  ulong uVar19;\n  uint uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  uint uVar23;\n  \n  puVar3 = (this->got_plt_reader_).p_;\n  puVar4 = (this->got_plt_reader_).got_desc_p_;\n  uVar14 = (this->got_plt_reader_).got_count_;\n  puVar5 = (uint *)(this->got_plt_reader_).plt_desc_p_;\n  pTVar6 = parameters->target_;\n  if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar23 = (uint)((this->main_symtab_loc_).data_size / 0x18);\n  lVar7 = (this->symtab_reader_).len_;\n  lVar15 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar15 = lVar7;\n  }\n  uVar19 = 0;\n  iVar12 = (int)(lVar15 >> 2);\n  uVar17 = uVar23 - iVar12;\n  uVar13 = *(uint *)(puVar3 + 4);\n  uVar13 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n  plVar16 = (long *)(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13);\n  if (uVar14 != 0) {\n    do {\n      while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }\n      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));\n      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }\n      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);\n      uVar21 = (ulong)(uVar18 & 0x7f);\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }\n      ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;\n      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);\n      if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }\n      pSVar9 = ppSVar8[uVar22];\n      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;\n      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);\n      uVar19 = (ulong)(iVar11 + 1U);\n    } while (uVar14 != iVar11 + 1U);\n  }\nLAB_001889a8:\n  if (uVar13 == 0) {\n    return;\n  }\n  uVar14 = *puVar5;\n  uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n  if ((uVar17 <= uVar14) && (uVar14 < uVar23)) {\n    uVar18 = 0;\n    do {\n      pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];\n      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }\n      uVar18 = uVar18 + 1;\n      if (uVar13 == uVar18) {\n        return;\n      }\n      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n    } while ((uVar17 <= uVar14) && (uVar14 < uVar23));\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/incremental.cc",700,"do_process_got_plt");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Sized_incremental_binary<64,_true>::do_process_got_plt\n          (Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::do_process_got_plt\n          (Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)\n\n{\n  byte" identifier > : : (function_declarator "do_process_got_plt\n          (Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)" identifier (parameter_list "(Sized_incremental_binary<64,_true> *this,Symbol_table *symtab,Layout *layout)" ( (parameter_declaration "Sized_incremental_binary" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "Target *pTVar6;" type_identifier (pointer_declarator "*pTVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "pointer ppSVar8;" type_identifier identifier ;) (expression_statement "Sized_relobj_incr<64,_true> *pSVar9;" (update_expression "Sized_relobj_incr<64,_true> *pSVar9" (binary_expression "Sized_relobj_incr<64,_true> *pSVar9" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSVar9" * identifier)) --) ;) (declaration "Symbol *pSVar10;" type_identifier (pointer_declarator "*pSVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar16;" (sized_type_specifier "long" long) (pointer_declarator "*plVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (expression_statement "puVar3 = (this->got_plt_reader_).p_;" (assignment_expression "puVar3 = (this->got_plt_reader_).p_" identifier = (field_expression "(this->got_plt_reader_).p_" (parenthesized_expression "(this->got_plt_reader_)" ( (field_expression "this->got_plt_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar4 = (this->got_plt_reader_).got_desc_p_;" (assignment_expression "puVar4 = (this->got_plt_reader_).got_desc_p_" identifier = (field_expression "(this->got_plt_reader_).got_desc_p_" (parenthesized_expression "(this->got_plt_reader_)" ( (field_expression "this->got_plt_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar14 = (this->got_plt_reader_).got_count_;" (assignment_expression "uVar14 = (this->got_plt_reader_).got_count_" identifier = (field_expression "(this->got_plt_reader_).got_count_" (parenthesized_expression "(this->got_plt_reader_)" ( (field_expression "this->got_plt_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar5 = (uint *)(this->got_plt_reader_).plt_desc_p_;" (assignment_expression "puVar5 = (uint *)(this->got_plt_reader_).plt_desc_p_" identifier = (cast_expression "(uint *)(this->got_plt_reader_).plt_desc_p_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->got_plt_reader_).plt_desc_p_" (parenthesized_expression "(this->got_plt_reader_)" ( (field_expression "this->got_plt_reader_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pTVar6 = parameters->target_;" (assignment_expression "pTVar6 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(pTVar6 == (Target *)0x0)" ( (binary_expression "pTVar6 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "uVar23 = (uint)((this->main_symtab_loc_).data_size / 0x18);" (assignment_expression "uVar23 = (uint)((this->main_symtab_loc_).data_size / 0x18)" identifier = (call_expression "(uint)((this->main_symtab_loc_).data_size / 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((this->main_symtab_loc_).data_size / 0x18)" ( (binary_expression "(this->main_symtab_loc_).data_size / 0x18" (field_expression "(this->main_symtab_loc_).data_size" (parenthesized_expression "(this->main_symtab_loc_)" ( (field_expression "this->main_symtab_loc_" identifier -> field_identifier) )) . field_identifier) / number_literal) )))) ;) (expression_statement "lVar7 = (this->symtab_reader_).len_;" (assignment_expression "lVar7 = (this->symtab_reader_).len_" identifier = (field_expression "(this->symtab_reader_).len_" (parenthesized_expression "(this->symtab_reader_)" ( (field_expression "this->symtab_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar15 = lVar7 + 3;" (assignment_expression "lVar15 = lVar7 + 3" identifier = (binary_expression "lVar7 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar7) {\n    lVar15 = lVar7;\n  }" if (parenthesized_expression "(-1 < lVar7)" ( (binary_expression "-1 < lVar7" number_literal < identifier) )) (compound_statement "{\n    lVar15 = lVar7;\n  }" { (expression_statement "lVar15 = lVar7;" (assignment_expression "lVar15 = lVar7" identifier = identifier) ;) })) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = (int)(lVar15 >> 2);" (assignment_expression "iVar12 = (int)(lVar15 >> 2)" identifier = (cast_expression "(int)(lVar15 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar15 >> 2)" ( (binary_expression "lVar15 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar17 = uVar23 - iVar12;" (assignment_expression "uVar17 = uVar23 - iVar12" identifier = (binary_expression "uVar23 - iVar12" identifier - identifier)) ;) (expression_statement "uVar13 = *(uint *)(puVar3 + 4);" (assignment_expression "uVar13 = *(uint *)(puVar3 + 4)" identifier = (pointer_expression "*(uint *)(puVar3 + 4)" * (cast_expression "(uint *)(puVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;" (assignment_expression "uVar13 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" identifier = (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal))) ;) (expression_statement "plVar16 = (long *)(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13);" (assignment_expression "plVar16 = (long *)(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13)" identifier = (cast_expression "(long *)(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(long *)pTVar6 + 0x1c0))(pTVar6,symtab,layout,uVar14,uVar13)" (parenthesized_expression "(**(code **)(*(long *)pTVar6 + 0x1c0))" ( (pointer_expression "**(code **)(*(long *)pTVar6 + 0x1c0)" * (pointer_expression "*(code **)(*(long *)pTVar6 + 0x1c0)" * (cast_expression "(code **)(*(long *)pTVar6 + 0x1c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar6 + 0x1c0)" ( (binary_expression "*(long *)pTVar6 + 0x1c0" (pointer_expression "*(long *)pTVar6" * (cast_expression "(long *)pTVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar6,symtab,layout,uVar14,uVar13)" ( identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (uVar14 != 0) {\n    do {\n      while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }\n      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));\n      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }\n      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);\n      uVar21 = (ulong)(uVar18 & 0x7f);\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }\n      ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;\n      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);\n      if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }\n      pSVar9 = ppSVar8[uVar22];\n      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;\n      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);\n      uVar19 = (ulong)(iVar11 + 1U);\n    } while (uVar14 != iVar11 + 1U);\n  }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }\n      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));\n      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }\n      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);\n      uVar21 = (ulong)(uVar18 & 0x7f);\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }\n      ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;\n      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);\n      if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }\n      pSVar9 = ppSVar8[uVar22];\n      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;\n      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);\n      uVar19 = (ulong)(iVar11 + 1U);\n    } while (uVar14 != iVar11 + 1U);\n  }" { (do_statement "do {\n      while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }\n      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));\n      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }\n      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);\n      uVar21 = (ulong)(uVar18 & 0x7f);\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }\n      ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;\n      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);\n      if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }\n      pSVar9 = ppSVar8[uVar22];\n      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;\n      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);\n      uVar19 = (ulong)(iVar11 + 1U);\n    } while (uVar14 != iVar11 + 1U);" do (compound_statement "{\n      while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }\n      uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));\n      uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }\n      uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);\n      uVar21 = (ulong)(uVar18 & 0x7f);\n      if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }\n      ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;\n      uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);\n      if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }\n      pSVar9 = ppSVar8[uVar22];\n      if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;\n      (**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);\n      uVar19 = (ulong)(iVar11 + 1U);\n    }" { (while_statement "while( true ) {\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar11 = (int)uVar19;\n        bVar1 = puVar3[iVar11 + 8];\n        uVar18 = (uint)bVar1;\n        if ((char)(uVar18 & 0x7f) != '\x7f') break;\n        (**(code **)(*plVar16 + 200))(plVar16,uVar19);\nLAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);\n        if (uVar14 == iVar11 + 1U) goto LAB_001889a8;\n      }" { (expression_statement "iVar11 = (int)uVar19;" (assignment_expression "iVar11 = (int)uVar19" identifier = (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar1 = puVar3[iVar11 + 8];" (assignment_expression "bVar1 = puVar3[iVar11 + 8]" identifier = (subscript_expression "puVar3[iVar11 + 8]" identifier [ (binary_expression "iVar11 + 8" identifier + number_literal) ])) ;) (expression_statement "uVar18 = (uint)bVar1;" (assignment_expression "uVar18 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((char)(uVar18 & 0x7f) != '\x7f') break;" if (parenthesized_expression "((char)(uVar18 & 0x7f) != '\x7f')" ( (binary_expression "(char)(uVar18 & 0x7f) != '\x7f'" (cast_expression "(char)(uVar18 & 0x7f)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar18 & 0x7f)" ( (binary_expression "uVar18 & 0x7f" identifier & number_literal) ))) != (char_literal "'\x7f'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(*plVar16 + 200))(plVar16,uVar19);" (call_expression "(**(code **)(*plVar16 + 200))(plVar16,uVar19)" (parenthesized_expression "(**(code **)(*plVar16 + 200))" ( (pointer_expression "**(code **)(*plVar16 + 200)" * (pointer_expression "*(code **)(*plVar16 + 200)" * (cast_expression "(code **)(*plVar16 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar16 + 200)" ( (binary_expression "*plVar16 + 200" (pointer_expression "*plVar16" * identifier) + number_literal) ))))) )) (argument_list "(plVar16,uVar19)" ( identifier , identifier ))) ;) (labeled_statement "LAB_001888cf:\n        uVar19 = (ulong)(iVar11 + 1U);" statement_identifier : (expression_statement "uVar19 = (ulong)(iVar11 + 1U);" (assignment_expression "uVar19 = (ulong)(iVar11 + 1U)" identifier = (call_expression "(ulong)(iVar11 + 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar11 + 1U)" ( (binary_expression "iVar11 + 1U" identifier + number_literal) )))) ;)) (if_statement "if (uVar14 == iVar11 + 1U) goto LAB_001889a8;" if (parenthesized_expression "(uVar14 == iVar11 + 1U)" ( (binary_expression "uVar14 == iVar11 + 1U" identifier == (binary_expression "iVar11 + 1U" identifier + number_literal)) )) (goto_statement "goto LAB_001889a8;" goto statement_identifier ;)) })) (expression_statement "uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8));" (assignment_expression "uVar20 = *(uint *)(puVar4 + (uint)(iVar11 * 8))" identifier = (pointer_expression "*(uint *)(puVar4 + (uint)(iVar11 * 8))" * (cast_expression "(uint *)(puVar4 + (uint)(iVar11 * 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (uint)(iVar11 * 8))" ( (binary_expression "puVar4 + (uint)(iVar11 * 8)" identifier + (call_expression "(uint)(iVar11 * 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar11 * 8)" ( (binary_expression "iVar11 * 8" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18;" (assignment_expression "uVar20 = uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18" identifier = (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8 | uVar20 << 0x18" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8 | (uVar20 & 0xff00) << 8" (binary_expression "uVar20 >> 0x18 | (uVar20 & 0xff0000) >> 8" (binary_expression "uVar20 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar20 & 0xff0000) >> 8" (parenthesized_expression "(uVar20 & 0xff0000)" ( (binary_expression "uVar20 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar20 & 0xff00) << 8" (parenthesized_expression "(uVar20 & 0xff00)" ( (binary_expression "uVar20 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) (if_statement "if (-1 < (char)bVar1) {\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];\n        if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }\n        goto LAB_001888cf;\n      }" { (if_statement "if ((uVar20 < uVar17) || (uVar23 <= uVar20)) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" if (parenthesized_expression "((uVar20 < uVar17) || (uVar23 <= uVar20))" ( (binary_expression "(uVar20 < uVar17) || (uVar23 <= uVar20)" (parenthesized_expression "(uVar20 < uVar17)" ( (binary_expression "uVar20 < uVar17" identifier < identifier) )) || (parenthesized_expression "(uVar23 <= uVar20)" ( (binary_expression "uVar23 <= uVar20" identifier <= identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) })) (expression_statement "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20];" (subscript_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                  [(iVar12 - uVar23) + uVar20]" (field_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold::Symbol*,_std" (assignment_expression "pSVar10 = (this->symbol_map_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->symbol_map_).\n                  super__Vector_base<gold" (field_expression "(this->symbol_map_).\n                  super__Vector_base" (parenthesized_expression "(this->symbol_map_)" ( (field_expression "this->symbol_map_" 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 "(iVar12 - uVar23) + uVar20" (parenthesized_expression "(iVar12 - uVar23)" ( (binary_expression "iVar12 - uVar23" identifier - identifier) )) + identifier) ]) ;) (if_statement "if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }" if (parenthesized_expression "((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0'))" ( (binary_expression "(pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')" (parenthesized_expression "(pSVar10 != (Symbol *)0x0)" ( (binary_expression "pSVar10 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((char)pSVar10->field_0x3a < '\0')" ( (binary_expression "(char)pSVar10->field_0x3a < '\0'" (cast_expression "(char)pSVar10->field_0x3a" ( (type_descriptor "char" primitive_type) ) (field_expression "pSVar10->field_0x3a" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }\n          (**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);\n        }" { (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             ) {\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)\n             )" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);\n          }" { (labeled_statement "Errors::debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_);" (call_expression "debug(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_)" identifier (argument_list "(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(ulong)uVar18,\n                          pSVar10->name_)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""GOT entry %d, type %02x: %s"" " string_content ") , identifier , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , (field_expression "pSVar10->name_" identifier -> field_identifier) ))) ;)) })) (expression_statement "(**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18);" (call_expression "(**(code **)(*(long *)pTVar6 + 0x1d0))(pTVar6,uVar19,pSVar10,uVar18)" (parenthesized_expression "(**(code **)(*(long *)pTVar6 + 0x1d0))" ( (pointer_expression "**(code **)(*(long *)pTVar6 + 0x1d0)" * (pointer_expression "*(code **)(*(long *)pTVar6 + 0x1d0)" * (cast_expression "(code **)(*(long *)pTVar6 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar6 + 0x1d0)" ( (binary_expression "*(long *)pTVar6 + 0x1d0" (pointer_expression "*(long *)pTVar6" * (cast_expression "(long *)pTVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar6,uVar19,pSVar10,uVar18)" ( identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;) })) (expression_statement "uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4);" (assignment_expression "uVar2 = *(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4)" identifier = (pointer_expression "*(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4)" * (cast_expression "(uint *)(puVar4 + (ulong)(uint)(iVar11 * 8) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)(uint)(iVar11 * 8) + 4)" ( (binary_expression "puVar4 + (ulong)(uint)(iVar11 * 8) + 4" (binary_expression "puVar4 + (ulong)(uint)(iVar11 * 8)" identifier + (call_expression "(ulong)(uint)(iVar11 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar11 * 8)" ( (binary_expression "iVar11 * 8" identifier * number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar21 = (ulong)(uVar18 & 0x7f);" (assignment_expression "uVar21 = (ulong)(uVar18 & 0x7f)" identifier = (call_expression "(ulong)(uVar18 & 0x7f)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar18 & 0x7f)" ( (binary_expression "uVar18 & 0x7f" identifier & number_literal) )))) ;) (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);\n        uVar21 = (ulong)uVar18 & 0x7f;\n      }" { (labeled_statement "Errors::debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);" (call_expression "debug(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21)" identifier (argument_list "(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""GOT entry %d, type %02x: (local symbol)"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "uVar21 = (ulong)uVar18 & 0x7f;" (assignment_expression "uVar21 = (ulong)uVar18 & 0x7f" identifier = (binary_expression "(ulong)uVar18 & 0x7f" (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal)) ;) })) (ERROR "ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::" (comma_expression "ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std" (binary_expression "ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold::Sized_relobj_incr<64" (assignment_expression "ppSVar8 = (this->input_objects_).\n                super__Vector_base<gold" identifier = (binary_expression "(this->input_objects_).\n                super__Vector_base<gold" (field_expression "(this->input_objects_).\n                super__Vector_base" (parenthesized_expression "(this->input_objects_)" ( (field_expression "this->input_objects_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Sized_relobj_incr" : : identifier) < number_literal) , (binary_expression "_true>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start;" (comma_expression "Sized_relobj_incr<64,_true>*>_>\n                ._M_impl._M_start" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (field_expression "_true>*>_>\n                ._M_impl._M_start" (field_expression "_true>*>_>\n                ._M_impl" (binary_expression "_true>*>_" identifier > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18);" (assignment_expression "uVar22 = (ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18)" identifier = (call_expression "(ulong)(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18)" ( (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |\n                      uVar2 << 0x18" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8" (binary_expression "uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8" (binary_expression "uVar2 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff0000) >> 8" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00) << 8" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if ((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }" if (parenthesized_expression "((ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22)" ( (binary_expression "(ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= uVar22" (call_expression "(ulong)((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64,_true>*,_std::allocator<gold::Sized_relobj_incr<64,_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3)" ( (binary_expression "(long)(this->input_objects_).\n                        super__Vector_base<gold::Sized_relobj_incr<64" (binary_expression "(long)(this->input_objects_).\n                        super__Vector_base<gold" (cast_expression "(long)(this->input_objects_).\n                        super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(this->input_objects_).\n                        super__Vector_base" (parenthesized_expression "(this->input_objects_)" ( (field_expression "this->input_objects_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Sized_relobj_incr" : : identifier) < number_literal) , (binary_expression "_true>*,_std::allocator<gold::Sized_relobj_incr<64" (binary_expression "_true>*,_std::allocator<gold" (binary_expression "_true>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Sized_relobj_incr" : : identifier) < number_literal) , (binary_expression "_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8 >> 3" (binary_expression "_true>*>_>\n                        ._M_impl._M_finish - (long)ppSVar8" (field_expression "_true>*>_>\n                        ._M_impl._M_finish" (field_expression "_true>*>_>\n                        ._M_impl" (binary_expression "_true>*>_" identifier > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)ppSVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.h",0x654,"input_object");" (call_expression "do_gold_unreachable("../../gold/incremental.h",0x654,"input_object")" identifier (argument_list "("../../gold/incremental.h",0x654,"input_object")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""input_object"" " string_content ") ))) ;) })) (expression_statement "pSVar9 = ppSVar8[uVar22];" (assignment_expression "pSVar9 = ppSVar8[uVar22]" identifier = (subscript_expression "ppSVar8[uVar22]" identifier [ identifier ])) ;) (if_statement "if (pSVar9 == (Sized_relobj_incr<64,_true> *)0x0) goto LAB_001888cf;" if (parenthesized_expression "(pSVar9 == (Sized_relobj_incr<64,_true> *)0x0)" ( (binary_expression "pSVar9 == (Sized_relobj_incr<64,_true> *)0x0)" identifier == (parenthesized_expression "(Sized_relobj_incr<64,_true> *)0x0)" ( (comma_expression "Sized_relobj_incr<64,_true> *)0x0" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_true> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;)) (expression_statement "(**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21);" (call_expression "(**(code **)(*(long *)pTVar6 + 0x1c8))(pTVar6,uVar19,pSVar9,uVar20,uVar21)" (parenthesized_expression "(**(code **)(*(long *)pTVar6 + 0x1c8))" ( (pointer_expression "**(code **)(*(long *)pTVar6 + 0x1c8)" * (pointer_expression "*(code **)(*(long *)pTVar6 + 0x1c8)" * (cast_expression "(code **)(*(long *)pTVar6 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar6 + 0x1c8)" ( (binary_expression "*(long *)pTVar6 + 0x1c8" (pointer_expression "*(long *)pTVar6" * (cast_expression "(long *)pTVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar6,uVar19,pSVar9,uVar20,uVar21)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar19 = (ulong)(iVar11 + 1U);" (assignment_expression "uVar19 = (ulong)(iVar11 + 1U)" identifier = (call_expression "(ulong)(iVar11 + 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar11 + 1U)" ( (binary_expression "iVar11 + 1U" identifier + number_literal) )))) ;) }) while (parenthesized_expression "(uVar14 != iVar11 + 1U)" ( (binary_expression "uVar14 != iVar11 + 1U" identifier != (binary_expression "iVar11 + 1U" identifier + number_literal)) )) ;) })) (labeled_statement "LAB_001889a8:\n  if (uVar13 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (uVar13 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar14 = *puVar5;" (assignment_expression "uVar14 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;" (assignment_expression "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar17 <= uVar14) && (uVar14 < uVar23)) {\n    uVar18 = 0;\n    do {\n      pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];\n      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }\n      uVar18 = uVar18 + 1;\n      if (uVar13 == uVar18) {\n        return;\n      }\n      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n    } while ((uVar17 <= uVar14) && (uVar14 < uVar23));\n  }" if (parenthesized_expression "((uVar17 <= uVar14) && (uVar14 < uVar23))" ( (binary_expression "(uVar17 <= uVar14) && (uVar14 < uVar23)" (parenthesized_expression "(uVar17 <= uVar14)" ( (binary_expression "uVar17 <= uVar14" identifier <= identifier) )) && (parenthesized_expression "(uVar14 < uVar23)" ( (binary_expression "uVar14 < uVar23" identifier < identifier) ))) )) (compound_statement "{\n    uVar18 = 0;\n    do {\n      pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];\n      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }\n      uVar18 = uVar18 + 1;\n      if (uVar13 == uVar18) {\n        return;\n      }\n      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n    } while ((uVar17 <= uVar14) && (uVar14 < uVar23));\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];\n      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }\n      uVar18 = uVar18 + 1;\n      if (uVar13 == uVar18) {\n        return;\n      }\n      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n    } while ((uVar17 <= uVar14) && (uVar14 < uVar23));" do (compound_statement "{\n      pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];\n      if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }\n      uVar18 = uVar18 + 1;\n      if (uVar13 == uVar18) {\n        return;\n      }\n      uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n    }" { (expression_statement "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)];" (subscript_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start\n                [uVar14 + (iVar12 - uVar23)]" (field_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl._M_start" (field_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold::Symbol*,_std" (assignment_expression "pSVar10 = (this->symbol_map_).\n                super__Vector_base<gold" identifier = (binary_expression "(this->symbol_map_).\n                super__Vector_base<gold" (field_expression "(this->symbol_map_).\n                super__Vector_base" (parenthesized_expression "(this->symbol_map_)" ( (field_expression "this->symbol_map_" 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 "uVar14 + (iVar12 - uVar23)" identifier + (parenthesized_expression "(iVar12 - uVar23)" ( (binary_expression "iVar12 - uVar23" identifier - identifier) ))) ]) ;) (if_statement "if ((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }" if (parenthesized_expression "((pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0'))" ( (binary_expression "(pSVar10 != (Symbol *)0x0) && ((char)pSVar10->field_0x3a < '\0')" (parenthesized_expression "(pSVar10 != (Symbol *)0x0)" ( (binary_expression "pSVar10 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((char)pSVar10->field_0x3a < '\0')" ( (binary_expression "(char)pSVar10->field_0x3a < '\0'" (cast_expression "(char)pSVar10->field_0x3a" ( (type_descriptor "char" primitive_type) ) (field_expression "pSVar10->field_0x3a" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }\n        (**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);\n      }" { (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);\n        }" { (labeled_statement "Errors::debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_);" (call_expression "debug(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_)" identifier (argument_list "(parameters->errors_,"PLT entry %d: %s",(ulong)uVar18,pSVar10->name_)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""PLT entry %d: %s"" " string_content ") , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , (field_expression "pSVar10->name_" identifier -> field_identifier) ))) ;)) })) (expression_statement "(**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10);" (call_expression "(**(code **)(*(long *)pTVar6 + 0x1d8))(pTVar6,symtab,layout,uVar18,pSVar10)" (parenthesized_expression "(**(code **)(*(long *)pTVar6 + 0x1d8))" ( (pointer_expression "**(code **)(*(long *)pTVar6 + 0x1d8)" * (pointer_expression "*(code **)(*(long *)pTVar6 + 0x1d8)" * (cast_expression "(code **)(*(long *)pTVar6 + 0x1d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar6 + 0x1d8)" ( (binary_expression "*(long *)pTVar6 + 0x1d8" (pointer_expression "*(long *)pTVar6" * (cast_expression "(long *)pTVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar6,symtab,layout,uVar18,pSVar10)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (if_statement "if (uVar13 == uVar18) {\n        return;\n      }" if (parenthesized_expression "(uVar13 == uVar18)" ( (binary_expression "uVar13 == uVar18" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4));" (assignment_expression "uVar14 = *(uint *)((long)puVar5 + (ulong)(uVar18 * 4))" identifier = (pointer_expression "*(uint *)((long)puVar5 + (ulong)(uVar18 * 4))" * (cast_expression "(uint *)((long)puVar5 + (ulong)(uVar18 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + (ulong)(uVar18 * 4))" ( (binary_expression "(long)puVar5 + (ulong)(uVar18 * 4)" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar18 * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar18 * 4)" ( (binary_expression "uVar18 * 4" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;" (assignment_expression "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) }) while (parenthesized_expression "((uVar17 <= uVar14) && (uVar14 < uVar23))" ( (binary_expression "(uVar17 <= uVar14) && (uVar14 < uVar23)" (parenthesized_expression "(uVar17 <= uVar14)" ( (binary_expression "uVar17 <= uVar14" identifier <= identifier) )) && (parenthesized_expression "(uVar14 < uVar23)" ( (binary_expression "uVar14 < uVar23" identifier < identifier) ))) )) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",700,"do_process_got_plt");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",700,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",700,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    \n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}\n\n" (function_definition "void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    \n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" primitive_type (function_declarator "FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    \n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x140);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x140)" identifier = (pointer_expression "*(long *)(param_1 + 0x140)" * (cast_expression "(long *)(param_1 + 0x140)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) ;) (expression_statement "lVar4 = *(long *)(param_1 + 0x150);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x150)" identifier = (pointer_expression "*(long *)(param_1 + 0x150)" * (cast_expression "(long *)(param_1 + 0x150)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x150)" ( (binary_expression "param_1 + 0x150" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(param_1 + 0x148);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x148)" identifier = (pointer_expression "*(int *)(param_1 + 0x148)" * (cast_expression "(int *)(param_1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "puVar5 = *(uint **)(param_1 + 0x158);" (assignment_expression "puVar5 = *(uint **)(param_1 + 0x158)" identifier = (pointer_expression "*(uint **)(param_1 + 0x158)" * (cast_expression "(uint **)(param_1 + 0x158)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) ;) (expression_statement "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" { (expression_statement "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);" (assignment_expression "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18)" identifier = (call_expression "(uint)(*(long *)(param_1 + 0xe0) / 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(long *)(param_1 + 0xe0) / 0x18)" ( (binary_expression "*(long *)(param_1 + 0xe0) / 0x18" (pointer_expression "*(long *)(param_1 + 0xe0)" * (cast_expression "(long *)(param_1 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe0)" ( (binary_expression "param_1 + 0xe0" identifier + number_literal) )))) / number_literal) )))) ;) (expression_statement "lVar7 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x128)" identifier = (pointer_expression "*(long *)(param_1 + 0x128)" * (cast_expression "(long *)(param_1 + 0x128)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = lVar7 + 3;" (assignment_expression "lVar11 = lVar7 + 3" identifier = (binary_expression "lVar7 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }" if (parenthesized_expression "(-1 < lVar7)" ( (binary_expression "-1 < lVar7" number_literal < identifier) )) (compound_statement "{\n    lVar11 = lVar7;\n  }" { (expression_statement "lVar11 = lVar7;" (assignment_expression "lVar11 = lVar7" identifier = identifier) ;) })) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = (int)(lVar11 >> 2);" (assignment_expression "iVar9 = (int)(lVar11 >> 2)" identifier = (cast_expression "(int)(lVar11 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar11 >> 2)" ( (binary_expression "lVar11 >> 2" identifier >> number_literal) )))) ;) (expression_statement "uVar13 = uVar19 - iVar9;" (assignment_expression "uVar13 = uVar19 - iVar9" identifier = (binary_expression "uVar19 - iVar9" identifier - identifier)) ;) (expression_statement "uVar10 = *(uint *)(lVar3 + 4);" (assignment_expression "uVar10 = *(uint *)(lVar3 + 4)" identifier = (pointer_expression "*(uint *)(lVar3 + 4)" * (cast_expression "(uint *)(lVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4)" ( (binary_expression "lVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" identifier = (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" ( (binary_expression "uVar10 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" ( (binary_expression "uVar10 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar10 << 0x18" identifier << number_literal))) ;) (expression_statement "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);" (assignment_expression "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" identifier = (cast_expression "(long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c0))" ( (pointer_expression "**(code **)(*plVar6 + 0x1c0)" * (pointer_expression "*(code **)(*plVar6 + 0x1c0)" * (cast_expression "(code **)(*plVar6 + 0x1c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1c0)" ( (binary_expression "*plVar6 + 0x1c0" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,param_2,param_3,iVar2,uVar10)" ( identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" { (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);" do (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    }" { (while_statement "while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" { (expression_statement "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));" (assignment_expression "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8))" identifier = (pointer_expression "*(byte *)(lVar3 + (ulong)(iVar14 + 8))" * (cast_expression "(byte *)(lVar3 + (ulong)(iVar14 + 8))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + (ulong)(iVar14 + 8))" ( (binary_expression "lVar3 + (ulong)(iVar14 + 8)" identifier + (call_expression "(ulong)(iVar14 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) ))))) ;) (if_statement "if ((bVar1 & 0x7f) != 0x7f) break;" if (parenthesized_expression "((bVar1 & 0x7f) != 0x7f)" ( (binary_expression "(bVar1 & 0x7f) != 0x7f" (parenthesized_expression "(bVar1 & 0x7f)" ( (binary_expression "bVar1 & 0x7f" identifier & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(**(code **)(*plVar12 + 200))(plVar12,iVar14);" (call_expression "(**(code **)(*plVar12 + 200))(plVar12,iVar14)" (parenthesized_expression "(**(code **)(*plVar12 + 200))" ( (pointer_expression "**(code **)(*plVar12 + 200)" * (pointer_expression "*(code **)(*plVar12 + 200)" * (cast_expression "(code **)(*plVar12 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 200)" ( (binary_expression "*plVar12 + 200" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12,iVar14)" ( identifier , identifier ))) ;) (labeled_statement "LAB_001888cf:\n        iVar14 = iVar14 + 1;" statement_identifier : (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar2 == iVar14) goto LAB_001889a8;" if (parenthesized_expression "(iVar2 == iVar14)" ( (binary_expression "iVar2 == iVar14" identifier == identifier) )) (goto_statement "goto LAB_001889a8;" goto statement_identifier ;)) })) (expression_statement "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" identifier = (pointer_expression "*(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" * (cast_expression "(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + (ulong)(uint)(iVar14 * 8))" ( (binary_expression "lVar4 + (ulong)(uint)(iVar14 * 8)" identifier + (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar14 * 8)" ( (binary_expression "iVar14 * 8" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" if (parenthesized_expression "(-1 < (char)bVar1)" ( (binary_expression "-1 < (char)bVar1" number_literal < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" { (if_statement "if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" if (parenthesized_expression "((uVar16 < uVar13) || (uVar19 <= uVar16))" ( (binary_expression "(uVar16 < uVar13) || (uVar19 <= uVar16)" (parenthesized_expression "(uVar16 < uVar13)" ( (binary_expression "uVar16 < uVar13" identifier < identifier) )) || (parenthesized_expression "(uVar19 <= uVar16)" ( (binary_expression "uVar19 <= uVar16" identifier <= identifier) ))) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" { (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) })) (expression_statement "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);" (assignment_expression "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" identifier = (pointer_expression "*(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" * (cast_expression "(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "(ulong)((iVar9 - uVar19) + uVar16) * 8" (call_expression "(ulong)((iVar9 - uVar19) + uVar16)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar9 - uVar19) + uVar16)" ( (binary_expression "(iVar9 - uVar19) + uVar16" (parenthesized_expression "(iVar9 - uVar19)" ( (binary_expression "iVar9 - uVar19" identifier - identifier) )) + identifier) ))) * number_literal)) ))))) ;) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" if (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" ( (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" ( (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" * (cast_expression "(char *)((long)puVar8 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x3a)" ( (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""GOT entry %d, type %02x: %s"" " string_content ") , identifier , identifier , (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);" (call_expression "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d0))" ( (pointer_expression "**(code **)(*plVar6 + 0x1d0)" * (pointer_expression "*(code **)(*plVar6 + 0x1d0)" * (cast_expression "(code **)(*plVar6 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1d0)" ( (binary_expression "*plVar6 + 0x1d0" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,iVar14,puVar8,bVar1)" ( identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;) })) (expression_statement "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" identifier = (pointer_expression "*(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" * (cast_expression "(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" ( (binary_expression "lVar4 + 4 + (ulong)(uint)(iVar14 * 8)" (binary_expression "lVar4 + 4" identifier + number_literal) + (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar14 * 8)" ( (binary_expression "iVar14 * 8" identifier * number_literal) )))) ))))) ;) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""GOT entry %d, type %02x: (local symbol)"" " string_content ") , identifier , (binary_expression "bVar1 & 0x7f" identifier & number_literal) ))) ;) })) (expression_statement "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);" (assignment_expression "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" identifier = (call_expression "(ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" ( (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" ( (binary_expression "uVar17 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" ( (binary_expression "uVar17 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar17 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" if (parenthesized_expression "((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18)" ( (binary_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18" (call_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" ( (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3" (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78)" (pointer_expression "*(long *)(param_1 + 0x80)" * (cast_expression "(long *)(param_1 + 0x80)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) - (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) ))))) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" { (expression_statement "FUN_0017c650("../../gold/incremental.h",0x654,"input_object");" (call_expression "FUN_0017c650("../../gold/incremental.h",0x654,"input_object")" identifier (argument_list "("../../gold/incremental.h",0x654,"input_object")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""input_object"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x78) + uVar18 * 8)" ( (binary_expression "*(long *)(param_1 + 0x78) + uVar18 * 8" (pointer_expression "*(long *)(param_1 + 0x78)" * (cast_expression "(long *)(param_1 + 0x78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x78)" ( (binary_expression "param_1 + 0x78" identifier + number_literal) )))) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (lVar7 == 0) goto LAB_001888cf;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001888cf;" goto statement_identifier ;)) (expression_statement "iVar15 = iVar14 + 1;" (assignment_expression "iVar15 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);" (call_expression "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c8))" ( (pointer_expression "**(code **)(*plVar6 + 0x1c8)" * (pointer_expression "*(code **)(*plVar6 + 0x1c8)" * (cast_expression "(code **)(*plVar6 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1c8)" ( (binary_expression "*plVar6 + 0x1c8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,iVar14,lVar7,uVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" identifier = identifier) ;) }) while (parenthesized_expression "(iVar2 != iVar15)" ( (binary_expression "iVar2 != iVar15" identifier != identifier) )) ;) })) (labeled_statement "LAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }" statement_identifier : (if_statement "if (uVar10 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "uVar16 = *puVar5;" (assignment_expression "uVar16 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" if (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" ( (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" ( (binary_expression "uVar13 <= uVar16" identifier <= identifier) )) && (parenthesized_expression "(uVar16 < uVar19)" ( (binary_expression "uVar16 < uVar19" identifier < identifier) ))) )) (compound_statement "{\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));" do (compound_statement "{\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    }" { (expression_statement "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);" (assignment_expression "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" * (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "(ulong)(uVar16 + (iVar9 - uVar19)) * 8" (call_expression "(ulong)(uVar16 + (iVar9 - uVar19))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 + (iVar9 - uVar19))" ( (binary_expression "uVar16 + (iVar9 - uVar19)" identifier + (parenthesized_expression "(iVar9 - uVar19)" ( (binary_expression "iVar9 - uVar19" identifier - identifier) ))) ))) * number_literal)) ))))) ;) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" if (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" ( (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" ( (binary_expression "puVar8 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" ( (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" * (cast_expression "(char *)((long)puVar8 + 0x3a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x3a)" ( (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" { (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" identifier (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" ( (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" * (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""PLT entry %d: %s"" " string_content ") , identifier , (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);" (call_expression "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d8))" ( (pointer_expression "**(code **)(*plVar6 + 0x1d8)" * (pointer_expression "*(code **)(*plVar6 + 0x1d8)" * (cast_expression "(code **)(*plVar6 + 0x1d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x1d8)" ( (binary_expression "*plVar6 + 0x1d8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6,param_2,param_3,uVar17,puVar8)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar10 == uVar17) {\n        return;\n      }" if (parenthesized_expression "(uVar10 == uVar17)" ( (binary_expression "uVar10 == uVar17" identifier == identifier) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));" (assignment_expression "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" identifier = (pointer_expression "*(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" * (cast_expression "(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + (ulong)(uVar17 * 4))" ( (binary_expression "(long)puVar5 + (ulong)(uVar17 * 4)" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (call_expression "(ulong)(uVar17 * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 * 4)" ( (binary_expression "uVar17 * 4" identifier * number_literal) )))) ))))) ;) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" identifier = (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal))) ;) }) while (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" ( (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" ( (binary_expression "uVar13 <= uVar16" identifier <= identifier) )) && (parenthesized_expression "(uVar16 < uVar19)" ( (binary_expression "uVar16 < uVar19" identifier < identifier) ))) )) ;) })) (expression_statement "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt")" identifier (argument_list "("../../gold/incremental.cc",700,"do_process_got_plt")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_process_got_plt"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (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 , IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (break_statement break ;)) (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 , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT * LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT) ))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , IDENT , IDENT , (pointer_expression * IDENT) ))) ;) })) (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 , IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT * LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , IDENT , (binary_expression IDENT & LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , IDENT , (pointer_expression * IDENT) ))) ;) })) (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 , IDENT , IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)\n\n{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    \n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" (primitive_type "void") (function_declarator "FUN_00188740(long param_1,undefined8 param_2,undefined8 param_3)" (identifier "FUN_00188740") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  long lVar3;\n  long lVar4;\n  uint *puVar5;\n  long *plVar6;\n  long lVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar12;\n  uint uVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  ulong uVar18;\n  uint uVar19;\n  \n  lVar3 = *(long *)(param_1 + 0x140);\n  lVar4 = *(long *)(param_1 + 0x150);\n  iVar2 = *(int *)(param_1 + 0x148);\n  puVar5 = *(uint **)(param_1 + 0x158);\n  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n  if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }\n  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);\n  lVar7 = *(long *)(param_1 + 0x128);\n  lVar11 = lVar7 + 3;\n  if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }\n  iVar14 = 0;\n  iVar9 = (int)(lVar11 >> 2);\n  uVar13 = uVar19 - iVar9;\n  uVar10 = *(uint *)(lVar3 + 4);\n  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;\n  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);\n  if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }\nLAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }\n  uVar16 = *puVar5;\n  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }\n                    \n  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x140);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x140)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x140)" (* "*") (cast_expression "(long *)(param_1 + 0x140)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")"))))) (; ";")) (expression_statement "lVar4 = *(long *)(param_1 + 0x150);" (assignment_expression "lVar4 = *(long *)(param_1 + 0x150)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(param_1 + 0x150)" (* "*") (cast_expression "(long *)(param_1 + 0x150)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x150)" (( "(") (binary_expression "param_1 + 0x150" (identifier "param_1") (+ "+") (number_literal "0x150")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 0x148);" (assignment_expression "iVar2 = *(int *)(param_1 + 0x148)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 0x148)" (* "*") (cast_expression "(int *)(param_1 + 0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x148)" (( "(") (binary_expression "param_1 + 0x148" (identifier "param_1") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (expression_statement "puVar5 = *(uint **)(param_1 + 0x158);" (assignment_expression "puVar5 = *(uint **)(param_1 + 0x158)" (identifier "puVar5") (= "=") (pointer_expression "*(uint **)(param_1 + 0x158)" (* "*") (cast_expression "(uint **)(param_1 + 0x158)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")"))))) (; ";")) (expression_statement "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" (if "if") (parenthesized_expression "(plVar6 == (long *)0x0)" (( "(") (binary_expression "plVar6 == (long *)0x0" (identifier "plVar6") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x73,"sized_target")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x73,"sized_target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x73") (, ",") (string_literal ""sized_target"" (" """) (string_content "sized_target") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);" (assignment_expression "uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18)" (identifier "uVar19") (= "=") (call_expression "(uint)(*(long *)(param_1 + 0xe0) / 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(long *)(param_1 + 0xe0) / 0x18)" (( "(") (binary_expression "*(long *)(param_1 + 0xe0) / 0x18" (pointer_expression "*(long *)(param_1 + 0xe0)" (* "*") (cast_expression "(long *)(param_1 + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe0)" (( "(") (binary_expression "param_1 + 0xe0" (identifier "param_1") (+ "+") (number_literal "0xe0")) () ")")))) (/ "/") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar7 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x128)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(param_1 + 0x128)" (* "*") (cast_expression "(long *)(param_1 + 0x128)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "lVar11 = lVar7 + 3;" (assignment_expression "lVar11 = lVar7 + 3" (identifier "lVar11") (= "=") (binary_expression "lVar7 + 3" (identifier "lVar7") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < lVar7) {\n    lVar11 = lVar7;\n  }" (if "if") (parenthesized_expression "(-1 < lVar7)" (( "(") (binary_expression "-1 < lVar7" (number_literal "-1") (< "<") (identifier "lVar7")) () ")")) (compound_statement "{\n    lVar11 = lVar7;\n  }" ({ "{") (expression_statement "lVar11 = lVar7;" (assignment_expression "lVar11 = lVar7" (identifier "lVar11") (= "=") (identifier "lVar7")) (; ";")) (} "}"))) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = (int)(lVar11 >> 2);" (assignment_expression "iVar9 = (int)(lVar11 >> 2)" (identifier "iVar9") (= "=") (cast_expression "(int)(lVar11 >> 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar11 >> 2)" (( "(") (binary_expression "lVar11 >> 2" (identifier "lVar11") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar13 = uVar19 - iVar9;" (assignment_expression "uVar13 = uVar19 - iVar9" (identifier "uVar13") (= "=") (binary_expression "uVar19 - iVar9" (identifier "uVar19") (- "-") (identifier "iVar9"))) (; ";")) (expression_statement "uVar10 = *(uint *)(lVar3 + 4);" (assignment_expression "uVar10 = *(uint *)(lVar3 + 4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(lVar3 + 4)" (* "*") (cast_expression "(uint *)(lVar3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 4)" (( "(") (binary_expression "lVar3 + 4" (identifier "lVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;" (assignment_expression "uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8" (binary_expression "uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8" (binary_expression "uVar10 >> 0x18" (identifier "uVar10") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar10 & 0xff0000) >> 8" (parenthesized_expression "(uVar10 & 0xff0000)" (( "(") (binary_expression "uVar10 & 0xff0000" (identifier "uVar10") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar10 & 0xff00) << 8" (parenthesized_expression "(uVar10 & 0xff00)" (( "(") (binary_expression "uVar10 & 0xff00" (identifier "uVar10") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar10 << 0x18" (identifier "uVar10") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);" (assignment_expression "plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" (identifier "plVar12") (= "=") (cast_expression "(long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c0))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x1c0)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x1c0)" (* "*") (cast_expression "(code **)(*plVar6 + 0x1c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x1c0)" (( "(") (binary_expression "*plVar6 + 0x1c0" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x1c0")) () ")"))))) () ")")) (argument_list "(plVar6,param_2,param_3,iVar2,uVar10)" (( "(") (identifier "plVar6") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "iVar2") (, ",") (identifier "uVar10") () ")"))))) (; ";")) (if_statement "if (iVar2 != 0) {\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);\n  }" ({ "{") (do_statement "do {\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    } while (iVar2 != iVar15);" (do "do") (compound_statement "{\n      while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }\n      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n      if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }\n      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));\n      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }\n      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);\n      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }\n      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);\n      if (lVar7 == 0) goto LAB_001888cf;\n      iVar15 = iVar14 + 1;\n      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);\n      iVar14 = iVar15;\n    }" ({ "{") (while_statement "while( true ) {\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));\n        if ((bVar1 & 0x7f) != 0x7f) break;\n        (**(code **)(*plVar12 + 200))(plVar12,iVar14);\nLAB_001888cf:\n        iVar14 = iVar14 + 1;\n        if (iVar2 == iVar14) goto LAB_001889a8;\n      }" ({ "{") (expression_statement "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));" (assignment_expression "bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8))" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(lVar3 + (ulong)(iVar14 + 8))" (* "*") (cast_expression "(byte *)(lVar3 + (ulong)(iVar14 + 8))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + (ulong)(iVar14 + 8))" (( "(") (binary_expression "lVar3 + (ulong)(iVar14 + 8)" (identifier "lVar3") (+ "+") (call_expression "(ulong)(iVar14 + 8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 0x7f) != 0x7f) break;" (if "if") (parenthesized_expression "((bVar1 & 0x7f) != 0x7f)" (( "(") (binary_expression "(bVar1 & 0x7f) != 0x7f" (parenthesized_expression "(bVar1 & 0x7f)" (( "(") (binary_expression "bVar1 & 0x7f" (identifier "bVar1") (& "&") (number_literal "0x7f")) () ")")) (!= "!=") (number_literal "0x7f")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(**(code **)(*plVar12 + 200))(plVar12,iVar14);" (call_expression "(**(code **)(*plVar12 + 200))(plVar12,iVar14)" (parenthesized_expression "(**(code **)(*plVar12 + 200))" (( "(") (pointer_expression "**(code **)(*plVar12 + 200)" (* "*") (pointer_expression "*(code **)(*plVar12 + 200)" (* "*") (cast_expression "(code **)(*plVar12 + 200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar12 + 200)" (( "(") (binary_expression "*plVar12 + 200" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "200")) () ")"))))) () ")")) (argument_list "(plVar12,iVar14)" (( "(") (identifier "plVar12") (, ",") (identifier "iVar14") () ")"))) (; ";")) (labeled_statement "LAB_001888cf:\n        iVar14 = iVar14 + 1;" (statement_identifier "LAB_001888cf") (: ":") (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (iVar2 == iVar14) goto LAB_001889a8;" (if "if") (parenthesized_expression "(iVar2 == iVar14)" (( "(") (binary_expression "iVar2 == iVar14" (identifier "iVar2") (== "==") (identifier "iVar14")) () ")")) (goto_statement "goto LAB_001889a8;" (goto "goto") (statement_identifier "LAB_001889a8") (; ";"))) (} "}"))) (expression_statement "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" (* "*") (cast_expression "(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + (ulong)(uint)(iVar14 * 8))" (( "(") (binary_expression "lVar4 + (ulong)(uint)(iVar14 * 8)" (identifier "lVar4") (+ "+") (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar14 * 8)" (( "(") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (-1 < (char)bVar1) {\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" (if "if") (parenthesized_expression "(-1 < (char)bVar1)" (( "(") (binary_expression "-1 < (char)bVar1" (number_literal "-1") (< "<") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) () ")")) (compound_statement "{\n        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }\n        puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);\n        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }\n        goto LAB_001888cf;\n      }" ({ "{") (if_statement "if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" (if "if") (parenthesized_expression "((uVar16 < uVar13) || (uVar19 <= uVar16))" (( "(") (binary_expression "(uVar16 < uVar13) || (uVar19 <= uVar16)" (parenthesized_expression "(uVar16 < uVar13)" (( "(") (binary_expression "uVar16 < uVar13" (identifier "uVar16") (< "<") (identifier "uVar13")) () ")")) (|| "||") (parenthesized_expression "(uVar19 <= uVar16)" (( "(") (binary_expression "uVar19 <= uVar16" (identifier "uVar19") (<= "<=") (identifier "uVar16")) () ")"))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" (identifier "FUN_0017c650") (argument_list "("../../gold/incremental.cc",0x2aa,"do_process_got_plt")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x2aa") (, ",") (string_literal ""do_process_got_plt"" (" """) (string_content "do_process_got_plt") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);" (assignment_expression "puVar8 = *(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" (* "*") (cast_expression "(undefined8 **)\n                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" (* "*") (cast_expression "(long *)(param_1 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa8)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (binary_expression "(ulong)((iVar9 - uVar19) + uVar16) * 8" (call_expression "(ulong)((iVar9 - uVar19) + uVar16)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((iVar9 - uVar19) + uVar16)" (( "(") (binary_expression "(iVar9 - uVar19) + uVar16" (parenthesized_expression "(iVar9 - uVar19)" (( "(") (binary_expression "iVar9 - uVar19" (identifier "iVar9") (- "-") (identifier "uVar19")) () ")")) (+ "+") (identifier "uVar16")) () ")"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" (if "if") (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" (( "(") (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined8 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" (( "(") (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" (* "*") (cast_expression "(char *)((long)puVar8 + 0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 0x3a)" (( "(") (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x3a")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }\n          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);\n        }" ({ "{") (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);\n          }" ({ "{") (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" (identifier "FUN_00178100") (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,\n                         *puVar8)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" (* "*") (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0043e6b0"))) (, ",") (string_literal ""GOT entry %d, type %02x: %s"" (" """) (string_content "GOT entry %d, type %02x: %s") (" """)) (, ",") (identifier "iVar14") (, ",") (identifier "bVar1") (, ",") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);" (call_expression "(**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d0))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x1d0)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x1d0)" (* "*") (cast_expression "(code **)(*plVar6 + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x1d0)" (( "(") (binary_expression "*plVar6 + 0x1d0" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "(plVar6,iVar14,puVar8,bVar1)" (( "(") (identifier "plVar6") (, ",") (identifier "iVar14") (, ",") (identifier "puVar8") (, ",") (identifier "bVar1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_001888cf;" (goto "goto") (statement_identifier "LAB_001888cf") (; ";")) (} "}"))) (expression_statement "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));" (assignment_expression "uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" (identifier "uVar17") (= "=") (pointer_expression "*(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" (* "*") (cast_expression "(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 4 + (ulong)(uint)(iVar14 * 8))" (( "(") (binary_expression "lVar4 + 4 + (ulong)(uint)(iVar14 * 8)" (binary_expression "lVar4 + 4" (identifier "lVar4") (+ "+") (number_literal "4")) (+ "+") (call_expression "(ulong)(uint)(iVar14 * 8)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar14 * 8)" (( "(") (binary_expression "iVar14 * 8" (identifier "iVar14") (* "*") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);\n      }" ({ "{") (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" (identifier "FUN_00178100") (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",\n                     iVar14,bVar1 & 0x7f)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" (* "*") (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0043e6b0"))) (, ",") (string_literal ""GOT entry %d, type %02x: (local symbol)"" (" """) (string_content "GOT entry %d, type %02x: (local symbol)") (" """)) (, ",") (identifier "iVar14") (, ",") (binary_expression "bVar1 & 0x7f" (identifier "bVar1") (& "&") (number_literal "0x7f")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18);" (assignment_expression "uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" (identifier "uVar18") (= "=") (call_expression "(ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18)" (( "(") (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |\n                      uVar17 << 0x18" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8" (binary_expression "uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8" (binary_expression "uVar17 >> 0x18" (identifier "uVar17") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar17 & 0xff0000) >> 8" (parenthesized_expression "(uVar17 & 0xff0000)" (( "(") (binary_expression "uVar17 & 0xff0000" (identifier "uVar17") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar17 & 0xff00) << 8" (parenthesized_expression "(uVar17 & 0xff00)" (( "(") (binary_expression "uVar17 & 0xff00" (identifier "uVar17") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar17 << 0x18" (identifier "uVar17") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" (if "if") (parenthesized_expression "((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18)" (( "(") (binary_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18" (call_expression "(ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3)" (( "(") (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3" (binary_expression "*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78)" (pointer_expression "*(long *)(param_1 + 0x80)" (* "*") (cast_expression "(long *)(param_1 + 0x80)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (- "-") (pointer_expression "*(long *)(param_1 + 0x78)" (* "*") (cast_expression "(long *)(param_1 + 0x78)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.h",0x654,"input_object");" (call_expression "FUN_0017c650("../../gold/incremental.h",0x654,"input_object")" (identifier "FUN_0017c650") (argument_list "("../../gold/incremental.h",0x654,"input_object")" (( "(") (string_literal ""../../gold/incremental.h"" (" """) (string_content "../../gold/incremental.h") (" """)) (, ",") (number_literal "0x654") (, ",") (string_literal ""input_object"" (" """) (string_content "input_object") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);" (assignment_expression "lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x78) + uVar18 * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0x78) + uVar18 * 8" (pointer_expression "*(long *)(param_1 + 0x78)" (* "*") (cast_expression "(long *)(param_1 + 0x78)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x78)" (( "(") (binary_expression "param_1 + 0x78" (identifier "param_1") (+ "+") (number_literal "0x78")) () ")")))) (+ "+") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (lVar7 == 0) goto LAB_001888cf;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001888cf;" (goto "goto") (statement_identifier "LAB_001888cf") (; ";"))) (expression_statement "iVar15 = iVar14 + 1;" (assignment_expression "iVar15 = iVar14 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);" (call_expression "(**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1c8))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x1c8)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x1c8)" (* "*") (cast_expression "(code **)(*plVar6 + 0x1c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x1c8)" (( "(") (binary_expression "*plVar6 + 0x1c8" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x1c8")) () ")"))))) () ")")) (argument_list "(plVar6,iVar14,lVar7,uVar16)" (( "(") (identifier "plVar6") (, ",") (identifier "iVar14") (, ",") (identifier "lVar7") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "iVar14 = iVar15;" (assignment_expression "iVar14 = iVar15" (identifier "iVar14") (= "=") (identifier "iVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != iVar15)" (( "(") (binary_expression "iVar2 != iVar15" (identifier "iVar2") (!= "!=") (identifier "iVar15")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001889a8:\n  if (uVar10 == 0) {\n    return;\n  }" (statement_identifier "LAB_001889a8") (: ":") (if_statement "if (uVar10 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "uVar16 = *puVar5;" (assignment_expression "uVar16 = *puVar5" (identifier "uVar16") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" (if "if") (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" (( "(") (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" (( "(") (binary_expression "uVar13 <= uVar16" (identifier "uVar13") (<= "<=") (identifier "uVar16")) () ")")) (&& "&&") (parenthesized_expression "(uVar16 < uVar19)" (( "(") (binary_expression "uVar16 < uVar19" (identifier "uVar16") (< "<") (identifier "uVar19")) () ")"))) () ")")) (compound_statement "{\n    uVar17 = 0;\n    do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));\n  }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));" (do "do") (compound_statement "{\n      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);\n      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }\n      uVar17 = uVar17 + 1;\n      if (uVar10 == uVar17) {\n        return;\n      }\n      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));\n      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;\n    }" ({ "{") (expression_statement "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);" (assignment_expression "puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" (* "*") (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" (* "*") (cast_expression "(long *)(param_1 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa8)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (binary_expression "(ulong)(uVar16 + (iVar9 - uVar19)) * 8" (call_expression "(ulong)(uVar16 + (iVar9 - uVar19))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar16 + (iVar9 - uVar19))" (( "(") (binary_expression "uVar16 + (iVar9 - uVar19)" (identifier "uVar16") (+ "+") (parenthesized_expression "(iVar9 - uVar19)" (( "(") (binary_expression "iVar9 - uVar19" (identifier "iVar9") (- "-") (identifier "uVar19")) () ")"))) () ")"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" (if "if") (parenthesized_expression "((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0'))" (( "(") (binary_expression "(puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')" (parenthesized_expression "(puVar8 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined8 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((long)puVar8 + 0x3a) < '\0')" (( "(") (binary_expression "*(char *)((long)puVar8 + 0x3a) < '\0'" (pointer_expression "*(char *)((long)puVar8 + 0x3a)" (* "*") (cast_expression "(char *)((long)puVar8 + 0x3a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 0x3a)" (( "(") (binary_expression "(long)puVar8 + 0x3a" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x3a")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }\n        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);\n      }" ({ "{") (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 0x10" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);\n        }" ({ "{") (expression_statement "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);" (call_expression "FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" (identifier "FUN_00178100") (argument_list "(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_0043e6b0" (* "*") (cast_expression "(undefined8 *)PTR_DAT_0043e6b0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_0043e6b0"))) (, ",") (string_literal ""PLT entry %d: %s"" (" """) (string_content "PLT entry %d: %s") (" """)) (, ",") (identifier "uVar17") (, ",") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);" (call_expression "(**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8)" (parenthesized_expression "(**(code **)(*plVar6 + 0x1d8))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x1d8)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x1d8)" (* "*") (cast_expression "(code **)(*plVar6 + 0x1d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x1d8)" (( "(") (binary_expression "*plVar6 + 0x1d8" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x1d8")) () ")"))))) () ")")) (argument_list "(plVar6,param_2,param_3,uVar17,puVar8)" (( "(") (identifier "plVar6") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "uVar17") (, ",") (identifier "puVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar10 == uVar17) {\n        return;\n      }" (if "if") (parenthesized_expression "(uVar10 == uVar17)" (( "(") (binary_expression "uVar10 == uVar17" (identifier "uVar10") (== "==") (identifier "uVar17")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));" (assignment_expression "uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" (* "*") (cast_expression "(uint *)((long)puVar5 + (ulong)(uVar17 * 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + (ulong)(uVar17 * 4))" (( "(") (binary_expression "(long)puVar5 + (ulong)(uVar17 * 4)" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (call_expression "(ulong)(uVar17 * 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar17 * 4)" (( "(") (binary_expression "uVar17 * 4" (identifier "uVar17") (* "*") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;" (assignment_expression "uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (identifier "uVar16") (= "=") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar13 <= uVar16) && (uVar16 < uVar19))" (( "(") (binary_expression "(uVar13 <= uVar16) && (uVar16 < uVar19)" (parenthesized_expression "(uVar13 <= uVar16)" (( "(") (binary_expression "uVar13 <= uVar16" (identifier "uVar13") (<= "<=") (identifier "uVar16")) () ")")) (&& "&&") (parenthesized_expression "(uVar16 < uVar19)" (( "(") (binary_expression "uVar16 < uVar19" (identifier "uVar16") (< "<") (identifier "uVar19")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");" (call_expression "FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt")" (identifier "FUN_0017c650") (argument_list "("../../gold/incremental.cc",700,"do_process_got_plt")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "700") (, ",") (string_literal ""do_process_got_plt"" (" """) (string_content "do_process_got_plt") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_process_got_plt(Sized_incremental_binary<64,_true> * this,
   Symbol_table * symtab, Layout * layout) */

void __thiscall
var_16::Sized_incremental_binary<64,var_21>::do_process_got_plt
          (Sized_incremental_binary<64,var_21> *this,Symbol_table *symtab,Layout *layout)

{
  byte bVar1;
  type_1 var_22;
  type_2 *var_8;
  type_2 *var_13;
  type_1 *puVar5;
  type_3 *var_2;
  long var_4;
  type_4 ppSVar8;
  var_1<64,var_21> *var_24;
  type_5 *var_19;
  int var_11;
  int var_7;
  type_1 var_9;
  type_1 var_10;
  long var_5;
  long *plVar16;
  type_1 var_15;
  type_1 var_12;
  type_6 uVar19;
  type_1 var_14;
  type_6 uVar21;
  type_6 var_23;
  type_1 var_6;
  
  var_8 = (this->got_plt_reader_).p_;
  var_13 = (this->got_plt_reader_).got_desc_p_;
  var_10 = (this->got_plt_reader_).got_count_;
  puVar5 = (type_1 *)(this->got_plt_reader_).plt_desc_p_;
  var_2 = parameters->target_;
  if (var_2 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/parameters.h",0x73,"sized_target");
  }
  var_6 = (type_1)((this->main_symtab_loc_).data_size / 0x18);
  var_4 = (this->symtab_reader_).len_;
  var_5 = var_4 + 3;
  if (-1 < var_4) {
    var_5 = var_4;
  }
  uVar19 = 0;
  var_7 = (int)(var_5 >> 2);
  var_15 = var_6 - var_7;
  var_9 = *(type_1 *)(var_8 + 4);
  var_9 = var_9 >> 0x18 | (var_9 & 0xff0000) >> 8 | (var_9 & 0xff00) << 8 | var_9 << 0x18;
  plVar16 = (long *)(**(type_7 **)(*(long *)var_2 + 0x1c0))(var_2,symtab,layout,var_10,var_9);
  if (var_10 != 0) {
    do {
      while( true ) {
        var_11 = (int)uVar19;
        bVar1 = var_8[var_11 + 8];
        var_12 = (type_1)bVar1;
        if ((char)(var_12 & 0x7f) != '\x7f') break;
        (**(type_7 **)(*plVar16 + 200))(plVar16,uVar19);
LAB_001888cf:
        uVar19 = (type_6)(var_11 + 1U);
        if (var_10 == var_11 + 1U) goto LAB_001889a8;
      }
      var_14 = *(type_1 *)(var_13 + (type_1)(var_11 * 8));
      var_14 = var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 | var_14 << 0x18;
      if (-1 < (char)bVar1) {
        if ((var_14 < var_15) || (var_6 <= var_14)) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/incremental.cc",0x2aa,"do_process_got_plt");
        }
        var_19 = (this->symbol_map_).
                  super__Vector_base<var_16::type_5*,var_17::allocator<var_16::type_5*>var_18>._M_impl._M_start
                  [(var_7 - var_6) + var_14];
        if ((var_19 != (type_5 *)0x0) && ((char)var_19->field_0x3a < '\0')) {
          if ((parameters->options_ != (type_8 *)0x0) && ((parameters->debug_ & 0x10) != 0)
             ) {
            Errors::var_20(parameters->errors_,"GOT entry %d, type %02x: %s",uVar19,(type_6)var_12,
                          var_19->name_);
          }
          (**(type_7 **)(*(long *)var_2 + 0x1d0))(var_2,uVar19,var_19,var_12);
        }
        goto LAB_001888cf;
      }
      var_22 = *(type_1 *)(var_13 + (type_6)(type_1)(var_11 * 8) + 4);
      uVar21 = (type_6)(var_12 & 0x7f);
      if ((parameters->options_ != (type_8 *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
        Errors::var_20(parameters->errors_,"GOT entry %d, type %02x: (local symbol)",uVar19,uVar21);
        uVar21 = (type_6)var_12 & 0x7f;
      }
      ppSVar8 = (this->input_objects_).
                super__Vector_base<var_16::var_1<64,var_21>*,var_17::allocator<var_16::var_1<64,var_21>*>var_18>
                ._M_impl._M_start;
      var_23 = (type_6)(var_22 >> 0x18 | (var_22 & 0xff0000) >> 8 | (var_22 & 0xff00) << 8 |
                      var_22 << 0x18);
      if ((type_6)((long)(this->input_objects_).
                        super__Vector_base<var_16::var_1<64,var_21>*,var_17::allocator<var_16::var_1<64,var_21>*>var_18>
                        ._M_impl._M_finish - (long)ppSVar8 >> 3) <= var_23) {
                    /* WARNING: Subroutine does not return */
        var_3("../../gold/incremental.h",0x654,"input_object");
      }
      var_24 = ppSVar8[var_23];
      if (var_24 == (var_1<64,var_21> *)0x0) goto LAB_001888cf;
      (**(type_7 **)(*(long *)var_2 + 0x1c8))(var_2,uVar19,var_24,var_14,uVar21);
      uVar19 = (type_6)(var_11 + 1U);
    } while (var_10 != var_11 + 1U);
  }
LAB_001889a8:
  if (var_9 == 0) {
    return;
  }
  var_10 = *puVar5;
  var_10 = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
  if ((var_15 <= var_10) && (var_10 < var_6)) {
    var_12 = 0;
    do {
      var_19 = (this->symbol_map_).
                super__Vector_base<var_16::type_5*,var_17::allocator<var_16::type_5*>var_18>._M_impl._M_start
                [var_10 + (var_7 - var_6)];
      if ((var_19 != (type_5 *)0x0) && ((char)var_19->field_0x3a < '\0')) {
        if ((parameters->options_ != (type_8 *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          Errors::var_20(parameters->errors_,"PLT entry %d: %s",(type_6)var_12,var_19->name_);
        }
        (**(type_7 **)(*(long *)var_2 + 0x1d8))(var_2,symtab,layout,var_12,var_19);
      }
      var_12 = var_12 + 1;
      if (var_9 == var_12) {
        return;
      }
      var_10 = *(type_1 *)((long)puVar5 + (type_6)(var_12 * 4));
      var_10 = var_10 >> 0x18 | (var_10 & 0xff0000) >> 8 | (var_10 & 0xff00) << 8 | var_10 << 0x18;
    } while ((var_15 <= var_10) && (var_10 < var_6));
  }
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/incremental.cc",700,"do_process_got_plt");
}


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

void MASKED(long param_1,undefined8 param_2,undefined8 param_3)

{
  byte bVar1;
  int iVar2;
  long lVar3;
  long lVar4;
  uint *puVar5;
  long *plVar6;
  long lVar7;
  undefined8 *puVar8;
  int iVar9;
  uint uVar10;
  long lVar11;
  long *plVar12;
  uint uVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  ulong uVar18;
  uint uVar19;
  
  lVar3 = *(long *)(param_1 + 0x140);
  lVar4 = *(long *)(param_1 + 0x150);
  iVar2 = *(int *)(param_1 + 0x148);
  puVar5 = *(uint **)(param_1 + 0x158);
  plVar6 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
  if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x73,"sized_target");
  }
  uVar19 = (uint)(*(long *)(param_1 + 0xe0) / 0x18);
  lVar7 = *(long *)(param_1 + 0x128);
  lVar11 = lVar7 + 3;
  if (-1 < lVar7) {
    lVar11 = lVar7;
  }
  iVar14 = 0;
  iVar9 = (int)(lVar11 >> 2);
  uVar13 = uVar19 - iVar9;
  uVar10 = *(uint *)(lVar3 + 4);
  uVar10 = uVar10 >> 0x18 | (uVar10 & 0xff0000) >> 8 | (uVar10 & 0xff00) << 8 | uVar10 << 0x18;
  plVar12 = (long *)(**(code **)(*plVar6 + 0x1c0))(plVar6,param_2,param_3,iVar2,uVar10);
  if (iVar2 != 0) {
    do {
      while( true ) {
        bVar1 = *(byte *)(lVar3 + (ulong)(iVar14 + 8));
        if ((bVar1 & 0x7f) != 0x7f) break;
        (**(code **)(*plVar12 + 200))(plVar12,iVar14);
LAB_001888cf:
        iVar14 = iVar14 + 1;
        if (iVar2 == iVar14) goto LAB_001889a8;
      }
      uVar16 = *(uint *)(lVar4 + (ulong)(uint)(iVar14 * 8));
      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
      if (-1 < (char)bVar1) {
        if ((uVar16 < uVar13) || (uVar19 <= uVar16)) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/incremental.cc",0x2aa,"do_process_got_plt");
        }
        puVar8 = *(undefined8 **)
                  (*(long *)(param_1 + 0xa8) + (ulong)((iVar9 - uVar19) + uVar16) * 8);
        if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {
          if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
            FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: %s",iVar14,bVar1,
                         *puVar8);
          }
          (**(code **)(*plVar6 + 0x1d0))(plVar6,iVar14,puVar8,bVar1);
        }
        goto LAB_001888cf;
      }
      uVar17 = *(uint *)(lVar4 + 4 + (ulong)(uint)(iVar14 * 8));
      if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
        FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"GOT entry %d, type %02x: (local symbol)",
                     iVar14,bVar1 & 0x7f);
      }
      uVar18 = (ulong)(uVar17 >> 0x18 | (uVar17 & 0xff0000) >> 8 | (uVar17 & 0xff00) << 8 |
                      uVar17 << 0x18);
      if ((ulong)(*(long *)(param_1 + 0x80) - *(long *)(param_1 + 0x78) >> 3) <= uVar18) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/incremental.h",0x654,"input_object");
      }
      lVar7 = *(long *)(*(long *)(param_1 + 0x78) + uVar18 * 8);
      if (lVar7 == 0) goto LAB_001888cf;
      iVar15 = iVar14 + 1;
      (**(code **)(*plVar6 + 0x1c8))(plVar6,iVar14,lVar7,uVar16);
      iVar14 = iVar15;
    } while (iVar2 != iVar15);
  }
LAB_001889a8:
  if (uVar10 == 0) {
    return;
  }
  uVar16 = *puVar5;
  uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
  if ((uVar13 <= uVar16) && (uVar16 < uVar19)) {
    uVar17 = 0;
    do {
      puVar8 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + (ulong)(uVar16 + (iVar9 - uVar19)) * 8);
      if ((puVar8 != (undefined8 *)0x0) && (*(char *)((long)puVar8 + 0x3a) < '\0')) {
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) != 0) && ((PTR_DAT_0043e6b0[0x24] & 0x10) != 0)) {
          FUN_00178100(*(undefined8 *)PTR_DAT_0043e6b0,"PLT entry %d: %s",uVar17,*puVar8);
        }
        (**(code **)(*plVar6 + 0x1d8))(plVar6,param_2,param_3,uVar17,puVar8);
      }
      uVar17 = uVar17 + 1;
      if (uVar10 == uVar17) {
        return;
      }
      uVar16 = *(uint *)((long)puVar5 + (ulong)(uVar17 * 4));
      uVar16 = uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 | uVar16 << 0x18;
    } while ((uVar13 <= uVar16) && (uVar16 < uVar19));
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/incremental.cc",700,"do_process_got_plt");
}

