
/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *
   symtab, off_t symtab_size) */

bool __thiscall
gold::Dwarf_pubnames_table::read_section
          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)

{
  _func_int_varargs *p_Var1;
  char *pcVar2;
  section_size_type sVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  char *__s2;
  uchar *puVar8;
  _func_int_varargs **pp_Var9;
  Elf_reloc_mapper *pEVar10;
  long lVar11;
  code *pcVar12;
  uint uVar13;
  ulong uVar14;
  byte *pbVar15;
  byte *pbVar16;
  uint uVar17;
  char *__s1;
  undefined1 uVar18;
  bool bVar19;
  undefined1 uVar20;
  bool bVar21;
  byte bVar22;
  section_size_type buffer_size;
  undefined1 local_48 [24];
  
  bVar22 = 0;
  pcVar2 = "gnu_pubtypes";
  uVar14 = 1;
  bVar19 = this->is_pubtypes_ == false;
  if (bVar19) {
    pcVar2 = "gnu_pubnames";
  }
  __s2 = "gnu_pubnames";
  if (!bVar19) {
    __s2 = "gnu_pubtypes";
  }
  uVar13 = (object->super_Object).shnum_;
  uVar18 = uVar13 == 0;
  uVar20 = uVar13 == 1;
  if (1 < uVar13) {
    do {
      uVar13 = (uint)uVar14;
      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);
      sVar3 = buffer_size;
      lVar11 = 7;
      __s1 = (char *)(buffer_size + 7);
      pbVar15 = (byte *)".debug_";
      pbVar16 = (byte *)buffer_size;
      do {
        if (lVar11 == 0) break;
        lVar11 = lVar11 + -1;
        uVar18 = *pbVar15 < *pbVar16;
        uVar20 = *pbVar15 == *pbVar16;
        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;
        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;
      } while ((bool)uVar20);
      bVar19 = false;
      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;
      if (bVar21) {
LAB_0026e0e2:
        iVar5 = strcmp(__s1,pcVar2 + 4);
        if (iVar5 != 0) {
          iVar5 = strcmp(__s1,__s2);
          if (iVar5 != 0) goto LAB_0026e101;
          this->is_gnu_style_ = true;
        }
        if ((undefined1 *)sVar3 != local_48) {
          operator_delete((void *)sVar3);
        }
        if (uVar13 == 0) {
          return false;
        }
        puVar8 = Object::decompressed_section_contents
                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,
                            (uint64_t *)0x0);
        this->buffer_ = puVar8;
        if (puVar8 == (uchar *)0x0) {
          return false;
        }
        this->buffer_end_ = puVar8 + buffer_size;
        pp_Var9 = (object->super_Object)._vptr_Object;
        if (pp_Var9[6] != Object::do_is_incremental) {
          iVar5 = (*pp_Var9[6])(object);
          if ((char)iVar5 != '\0') {
            return (bool)(char)iVar5;
          }
          pp_Var9 = (object->super_Object)._vptr_Object;
        }
        if ((object->super_Object).shnum_ != 0) {
          uVar17 = 0;
          goto LAB_0026e1be;
        }
        uVar6 = 0;
        uVar17 = 0;
        goto LAB_0026e1e8;
      }
      lVar11 = 8;
      __s1 = (char *)(buffer_size + 8);
      pbVar15 = (byte *)".zdebug_";
      pbVar16 = (byte *)buffer_size;
      do {
        if (lVar11 == 0) break;
        lVar11 = lVar11 + -1;
        bVar19 = *pbVar15 < *pbVar16;
        bVar21 = *pbVar15 == *pbVar16;
        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;
        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;
      } while (bVar21);
      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;
LAB_0026e101:
      if ((undefined1 *)sVar3 != local_48) {
        operator_delete((void *)sVar3);
      }
      uVar13 = uVar13 + 1;
      uVar14 = (ulong)uVar13;
      uVar17 = (object->super_Object).shnum_;
      uVar18 = uVar13 < uVar17;
      uVar20 = uVar13 == uVar17;
    } while ((bool)uVar18);
  }
  return false;
LAB_0026e1be:
  uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);
  if (((uVar6 == 9) || (uVar6 == 4)) &&
     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))
  {
    pp_Var9 = (object->super_Object)._vptr_Object;
    goto LAB_0026e1e8;
  }
  uVar17 = uVar17 + 1;
  pp_Var9 = (object->super_Object)._vptr_Object;
  if ((object->super_Object).shnum_ <= uVar17) {
    uVar17 = 0;
LAB_0026e1e8:
    if (pp_Var9[2] == Relobj::elfsize) {
      iVar5 = (*pp_Var9[0x39])();
    }
    else {
      iVar5 = (*pp_Var9[2])(object);
    }
    pp_Var9 = (object->super_Object)._vptr_Object;
    if (iVar5 == 0x20) {
      if (pp_Var9[3] == Relobj::is_big_endian) {
        iVar5 = (*pp_Var9[0x3a])();
        cVar4 = (char)iVar5;
      }
      else {
        iVar5 = (*pp_Var9[3])(object);
        cVar4 = (char)iVar5;
      }
      if (cVar4 != '\0') {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");
      }
      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);
      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;
      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;
      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;
      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;
      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;
      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;
      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;
    }
    else {
      if (pp_Var9[2] == Relobj::elfsize) {
        iVar5 = (*pp_Var9[0x39])();
      }
      else {
        iVar5 = (*pp_Var9[2])(object);
      }
      if (iVar5 != 0x40) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");
      }
      pp_Var9 = (object->super_Object)._vptr_Object;
      p_Var1 = pp_Var9[3];
      if (p_Var1 == Relobj::is_big_endian) {
        iVar5 = (*pp_Var9[0x3a])();
        cVar4 = (char)iVar5;
      }
      else {
        iVar5 = (*p_Var1)(object);
        cVar4 = (char)iVar5;
      }
      if (cVar4 != '\0') {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");
      }
      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);
      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;
      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;
      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;
      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;
      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;
      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;
      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;
      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;
    }
    this->reloc_mapper_ = pEVar10;
    (*pcVar12)(pEVar10,uVar17,uVar6);
    this->reloc_type_ = uVar6;
    return true;
  }
  goto LAB_0026e1be;
}



undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)

{
  char *pcVar1;
  byte *pbVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  char *__s2;
  undefined8 *puVar7;
  undefined8 uVar8;
  long lVar9;
  code *pcVar10;
  uint uVar11;
  byte *pbVar12;
  byte *pbVar13;
  uint uVar14;
  byte *__s1;
  undefined1 uVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  byte bVar19;
  byte *local_58 [2];
  byte local_48 [24];
  
  bVar19 = 0;
  pcVar1 = "gnu_pubtypes";
  uVar11 = 1;
  bVar16 = *(char *)(param_1 + 0x30) == '\0';
  if (bVar16) {
    pcVar1 = "gnu_pubnames";
  }
  __s2 = "gnu_pubnames";
  if (!bVar16) {
    __s2 = "gnu_pubtypes";
  }
  uVar14 = *(uint *)(param_2 + 7);
  uVar15 = uVar14 == 0;
  uVar17 = uVar14 == 1;
  if (1 < uVar14) {
    do {
      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);
      pbVar2 = local_58[0];
      lVar9 = 7;
      __s1 = local_58[0] + 7;
      pbVar12 = (byte *)".debug_";
      pbVar13 = local_58[0];
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        uVar15 = *pbVar12 < *pbVar13;
        uVar17 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      } while ((bool)uVar17);
      bVar16 = false;
      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
      if (bVar18) {
LAB_0026e0e2:
        iVar4 = strcmp((char *)__s1,pcVar1 + 4);
        if (iVar4 != 0) {
          iVar4 = strcmp((char *)__s1,__s2);
          if (iVar4 != 0) goto LAB_0026e101;
          *(undefined1 *)(param_1 + 0x31) = 1;
        }
        if (pbVar2 != local_48) {
          FUN_002a2980(pbVar2);
        }
        if (uVar11 == 0) {
          return 0;
        }
        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);
        *(long *)(param_1 + 8) = lVar9;
        if (lVar9 == 0) {
          return 0;
        }
        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;
        lVar9 = *param_2;
        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {
          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);
          if ((char)uVar8 != '\0') {
            return uVar8;
          }
          lVar9 = *param_2;
        }
        if ((int)param_2[7] != 0) {
          uVar14 = 0;
          goto LAB_0026e1be;
        }
        iVar4 = 0;
        uVar14 = 0;
        goto LAB_0026e1e8;
      }
      lVar9 = 8;
      __s1 = local_58[0] + 8;
      pbVar12 = (byte *)".zdebug_";
      pbVar13 = local_58[0];
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        bVar16 = *pbVar12 < *pbVar13;
        bVar18 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;
LAB_0026e101:
      if (pbVar2 != local_48) {
        FUN_002a2980(pbVar2);
      }
      uVar11 = uVar11 + 1;
      uVar15 = uVar11 < *(uint *)(param_2 + 7);
      uVar17 = uVar11 == *(uint *)(param_2 + 7);
    } while ((bool)uVar15);
  }
  return 0;
LAB_0026e1be:
  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);
  if (((iVar4 == 9) || (iVar4 == 4)) &&
     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {
    lVar9 = *param_2;
    goto LAB_0026e1e8;
  }
  uVar14 = uVar14 + 1;
  lVar9 = *param_2;
  if (*(uint *)(param_2 + 7) <= uVar14) {
    uVar14 = 0;
LAB_0026e1e8:
    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {
      iVar6 = (**(code **)(lVar9 + 0x1c8))();
    }
    else {
      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);
    }
    lVar9 = *param_2;
    if (iVar6 == 0x20) {
      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {
        cVar3 = (**(code **)(lVar9 + 0x1d0))();
      }
      else {
        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);
      }
      if (cVar3 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");
      }
      puVar7 = (undefined8 *)FUN_002a11b0(0x48);
      pcVar10 = FUN_00270fe0;
      *puVar7 = &PTR_FUN_003e6250;
      puVar7[1] = param_2;
      puVar7[2] = param_3;
      *(undefined4 *)(puVar7 + 4) = 0;
      puVar7[3] = param_4;
      puVar7[5] = 0;
      puVar7[6] = 0;
      puVar7[7] = 0;
      *(undefined4 *)(puVar7 + 8) = 0;
    }
    else {
      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {
        iVar6 = (**(code **)(lVar9 + 0x1c8))();
      }
      else {
        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);
      }
      if (iVar6 != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");
      }
      pcVar10 = *(code **)(*param_2 + 0x18);
      if (pcVar10 == FUN_001a1b20) {
        cVar3 = (**(code **)(*param_2 + 0x1d0))();
      }
      else {
        cVar3 = (*pcVar10)(param_2);
      }
      if (cVar3 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");
      }
      puVar7 = (undefined8 *)FUN_002a11b0(0x48);
      pcVar10 = FUN_00270fa0;
      *puVar7 = &PTR_FUN_003e62a0;
      puVar7[1] = param_2;
      puVar7[2] = param_3;
      *(undefined4 *)(puVar7 + 4) = 0;
      puVar7[3] = param_4;
      puVar7[5] = 0;
      puVar7[6] = 0;
      puVar7[7] = 0;
      *(undefined4 *)(puVar7 + 8) = 0;
    }
    *(undefined8 **)(param_1 + 0x48) = puVar7;
    (*pcVar10)(puVar7,uVar14,iVar4);
    *(int *)(param_1 + 0x50) = iVar4;
    return 1;
  }
  goto LAB_0026e1be;
}


PUSH R15
LEA RAX,[0x342b6f]
LEA R15,[0x342b78]
PUSH R14
PUSH R13
LEA R13,[0x342b7c]
PUSH R12
PUSH RBP
MOV EBP,0x1
PUSH RBX
MOV RBX,RSI
SUB RSP,0x48
CMP byte ptr [RDI + 0x30],0x0
CMOVZ R13,RAX
MOV qword ptr [RSP + 0x8],RDI
LEA R12,[RSP + 0x20]
LEA RAX,[0x342b6b]
CMOVNZ RAX,R15
CMP dword ptr [RSI + 0x38],0x1
MOV qword ptr [RSP + 0x10],RDX
MOV qword ptr [RSP + 0x18],RCX
MOV qword ptr [RSP],RAX
JBE 0x0026e11f
MOV RAX,qword ptr [RBX]
MOV RSI,RBX
MOV RDI,R12
MOV EDX,EBP
CALL qword ptr [RAX + 0x80]
MOV R14,qword ptr [RSP + 0x20]
MOV ECX,0x7
LEA RSI,[0x343292]
MOV RDI,R14
LEA R15,[R14 + 0x7]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0026e0e2
MOV ECX,0x8
LEA RSI,[0x34329a]
LEA R15,[R14 + 0x8]
MOV RDI,R14
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0026e101
MOV RSI,R13
MOV RDI,R15
CALL 0x00144790
TEST EAX,EAX
JZ 0x0026e139
MOV RSI,qword ptr [RSP]
MOV RDI,R15
CALL 0x00144790
TEST EAX,EAX
JZ 0x0026e130
LEA RAX,[R12 + 0x10]
CMP R14,RAX
JZ 0x0026e113
MOV RDI,R14
CALL 0x002a2980
ADD EBP,0x1
CMP EBP,dword ptr [RBX + 0x38]
JC 0x0026e090
XOR EAX,EAX
ADD RSP,0x48
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RAX,qword ptr [RSP + 0x8]
MOV byte ptr [RAX + 0x31],0x1
LEA RAX,[R12 + 0x10]
CMP R14,RAX
JZ 0x0026e14b
MOV RDI,R14
CALL 0x002a2980
TEST EBP,EBP
JZ 0x0026e11f
MOV R15,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RDX,R12
MOV ESI,EBP
MOV RDI,RBX
LEA RCX,[R15 + 0x18]
CALL 0x001c8230
MOV qword ptr [R15 + 0x8],RAX
TEST RAX,RAX
JZ 0x0026e11f
ADD RAX,qword ptr [RSP + 0x20]
LEA RCX,[0x1a1ab0]
MOV qword ptr [R15 + 0x10],RAX
MOV RAX,qword ptr [RBX]
MOV RDX,qword ptr [RAX + 0x30]
CMP RDX,RCX
JNZ 0x0026e369
MOV R12D,dword ptr [RBX + 0x38]
TEST R12D,R12D
JZ 0x0026e393
XOR R12D,R12D
JMP 0x0026e1be
CMP EAX,0x4
JZ 0x0026e1d2
ADD R12D,0x1
MOV RAX,qword ptr [RBX]
CMP R12D,dword ptr [RBX + 0x38]
JNC 0x0026e2e0
MOV ESI,R12D
MOV RDI,RBX
CALL qword ptr [RAX + 0xa0]
MOV R13D,EAX
CMP EAX,0x9
JNZ 0x0026e1a8
MOV RAX,qword ptr [RBX]
MOV ESI,R12D
MOV RDI,RBX
CALL qword ptr [RAX + 0xb0]
CMP EBP,EAX
JNZ 0x0026e1ad
MOV RAX,qword ptr [RBX]
MOV RDX,qword ptr [RAX + 0x10]
LEA RBP,[0x1a1b10]
MOV RDI,RBX
CMP RDX,RBP
JNZ 0x0026e37e
CALL qword ptr [RAX + 0x1c8]
MOV RDX,qword ptr [RBX]
CMP EAX,0x20
JZ 0x0026e2e8
MOV RAX,qword ptr [RDX + 0x10]
MOV RDI,RBX
CMP RAX,RBP
JNZ 0x0026e38c
CALL qword ptr [RDX + 0x1c8]
CMP EAX,0x40
JNZ 0x0026e3d2
MOV RAX,qword ptr [RBX]
LEA RCX,[0x1a1b20]
MOV RDI,RBX
MOV RDX,qword ptr [RAX + 0x18]
CMP RDX,RCX
JNZ 0x0026e385
CALL qword ptr [RAX + 0x1d0]
TEST AL,AL
JNZ 0x0026e3a2
MOV EDI,0x48
CALL 0x002a11b0
LEA RDX,[0x3e62a0]
LEA RCX,[0x270fa0]
MOV qword ptr [RAX],RDX
MOV RDX,qword ptr [RSP + 0x10]
MOV qword ptr [RAX + 0x8],RBX
MOV qword ptr [RAX + 0x10],RDX
MOV RDX,qword ptr [RSP + 0x18]
MOV dword ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x18],RDX
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x38],0x0
MOV dword ptr [RAX + 0x40],0x0
MOV RBX,qword ptr [RSP + 0x8]
MOV EDX,R13D
MOV ESI,R12D
MOV RDI,RAX
MOV qword ptr [RBX + 0x48],RAX
CALL RCX
MOV dword ptr [RBX + 0x50],R13D
ADD RSP,0x48
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR R12D,R12D
JMP 0x0026e1e8
MOV RAX,qword ptr [RDX + 0x18]
LEA RCX,[0x1a1b20]
MOV RDI,RBX
CMP RAX,RCX
JNZ 0x0026e39b
CALL qword ptr [RDX + 0x1d0]
TEST AL,AL
JNZ 0x0026e3ba
MOV EDI,0x48
CALL 0x002a11b0
LEA RDX,[0x3e6250]
LEA RCX,[0x270fe0]
MOV qword ptr [RAX],RDX
MOV RDX,qword ptr [RSP + 0x10]
MOV qword ptr [RAX + 0x8],RBX
MOV qword ptr [RAX + 0x10],RDX
MOV RDX,qword ptr [RSP + 0x18]
MOV dword ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x18],RDX
MOV qword ptr [RAX + 0x28],0x0
MOV qword ptr [RAX + 0x30],0x0
MOV qword ptr [RAX + 0x38],0x0
MOV dword ptr [RAX + 0x40],0x0
JMP 0x0026e2af
MOV RDI,RBX
CALL RDX
TEST AL,AL
JNZ 0x0026e121
MOV RAX,qword ptr [RBX]
JMP 0x0026e191
CALL RDX
JMP 0x0026e205
CALL RDX
JMP 0x0026e250
CALL RAX
JMP 0x0026e227
XOR R13D,R13D
JMP 0x0026e1e8
CALL RAX
JMP 0x0026e305
LEA RDX,[0x3561d0]
MOV ESI,0x7d
LEA RDI,[0x355ea3]
CALL 0x00199900
LEA RDX,[0x3561d0]
MOV ESI,0x68
LEA RDI,[0x355ea3]
CALL 0x00199900
LEA RDX,[0x3561d0]
MOV ESI,0x8b
LEA RDI,[0x355ea3]
CALL 0x00199900
(translation_unit "undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}\n\n" (function_definition "undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" type_identifier (function_declarator "FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *__s1;" type_identifier (pointer_declarator "*__s1" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "byte *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = "gnu_pubtypes";" (assignment_expression "pcVar1 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "bVar16 = *(char *)(param_1 + 0x30) == '\0';" (assignment_expression "bVar16 = *(char *)(param_1 + 0x30) == '\0'" identifier = (binary_expression "*(char *)(param_1 + 0x30) == '\0'" (pointer_expression "*(char *)(param_1 + 0x30)" * (cast_expression "(char *)(param_1 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    pcVar1 = "gnu_pubnames";\n  }" { (expression_statement "pcVar1 = "gnu_pubnames";" (assignment_expression "pcVar1 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) })) (expression_statement "__s2 = "gnu_pubnames";" (assignment_expression "__s2 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) (if_statement "if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n    __s2 = "gnu_pubtypes";\n  }" { (expression_statement "__s2 = "gnu_pubtypes";" (assignment_expression "__s2 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) })) (expression_statement "uVar14 = *(uint *)(param_2 + 7);" (assignment_expression "uVar14 = *(uint *)(param_2 + 7)" identifier = (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = uVar14 == 0;" (assignment_expression "uVar15 = uVar14 == 0" identifier = (binary_expression "uVar14 == 0" identifier == number_literal)) ;) (expression_statement "uVar17 = uVar14 == 1;" (assignment_expression "uVar17 = uVar14 == 1" identifier = (binary_expression "uVar14 == 1" identifier == number_literal)) ;) (if_statement "if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" if (parenthesized_expression "(1 < uVar14)" ( (binary_expression "1 < uVar14" number_literal < identifier) )) (compound_statement "{\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" { (do_statement "do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);" do (compound_statement "{\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    }" { (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" ( (pointer_expression "**(code **)(*param_2 + 0x80)" * (pointer_expression "*(code **)(*param_2 + 0x80)" * (cast_expression "(code **)(*param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x80)" ( (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_58,param_2,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar2 = local_58[0];" (assignment_expression "pbVar2 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "__s1 = local_58[0] + 7;" (assignment_expression "__s1 = local_58[0] + 7" identifier = (binary_expression "local_58[0] + 7" (subscript_expression "local_58[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar12 = (byte *)".debug_";" (assignment_expression "pbVar12 = (byte *)".debug_"" identifier = (cast_expression "(byte *)".debug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_"" " string_content "))) ;) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar13;" (assignment_expression "uVar15 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar13;" (assignment_expression "uVar17 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" { (labeled_statement "LAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);" statement_identifier : (expression_statement "iVar4 = strcmp((char *)__s1,pcVar1 + 4);" (assignment_expression "iVar4 = strcmp((char *)__s1,pcVar1 + 4)" identifier = (call_expression "strcmp((char *)__s1,pcVar1 + 4)" identifier (argument_list "((char *)__s1,pcVar1 + 4)" ( (cast_expression "(char *)__s1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "pcVar1 + 4" identifier + number_literal) )))) ;)) (if_statement "if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" { (expression_statement "iVar4 = strcmp((char *)__s1,__s2);" (assignment_expression "iVar4 = strcmp((char *)__s1,__s2)" identifier = (call_expression "strcmp((char *)__s1,__s2)" identifier (argument_list "((char *)__s1,__s2)" ( (cast_expression "(char *)__s1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0026e101;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0026e101;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0x31) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x31) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x31)" * (cast_expression "(undefined1 *)(param_1 + 0x31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31)" ( (binary_expression "param_1 + 0x31" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }" if (parenthesized_expression "(pbVar2 != local_48)" ( (binary_expression "pbVar2 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002a2980(pbVar2);\n        }" { (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" identifier (argument_list "(pbVar2)" ( identifier ))) ;) })) (if_statement "if (uVar11 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);" (assignment_expression "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" identifier = (call_expression "FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" identifier (argument_list "(param_2,uVar11,local_58,param_1 + 0x18,0)" ( identifier , identifier , identifier , (binary_expression "param_1 + 0x18" identifier + number_literal) , number_literal )))) ;) (expression_statement "*(long *)(param_1 + 8) = lVar9;" (assignment_expression "*(long *)(param_1 + 8) = lVar9" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar9 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9;" (assignment_expression "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9" (pointer_expression "*(byte **)(param_1 + 0x10)" * (cast_expression "(byte **)(param_1 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "local_58[0] + lVar9" (subscript_expression "local_58[0]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" if (parenthesized_expression "(*(code **)(lVar9 + 0x30) != FUN_001a1ab0)" ( (binary_expression "*(code **)(lVar9 + 0x30) != FUN_001a1ab0" (pointer_expression "*(code **)(lVar9 + 0x30)" * (cast_expression "(code **)(lVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" { (expression_statement "uVar8 = (**(code **)(lVar9 + 0x30))(param_2);" (assignment_expression "uVar8 = (**(code **)(lVar9 + 0x30))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x30))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x30))" ( (pointer_expression "**(code **)(lVar9 + 0x30)" * (pointer_expression "*(code **)(lVar9 + 0x30)" * (cast_expression "(code **)(lVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return uVar8;\n          }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" if (parenthesized_expression "((int)param_2[7] != 0)" ( (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" identifier = number_literal) ;) (expression_statement "__s1 = local_58[0] + 8;" (assignment_expression "__s1 = local_58[0] + 8" identifier = (binary_expression "local_58[0] + 8" (subscript_expression "local_58[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar12 = (byte *)".zdebug_";" (assignment_expression "pbVar12 = (byte *)".zdebug_"" identifier = (cast_expression "(byte *)".zdebug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".zdebug_"" " string_content "))) ;) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar13;" (assignment_expression "bVar16 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar13;" (assignment_expression "bVar18 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;" if (parenthesized_expression "((!bVar16 && !bVar18) == bVar16)" ( (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0026e0e2;" goto statement_identifier ;)) (labeled_statement "LAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" statement_identifier : (if_statement "if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" if (parenthesized_expression "(pbVar2 != local_48)" ( (binary_expression "pbVar2 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002a2980(pbVar2);\n      }" { (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" identifier (argument_list "(pbVar2)" ( identifier ))) ;) }))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar11 < *(uint *)(param_2 + 7);" (assignment_expression "uVar15 = uVar11 < *(uint *)(param_2 + 7)" identifier = (binary_expression "uVar11 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) ;) (expression_statement "uVar17 = uVar11 == *(uint *)(param_2 + 7);" (assignment_expression "uVar17 = uVar11 == *(uint *)(param_2 + 7)" identifier = (binary_expression "uVar11 == *(uint *)(param_2 + 7)" identifier == (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "((bool)uVar15)" ( (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) (labeled_statement "LAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" statement_identifier : (expression_statement "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" (assignment_expression "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14)" identifier = (call_expression "(**(code **)(lVar9 + 0xa0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(lVar9 + 0xa0))" ( (pointer_expression "**(code **)(lVar9 + 0xa0)" * (pointer_expression "*(code **)(lVar9 + 0xa0)" * (cast_expression "(code **)(lVar9 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0xa0)" ( (binary_expression "lVar9 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_2,uVar14)" ( identifier , identifier )))) ;)) (if_statement "if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" if (parenthesized_expression "(((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5))" ( (binary_expression "((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" (parenthesized_expression "((iVar4 == 9) || (iVar4 == 4))" ( (binary_expression "(iVar4 == 9) || (iVar4 == 4)" (parenthesized_expression "(iVar4 == 9)" ( (binary_expression "iVar4 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" ( (comma_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14)" identifier = (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" ( (pointer_expression "**(code **)(*param_2 + 0xb0)" * (pointer_expression "*(code **)(*param_2 + 0xb0)" * (cast_expression "(code **)(*param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb0)" ( (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar14)" ( identifier , identifier )))) , (binary_expression "uVar11 == uVar5" identifier == identifier)) ))) )) (compound_statement "{\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" { (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" if (parenthesized_expression "(*(uint *)(param_2 + 7) <= uVar14)" ( (binary_expression "*(uint *)(param_2 + 7) <= uVar14" (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" statement_identifier : (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" ( (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" ( (pointer_expression "**(code **)(lVar9 + 0x1c8)" * (pointer_expression "*(code **)(lVar9 + 0x1c8)" * (cast_expression "(code **)(lVar9 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1c8)" ( (binary_expression "lVar9 + 0x1c8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" else (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" ( (pointer_expression "**(code **)(lVar9 + 0x10)" * (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) })))) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" if (parenthesized_expression "(iVar6 == 0x20)" ( (binary_expression "iVar6 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" { (if_statement "if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" if (parenthesized_expression "(*(code **)(lVar9 + 0x18) == FUN_001a1b20)" ( (binary_expression "*(code **)(lVar9 + 0x18) == FUN_001a1b20" (pointer_expression "*(code **)(lVar9 + 0x18)" * (cast_expression "(code **)(lVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }" { (expression_statement "cVar3 = (**(code **)(lVar9 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x1d0))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1d0))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1d0))" ( (pointer_expression "**(code **)(lVar9 + 0x1d0)" * (pointer_expression "*(code **)(lVar9 + 0x1d0)" * (cast_expression "(code **)(lVar9 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1d0)" ( (binary_expression "lVar9 + 0x1d0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" else (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" { (expression_statement "cVar3 = (**(code **)(lVar9 + 0x18))(param_2);" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x18))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x18))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x18))" ( (pointer_expression "**(code **)(lVar9 + 0x18)" * (pointer_expression "*(code **)(lVar9 + 0x18)" * (cast_expression "(code **)(lVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar10 = FUN_00270fe0;" (assignment_expression "pcVar10 = FUN_00270fe0" identifier = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_003e6250;" (assignment_expression "*puVar7 = &PTR_FUN_003e6250" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_003e6250" & identifier)) ;) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" else (compound_statement "{\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" { (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" if (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" ( (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" ( (pointer_expression "**(code **)(lVar9 + 0x1c8)" * (pointer_expression "*(code **)(lVar9 + 0x1c8)" * (cast_expression "(code **)(lVar9 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1c8)" ( (binary_expression "lVar9 + 0x1c8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" else (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" ( (pointer_expression "**(code **)(lVar9 + 0x10)" * (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (iVar6 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(iVar6 != 0x40)" ( (binary_expression "iVar6 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "pcVar10 = *(code **)(*param_2 + 0x18);" (assignment_expression "pcVar10 = *(code **)(*param_2 + 0x18)" identifier = (pointer_expression "*(code **)(*param_2 + 0x18)" * (cast_expression "(code **)(*param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x18)" ( (binary_expression "*param_2 + 0x18" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }" if (parenthesized_expression "(pcVar10 == FUN_001a1b20)" ( (binary_expression "pcVar10 == FUN_001a1b20" identifier == identifier) )) (compound_statement "{\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }" { (expression_statement "cVar3 = (**(code **)(*param_2 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(*param_2 + 0x1d0))()" identifier = (call_expression "(**(code **)(*param_2 + 0x1d0))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1d0))" ( (pointer_expression "**(code **)(*param_2 + 0x1d0)" * (pointer_expression "*(code **)(*param_2 + 0x1d0)" * (cast_expression "(code **)(*param_2 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x1d0)" ( (binary_expression "*param_2 + 0x1d0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar3 = (*pcVar10)(param_2);\n      }" else (compound_statement "{\n        cVar3 = (*pcVar10)(param_2);\n      }" { (expression_statement "cVar3 = (*pcVar10)(param_2);" (assignment_expression "cVar3 = (*pcVar10)(param_2)" identifier = (call_expression "(*pcVar10)(param_2)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (cVar3 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar10 = FUN_00270fa0;" (assignment_expression "pcVar10 = FUN_00270fa0" identifier = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_003e62a0;" (assignment_expression "*puVar7 = &PTR_FUN_003e62a0" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_003e62a0" & identifier)) ;) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(undefined8 **)(param_1 + 0x48) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x48) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x48)" * (cast_expression "(undefined8 **)(param_1 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar10)(puVar7,uVar14,iVar4);" (call_expression "(*pcVar10)(puVar7,uVar14,iVar4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar7,uVar14,iVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(param_1 + 0x50) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x50) = iVar4" (pointer_expression "*(int *)(param_1 + 0x50)" * (cast_expression "(int *)(param_1 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })))
(translation_unit "/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *\n   symtab, off_t symtab_size) */\n\nbool __thiscall\ngold::Dwarf_pubnames_table::read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)\n\n{\n  _func_int_varargs *p_Var1;\n  char *pcVar2;\n  section_size_type sVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  char *__s2;\n  uchar *puVar8;\n  _func_int_varargs **pp_Var9;\n  Elf_reloc_mapper *pEVar10;\n  long lVar11;\n  code *pcVar12;\n  uint uVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  uint uVar17;\n  char *__s1;\n  undefined1 uVar18;\n  bool bVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  byte bVar22;\n  section_size_type buffer_size;\n  undefined1 local_48 [24];\n  \n  bVar22 = 0;\n  pcVar2 = "gnu_pubtypes";\n  uVar14 = 1;\n  bVar19 = this->is_pubtypes_ == false;\n  if (bVar19) {\n    pcVar2 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar19) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar13 = (object->super_Object).shnum_;\n  uVar18 = uVar13 == 0;\n  uVar20 = uVar13 == 1;\n  if (1 < uVar13) {\n    do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);\n  }\n  return false;\nLAB_0026e1be:\n  uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);\n  if (((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))\n  {\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    goto LAB_0026e1e8;\n  }\n  uVar17 = uVar17 + 1;\n  pp_Var9 = (object->super_Object)._vptr_Object;\n  if ((object->super_Object).shnum_ <= uVar17) {\n    uVar17 = 0;\nLAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    this->reloc_mapper_ = pEVar10;\n    (*pcVar12)(pEVar10,uVar17,uVar6);\n    this->reloc_type_ = uVar6;\n    return true;\n  }\n  goto LAB_0026e1be;\n}\n\n" comment (function_definition "bool __thiscall\ngold::Dwarf_pubnames_table::read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)\n\n{\n  _func_int_varargs *p_Var1;\n  char *pcVar2;\n  section_size_type sVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  char *__s2;\n  uchar *puVar8;\n  _func_int_varargs **pp_Var9;\n  Elf_reloc_mapper *pEVar10;\n  long lVar11;\n  code *pcVar12;\n  uint uVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  uint uVar17;\n  char *__s1;\n  undefined1 uVar18;\n  bool bVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  byte bVar22;\n  section_size_type buffer_size;\n  undefined1 local_48 [24];\n  \n  bVar22 = 0;\n  pcVar2 = "gnu_pubtypes";\n  uVar14 = 1;\n  bVar19 = this->is_pubtypes_ == false;\n  if (bVar19) {\n    pcVar2 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar19) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar13 = (object->super_Object).shnum_;\n  uVar18 = uVar13 == 0;\n  uVar20 = uVar13 == 1;\n  if (1 < uVar13) {\n    do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);\n  }\n  return false;\nLAB_0026e1be:\n  uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);\n  if (((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))\n  {\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    goto LAB_0026e1e8;\n  }\n  uVar17 = uVar17 + 1;\n  pp_Var9 = (object->super_Object)._vptr_Object;\n  if ((object->super_Object).shnum_ <= uVar17) {\n    uVar17 = 0;\nLAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    this->reloc_mapper_ = pEVar10;\n    (*pcVar12)(pEVar10,uVar17,uVar6);\n    this->reloc_type_ = uVar6;\n    return true;\n  }\n  goto LAB_0026e1be;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwarf_pubnames_table::" identifier : : identifier : :) (function_declarator "read_section\n          (Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)" identifier (parameter_list "(Dwarf_pubnames_table *this,Relobj *object,uchar *symtab,off_t symtab_size)" ( (parameter_declaration "Dwarf_pubnames_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uchar *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "off_t symtab_size" type_identifier identifier) ))) (compound_statement "{\n  _func_int_varargs *p_Var1;\n  char *pcVar2;\n  section_size_type sVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  char *__s2;\n  uchar *puVar8;\n  _func_int_varargs **pp_Var9;\n  Elf_reloc_mapper *pEVar10;\n  long lVar11;\n  code *pcVar12;\n  uint uVar13;\n  ulong uVar14;\n  byte *pbVar15;\n  byte *pbVar16;\n  uint uVar17;\n  char *__s1;\n  undefined1 uVar18;\n  bool bVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  byte bVar22;\n  section_size_type buffer_size;\n  undefined1 local_48 [24];\n  \n  bVar22 = 0;\n  pcVar2 = "gnu_pubtypes";\n  uVar14 = 1;\n  bVar19 = this->is_pubtypes_ == false;\n  if (bVar19) {\n    pcVar2 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar19) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar13 = (object->super_Object).shnum_;\n  uVar18 = uVar13 == 0;\n  uVar20 = uVar13 == 1;\n  if (1 < uVar13) {\n    do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);\n  }\n  return false;\nLAB_0026e1be:\n  uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);\n  if (((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))\n  {\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    goto LAB_0026e1e8;\n  }\n  uVar17 = uVar17 + 1;\n  pp_Var9 = (object->super_Object)._vptr_Object;\n  if ((object->super_Object).shnum_ <= uVar17) {\n    uVar17 = 0;\nLAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    this->reloc_mapper_ = pEVar10;\n    (*pcVar12)(pEVar10,uVar17,uVar6);\n    this->reloc_type_ = uVar6;\n    return true;\n  }\n  goto LAB_0026e1be;\n}" { (declaration "_func_int_varargs *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "section_size_type sVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "_func_int_varargs **pp_Var9;" type_identifier (pointer_declarator "**pp_Var9" * (pointer_declarator "*pp_Var9" * identifier)) ;) (declaration "Elf_reloc_mapper *pEVar10;" type_identifier (pointer_declarator "*pEVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "undefined1 uVar18;" type_identifier identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "section_size_type buffer_size;" type_identifier identifier ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = "gnu_pubtypes";" (assignment_expression "pcVar2 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "bVar19 = this->is_pubtypes_ == false;" (assignment_expression "bVar19 = this->is_pubtypes_ == false" identifier = (binary_expression "this->is_pubtypes_ == false" (field_expression "this->is_pubtypes_" identifier -> field_identifier) == false)) ;) (if_statement "if (bVar19) {\n    pcVar2 = "gnu_pubnames";\n  }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n    pcVar2 = "gnu_pubnames";\n  }" { (expression_statement "pcVar2 = "gnu_pubnames";" (assignment_expression "pcVar2 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) })) (expression_statement "__s2 = "gnu_pubnames";" (assignment_expression "__s2 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) (if_statement "if (!bVar19) {\n    __s2 = "gnu_pubtypes";\n  }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n    __s2 = "gnu_pubtypes";\n  }" { (expression_statement "__s2 = "gnu_pubtypes";" (assignment_expression "__s2 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) })) (expression_statement "uVar13 = (object->super_Object).shnum_;" (assignment_expression "uVar13 = (object->super_Object).shnum_" identifier = (field_expression "(object->super_Object).shnum_" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = uVar13 == 0;" (assignment_expression "uVar18 = uVar13 == 0" identifier = (binary_expression "uVar13 == 0" identifier == number_literal)) ;) (expression_statement "uVar20 = uVar13 == 1;" (assignment_expression "uVar20 = uVar13 == 1" identifier = (binary_expression "uVar13 == 1" identifier == number_literal)) ;) (if_statement "if (1 < uVar13) {\n    do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);\n  }" if (parenthesized_expression "(1 < uVar13)" ( (binary_expression "1 < uVar13" number_literal < identifier) )) (compound_statement "{\n    do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);\n  }" { (do_statement "do {\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    } while ((bool)uVar18);" do (compound_statement "{\n      uVar13 = (uint)uVar14;\n      (*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);\n      sVar3 = buffer_size;\n      lVar11 = 7;\n      __s1 = (char *)(buffer_size + 7);\n      pbVar15 = (byte *)".debug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);\n      bVar19 = false;\n      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;\n      if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar11 = 8;\n      __s1 = (char *)(buffer_size + 8);\n      pbVar15 = (byte *)".zdebug_";\n      pbVar16 = (byte *)buffer_size;\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);\n      if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;\nLAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }\n      uVar13 = uVar13 + 1;\n      uVar14 = (ulong)uVar13;\n      uVar17 = (object->super_Object).shnum_;\n      uVar18 = uVar13 < uVar17;\n      uVar20 = uVar13 == uVar17;\n    }" { (expression_statement "uVar13 = (uint)uVar14;" (assignment_expression "uVar13 = (uint)uVar14" identifier = (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14);" (call_expression "(*(object->super_Object)._vptr_Object[0x10])(&buffer_size,object,uVar14)" (parenthesized_expression "(*(object->super_Object)._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Object)._vptr_Object[0x10]" * (subscript_expression "(object->super_Object)._vptr_Object[0x10]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(&buffer_size,object,uVar14)" ( (pointer_expression "&buffer_size" & identifier) , identifier , identifier ))) ;) (expression_statement "sVar3 = buffer_size;" (assignment_expression "sVar3 = buffer_size" identifier = identifier) ;) (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "__s1 = (char *)(buffer_size + 7);" (assignment_expression "__s1 = (char *)(buffer_size + 7)" identifier = (cast_expression "(char *)(buffer_size + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buffer_size + 7)" ( (binary_expression "buffer_size + 7" identifier + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)".debug_";" (assignment_expression "pbVar15 = (byte *)".debug_"" identifier = (cast_expression "(byte *)".debug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_"" " string_content "))) ;) (expression_statement "pbVar16 = (byte *)buffer_size;" (assignment_expression "pbVar16 = (byte *)buffer_size" identifier = (cast_expression "(byte *)buffer_size" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while ((bool)uVar20);" do (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        uVar18 = *pbVar15 < *pbVar16;\n        uVar20 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "uVar18 = *pbVar15 < *pbVar16;" (assignment_expression "uVar18 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "uVar20 = *pbVar15 == *pbVar16;" (assignment_expression "uVar20 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar22 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar22 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar20)" ( (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;" (assignment_expression "bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18" identifier = (binary_expression "(!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18" (parenthesized_expression "(!(bool)uVar18 && !(bool)uVar20)" ( (binary_expression "!(bool)uVar18 && !(bool)uVar20" (unary_expression "!(bool)uVar18" ! (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar21) {\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\nLAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);\n        if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }\n        if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }\n        if (uVar13 == 0) {\n          return false;\n        }\n        puVar8 = Object::decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);\n        this->buffer_ = puVar8;\n        if (puVar8 == (uchar *)0x0) {\n          return false;\n        }\n        this->buffer_end_ = puVar8 + buffer_size;\n        pp_Var9 = (object->super_Object)._vptr_Object;\n        if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }\n        if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }\n        uVar6 = 0;\n        uVar17 = 0;\n        goto LAB_0026e1e8;\n      }" { (labeled_statement "LAB_0026e0e2:\n        iVar5 = strcmp(__s1,pcVar2 + 4);" statement_identifier : (expression_statement "iVar5 = strcmp(__s1,pcVar2 + 4);" (assignment_expression "iVar5 = strcmp(__s1,pcVar2 + 4)" identifier = (call_expression "strcmp(__s1,pcVar2 + 4)" identifier (argument_list "(__s1,pcVar2 + 4)" ( identifier , (binary_expression "pcVar2 + 4" identifier + number_literal) )))) ;)) (if_statement "if (iVar5 != 0) {\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar5 = strcmp(__s1,__s2);\n          if (iVar5 != 0) goto LAB_0026e101;\n          this->is_gnu_style_ = true;\n        }" { (expression_statement "iVar5 = strcmp(__s1,__s2);" (assignment_expression "iVar5 = strcmp(__s1,__s2)" identifier = (call_expression "strcmp(__s1,__s2)" identifier (argument_list "(__s1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0026e101;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0026e101;" goto statement_identifier ;)) (expression_statement "this->is_gnu_style_ = true;" (assignment_expression "this->is_gnu_style_ = true" (field_expression "this->is_gnu_style_" identifier -> field_identifier) = true) ;) })) (if_statement "if ((undefined1 *)sVar3 != local_48) {\n          operator_delete((void *)sVar3);\n        }" if (parenthesized_expression "((undefined1 *)sVar3 != local_48)" ( (binary_expression "(undefined1 *)sVar3 != local_48" (cast_expression "(undefined1 *)sVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          operator_delete((void *)sVar3);\n        }" { (expression_statement "operator_delete((void *)sVar3);" (call_expression "operator_delete((void *)sVar3)" identifier (argument_list "((void *)sVar3)" ( (cast_expression "(void *)sVar3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (if_statement "if (uVar13 == 0) {\n          return false;\n        }" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (ERROR "puVar8 = Object::" (assignment_expression "puVar8 = Object" identifier = identifier) : :) (expression_statement "decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0);" (call_expression "decompressed_section_contents\n                           (&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0)" identifier (argument_list "(&object->super_Object,uVar13,&buffer_size,&this->owns_buffer_,\n                            (uint64_t *)0x0)" ( (pointer_expression "&object->super_Object" & (field_expression "object->super_Object" identifier -> field_identifier)) , identifier , (pointer_expression "&buffer_size" & identifier) , (pointer_expression "&this->owns_buffer_" & (field_expression "this->owns_buffer_" identifier -> field_identifier)) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "this->buffer_ = puVar8;" (assignment_expression "this->buffer_ = puVar8" (field_expression "this->buffer_" identifier -> field_identifier) = identifier) ;) (if_statement "if (puVar8 == (uchar *)0x0) {\n          return false;\n        }" if (parenthesized_expression "(puVar8 == (uchar *)0x0)" ( (binary_expression "puVar8 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (expression_statement "this->buffer_end_ = puVar8 + buffer_size;" (assignment_expression "this->buffer_end_ = puVar8 + buffer_size" (field_expression "this->buffer_end_" identifier -> field_identifier) = (binary_expression "puVar8 + buffer_size" identifier + identifier)) ;) (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pp_Var9[6] != Object::do_is_incremental) {\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }" if (parenthesized_expression "(pp_Var9[6] != Object::do_is_incremental)" ( (binary_expression "pp_Var9[6] != Object" (subscript_expression "pp_Var9[6]" identifier [ number_literal ]) != identifier) (ERROR "::do_is_incremental" : : identifier) )) (compound_statement "{\n          iVar5 = (*pp_Var9[6])(object);\n          if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }\n          pp_Var9 = (object->super_Object)._vptr_Object;\n        }" { (expression_statement "iVar5 = (*pp_Var9[6])(object);" (assignment_expression "iVar5 = (*pp_Var9[6])(object)" identifier = (call_expression "(*pp_Var9[6])(object)" (parenthesized_expression "(*pp_Var9[6])" ( (pointer_expression "*pp_Var9[6]" * (subscript_expression "pp_Var9[6]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) (if_statement "if ((char)iVar5 != '\0') {\n            return (bool)(char)iVar5;\n          }" if (parenthesized_expression "((char)iVar5 != '\0')" ( (binary_expression "(char)iVar5 != '\0'" (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return (bool)(char)iVar5;\n          }" { (return_statement "return (bool)(char)iVar5;" return (cast_expression "(bool)(char)iVar5" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) })) (if_statement "if ((object->super_Object).shnum_ != 0) {\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }" if (parenthesized_expression "((object->super_Object).shnum_ != 0)" ( (binary_expression "(object->super_Object).shnum_ != 0" (field_expression "(object->super_Object).shnum_" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          goto LAB_0026e1be;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "lVar11 = 8;" (assignment_expression "lVar11 = 8" identifier = number_literal) ;) (expression_statement "__s1 = (char *)(buffer_size + 8);" (assignment_expression "__s1 = (char *)(buffer_size + 8)" identifier = (cast_expression "(char *)(buffer_size + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buffer_size + 8)" ( (binary_expression "buffer_size + 8" identifier + number_literal) )))) ;) (expression_statement "pbVar15 = (byte *)".zdebug_";" (assignment_expression "pbVar15 = (byte *)".zdebug_"" identifier = (cast_expression "(byte *)".zdebug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".zdebug_"" " string_content "))) ;) (expression_statement "pbVar16 = (byte *)buffer_size;" (assignment_expression "pbVar16 = (byte *)buffer_size" identifier = (cast_expression "(byte *)buffer_size" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      } while (bVar21);" do (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar19 = *pbVar15 < *pbVar16;\n        bVar21 = *pbVar15 == *pbVar16;\n        pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;\n        pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;\n      }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar15 < *pbVar16;" (assignment_expression "bVar19 = *pbVar15 < *pbVar16" identifier = (binary_expression "*pbVar15 < *pbVar16" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar21 = *pbVar15 == *pbVar16;" (assignment_expression "bVar21 = *pbVar15 == *pbVar16" identifier = (binary_expression "*pbVar15 == *pbVar16" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar22 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (ulong)bVar22 * -2 + 1" identifier = (binary_expression "pbVar16 + (ulong)bVar22 * -2 + 1" (binary_expression "pbVar16 + (ulong)bVar22 * -2" identifier + (binary_expression "(ulong)bVar22 * -2" (cast_expression "(ulong)bVar22" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar21)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar21) == bVar19) goto LAB_0026e0e2;" if (parenthesized_expression "((!bVar19 && !bVar21) == bVar19)" ( (binary_expression "(!bVar19 && !bVar21) == bVar19" (parenthesized_expression "(!bVar19 && !bVar21)" ( (binary_expression "!bVar19 && !bVar21" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar21" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0026e0e2;" goto statement_identifier ;)) (labeled_statement "LAB_0026e101:\n      if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }" statement_identifier : (if_statement "if ((undefined1 *)sVar3 != local_48) {\n        operator_delete((void *)sVar3);\n      }" if (parenthesized_expression "((undefined1 *)sVar3 != local_48)" ( (binary_expression "(undefined1 *)sVar3 != local_48" (cast_expression "(undefined1 *)sVar3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n        operator_delete((void *)sVar3);\n      }" { (expression_statement "operator_delete((void *)sVar3);" (call_expression "operator_delete((void *)sVar3)" identifier (argument_list "((void *)sVar3)" ( (cast_expression "(void *)sVar3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = (ulong)uVar13;" (assignment_expression "uVar14 = (ulong)uVar13" identifier = (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = (object->super_Object).shnum_;" (assignment_expression "uVar17 = (object->super_Object).shnum_" identifier = (field_expression "(object->super_Object).shnum_" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = uVar13 < uVar17;" (assignment_expression "uVar18 = uVar13 < uVar17" identifier = (binary_expression "uVar13 < uVar17" identifier < identifier)) ;) (expression_statement "uVar20 = uVar13 == uVar17;" (assignment_expression "uVar20 = uVar13 == uVar17" identifier = (binary_expression "uVar13 == uVar17" identifier == identifier)) ;) }) while (parenthesized_expression "((bool)uVar18)" ( (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) })) (return_statement "return false;" return false ;) (labeled_statement "LAB_0026e1be:\n  uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);" statement_identifier : (expression_statement "uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17);" (assignment_expression "uVar6 = (*pp_Var9[0x14])(object,(ulong)uVar17)" identifier = (call_expression "(*pp_Var9[0x14])(object,(ulong)uVar17)" (parenthesized_expression "(*pp_Var9[0x14])" ( (pointer_expression "*pp_Var9[0x14]" * (subscript_expression "pp_Var9[0x14]" identifier [ number_literal ])) )) (argument_list "(object,(ulong)uVar17)" ( identifier , (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;)) (if_statement "if (((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))\n  {\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    goto LAB_0026e1e8;\n  }" if (parenthesized_expression "(((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7))" ( (binary_expression "((uVar6 == 9) || (uVar6 == 4)) &&\n     (uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7)" (parenthesized_expression "((uVar6 == 9) || (uVar6 == 4))" ( (binary_expression "(uVar6 == 9) || (uVar6 == 4)" (parenthesized_expression "(uVar6 == 9)" ( (binary_expression "uVar6 == 9" identifier == number_literal) )) || (parenthesized_expression "(uVar6 == 4)" ( (binary_expression "uVar6 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7)" ( (comma_expression "uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17), uVar13 == uVar7" (assignment_expression "uVar7 = (*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17)" identifier = (call_expression "(*(object->super_Object)._vptr_Object[0x16])(object,(ulong)uVar17)" (parenthesized_expression "(*(object->super_Object)._vptr_Object[0x16])" ( (pointer_expression "*(object->super_Object)._vptr_Object[0x16]" * (subscript_expression "(object->super_Object)._vptr_Object[0x16]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(object,(ulong)uVar17)" ( identifier , (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) , (binary_expression "uVar13 == uVar7" identifier == identifier)) ))) )) (compound_statement "{\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    goto LAB_0026e1e8;\n  }" { (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((object->super_Object).shnum_ <= uVar17) {\n    uVar17 = 0;\nLAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    this->reloc_mapper_ = pEVar10;\n    (*pcVar12)(pEVar10,uVar17,uVar6);\n    this->reloc_type_ = uVar6;\n    return true;\n  }" if (parenthesized_expression "((object->super_Object).shnum_ <= uVar17)" ( (binary_expression "(object->super_Object).shnum_ <= uVar17" (field_expression "(object->super_Object).shnum_" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (compound_statement "{\n    uVar17 = 0;\nLAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }\n    pp_Var9 = (object->super_Object)._vptr_Object;\n    if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    this->reloc_mapper_ = pEVar10;\n    (*pcVar12)(pEVar10,uVar17,uVar6);\n    this->reloc_type_ = uVar6;\n    return true;\n  }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0026e1e8:\n    if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }" statement_identifier : (if_statement "if (pp_Var9[2] == Relobj::elfsize) {\n      iVar5 = (*pp_Var9[0x39])();\n    }\n    else {\n      iVar5 = (*pp_Var9[2])(object);\n    }" if (parenthesized_expression "(pp_Var9[2] == Relobj::elfsize)" ( (binary_expression "pp_Var9[2] == Relobj" (subscript_expression "pp_Var9[2]" identifier [ number_literal ]) == identifier) (ERROR "::elfsize" : : identifier) )) (compound_statement "{\n      iVar5 = (*pp_Var9[0x39])();\n    }" { (expression_statement "iVar5 = (*pp_Var9[0x39])();" (assignment_expression "iVar5 = (*pp_Var9[0x39])()" identifier = (call_expression "(*pp_Var9[0x39])()" (parenthesized_expression "(*pp_Var9[0x39])" ( (pointer_expression "*pp_Var9[0x39]" * (subscript_expression "pp_Var9[0x39]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      iVar5 = (*pp_Var9[2])(object);\n    }" else (compound_statement "{\n      iVar5 = (*pp_Var9[2])(object);\n    }" { (expression_statement "iVar5 = (*pp_Var9[2])(object);" (assignment_expression "iVar5 = (*pp_Var9[2])(object)" identifier = (call_expression "(*pp_Var9[2])(object)" (parenthesized_expression "(*pp_Var9[2])" ( (pointer_expression "*pp_Var9[2]" * (subscript_expression "pp_Var9[2]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) })))) (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (iVar5 == 0x20) {\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }\n    else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }" if (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }" { (if_statement "if (pp_Var9[3] == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }" if (parenthesized_expression "(pp_Var9[3] == Relobj::is_big_endian)" ( (binary_expression "pp_Var9[3] == Relobj" (subscript_expression "pp_Var9[3]" identifier [ number_literal ]) == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }" { (expression_statement "iVar5 = (*pp_Var9[0x3a])();" (assignment_expression "iVar5 = (*pp_Var9[0x3a])()" identifier = (call_expression "(*pp_Var9[0x3a])()" (parenthesized_expression "(*pp_Var9[0x3a])" ( (pointer_expression "*pp_Var9[0x3a]" * (subscript_expression "pp_Var9[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar4 = (char)iVar5;" (assignment_expression "cVar4 = (char)iVar5" identifier = (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }" else (compound_statement "{\n        iVar5 = (*pp_Var9[3])(object);\n        cVar4 = (char)iVar5;\n      }" { (expression_statement "iVar5 = (*pp_Var9[3])(object);" (assignment_expression "iVar5 = (*pp_Var9[3])(object)" identifier = (call_expression "(*pp_Var9[3])(object)" (parenthesized_expression "(*pp_Var9[3])" ( (pointer_expression "*pp_Var9[3]" * (subscript_expression "pp_Var9[3]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) (expression_statement "cVar4 = (char)iVar5;" (assignment_expression "cVar4 = (char)iVar5" identifier = (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (if_statement "if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);" (assignment_expression "pEVar10 = (Elf_reloc_mapper *)operator_new(0x48)" identifier = (cast_expression "(Elf_reloc_mapper *)operator_new(0x48)" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize;" (comma_expression "pcVar12 = Sized_elf_reloc_mapper<32,_false>::do_initialize" (assignment_expression "pcVar12 = Sized_elf_reloc_mapper<32" identifier = (binary_expression "Sized_elf_reloc_mapper<32" identifier < number_literal)) , (binary_expression "_false>::do_initialize" identifier > (ERROR "::" : :) identifier)) ;) (expression_statement "pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250;" (assignment_expression "pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250" (field_expression "pEVar10->_vptr_Elf_reloc_mapper" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e6250" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Sized_elf_reloc_mapper_003e6250" & identifier))) ;) (expression_statement "pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;" (assignment_expression "pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object" (field_expression "pEVar10[1]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)object" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;" (assignment_expression "pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab" (field_expression "pEVar10[2]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)symtab" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;" (assignment_expression "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0" (pointer_expression "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper" * (cast_expression "(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar10[4]._vptr_Elf_reloc_mapper" & (field_expression "pEVar10[4]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[4]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;" (assignment_expression "pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size" (field_expression "pEVar10[3]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)symtab_size" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[5]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[6]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[7]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;" (assignment_expression "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0" (pointer_expression "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper" * (cast_expression "(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar10[8]._vptr_Elf_reloc_mapper" & (field_expression "pEVar10[8]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[8]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) }) (else_clause "else {\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }" else (compound_statement "{\n      if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }\n      if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pp_Var9 = (object->super_Object)._vptr_Object;\n      p_Var1 = pp_Var9[3];\n      if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }\n      if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);\n      pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;\n      pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;\n      pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;\n      pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;\n      *(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;\n      pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;\n      pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;\n      *(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;\n    }" { (if_statement "if (pp_Var9[2] == Relobj::elfsize) {\n        iVar5 = (*pp_Var9[0x39])();\n      }\n      else {\n        iVar5 = (*pp_Var9[2])(object);\n      }" if (parenthesized_expression "(pp_Var9[2] == Relobj::elfsize)" ( (binary_expression "pp_Var9[2] == Relobj" (subscript_expression "pp_Var9[2]" identifier [ number_literal ]) == identifier) (ERROR "::elfsize" : : identifier) )) (compound_statement "{\n        iVar5 = (*pp_Var9[0x39])();\n      }" { (expression_statement "iVar5 = (*pp_Var9[0x39])();" (assignment_expression "iVar5 = (*pp_Var9[0x39])()" identifier = (call_expression "(*pp_Var9[0x39])()" (parenthesized_expression "(*pp_Var9[0x39])" ( (pointer_expression "*pp_Var9[0x39]" * (subscript_expression "pp_Var9[0x39]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar5 = (*pp_Var9[2])(object);\n      }" else (compound_statement "{\n        iVar5 = (*pp_Var9[2])(object);\n      }" { (expression_statement "iVar5 = (*pp_Var9[2])(object);" (assignment_expression "iVar5 = (*pp_Var9[2])(object)" identifier = (call_expression "(*pp_Var9[2])(object)" (parenthesized_expression "(*pp_Var9[2])" ( (pointer_expression "*pp_Var9[2]" * (subscript_expression "pp_Var9[2]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }))) (if_statement "if (iVar5 != 0x40) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(iVar5 != 0x40)" ( (binary_expression "iVar5 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "pp_Var9 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var9 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "p_Var1 = pp_Var9[3];" (assignment_expression "p_Var1 = pp_Var9[3]" identifier = (subscript_expression "pp_Var9[3]" identifier [ number_literal ])) ;) (if_statement "if (p_Var1 == Relobj::is_big_endian) {\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }\n      else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }" if (parenthesized_expression "(p_Var1 == Relobj::is_big_endian)" ( (binary_expression "p_Var1 == Relobj" identifier == identifier) (ERROR "::is_big_endian" : : identifier) )) (compound_statement "{\n        iVar5 = (*pp_Var9[0x3a])();\n        cVar4 = (char)iVar5;\n      }" { (expression_statement "iVar5 = (*pp_Var9[0x3a])();" (assignment_expression "iVar5 = (*pp_Var9[0x3a])()" identifier = (call_expression "(*pp_Var9[0x3a])()" (parenthesized_expression "(*pp_Var9[0x3a])" ( (pointer_expression "*pp_Var9[0x3a]" * (subscript_expression "pp_Var9[0x3a]" identifier [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "cVar4 = (char)iVar5;" (assignment_expression "cVar4 = (char)iVar5" identifier = (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }" else (compound_statement "{\n        iVar5 = (*p_Var1)(object);\n        cVar4 = (char)iVar5;\n      }" { (expression_statement "iVar5 = (*p_Var1)(object);" (assignment_expression "iVar5 = (*p_Var1)(object)" identifier = (call_expression "(*p_Var1)(object)" (parenthesized_expression "(*p_Var1)" ( (pointer_expression "*p_Var1" * identifier) )) (argument_list "(object)" ( identifier )))) ;) (expression_statement "cVar4 = (char)iVar5;" (assignment_expression "cVar4 = (char)iVar5" identifier = (cast_expression "(char)iVar5" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }))) (if_statement "if (cVar4 != '\0') {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");" (call_expression "do_gold_unreachable("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "pEVar10 = (Elf_reloc_mapper *)operator_new(0x48);" (assignment_expression "pEVar10 = (Elf_reloc_mapper *)operator_new(0x48)" identifier = (cast_expression "(Elf_reloc_mapper *)operator_new(0x48)" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize;" (comma_expression "pcVar12 = Sized_elf_reloc_mapper<64,_false>::do_initialize" (assignment_expression "pcVar12 = Sized_elf_reloc_mapper<64" identifier = (binary_expression "Sized_elf_reloc_mapper<64" identifier < number_literal)) , (binary_expression "_false>::do_initialize" identifier > (ERROR "::" : :) identifier)) ;) (expression_statement "pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0;" (assignment_expression "pEVar10->_vptr_Elf_reloc_mapper = (_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0" (field_expression "pEVar10->_vptr_Elf_reloc_mapper" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Sized_elf_reloc_mapper_003e62a0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Sized_elf_reloc_mapper_003e62a0" & identifier))) ;) (expression_statement "pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object;" (assignment_expression "pEVar10[1]._vptr_Elf_reloc_mapper = (_func_int_varargs **)object" (field_expression "pEVar10[1]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)object" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab;" (assignment_expression "pEVar10[2]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab" (field_expression "pEVar10[2]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)symtab" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;" (assignment_expression "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0" (pointer_expression "*(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper" * (cast_expression "(undefined4 *)&pEVar10[4]._vptr_Elf_reloc_mapper" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar10[4]._vptr_Elf_reloc_mapper" & (field_expression "pEVar10[4]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[4]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size;" (assignment_expression "pEVar10[3]._vptr_Elf_reloc_mapper = (_func_int_varargs **)symtab_size" (field_expression "pEVar10[3]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)symtab_size" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[5]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[5]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[6]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[6]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0;" (assignment_expression "pEVar10[7]._vptr_Elf_reloc_mapper = (_func_int_varargs **)0x0" (field_expression "pEVar10[7]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;" (assignment_expression "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0" (pointer_expression "*(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper" * (cast_expression "(undefined4 *)&pEVar10[8]._vptr_Elf_reloc_mapper" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar10[8]._vptr_Elf_reloc_mapper" & (field_expression "pEVar10[8]._vptr_Elf_reloc_mapper" (subscript_expression "pEVar10[8]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) }))) (expression_statement "this->reloc_mapper_ = pEVar10;" (assignment_expression "this->reloc_mapper_ = pEVar10" (field_expression "this->reloc_mapper_" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar12)(pEVar10,uVar17,uVar6);" (call_expression "(*pcVar12)(pEVar10,uVar17,uVar6)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pEVar10,uVar17,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "this->reloc_type_ = uVar6;" (assignment_expression "this->reloc_type_ = uVar6" (field_expression "this->reloc_type_" identifier -> field_identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })))
(translation_unit "undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}\n\n" (function_definition "undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" type_identifier (function_declarator "FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *__s1;" type_identifier (pointer_declarator "*__s1" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "byte *local_58 [2];" type_identifier (pointer_declarator "*local_58 [2]" * (array_declarator "local_58 [2]" identifier [ number_literal ])) ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar1 = "gnu_pubtypes";" (assignment_expression "pcVar1 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "bVar16 = *(char *)(param_1 + 0x30) == '\0';" (assignment_expression "bVar16 = *(char *)(param_1 + 0x30) == '\0'" identifier = (binary_expression "*(char *)(param_1 + 0x30) == '\0'" (pointer_expression "*(char *)(param_1 + 0x30)" * (cast_expression "(char *)(param_1 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n    pcVar1 = "gnu_pubnames";\n  }" { (expression_statement "pcVar1 = "gnu_pubnames";" (assignment_expression "pcVar1 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) })) (expression_statement "__s2 = "gnu_pubnames";" (assignment_expression "__s2 = "gnu_pubnames"" identifier = (string_literal ""gnu_pubnames"" " string_content ")) ;) (if_statement "if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n    __s2 = "gnu_pubtypes";\n  }" { (expression_statement "__s2 = "gnu_pubtypes";" (assignment_expression "__s2 = "gnu_pubtypes"" identifier = (string_literal ""gnu_pubtypes"" " string_content ")) ;) })) (expression_statement "uVar14 = *(uint *)(param_2 + 7);" (assignment_expression "uVar14 = *(uint *)(param_2 + 7)" identifier = (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = uVar14 == 0;" (assignment_expression "uVar15 = uVar14 == 0" identifier = (binary_expression "uVar14 == 0" identifier == number_literal)) ;) (expression_statement "uVar17 = uVar14 == 1;" (assignment_expression "uVar17 = uVar14 == 1" identifier = (binary_expression "uVar14 == 1" identifier == number_literal)) ;) (if_statement "if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" if (parenthesized_expression "(1 < uVar14)" ( (binary_expression "1 < uVar14" number_literal < identifier) )) (compound_statement "{\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" { (do_statement "do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);" do (compound_statement "{\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    }" { (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" ( (pointer_expression "**(code **)(*param_2 + 0x80)" * (pointer_expression "*(code **)(*param_2 + 0x80)" * (cast_expression "(code **)(*param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x80)" ( (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_58,param_2,uVar11)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar2 = local_58[0];" (assignment_expression "pbVar2 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "__s1 = local_58[0] + 7;" (assignment_expression "__s1 = local_58[0] + 7" identifier = (binary_expression "local_58[0] + 7" (subscript_expression "local_58[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar12 = (byte *)".debug_";" (assignment_expression "pbVar12 = (byte *)".debug_"" identifier = (cast_expression "(byte *)".debug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_"" " string_content "))) ;) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar13;" (assignment_expression "uVar15 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar13;" (assignment_expression "uVar17 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" identifier = (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" { (labeled_statement "LAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);" statement_identifier : (expression_statement "iVar4 = strcmp((char *)__s1,pcVar1 + 4);" (assignment_expression "iVar4 = strcmp((char *)__s1,pcVar1 + 4)" identifier = (call_expression "strcmp((char *)__s1,pcVar1 + 4)" identifier (argument_list "((char *)__s1,pcVar1 + 4)" ( (cast_expression "(char *)__s1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "pcVar1 + 4" identifier + number_literal) )))) ;)) (if_statement "if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" { (expression_statement "iVar4 = strcmp((char *)__s1,__s2);" (assignment_expression "iVar4 = strcmp((char *)__s1,__s2)" identifier = (call_expression "strcmp((char *)__s1,__s2)" identifier (argument_list "((char *)__s1,__s2)" ( (cast_expression "(char *)__s1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0026e101;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0026e101;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 0x31) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x31) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x31)" * (cast_expression "(undefined1 *)(param_1 + 0x31)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x31)" ( (binary_expression "param_1 + 0x31" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }" if (parenthesized_expression "(pbVar2 != local_48)" ( (binary_expression "pbVar2 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002a2980(pbVar2);\n        }" { (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" identifier (argument_list "(pbVar2)" ( identifier ))) ;) })) (if_statement "if (uVar11 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);" (assignment_expression "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" identifier = (call_expression "FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" identifier (argument_list "(param_2,uVar11,local_58,param_1 + 0x18,0)" ( identifier , identifier , identifier , (binary_expression "param_1 + 0x18" identifier + number_literal) , number_literal )))) ;) (expression_statement "*(long *)(param_1 + 8) = lVar9;" (assignment_expression "*(long *)(param_1 + 8) = lVar9" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (lVar9 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9;" (assignment_expression "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9" (pointer_expression "*(byte **)(param_1 + 0x10)" * (cast_expression "(byte **)(param_1 + 0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "local_58[0] + lVar9" (subscript_expression "local_58[0]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" if (parenthesized_expression "(*(code **)(lVar9 + 0x30) != FUN_001a1ab0)" ( (binary_expression "*(code **)(lVar9 + 0x30) != FUN_001a1ab0" (pointer_expression "*(code **)(lVar9 + 0x30)" * (cast_expression "(code **)(lVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" { (expression_statement "uVar8 = (**(code **)(lVar9 + 0x30))(param_2);" (assignment_expression "uVar8 = (**(code **)(lVar9 + 0x30))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x30))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x30))" ( (pointer_expression "**(code **)(lVar9 + 0x30)" * (pointer_expression "*(code **)(lVar9 + 0x30)" * (cast_expression "(code **)(lVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" if (parenthesized_expression "((char)uVar8 != '\0')" ( (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            return uVar8;\n          }" { (return_statement "return uVar8;" return identifier ;) })) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" if (parenthesized_expression "((int)param_2[7] != 0)" ( (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_2[7]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" identifier = number_literal) ;) (expression_statement "__s1 = local_58[0] + 8;" (assignment_expression "__s1 = local_58[0] + 8" identifier = (binary_expression "local_58[0] + 8" (subscript_expression "local_58[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pbVar12 = (byte *)".zdebug_";" (assignment_expression "pbVar12 = (byte *)".zdebug_"" identifier = (cast_expression "(byte *)".zdebug_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".zdebug_"" " string_content "))) ;) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" identifier = (subscript_expression "local_58[0]" identifier [ number_literal ])) ;) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar13;" (assignment_expression "bVar16 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar13;" (assignment_expression "bVar18 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;" if (parenthesized_expression "((!bVar16 && !bVar18) == bVar16)" ( (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0026e0e2;" goto statement_identifier ;)) (labeled_statement "LAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" statement_identifier : (if_statement "if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" if (parenthesized_expression "(pbVar2 != local_48)" ( (binary_expression "pbVar2 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002a2980(pbVar2);\n      }" { (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" identifier (argument_list "(pbVar2)" ( identifier ))) ;) }))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar11 < *(uint *)(param_2 + 7);" (assignment_expression "uVar15 = uVar11 < *(uint *)(param_2 + 7)" identifier = (binary_expression "uVar11 < *(uint *)(param_2 + 7)" identifier < (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) ;) (expression_statement "uVar17 = uVar11 == *(uint *)(param_2 + 7);" (assignment_expression "uVar17 = uVar11 == *(uint *)(param_2 + 7)" identifier = (binary_expression "uVar11 == *(uint *)(param_2 + 7)" identifier == (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "((bool)uVar15)" ( (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) (labeled_statement "LAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" statement_identifier : (expression_statement "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" (assignment_expression "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14)" identifier = (call_expression "(**(code **)(lVar9 + 0xa0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(lVar9 + 0xa0))" ( (pointer_expression "**(code **)(lVar9 + 0xa0)" * (pointer_expression "*(code **)(lVar9 + 0xa0)" * (cast_expression "(code **)(lVar9 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0xa0)" ( (binary_expression "lVar9 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(param_2,uVar14)" ( identifier , identifier )))) ;)) (if_statement "if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" if (parenthesized_expression "(((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5))" ( (binary_expression "((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" (parenthesized_expression "((iVar4 == 9) || (iVar4 == 4))" ( (binary_expression "(iVar4 == 9) || (iVar4 == 4)" (parenthesized_expression "(iVar4 == 9)" ( (binary_expression "iVar4 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" ( (comma_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14)" identifier = (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" ( (pointer_expression "**(code **)(*param_2 + 0xb0)" * (pointer_expression "*(code **)(*param_2 + 0xb0)" * (cast_expression "(code **)(*param_2 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb0)" ( (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,uVar14)" ( identifier , identifier )))) , (binary_expression "uVar11 == uVar5" identifier == identifier)) ))) )) (compound_statement "{\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" { (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (goto_statement "goto LAB_0026e1e8;" goto statement_identifier ;) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" if (parenthesized_expression "(*(uint *)(param_2 + 7) <= uVar14)" ( (binary_expression "*(uint *)(param_2 + 7) <= uVar14" (pointer_expression "*(uint *)(param_2 + 7)" * (cast_expression "(uint *)(param_2 + 7)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 7)" ( (binary_expression "param_2 + 7" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" statement_identifier : (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" if (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" ( (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" ( (pointer_expression "**(code **)(lVar9 + 0x1c8)" * (pointer_expression "*(code **)(lVar9 + 0x1c8)" * (cast_expression "(code **)(lVar9 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1c8)" ( (binary_expression "lVar9 + 0x1c8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" else (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" ( (pointer_expression "**(code **)(lVar9 + 0x10)" * (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) })))) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" if (parenthesized_expression "(iVar6 == 0x20)" ( (binary_expression "iVar6 == 0x20" identifier == number_literal) )) (compound_statement "{\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" { (if_statement "if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" if (parenthesized_expression "(*(code **)(lVar9 + 0x18) == FUN_001a1b20)" ( (binary_expression "*(code **)(lVar9 + 0x18) == FUN_001a1b20" (pointer_expression "*(code **)(lVar9 + 0x18)" * (cast_expression "(code **)(lVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }" { (expression_statement "cVar3 = (**(code **)(lVar9 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x1d0))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1d0))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1d0))" ( (pointer_expression "**(code **)(lVar9 + 0x1d0)" * (pointer_expression "*(code **)(lVar9 + 0x1d0)" * (cast_expression "(code **)(lVar9 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1d0)" ( (binary_expression "lVar9 + 0x1d0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" else (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" { (expression_statement "cVar3 = (**(code **)(lVar9 + 0x18))(param_2);" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x18))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x18))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x18))" ( (pointer_expression "**(code **)(lVar9 + 0x18)" * (pointer_expression "*(code **)(lVar9 + 0x18)" * (cast_expression "(code **)(lVar9 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" { (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar10 = FUN_00270fe0;" (assignment_expression "pcVar10 = FUN_00270fe0" identifier = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_003e6250;" (assignment_expression "*puVar7 = &PTR_FUN_003e6250" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_003e6250" & identifier)) ;) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" else (compound_statement "{\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" { (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" if (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" ( (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" identifier = (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" ( (pointer_expression "**(code **)(lVar9 + 0x1c8)" * (pointer_expression "*(code **)(lVar9 + 0x1c8)" * (cast_expression "(code **)(lVar9 + 0x1c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x1c8)" ( (binary_expression "lVar9 + 0x1c8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" else (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" { (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" identifier = (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" ( (pointer_expression "**(code **)(lVar9 + 0x10)" * (pointer_expression "*(code **)(lVar9 + 0x10)" * (cast_expression "(code **)(lVar9 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(iVar6 != 0x40)" ( (binary_expression "iVar6 != 0x40" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" { (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "pcVar10 = *(code **)(*param_2 + 0x18);" (assignment_expression "pcVar10 = *(code **)(*param_2 + 0x18)" identifier = (pointer_expression "*(code **)(*param_2 + 0x18)" * (cast_expression "(code **)(*param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x18)" ( (binary_expression "*param_2 + 0x18" (pointer_expression "*param_2" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }" if (parenthesized_expression "(pcVar10 == FUN_001a1b20)" ( (binary_expression "pcVar10 == FUN_001a1b20" identifier == identifier) )) (compound_statement "{\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }" { (expression_statement "cVar3 = (**(code **)(*param_2 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(*param_2 + 0x1d0))()" identifier = (call_expression "(**(code **)(*param_2 + 0x1d0))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1d0))" ( (pointer_expression "**(code **)(*param_2 + 0x1d0)" * (pointer_expression "*(code **)(*param_2 + 0x1d0)" * (cast_expression "(code **)(*param_2 + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x1d0)" ( (binary_expression "*param_2 + 0x1d0" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar3 = (*pcVar10)(param_2);\n      }" else (compound_statement "{\n        cVar3 = (*pcVar10)(param_2);\n      }" { (expression_statement "cVar3 = (*pcVar10)(param_2);" (assignment_expression "cVar3 = (*pcVar10)(param_2)" identifier = (call_expression "(*pcVar10)(param_2)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" { (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" identifier (argument_list "("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" ( (string_literal ""../../gold/dwarf_reader.cc"" " string_content ") , number_literal , (string_literal ""make_elf_reloc_mapper"" " string_content ") ))) ;) })) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" identifier = (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002a11b0(0x48)" identifier (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "pcVar10 = FUN_00270fa0;" (assignment_expression "pcVar10 = FUN_00270fa0" identifier = identifier) ;) (expression_statement "*puVar7 = &PTR_FUN_003e62a0;" (assignment_expression "*puVar7 = &PTR_FUN_003e62a0" (pointer_expression "*puVar7" * identifier) = (pointer_expression "&PTR_FUN_003e62a0" & identifier)) ;) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" * (cast_expression "(undefined4 *)(puVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 4)" ( (binary_expression "puVar7 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" * (cast_expression "(undefined4 *)(puVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(undefined8 **)(param_1 + 0x48) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x48) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x48)" * (cast_expression "(undefined8 **)(param_1 + 0x48)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar10)(puVar7,uVar14,iVar4);" (call_expression "(*pcVar10)(puVar7,uVar14,iVar4)" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "(puVar7,uVar14,iVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "*(int *)(param_1 + 0x50) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x50) = iVar4" (pointer_expression "*(int *)(param_1 + 0x50)" * (cast_expression "(int *)(param_1 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_0026e1be;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (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 IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) })) (return_statement return LIT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 )))) , (binary_expression IDENT == IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined8 FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" (type_identifier "undefined8") (function_declarator "FUN_0026e030(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" (identifier "FUN_0026e030") (parameter_list "(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  char *__s2;\n  undefined8 *puVar7;\n  undefined8 uVar8;\n  long lVar9;\n  code *pcVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  byte *__s1;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  byte *local_58 [2];\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  pcVar1 = "gnu_pubtypes";\n  uVar11 = 1;\n  bVar16 = *(char *)(param_1 + 0x30) == '\0';\n  if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }\n  __s2 = "gnu_pubnames";\n  if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }\n  uVar14 = *(uint *)(param_2 + 7);\n  uVar15 = uVar14 == 0;\n  uVar17 = uVar14 == 1;\n  if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }\n  return 0;\nLAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);\n  if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }\n  uVar14 = uVar14 + 1;\n  lVar9 = *param_2;\n  if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }\n  goto LAB_0026e1be;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "byte *__s1;" (type_identifier "byte") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "undefined1 uVar17;" (type_identifier "undefined1") (identifier "uVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "byte *local_58 [2];" (type_identifier "byte") (pointer_declarator "*local_58 [2]" (* "*") (array_declarator "local_58 [2]" (identifier "local_58") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "byte local_48 [24];" (type_identifier "byte") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar1 = "gnu_pubtypes";" (assignment_expression "pcVar1 = "gnu_pubtypes"" (identifier "pcVar1") (= "=") (string_literal ""gnu_pubtypes"" (" """) (string_content "gnu_pubtypes") (" """))) (; ";")) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar16 = *(char *)(param_1 + 0x30) == '\0';" (assignment_expression "bVar16 = *(char *)(param_1 + 0x30) == '\0'" (identifier "bVar16") (= "=") (binary_expression "*(char *)(param_1 + 0x30) == '\0'" (pointer_expression "*(char *)(param_1 + 0x30)" (* "*") (cast_expression "(char *)(param_1 + 0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (bVar16) {\n    pcVar1 = "gnu_pubnames";\n  }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n    pcVar1 = "gnu_pubnames";\n  }" ({ "{") (expression_statement "pcVar1 = "gnu_pubnames";" (assignment_expression "pcVar1 = "gnu_pubnames"" (identifier "pcVar1") (= "=") (string_literal ""gnu_pubnames"" (" """) (string_content "gnu_pubnames") (" """))) (; ";")) (} "}"))) (expression_statement "__s2 = "gnu_pubnames";" (assignment_expression "__s2 = "gnu_pubnames"" (identifier "__s2") (= "=") (string_literal ""gnu_pubnames"" (" """) (string_content "gnu_pubnames") (" """))) (; ";")) (if_statement "if (!bVar16) {\n    __s2 = "gnu_pubtypes";\n  }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n    __s2 = "gnu_pubtypes";\n  }" ({ "{") (expression_statement "__s2 = "gnu_pubtypes";" (assignment_expression "__s2 = "gnu_pubtypes"" (identifier "__s2") (= "=") (string_literal ""gnu_pubtypes"" (" """) (string_content "gnu_pubtypes") (" """))) (; ";")) (} "}"))) (expression_statement "uVar14 = *(uint *)(param_2 + 7);" (assignment_expression "uVar14 = *(uint *)(param_2 + 7)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar14 == 0;" (assignment_expression "uVar15 = uVar14 == 0" (identifier "uVar15") (= "=") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0"))) (; ";")) (expression_statement "uVar17 = uVar14 == 1;" (assignment_expression "uVar17 = uVar14 == 1" (identifier "uVar17") (= "=") (binary_expression "uVar14 == 1" (identifier "uVar14") (== "==") (number_literal "1"))) (; ";")) (if_statement "if (1 < uVar14) {\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" (if "if") (parenthesized_expression "(1 < uVar14)" (( "(") (binary_expression "1 < uVar14" (number_literal "1") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n    do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);\n  }" ({ "{") (do_statement "do {\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    } while ((bool)uVar15);" (do "do") (compound_statement "{\n      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);\n      pbVar2 = local_58[0];\n      lVar9 = 7;\n      __s1 = local_58[0] + 7;\n      pbVar12 = (byte *)".debug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      bVar16 = false;\n      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;\n      if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }\n      lVar9 = 8;\n      __s1 = local_58[0] + 8;\n      pbVar12 = (byte *)".zdebug_";\n      pbVar13 = local_58[0];\n      do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;\nLAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }\n      uVar11 = uVar11 + 1;\n      uVar15 = uVar11 < *(uint *)(param_2 + 7);\n      uVar17 = uVar11 == *(uint *)(param_2 + 7);\n    }" ({ "{") (expression_statement "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);" (call_expression "(**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11)" (parenthesized_expression "(**(code **)(*param_2 + 0x80))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x80)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x80)" (* "*") (cast_expression "(code **)(*param_2 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x80)" (( "(") (binary_expression "*param_2 + 0x80" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_58,param_2,uVar11)" (( "(") (identifier "local_58") (, ",") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "pbVar2 = local_58[0];" (assignment_expression "pbVar2 = local_58[0]" (identifier "pbVar2") (= "=") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" (identifier "lVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "__s1 = local_58[0] + 7;" (assignment_expression "__s1 = local_58[0] + 7" (identifier "__s1") (= "=") (binary_expression "local_58[0] + 7" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "7"))) (; ";")) (expression_statement "pbVar12 = (byte *)".debug_";" (assignment_expression "pbVar12 = (byte *)".debug_"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)".debug_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".debug_"" (" """) (string_content ".debug_") (" """)))) (; ";")) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" (do "do") (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        uVar15 = *pbVar12 < *pbVar13;\n        uVar17 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar15 = *pbVar12 < *pbVar13;" (assignment_expression "uVar15 = *pbVar12 < *pbVar13" (identifier "uVar15") (= "=") (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "uVar17 = *pbVar12 == *pbVar13;" (assignment_expression "uVar17 = *pbVar12 == *pbVar13" (identifier "uVar17") (= "=") (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;" (assignment_expression "bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (identifier "bVar18") (= "=") (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" (! "!") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15")))) (; ";")) (if_statement "if (bVar18) {\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\nLAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);\n        if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }\n        if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }\n        if (uVar11 == 0) {\n          return 0;\n        }\n        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);\n        *(long *)(param_1 + 8) = lVar9;\n        if (lVar9 == 0) {\n          return 0;\n        }\n        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;\n        lVar9 = *param_2;\n        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }\n        if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }\n        iVar4 = 0;\n        uVar14 = 0;\n        goto LAB_0026e1e8;\n      }" ({ "{") (labeled_statement "LAB_0026e0e2:\n        iVar4 = strcmp((char *)__s1,pcVar1 + 4);" (statement_identifier "LAB_0026e0e2") (: ":") (expression_statement "iVar4 = strcmp((char *)__s1,pcVar1 + 4);" (assignment_expression "iVar4 = strcmp((char *)__s1,pcVar1 + 4)" (identifier "iVar4") (= "=") (call_expression "strcmp((char *)__s1,pcVar1 + 4)" (identifier "strcmp") (argument_list "((char *)__s1,pcVar1 + 4)" (( "(") (cast_expression "(char *)__s1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s1")) (, ",") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (; ";"))) (if_statement "if (iVar4 != 0) {\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar4 = strcmp((char *)__s1,__s2);\n          if (iVar4 != 0) goto LAB_0026e101;\n          *(undefined1 *)(param_1 + 0x31) = 1;\n        }" ({ "{") (expression_statement "iVar4 = strcmp((char *)__s1,__s2);" (assignment_expression "iVar4 = strcmp((char *)__s1,__s2)" (identifier "iVar4") (= "=") (call_expression "strcmp((char *)__s1,__s2)" (identifier "strcmp") (argument_list "((char *)__s1,__s2)" (( "(") (cast_expression "(char *)__s1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s1")) (, ",") (identifier "__s2") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_0026e101;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0026e101;" (goto "goto") (statement_identifier "LAB_0026e101") (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 0x31) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x31) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x31)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x31)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x31)" (( "(") (binary_expression "param_1 + 0x31" (identifier "param_1") (+ "+") (number_literal "0x31")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (pbVar2 != local_48) {\n          FUN_002a2980(pbVar2);\n        }" (if "if") (parenthesized_expression "(pbVar2 != local_48)" (( "(") (binary_expression "pbVar2 != local_48" (identifier "pbVar2") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n          FUN_002a2980(pbVar2);\n        }" ({ "{") (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" (identifier "FUN_002a2980") (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar11 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);" (assignment_expression "lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" (identifier "lVar9") (= "=") (call_expression "FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0)" (identifier "FUN_001c8230") (argument_list "(param_2,uVar11,local_58,param_1 + 0x18,0)" (( "(") (identifier "param_2") (, ",") (identifier "uVar11") (, ",") (identifier "local_58") (, ",") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(long *)(param_1 + 8) = lVar9;" (assignment_expression "*(long *)(param_1 + 8) = lVar9" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "lVar9")) (; ";")) (if_statement "if (lVar9 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9;" (assignment_expression "*(byte **)(param_1 + 0x10) = local_58[0] + lVar9" (pointer_expression "*(byte **)(param_1 + 0x10)" (* "*") (cast_expression "(byte **)(param_1 + 0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "local_58[0] + lVar9" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (+ "+") (identifier "lVar9"))) (; ";")) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" (identifier "lVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" (if "if") (parenthesized_expression "(*(code **)(lVar9 + 0x30) != FUN_001a1ab0)" (( "(") (binary_expression "*(code **)(lVar9 + 0x30) != FUN_001a1ab0" (pointer_expression "*(code **)(lVar9 + 0x30)" (* "*") (cast_expression "(code **)(lVar9 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (identifier "FUN_001a1ab0")) () ")")) (compound_statement "{\n          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);\n          if ((char)uVar8 != '\0') {\n            return uVar8;\n          }\n          lVar9 = *param_2;\n        }" ({ "{") (expression_statement "uVar8 = (**(code **)(lVar9 + 0x30))(param_2);" (assignment_expression "uVar8 = (**(code **)(lVar9 + 0x30))(param_2)" (identifier "uVar8") (= "=") (call_expression "(**(code **)(lVar9 + 0x30))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x30))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x30)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x30)" (* "*") (cast_expression "(code **)(lVar9 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((char)uVar8 != '\0') {\n            return uVar8;\n          }" (if "if") (parenthesized_expression "((char)uVar8 != '\0')" (( "(") (binary_expression "(char)uVar8 != '\0'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            return uVar8;\n          }" ({ "{") (return_statement "return uVar8;" (return "return") (identifier "uVar8") (; ";")) (} "}"))) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" (identifier "lVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (if_statement "if ((int)param_2[7] != 0) {\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" (if "if") (parenthesized_expression "((int)param_2[7] != 0)" (( "(") (binary_expression "(int)param_2[7] != 0" (cast_expression "(int)param_2[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = 0;\n          goto LAB_0026e1be;\n        }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0026e1be;" (goto "goto") (statement_identifier "LAB_0026e1be") (; ";")) (} "}"))) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0026e1e8;" (goto "goto") (statement_identifier "LAB_0026e1e8") (; ";")) (} "}"))) (expression_statement "lVar9 = 8;" (assignment_expression "lVar9 = 8" (identifier "lVar9") (= "=") (number_literal "8")) (; ";")) (expression_statement "__s1 = local_58[0] + 8;" (assignment_expression "__s1 = local_58[0] + 8" (identifier "__s1") (= "=") (binary_expression "local_58[0] + 8" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "pbVar12 = (byte *)".zdebug_";" (assignment_expression "pbVar12 = (byte *)".zdebug_"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)".zdebug_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".zdebug_"" (" """) (string_content ".zdebug_") (" """)))) (; ";")) (expression_statement "pbVar13 = local_58[0];" (assignment_expression "pbVar13 = local_58[0]" (identifier "pbVar13") (= "=") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]"))) (; ";")) (do_statement "do {\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (lVar9 == 0) break;\n        lVar9 = lVar9 + -1;\n        bVar16 = *pbVar12 < *pbVar13;\n        bVar18 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar12 < *pbVar13;" (assignment_expression "bVar16 = *pbVar12 < *pbVar13" (identifier "bVar16") (= "=") (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "bVar18 = *pbVar12 == *pbVar13;" (assignment_expression "bVar18 = *pbVar12 == *pbVar13" (identifier "bVar18") (= "=") (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar12 + (ulong)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (if_statement "if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;" (if "if") (parenthesized_expression "((!bVar16 && !bVar18) == bVar16)" (( "(") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_0026e0e2;" (goto "goto") (statement_identifier "LAB_0026e0e2") (; ";"))) (labeled_statement "LAB_0026e101:\n      if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" (statement_identifier "LAB_0026e101") (: ":") (if_statement "if (pbVar2 != local_48) {\n        FUN_002a2980(pbVar2);\n      }" (if "if") (parenthesized_expression "(pbVar2 != local_48)" (( "(") (binary_expression "pbVar2 != local_48" (identifier "pbVar2") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        FUN_002a2980(pbVar2);\n      }" ({ "{") (expression_statement "FUN_002a2980(pbVar2);" (call_expression "FUN_002a2980(pbVar2)" (identifier "FUN_002a2980") (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = uVar11 < *(uint *)(param_2 + 7);" (assignment_expression "uVar15 = uVar11 < *(uint *)(param_2 + 7)" (identifier "uVar15") (= "=") (binary_expression "uVar11 < *(uint *)(param_2 + 7)" (identifier "uVar11") (< "<") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))))) (; ";")) (expression_statement "uVar17 = uVar11 == *(uint *)(param_2 + 7);" (assignment_expression "uVar17 = uVar11 == *(uint *)(param_2 + 7)" (identifier "uVar17") (= "=") (binary_expression "uVar11 == *(uint *)(param_2 + 7)" (identifier "uVar11") (== "==") (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar15)" (( "(") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15")) () ")")) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (labeled_statement "LAB_0026e1be:\n  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" (statement_identifier "LAB_0026e1be") (: ":") (expression_statement "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);" (assignment_expression "iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(lVar9 + 0xa0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(lVar9 + 0xa0))" (( "(") (pointer_expression "**(code **)(lVar9 + 0xa0)" (* "*") (pointer_expression "*(code **)(lVar9 + 0xa0)" (* "*") (cast_expression "(code **)(lVar9 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0xa0)" (( "(") (binary_expression "lVar9 + 0xa0" (identifier "lVar9") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")")))) (; ";"))) (if_statement "if (((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" (if "if") (parenthesized_expression "(((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5))" (( "(") (binary_expression "((iVar4 == 9) || (iVar4 == 4)) &&\n     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" (parenthesized_expression "((iVar4 == 9) || (iVar4 == 4))" (( "(") (binary_expression "(iVar4 == 9) || (iVar4 == 4)" (parenthesized_expression "(iVar4 == 9)" (( "(") (binary_expression "iVar4 == 9" (identifier "iVar4") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar4 == 4)" (( "(") (binary_expression "iVar4 == 4" (identifier "iVar4") (== "==") (number_literal "4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)" (( "(") (comma_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5" (assignment_expression "uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(*param_2 + 0xb0))(param_2,uVar14)" (parenthesized_expression "(**(code **)(*param_2 + 0xb0))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xb0)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xb0)" (* "*") (cast_expression "(code **)(*param_2 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xb0)" (( "(") (binary_expression "*param_2 + 0xb0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(param_2,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar14") () ")")))) (, ",") (binary_expression "uVar11 == uVar5" (identifier "uVar11") (== "==") (identifier "uVar5"))) () ")"))) () ")")) (compound_statement "{\n    lVar9 = *param_2;\n    goto LAB_0026e1e8;\n  }" ({ "{") (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" (identifier "lVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (goto_statement "goto LAB_0026e1e8;" (goto "goto") (statement_identifier "LAB_0026e1e8") (; ";")) (} "}"))) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" (identifier "lVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(uint *)(param_2 + 7) <= uVar14) {\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_2 + 7) <= uVar14)" (( "(") (binary_expression "*(uint *)(param_2 + 7) <= uVar14" (pointer_expression "*(uint *)(param_2 + 7)" (* "*") (cast_expression "(uint *)(param_2 + 7)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 7)" (( "(") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7")) () ")")))) (<= "<=") (identifier "uVar14")) () ")")) (compound_statement "{\n    uVar14 = 0;\nLAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }\n    lVar9 = *param_2;\n    if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    *(undefined8 **)(param_1 + 0x48) = puVar7;\n    (*pcVar10)(puVar7,uVar14,iVar4);\n    *(int *)(param_1 + 0x50) = iVar4;\n    return 1;\n  }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0026e1e8:\n    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" (statement_identifier "LAB_0026e1e8") (: ":") (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }\n    else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" (if "if") (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" (( "(") (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" (* "*") (cast_expression "(code **)(lVar9 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_001a1b10")) () ")")) (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x1c8))();\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x1c8)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x1c8)" (* "*") (cast_expression "(code **)(lVar9 + 0x1c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x1c8)" (( "(") (binary_expression "lVar9 + 0x1c8" (identifier "lVar9") (+ "+") (number_literal "0x1c8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" (else "else") (compound_statement "{\n      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x10)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x10)" (* "*") (cast_expression "(code **)(lVar9 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}"))))) (expression_statement "lVar9 = *param_2;" (assignment_expression "lVar9 = *param_2" (identifier "lVar9") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (iVar6 == 0x20) {\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }\n    else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0x20)" (( "(") (binary_expression "iVar6 == 0x20" (identifier "iVar6") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fe0;\n      *puVar7 = &PTR_FUN_003e6250;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" ({ "{") (if_statement "if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }\n      else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" (if "if") (parenthesized_expression "(*(code **)(lVar9 + 0x18) == FUN_001a1b20)" (( "(") (binary_expression "*(code **)(lVar9 + 0x18) == FUN_001a1b20" (pointer_expression "*(code **)(lVar9 + 0x18)" (* "*") (cast_expression "(code **)(lVar9 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (identifier "FUN_001a1b20")) () ")")) (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x1d0))();\n      }" ({ "{") (expression_statement "cVar3 = (**(code **)(lVar9 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x1d0))()" (identifier "cVar3") (= "=") (call_expression "(**(code **)(lVar9 + 0x1d0))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1d0))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x1d0)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x1d0)" (* "*") (cast_expression "(code **)(lVar9 + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x1d0)" (( "(") (binary_expression "lVar9 + 0x1d0" (identifier "lVar9") (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" (else "else") (compound_statement "{\n        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);\n      }" ({ "{") (expression_statement "cVar3 = (**(code **)(lVar9 + 0x18))(param_2);" (assignment_expression "cVar3 = (**(code **)(lVar9 + 0x18))(param_2)" (identifier "cVar3") (= "=") (call_expression "(**(code **)(lVar9 + 0x18))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x18))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x18)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x18)" (* "*") (cast_expression "(code **)(lVar9 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (if_statement "if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");\n      }" ({ "{") (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" (identifier "FUN_00199900") (argument_list "("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x68") (, ",") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a11b0(0x48)" (identifier "FUN_002a11b0") (argument_list "(0x48)" (( "(") (number_literal "0x48") () ")"))))) (; ";")) (expression_statement "pcVar10 = FUN_00270fe0;" (assignment_expression "pcVar10 = FUN_00270fe0" (identifier "pcVar10") (= "=") (identifier "FUN_00270fe0")) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_003e6250;" (assignment_expression "*puVar7 = &PTR_FUN_003e6250" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_003e6250" (& "&") (identifier "PTR_FUN_003e6250"))) (; ";")) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" (else "else") (compound_statement "{\n      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }\n      if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }\n      pcVar10 = *(code **)(*param_2 + 0x18);\n      if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }\n      if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }\n      puVar7 = (undefined8 *)FUN_002a11b0(0x48);\n      pcVar10 = FUN_00270fa0;\n      *puVar7 = &PTR_FUN_003e62a0;\n      puVar7[1] = param_2;\n      puVar7[2] = param_3;\n      *(undefined4 *)(puVar7 + 4) = 0;\n      puVar7[3] = param_4;\n      puVar7[5] = 0;\n      puVar7[6] = 0;\n      puVar7[7] = 0;\n      *(undefined4 *)(puVar7 + 8) = 0;\n    }" ({ "{") (if_statement "if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }\n      else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" (if "if") (parenthesized_expression "(*(code **)(lVar9 + 0x10) == FUN_001a1b10)" (( "(") (binary_expression "*(code **)(lVar9 + 0x10) == FUN_001a1b10" (pointer_expression "*(code **)(lVar9 + 0x10)" (* "*") (cast_expression "(code **)(lVar9 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_001a1b10")) () ")")) (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x1c8))();\n      }" ({ "{") (expression_statement "iVar6 = (**(code **)(lVar9 + 0x1c8))();" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x1c8))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(lVar9 + 0x1c8))()" (parenthesized_expression "(**(code **)(lVar9 + 0x1c8))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x1c8)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x1c8)" (* "*") (cast_expression "(code **)(lVar9 + 0x1c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x1c8)" (( "(") (binary_expression "lVar9 + 0x1c8" (identifier "lVar9") (+ "+") (number_literal "0x1c8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" (else "else") (compound_statement "{\n        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);\n      }" ({ "{") (expression_statement "iVar6 = (**(code **)(lVar9 + 0x10))(param_2);" (assignment_expression "iVar6 = (**(code **)(lVar9 + 0x10))(param_2)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(lVar9 + 0x10))(param_2)" (parenthesized_expression "(**(code **)(lVar9 + 0x10))" (( "(") (pointer_expression "**(code **)(lVar9 + 0x10)" (* "*") (pointer_expression "*(code **)(lVar9 + 0x10)" (* "*") (cast_expression "(code **)(lVar9 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar6 != 0x40) {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" (if "if") (parenthesized_expression "(iVar6 != 0x40)" (( "(") (binary_expression "iVar6 != 0x40" (identifier "iVar6") (!= "!=") (number_literal "0x40")) () ")")) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");\n      }" ({ "{") (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" (identifier "FUN_00199900") (argument_list "("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x8b") (, ",") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(*param_2 + 0x18);" (assignment_expression "pcVar10 = *(code **)(*param_2 + 0x18)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(*param_2 + 0x18)" (* "*") (cast_expression "(code **)(*param_2 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x18)" (( "(") (binary_expression "*param_2 + 0x18" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (pcVar10 == FUN_001a1b20) {\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }\n      else {\n        cVar3 = (*pcVar10)(param_2);\n      }" (if "if") (parenthesized_expression "(pcVar10 == FUN_001a1b20)" (( "(") (binary_expression "pcVar10 == FUN_001a1b20" (identifier "pcVar10") (== "==") (identifier "FUN_001a1b20")) () ")")) (compound_statement "{\n        cVar3 = (**(code **)(*param_2 + 0x1d0))();\n      }" ({ "{") (expression_statement "cVar3 = (**(code **)(*param_2 + 0x1d0))();" (assignment_expression "cVar3 = (**(code **)(*param_2 + 0x1d0))()" (identifier "cVar3") (= "=") (call_expression "(**(code **)(*param_2 + 0x1d0))()" (parenthesized_expression "(**(code **)(*param_2 + 0x1d0))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x1d0)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x1d0)" (* "*") (cast_expression "(code **)(*param_2 + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x1d0)" (( "(") (binary_expression "*param_2 + 0x1d0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        cVar3 = (*pcVar10)(param_2);\n      }" (else "else") (compound_statement "{\n        cVar3 = (*pcVar10)(param_2);\n      }" ({ "{") (expression_statement "cVar3 = (*pcVar10)(param_2);" (assignment_expression "cVar3 = (*pcVar10)(param_2)" (identifier "cVar3") (= "=") (call_expression "(*pcVar10)(param_2)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (if_statement "if (cVar3 != '\0') {\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");\n      }" ({ "{") (expression_statement "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");" (call_expression "FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" (identifier "FUN_00199900") (argument_list "("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper")" (( "(") (string_literal ""../../gold/dwarf_reader.cc"" (" """) (string_content "../../gold/dwarf_reader.cc") (" """)) (, ",") (number_literal "0x7d") (, ",") (string_literal ""make_elf_reloc_mapper"" (" """) (string_content "make_elf_reloc_mapper") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined8 *)FUN_002a11b0(0x48);" (assignment_expression "puVar7 = (undefined8 *)FUN_002a11b0(0x48)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002a11b0(0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002a11b0(0x48)" (identifier "FUN_002a11b0") (argument_list "(0x48)" (( "(") (number_literal "0x48") () ")"))))) (; ";")) (expression_statement "pcVar10 = FUN_00270fa0;" (assignment_expression "pcVar10 = FUN_00270fa0" (identifier "pcVar10") (= "=") (identifier "FUN_00270fa0")) (; ";")) (expression_statement "*puVar7 = &PTR_FUN_003e62a0;" (assignment_expression "*puVar7 = &PTR_FUN_003e62a0" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "&PTR_FUN_003e62a0" (& "&") (identifier "PTR_FUN_003e62a0"))) (; ";")) (expression_statement "puVar7[1] = param_2;" (assignment_expression "puVar7[1] = param_2" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar7[2] = param_3;" (assignment_expression "puVar7[2] = param_3" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 4) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 4) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 4)" (( "(") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[3] = param_4;" (assignment_expression "puVar7[3] = param_4" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar7[5] = 0;" (assignment_expression "puVar7[5] = 0" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(puVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(puVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*(undefined8 **)(param_1 + 0x48) = puVar7;" (assignment_expression "*(undefined8 **)(param_1 + 0x48) = puVar7" (pointer_expression "*(undefined8 **)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "(*pcVar10)(puVar7,uVar14,iVar4);" (call_expression "(*pcVar10)(puVar7,uVar14,iVar4)" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "(puVar7,uVar14,iVar4)" (( "(") (identifier "puVar7") (, ",") (identifier "uVar14") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x50) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x50) = iVar4" (pointer_expression "*(int *)(param_1 + 0x50)" (* "*") (cast_expression "(int *)(param_1 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_0026e1be;" (goto "goto") (statement_identifier "LAB_0026e1be") (; ";")) (} "}")))

/* DWARF original prototype: bool read_section(Dwarf_pubnames_table * this, Relobj * object, uchar *
   symtab, off_t symtab_size) */

bool __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *object,type_3 *symtab,type_4 symtab_size)

{
  type_5 *var_24;
  char *var_7;
  type_6 sVar3;
  char var_18;
  int var_8;
  type_7 var_16;
  type_7 var_17;
  char *__s2;
  type_3 *var_12;
  type_5 **pp_Var9;
  type_8 *pEVar10;
  long var_3;
  type_9 *pcVar12;
  type_7 var_1;
  type_10 uVar14;
  type_11 *var_4;
  type_11 *var_5;
  type_7 var_15;
  char *__s1;
  type_12 uVar18;
  bool var_14;
  type_12 uVar20;
  bool bVar21;
  type_11 bVar22;
  type_6 var_2;
  type_12 var_9 [24];
  
  bVar22 = 0;
  var_7 = "gnu_pubtypes";
  uVar14 = 1;
  var_14 = this->is_pubtypes_ == false;
  if (var_14) {
    var_7 = "gnu_pubnames";
  }
  __s2 = "gnu_pubnames";
  if (!var_14) {
    __s2 = "gnu_pubtypes";
  }
  var_1 = (object->super_Object).shnum_;
  uVar18 = var_1 == 0;
  uVar20 = var_1 == 1;
  if (1 < var_1) {
    do {
      var_1 = (type_7)uVar14;
      (*(object->super_Object)._vptr_Object[0x10])(&var_2,object,uVar14);
      sVar3 = var_2;
      var_3 = 7;
      __s1 = (char *)(var_2 + 7);
      var_4 = (type_11 *)".debug_";
      var_5 = (type_11 *)var_2;
      do {
        if (var_3 == 0) break;
        var_3 = var_3 + -1;
        uVar18 = *var_4 < *var_5;
        uVar20 = *var_4 == *var_5;
        var_4 = var_4 + (type_10)bVar22 * -2 + 1;
        var_5 = var_5 + (type_10)bVar22 * -2 + 1;
      } while ((bool)uVar20);
      var_14 = false;
      bVar21 = (!(bool)uVar18 && !(bool)uVar20) == (bool)uVar18;
      if (bVar21) {
LAB_0026e0e2:
        var_8 = var_6(__s1,var_7 + 4);
        if (var_8 != 0) {
          var_8 = var_6(__s1,__s2);
          if (var_8 != 0) goto LAB_0026e101;
          this->is_gnu_style_ = true;
        }
        if ((type_12 *)sVar3 != var_9) {
          var_10((void *)sVar3);
        }
        if (var_1 == 0) {
          return false;
        }
        var_12 = var_13::var_11
                           (&object->super_Object,var_1,&var_2,&this->owns_buffer_,
                            (uint64_t *)0x0);
        this->buffer_ = var_12;
        if (var_12 == (type_3 *)0x0) {
          return false;
        }
        this->buffer_end_ = var_12 + var_2;
        pp_Var9 = (object->super_Object)._vptr_Object;
        if (pp_Var9[6] != var_13::do_is_incremental) {
          var_8 = (*pp_Var9[6])(object);
          if ((char)var_8 != '\0') {
            return (bool)(char)var_8;
          }
          pp_Var9 = (object->super_Object)._vptr_Object;
        }
        if ((object->super_Object).shnum_ != 0) {
          var_15 = 0;
          goto LAB_0026e1be;
        }
        var_16 = 0;
        var_15 = 0;
        goto LAB_0026e1e8;
      }
      var_3 = 8;
      __s1 = (char *)(var_2 + 8);
      var_4 = (type_11 *)".zdebug_";
      var_5 = (type_11 *)var_2;
      do {
        if (var_3 == 0) break;
        var_3 = var_3 + -1;
        var_14 = *var_4 < *var_5;
        bVar21 = *var_4 == *var_5;
        var_4 = var_4 + (type_10)bVar22 * -2 + 1;
        var_5 = var_5 + (type_10)bVar22 * -2 + 1;
      } while (bVar21);
      if ((!var_14 && !bVar21) == var_14) goto LAB_0026e0e2;
LAB_0026e101:
      if ((type_12 *)sVar3 != var_9) {
        var_10((void *)sVar3);
      }
      var_1 = var_1 + 1;
      uVar14 = (type_10)var_1;
      var_15 = (object->super_Object).shnum_;
      uVar18 = var_1 < var_15;
      uVar20 = var_1 == var_15;
    } while ((bool)uVar18);
  }
  return false;
LAB_0026e1be:
  var_16 = (*pp_Var9[0x14])(object,(type_10)var_15);
  if (((var_16 == 9) || (var_16 == 4)) &&
     (var_17 = (*(object->super_Object)._vptr_Object[0x16])(object,(type_10)var_15), var_1 == var_17))
  {
    pp_Var9 = (object->super_Object)._vptr_Object;
    goto LAB_0026e1e8;
  }
  var_15 = var_15 + 1;
  pp_Var9 = (object->super_Object)._vptr_Object;
  if ((object->super_Object).shnum_ <= var_15) {
    var_15 = 0;
LAB_0026e1e8:
    if (pp_Var9[2] == type_2::elfsize) {
      var_8 = (*pp_Var9[0x39])();
    }
    else {
      var_8 = (*pp_Var9[2])(object);
    }
    pp_Var9 = (object->super_Object)._vptr_Object;
    if (var_8 == 0x20) {
      if (pp_Var9[3] == type_2::is_big_endian) {
        var_8 = (*pp_Var9[0x3a])();
        var_18 = (char)var_8;
      }
      else {
        var_8 = (*pp_Var9[3])(object);
        var_18 = (char)var_8;
      }
      if (var_18 != '\0') {
                    /* WARNING: Subroutine does not return */
        var_19("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");
      }
      pEVar10 = (type_8 *)var_20(0x48);
      pcVar12 = var_21<32,var_22>::var_23;
      pEVar10->_vptr_Elf_reloc_mapper = (type_5 **)&PTR__Sized_elf_reloc_mapper_003e6250;
      pEVar10[1]._vptr_Elf_reloc_mapper = (type_5 **)object;
      pEVar10[2]._vptr_Elf_reloc_mapper = (type_5 **)symtab;
      *(type_13 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;
      pEVar10[3]._vptr_Elf_reloc_mapper = (type_5 **)symtab_size;
      pEVar10[5]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      pEVar10[6]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      pEVar10[7]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      *(type_13 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;
    }
    else {
      if (pp_Var9[2] == type_2::elfsize) {
        var_8 = (*pp_Var9[0x39])();
      }
      else {
        var_8 = (*pp_Var9[2])(object);
      }
      if (var_8 != 0x40) {
                    /* WARNING: Subroutine does not return */
        var_19("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");
      }
      pp_Var9 = (object->super_Object)._vptr_Object;
      var_24 = pp_Var9[3];
      if (var_24 == type_2::is_big_endian) {
        var_8 = (*pp_Var9[0x3a])();
        var_18 = (char)var_8;
      }
      else {
        var_8 = (*var_24)(object);
        var_18 = (char)var_8;
      }
      if (var_18 != '\0') {
                    /* WARNING: Subroutine does not return */
        var_19("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");
      }
      pEVar10 = (type_8 *)var_20(0x48);
      pcVar12 = var_21<64,var_22>::var_23;
      pEVar10->_vptr_Elf_reloc_mapper = (type_5 **)&PTR__Sized_elf_reloc_mapper_003e62a0;
      pEVar10[1]._vptr_Elf_reloc_mapper = (type_5 **)object;
      pEVar10[2]._vptr_Elf_reloc_mapper = (type_5 **)symtab;
      *(type_13 *)&pEVar10[4]._vptr_Elf_reloc_mapper = 0;
      pEVar10[3]._vptr_Elf_reloc_mapper = (type_5 **)symtab_size;
      pEVar10[5]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      pEVar10[6]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      pEVar10[7]._vptr_Elf_reloc_mapper = (type_5 **)0x0;
      *(type_13 *)&pEVar10[8]._vptr_Elf_reloc_mapper = 0;
    }
    this->reloc_mapper_ = pEVar10;
    (*pcVar12)(pEVar10,var_15,var_16);
    this->reloc_type_ = var_16;
    return true;
  }
  goto LAB_0026e1be;
}


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

undefined8 MASKED(long param_1,long *param_2,undefined8 param_3,undefined8 param_4)

{
  char *pcVar1;
  byte *pbVar2;
  char cVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  char *__s2;
  undefined8 *puVar7;
  undefined8 uVar8;
  long lVar9;
  code *pcVar10;
  uint uVar11;
  byte *pbVar12;
  byte *pbVar13;
  uint uVar14;
  byte *__s1;
  undefined1 uVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  byte bVar19;
  byte *local_58 [2];
  byte local_48 [24];
  
  bVar19 = 0;
  pcVar1 = "gnu_pubtypes";
  uVar11 = 1;
  bVar16 = *(char *)(param_1 + 0x30) == '\0';
  if (bVar16) {
    pcVar1 = "gnu_pubnames";
  }
  __s2 = "gnu_pubnames";
  if (!bVar16) {
    __s2 = "gnu_pubtypes";
  }
  uVar14 = *(uint *)(param_2 + 7);
  uVar15 = uVar14 == 0;
  uVar17 = uVar14 == 1;
  if (1 < uVar14) {
    do {
      (**(code **)(*param_2 + 0x80))(local_58,param_2,uVar11);
      pbVar2 = local_58[0];
      lVar9 = 7;
      __s1 = local_58[0] + 7;
      pbVar12 = (byte *)".debug_";
      pbVar13 = local_58[0];
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        uVar15 = *pbVar12 < *pbVar13;
        uVar17 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      } while ((bool)uVar17);
      bVar16 = false;
      bVar18 = (!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15;
      if (bVar18) {
LAB_0026e0e2:
        iVar4 = strcmp((char *)__s1,pcVar1 + 4);
        if (iVar4 != 0) {
          iVar4 = strcmp((char *)__s1,__s2);
          if (iVar4 != 0) goto LAB_0026e101;
          *(undefined1 *)(param_1 + 0x31) = 1;
        }
        if (pbVar2 != local_48) {
          FUN_002a2980(pbVar2);
        }
        if (uVar11 == 0) {
          return 0;
        }
        lVar9 = FUN_001c8230(param_2,uVar11,local_58,param_1 + 0x18,0);
        *(long *)(param_1 + 8) = lVar9;
        if (lVar9 == 0) {
          return 0;
        }
        *(byte **)(param_1 + 0x10) = local_58[0] + lVar9;
        lVar9 = *param_2;
        if (*(code **)(lVar9 + 0x30) != FUN_001a1ab0) {
          uVar8 = (**(code **)(lVar9 + 0x30))(param_2);
          if ((char)uVar8 != '\0') {
            return uVar8;
          }
          lVar9 = *param_2;
        }
        if ((int)param_2[7] != 0) {
          uVar14 = 0;
          goto LAB_0026e1be;
        }
        iVar4 = 0;
        uVar14 = 0;
        goto LAB_0026e1e8;
      }
      lVar9 = 8;
      __s1 = local_58[0] + 8;
      pbVar12 = (byte *)".zdebug_";
      pbVar13 = local_58[0];
      do {
        if (lVar9 == 0) break;
        lVar9 = lVar9 + -1;
        bVar16 = *pbVar12 < *pbVar13;
        bVar18 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (ulong)bVar19 * -2 + 1;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      if ((!bVar16 && !bVar18) == bVar16) goto LAB_0026e0e2;
LAB_0026e101:
      if (pbVar2 != local_48) {
        FUN_002a2980(pbVar2);
      }
      uVar11 = uVar11 + 1;
      uVar15 = uVar11 < *(uint *)(param_2 + 7);
      uVar17 = uVar11 == *(uint *)(param_2 + 7);
    } while ((bool)uVar15);
  }
  return 0;
LAB_0026e1be:
  iVar4 = (**(code **)(lVar9 + 0xa0))(param_2,uVar14);
  if (((iVar4 == 9) || (iVar4 == 4)) &&
     (uVar5 = (**(code **)(*param_2 + 0xb0))(param_2,uVar14), uVar11 == uVar5)) {
    lVar9 = *param_2;
    goto LAB_0026e1e8;
  }
  uVar14 = uVar14 + 1;
  lVar9 = *param_2;
  if (*(uint *)(param_2 + 7) <= uVar14) {
    uVar14 = 0;
LAB_0026e1e8:
    if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {
      iVar6 = (**(code **)(lVar9 + 0x1c8))();
    }
    else {
      iVar6 = (**(code **)(lVar9 + 0x10))(param_2);
    }
    lVar9 = *param_2;
    if (iVar6 == 0x20) {
      if (*(code **)(lVar9 + 0x18) == FUN_001a1b20) {
        cVar3 = (**(code **)(lVar9 + 0x1d0))();
      }
      else {
        cVar3 = (**(code **)(lVar9 + 0x18))(param_2);
      }
      if (cVar3 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x68,"make_elf_reloc_mapper");
      }
      puVar7 = (undefined8 *)FUN_002a11b0(0x48);
      pcVar10 = FUN_00270fe0;
      *puVar7 = &PTR_FUN_003e6250;
      puVar7[1] = param_2;
      puVar7[2] = param_3;
      *(undefined4 *)(puVar7 + 4) = 0;
      puVar7[3] = param_4;
      puVar7[5] = 0;
      puVar7[6] = 0;
      puVar7[7] = 0;
      *(undefined4 *)(puVar7 + 8) = 0;
    }
    else {
      if (*(code **)(lVar9 + 0x10) == FUN_001a1b10) {
        iVar6 = (**(code **)(lVar9 + 0x1c8))();
      }
      else {
        iVar6 = (**(code **)(lVar9 + 0x10))(param_2);
      }
      if (iVar6 != 0x40) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x8b,"make_elf_reloc_mapper");
      }
      pcVar10 = *(code **)(*param_2 + 0x18);
      if (pcVar10 == FUN_001a1b20) {
        cVar3 = (**(code **)(*param_2 + 0x1d0))();
      }
      else {
        cVar3 = (*pcVar10)(param_2);
      }
      if (cVar3 != '\0') {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/dwarf_reader.cc",0x7d,"make_elf_reloc_mapper");
      }
      puVar7 = (undefined8 *)FUN_002a11b0(0x48);
      pcVar10 = FUN_00270fa0;
      *puVar7 = &PTR_FUN_003e62a0;
      puVar7[1] = param_2;
      puVar7[2] = param_3;
      *(undefined4 *)(puVar7 + 4) = 0;
      puVar7[3] = param_4;
      puVar7[5] = 0;
      puVar7[6] = 0;
      puVar7[7] = 0;
      *(undefined4 *)(puVar7 + 8) = 0;
    }
    *(undefined8 **)(param_1 + 0x48) = puVar7;
    (*pcVar10)(puVar7,uVar14,iVar4);
    *(int *)(param_1 + 0x50) = iVar4;
    return 1;
  }
  goto LAB_0026e1be;
}

