
/* DWARF original prototype: bool sized_verify_dwo_list<true>(Dwo_file * this, uint shndx, File_list
   * files) */

bool __thiscall
gold::Dwo_file::sized_verify_dwo_list<true>(Dwo_file *this,uint shndx,File_list *files)

{
  ulong uVar1;
  ulong uVar2;
  pointer pcVar3;
  uint *puVar4;
  char *pcVar5;
  char *pcVar6;
  uint uVar7;
  pointer pDVar8;
  uint uVar9;
  ulong uVar10;
  uint uVar11;
  uint uVar12;
  bool bVar13;
  bool index_is_new;
  section_size_type index_len;
  undefined8 local_58 [5];
  
  if (shndx == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");
  }
  puVar4 = (uint *)Object::decompressed_section_contents
                             (&this->obj_->super_Object,shndx,&index_len,&index_is_new,
                              (uint64_t *)0x0);
  uVar11 = *puVar4;
  uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;
  if (uVar11 != 2) {
    (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);
    pcVar5 = this->name_;
    pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */
    gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11);
  }
  uVar11 = puVar4[1];
  uVar9 = puVar4[2];
  uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;
  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
  bVar13 = uVar9 == 0 || uVar11 == 0;
  if (uVar9 != 0 && uVar11 != 0) {
    uVar12 = puVar4[3];
    uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;
    uVar10 = (ulong)uVar12;
    if ((uint *)(index_len + (long)puVar4) <
        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4) {
      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);
      pcVar5 = this->name_;
      pcVar6 = (char *)gettext("%s: section %s is corrupt");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */
      gold_fatal(pcVar6,pcVar5,local_58[0]);
    }
    pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>
             )._M_impl._M_start;
    if (pDVar8 == (files->
                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).
                  _M_impl._M_finish) {
      bVar13 = true;
      uVar11 = 0;
    }
    else {
      uVar12 = uVar12 - 1;
      uVar11 = 0;
LAB_0015668a:
      do {
        uVar1 = pDVar8->dwo_id;
        uVar7 = uVar12 & (uint)uVar1;
        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);
        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];
        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
        if ((uVar9 != 0) &&
           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {
          do {
            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;
            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);
            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];
            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
            if (uVar9 == 0) break;
          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));
        }
        if (uVar9 != 0) {
          pDVar8 = pDVar8 + 1;
          if ((files->
              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).
              _M_impl._M_finish == pDVar8) break;
          goto LAB_0015668a;
        }
        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;
        uVar11 = uVar11 + 1;
        pDVar8 = pDVar8 + 1;
        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");
        printf(pcVar5,uVar1,pcVar3);
      } while ((files->
               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).
               _M_impl._M_finish != pDVar8);
      bVar13 = uVar11 == 0;
    }
    pcVar5 = (char *)gettext("Found %d missing .dwo files");
    gold_info(pcVar5,(ulong)uVar11);
    if (index_is_new != false) {
      operator_delete__(puVar4);
    }
  }
  return bVar13;
}



ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)

{
  uint *puVar1;
  ulong uVar2;
  uint *puVar3;
  char *__format;
  undefined8 uVar4;
  undefined8 uVar5;
  ulong *puVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  ulong uVar10;
  uint uVar11;
  char local_61;
  long local_60;
  undefined8 local_58 [5];
  
  if ((int)param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");
  }
  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);
  uVar9 = *puVar3;
  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
  if (uVar9 != 2) {
    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);
    uVar4 = *param_1;
    uVar5 = gettext("%s: section %s has unsupported version number %d");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */
    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);
  }
  uVar9 = puVar3[1];
  uVar8 = puVar3[2];
  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);
  if (uVar8 != 0 && uVar9 != 0) {
    uVar11 = puVar3[3];
    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;
    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;
    if ((uint *)(local_60 + (long)puVar3) <
        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {
      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);
      uVar4 = *param_1;
      uVar5 = gettext("%s: section %s is corrupt");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */
      FUN_00168f60(uVar5,uVar4,local_58[0]);
    }
    puVar6 = (ulong *)*param_3;
    if (puVar6 == (ulong *)param_3[1]) {
      uVar10 = 1;
      iVar7 = 0;
    }
    else {
      uVar11 = uVar11 - 1;
      iVar7 = 0;
LAB_0015668a:
      do {
        uVar10 = *puVar6;
        uVar8 = uVar11 & (uint)uVar10;
        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);
        uVar9 = puVar1[uVar8];
        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
        if ((uVar9 != 0) &&
           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {
          do {
            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;
            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);
            uVar9 = puVar1[uVar8];
            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
            if (uVar9 == 0) break;
          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));
        }
        if (uVar9 != 0) {
          puVar6 = puVar6 + 5;
          if ((ulong *)param_3[1] == puVar6) break;
          goto LAB_0015668a;
        }
        uVar2 = puVar6[1];
        iVar7 = iVar7 + 1;
        puVar6 = puVar6 + 5;
        __format = (char *)gettext("missing .dwo file: %016llx %s\n");
        printf(__format,uVar10,uVar2);
      } while ((ulong *)param_3[1] != puVar6);
      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);
    }
    uVar4 = gettext("Found %d missing .dwo files");
    FUN_00169200(uVar4,iVar7);
    if (local_61 != '\0') {
      thunk_FUN_00276d20(puVar3);
    }
  }
  return uVar10 & 0xffffffff;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
TEST ESI,ESI
JZ 0x00156797
MOV RBP,RDI
MOV RDI,qword ptr [RDI + 0x8]
XOR R8D,R8D
MOV R15,RDX
LEA RCX,[RSP + 0x27]
LEA RDX,[RSP + 0x28]
MOV EBX,ESI
CALL 0x0019ae10
MOV R12D,dword ptr [RAX]
MOV R8,RAX
BSWAP R12D
CMP R12D,0x2
JNZ 0x001567eb
MOV EDX,dword ptr [RAX + 0x4]
MOV ESI,dword ptr [RAX + 0x8]
BSWAP EDX
TEST EDX,EDX
BSWAP ESI
SETZ AL
TEST ESI,ESI
SETZ R12B
OR R12B,AL
JNZ 0x0015672a
IMUL ESI,EDX
MOV R13D,dword ptr [R8 + 0xc]
MOV EDX,EDX
LEA R14,[R8 + 0x10]
MOV R9,qword ptr [RSP + 0x28]
BSWAP R13D
MOV EDI,R13D
LEA RAX,[RDX + RSI*0x2]
LEA R12,[R14 + RDI*0x8]
ADD R9,R8
ADD RAX,RDI
LEA RAX,[R12 + RAX*0x4]
CMP R9,RAX
JC 0x001567af
MOV RBX,qword ptr [R15]
CMP RBX,qword ptr [R15 + 0x8]
JZ 0x0015678a
SUB R13D,0x1
XOR EBP,EBP
JMP 0x0015668a
ADD RBX,0x28
CMP qword ptr [R15 + 0x8],RBX
JZ 0x001566fb
MOV RSI,qword ptr [RBX]
MOV EDX,R13D
AND EDX,ESI
MOV R9D,EDX
MOV RAX,qword ptr [R14 + R9*0x8]
BSWAP RAX
MOV RDI,RAX
MOV EAX,dword ptr [R12 + R9*0x4]
BSWAP EAX
TEST EAX,EAX
JZ 0x001566b2
CMP RSI,RDI
JNZ 0x00156740
TEST EAX,EAX
JNZ 0x00156680
MOV RDX,qword ptr [RBX + 0x8]
MOV qword ptr [RSP + 0x18],R8
ADD EBP,0x1
ADD RBX,0x28
LEA RDI,[0x3077c0]
MOV qword ptr [RSP + 0x10],RSI
MOV qword ptr [RSP + 0x8],RDX
CALL 0x0013e320
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0013e090
MOV R8,qword ptr [RSP + 0x18]
CMP qword ptr [R15 + 0x8],RBX
JNZ 0x0015668a
TEST EBP,EBP
SETZ R12B
LEA RDI,[0x3077f9]
MOV qword ptr [RSP + 0x8],R8
CALL 0x0013e320
MOV ESI,EBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00169200
CMP byte ptr [RSP + 0x27],0x0
MOV R8,qword ptr [RSP + 0x8]
JNZ 0x00156780
ADD RSP,0x58
MOV EAX,R12D
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R9,RSI
SHR R9,0x20
AND R9D,R13D
OR R9D,0x1
NOP
ADD EDX,R9D
AND EDX,R13D
MOV R10D,EDX
MOV RAX,qword ptr [R14 + R10*0x8]
BSWAP RAX
MOV RDI,RAX
MOV EAX,dword ptr [R12 + R10*0x4]
BSWAP EAX
TEST EAX,EAX
JZ 0x001566b2
CMP RSI,RDI
JNZ 0x00156750
JMP 0x001566b2
MOV RDI,R8
CALL 0x00276cf0
JMP 0x0015672a
MOV R12D,0x1
XOR EBP,EBP
JMP 0x00156701
LEA RDX,[0x307c60]
MOV ESI,0x504
LEA RDI,[0x307004]
CALL 0x0016cdf0
MOV RSI,qword ptr [RBP + 0x8]
LEA R12,[RSP + 0x30]
MOV EDX,EBX
MOV RDI,R12
MOV RAX,qword ptr [RSI]
CALL qword ptr [RAX + 0x80]
MOV R13,qword ptr [RSP + 0x30]
MOV RBX,qword ptr [RBP]
LEA RDI,[0x3077df]
CALL 0x0013e320
MOV RDI,RAX
MOV RDX,R13
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00168f60
MOV RSI,qword ptr [RBP + 0x8]
LEA R13,[RSP + 0x30]
MOV EDX,EBX
MOV RDI,R13
MOV RAX,qword ptr [RSI]
CALL qword ptr [RAX + 0x80]
MOV R14,qword ptr [RSP + 0x30]
MOV RBX,qword ptr [RBP]
LEA RDI,[0x307788]
CALL 0x0013e320
MOV ECX,R12D
MOV RDI,RAX
MOV RDX,R14
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00168f60
(translation_unit "ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)\n\n{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}\n\n" (function_definition "ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)\n\n{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" type_identifier (function_declarator "FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)" identifier (parameter_list "(undefined8 *param_1,ulong param_2,long *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char local_61;" primitive_type identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_58 [5];" type_identifier (array_declarator "local_58 [5]" identifier [ number_literal ]) ;) (if_statement "if ((int)param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" if (parenthesized_expression "((int)param_2 == 0)" ( (binary_expression "(int)param_2 == 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" identifier (argument_list "("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""sized_verify_dwo_list"" " string_content ") ))) ;) })) (expression_statement "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);" (assignment_expression "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" identifier = (cast_expression "(uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" identifier (argument_list "(param_1[1],param_2,&local_60,&local_61,0)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_61" & identifier) , number_literal ))))) ;) (expression_statement "uVar9 = *puVar3;" (assignment_expression "uVar9 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" if (parenthesized_expression "(uVar9 != 2)" ( (binary_expression "uVar9 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" { (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" * (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" * (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[1] + 0x80)" ( (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" * (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" ( identifier , (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "param_2 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: section %s has unsupported version number %d");" (assignment_expression "uVar5 = gettext("%s: section %s has unsupported version number %d")" identifier = (call_expression "gettext("%s: section %s has unsupported version number %d")" identifier (argument_list "("%s: section %s has unsupported version number %d")" ( (string_literal ""%s: section %s has unsupported version number %d"" " string_content ") )))) ;) comment comment (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9)" identifier (argument_list "(uVar5,uVar4,local_58[0],uVar9)" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) , identifier ))) ;) })) (expression_statement "uVar9 = puVar3[1];" (assignment_expression "uVar9 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar3[2];" (assignment_expression "uVar8 = puVar3[2]" identifier = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);" (assignment_expression "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0)" identifier = (call_expression "(ulong)(uVar8 == 0 || uVar9 == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar8 == 0 || uVar9 == 0)" ( (binary_expression "uVar8 == 0 || uVar9 == 0" (binary_expression "uVar8 == 0" identifier == number_literal) || (binary_expression "uVar9 == 0" identifier == number_literal)) )))) ;) (if_statement "if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" if (parenthesized_expression "(uVar8 != 0 && uVar9 != 0)" ( (binary_expression "uVar8 != 0 && uVar9 != 0" (binary_expression "uVar8 != 0" identifier != number_literal) && (binary_expression "uVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" { (expression_statement "uVar11 = puVar3[3];" (assignment_expression "uVar11 = puVar3[3]" identifier = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;" (assignment_expression "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4" identifier = (binary_expression "puVar3 + (ulong)uVar11 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar11 * 2" identifier + (binary_expression "(ulong)uVar11 * 2" (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" if (parenthesized_expression "((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11)" ( (binary_expression "(uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (cast_expression "(uint *)(local_60 + (long)puVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + (long)puVar3)" ( (binary_expression "local_60 + (long)puVar3" identifier + (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2" (binary_expression "puVar1 + (ulong)uVar9" identifier + (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier)) + (binary_expression "(ulong)(uVar8 * uVar9) * 2" (call_expression "(ulong)(uVar8 * uVar9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar8 * uVar9)" ( (binary_expression "uVar8 * uVar9" identifier * identifier) ))) * number_literal)) + (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) )) (compound_statement "{\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" { (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" * (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" * (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[1] + 0x80)" ( (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" * (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" ( identifier , (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "param_2 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: section %s is corrupt");" (assignment_expression "uVar5 = gettext("%s: section %s is corrupt")" identifier = (call_expression "gettext("%s: section %s is corrupt")" identifier (argument_list "("%s: section %s is corrupt")" ( (string_literal ""%s: section %s is corrupt"" " string_content ") )))) ;) comment comment (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0]);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0])" identifier (argument_list "(uVar5,uVar4,local_58[0])" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "puVar6 = (ulong *)*param_3;" (assignment_expression "puVar6 = (ulong *)*param_3" identifier = (cast_expression "(ulong *)*param_3" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" if (parenthesized_expression "(puVar6 == (ulong *)param_3[1])" ( (binary_expression "puVar6 == (ulong *)param_3[1]" identifier == (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      uVar10 = 1;\n      iVar7 = 0;\n    }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" else (compound_statement "{\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" { (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" statement_identifier : (do_statement "do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" do (compound_statement "{\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      }" { (expression_statement "uVar10 = *puVar6;" (assignment_expression "uVar10 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar8 = uVar11 & (uint)uVar10;" (assignment_expression "uVar8 = uVar11 & (uint)uVar10" identifier = (binary_expression "uVar11 & (uint)uVar10" identifier & (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" * (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" ( (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" identifier + (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" identifier = (subscript_expression "puVar1[uVar8]" identifier [ identifier ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" if (parenthesized_expression "((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)))" ( (binary_expression "(uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) ))) )) (compound_statement "{\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" { (do_statement "do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));" do (compound_statement "{\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          }" { (expression_statement "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;" (assignment_expression "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" identifier = (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1)" identifier + (parenthesized_expression "((uint)(uVar10 >> 0x20) & uVar11 | 1)" ( (binary_expression "(uint)(uVar10 >> 0x20) & uVar11 | 1" (binary_expression "(uint)(uVar10 >> 0x20) & uVar11" (call_expression "(uint)(uVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 >> 0x20)" ( (binary_expression "uVar10 >> 0x20" identifier >> number_literal) ))) & identifier) | number_literal) ))) & identifier)) ;) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" * (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" ( (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" identifier + (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" identifier = (subscript_expression "puVar1[uVar8]" identifier [ identifier ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) )) ;) })) (if_statement "if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" { (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (if_statement "if ((ulong *)param_3[1] == puVar6) break;" if (parenthesized_expression "((ulong *)param_3[1] == puVar6)" ( (binary_expression "(ulong *)param_3[1] == puVar6" (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0015668a;" goto statement_identifier ;) })) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (expression_statement "__format = (char *)gettext("missing .dwo file: %016llx %s\n");" (assignment_expression "__format = (char *)gettext("missing .dwo file: %016llx %s\n")" identifier = (cast_expression "(char *)gettext("missing .dwo file: %016llx %s\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("missing .dwo file: %016llx %s\n")" identifier (argument_list "("missing .dwo file: %016llx %s\n")" ( (string_literal ""missing .dwo file: %016llx %s\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "printf(__format,uVar10,uVar2);" (call_expression "printf(__format,uVar10,uVar2)" identifier (argument_list "(__format,uVar10,uVar2)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((ulong *)param_3[1] != puVar6)" ( (binary_expression "(ulong *)param_3[1] != puVar6" (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;)) (expression_statement "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);" (assignment_expression "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" identifier = (call_expression "CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" identifier (argument_list "((int7)((ulong)puVar1 >> 8),iVar7 == 0)" ( (call_expression "(int7)((ulong)puVar1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "((ulong)puVar1 >> 8)" ( (binary_expression "(ulong)puVar1 >> 8" (cast_expression "(ulong)puVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "iVar7 == 0" identifier == number_literal) )))) ;) }))) (expression_statement "uVar4 = gettext("Found %d missing .dwo files");" (assignment_expression "uVar4 = gettext("Found %d missing .dwo files")" identifier = (call_expression "gettext("Found %d missing .dwo files")" identifier (argument_list "("Found %d missing .dwo files")" ( (string_literal ""Found %d missing .dwo files"" " string_content ") )))) ;) (expression_statement "FUN_00169200(uVar4,iVar7);" (call_expression "FUN_00169200(uVar4,iVar7)" identifier (argument_list "(uVar4,iVar7)" ( identifier , identifier ))) ;) (if_statement "if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }" if (parenthesized_expression "(local_61 != '\0')" ( (binary_expression "local_61 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      thunk_FUN_00276d20(puVar3);\n    }" { (expression_statement "thunk_FUN_00276d20(puVar3);" (call_expression "thunk_FUN_00276d20(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) })) })) (return_statement "return uVar10 & 0xffffffff;" return (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) ;) })))
(translation_unit "/* DWARF original prototype: bool sized_verify_dwo_list<true>(Dwo_file * this, uint shndx, File_list\n   * files) */\n\nbool __thiscall\ngold::Dwo_file::sized_verify_dwo_list<true>(Dwo_file *this,uint shndx,File_list *files)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  pointer pcVar3;\n  uint *puVar4;\n  char *pcVar5;\n  char *pcVar6;\n  uint uVar7;\n  pointer pDVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  uint uVar12;\n  bool bVar13;\n  bool index_is_new;\n  section_size_type index_len;\n  undefined8 local_58 [5];\n  \n  if (shndx == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar4 = (uint *)Object::decompressed_section_contents\n                             (&this->obj_->super_Object,shndx,&index_len,&index_is_new,\n                              (uint64_t *)0x0);\n  uVar11 = *puVar4;\n  uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n  if (uVar11 != 2) {\n    (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n    pcVar5 = this->name_;\n    pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11);\n  }\n  uVar11 = puVar4[1];\n  uVar9 = puVar4[2];\n  uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  bVar13 = uVar9 == 0 || uVar11 == 0;\n  if (uVar9 != 0 && uVar11 != 0) {\n    uVar12 = puVar4[3];\n    uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n    uVar10 = (ulong)uVar12;\n    if ((uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4) {\n      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n      pcVar5 = this->name_;\n      pcVar6 = (char *)gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      gold_fatal(pcVar6,pcVar5,local_58[0]);\n    }\n    pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start;\n    if (pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish) {\n      bVar13 = true;\n      uVar11 = 0;\n    }\n    else {\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }\n    pcVar5 = (char *)gettext("Found %d missing .dwo files");\n    gold_info(pcVar5,(ulong)uVar11);\n    if (index_is_new != false) {\n      operator_delete__(puVar4);\n    }\n  }\n  return bVar13;\n}\n\n" comment (declaration "bool __thiscall\ngold::Dwo_file::sized_verify_dwo_list<true>(Dwo_file *this,uint shndx,File_list *files)\n\n{\n  ulong uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dwo_file::sized_verify_dwo_list<true>(Dwo_file" identifier : : identifier : : identifier < true > ( identifier) (pointer_declarator "*this" * identifier) , (ERROR "uint" identifier) identifier , (ERROR "File_list *files)\n\n{\n  ulong" identifier (pointer_declarator "*files" * identifier) ) { identifier) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "pointer pcVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "pointer pDVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool index_is_new;" primitive_type identifier ;) (declaration "section_size_type index_len;" type_identifier identifier ;) (declaration "undefined8 local_58 [5];" type_identifier (array_declarator "local_58 [5]" identifier [ number_literal ]) ;) (if_statement "if (shndx == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" if (parenthesized_expression "(shndx == 0)" ( (binary_expression "shndx == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");" (call_expression "do_gold_unreachable("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" identifier (argument_list "("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""sized_verify_dwo_list"" " string_content ") ))) ;) })) (ERROR "puVar4 = (uint *)Object::" (assignment_expression "puVar4 = (uint *)Object" identifier = (cast_expression "(uint *)Object" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "decompressed_section_contents\n                             (&this->obj_->super_Object,shndx,&index_len,&index_is_new,\n                              (uint64_t *)0x0);" (call_expression "decompressed_section_contents\n                             (&this->obj_->super_Object,shndx,&index_len,&index_is_new,\n                              (uint64_t *)0x0)" identifier (argument_list "(&this->obj_->super_Object,shndx,&index_len,&index_is_new,\n                              (uint64_t *)0x0)" ( (pointer_expression "&this->obj_->super_Object" & (field_expression "this->obj_->super_Object" (field_expression "this->obj_" identifier -> field_identifier) -> field_identifier)) , identifier , (pointer_expression "&index_len" & identifier) , (pointer_expression "&index_is_new" & identifier) , (cast_expression "(uint64_t *)0x0" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "uVar11 = *puVar4;" (assignment_expression "uVar11 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar11 != 2) {\n    (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n    pcVar5 = this->name_;\n    pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11);\n  }" if (parenthesized_expression "(uVar11 != 2)" ( (binary_expression "uVar11 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n    pcVar5 = this->name_;\n    pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */\n    gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11);\n  }" { (expression_statement "(*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);" (call_expression "(*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx)" (parenthesized_expression "(*(this->obj_->super_Object)._vptr_Object[0x10])" ( (pointer_expression "*(this->obj_->super_Object)._vptr_Object[0x10]" * (subscript_expression "(this->obj_->super_Object)._vptr_Object[0x10]" (field_expression "(this->obj_->super_Object)._vptr_Object" (parenthesized_expression "(this->obj_->super_Object)" ( (field_expression "this->obj_->super_Object" (field_expression "this->obj_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(local_58,this->obj_,shndx)" ( identifier , (field_expression "this->obj_" identifier -> field_identifier) , identifier ))) ;) (expression_statement "pcVar5 = this->name_;" (assignment_expression "pcVar5 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d");" (assignment_expression "pcVar6 = (char *)gettext("%s: section %s has unsupported version number %d")" identifier = (cast_expression "(char *)gettext("%s: section %s has unsupported version number %d")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: section %s has unsupported version number %d")" identifier (argument_list "("%s: section %s has unsupported version number %d")" ( (string_literal ""%s: section %s has unsupported version number %d"" " string_content ") ))))) ;) comment comment (expression_statement "gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11);" (call_expression "gold_fatal(pcVar6,pcVar5,local_58[0],(ulong)uVar11)" identifier (argument_list "(pcVar6,pcVar5,local_58[0],(ulong)uVar11)" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) })) (expression_statement "uVar11 = puVar4[1];" (assignment_expression "uVar11 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar4[2];" (assignment_expression "uVar9 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar13 = uVar9 == 0 || uVar11 == 0;" (assignment_expression "bVar13 = uVar9 == 0 || uVar11 == 0" identifier = (binary_expression "uVar9 == 0 || uVar11 == 0" (binary_expression "uVar9 == 0" identifier == number_literal) || (binary_expression "uVar11 == 0" identifier == number_literal))) ;) (if_statement "if (uVar9 != 0 && uVar11 != 0) {\n    uVar12 = puVar4[3];\n    uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n    uVar10 = (ulong)uVar12;\n    if ((uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4) {\n      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n      pcVar5 = this->name_;\n      pcVar6 = (char *)gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      gold_fatal(pcVar6,pcVar5,local_58[0]);\n    }\n    pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start;\n    if (pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish) {\n      bVar13 = true;\n      uVar11 = 0;\n    }\n    else {\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }\n    pcVar5 = (char *)gettext("Found %d missing .dwo files");\n    gold_info(pcVar5,(ulong)uVar11);\n    if (index_is_new != false) {\n      operator_delete__(puVar4);\n    }\n  }" if (parenthesized_expression "(uVar9 != 0 && uVar11 != 0)" ( (binary_expression "uVar9 != 0 && uVar11 != 0" (binary_expression "uVar9 != 0" identifier != number_literal) && (binary_expression "uVar11 != 0" identifier != number_literal)) )) (compound_statement "{\n    uVar12 = puVar4[3];\n    uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;\n    uVar10 = (ulong)uVar12;\n    if ((uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4) {\n      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n      pcVar5 = this->name_;\n      pcVar6 = (char *)gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      gold_fatal(pcVar6,pcVar5,local_58[0]);\n    }\n    pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start;\n    if (pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish) {\n      bVar13 = true;\n      uVar11 = 0;\n    }\n    else {\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }\n    pcVar5 = (char *)gettext("Found %d missing .dwo files");\n    gold_info(pcVar5,(ulong)uVar11);\n    if (index_is_new != false) {\n      operator_delete__(puVar4);\n    }\n  }" { (expression_statement "uVar12 = puVar4[3];" (assignment_expression "uVar12 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "uVar12 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar10 = (ulong)uVar12;" (assignment_expression "uVar10 = (ulong)uVar12" identifier = (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if ((uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4) {\n      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n      pcVar5 = this->name_;\n      pcVar6 = (char *)gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      gold_fatal(pcVar6,pcVar5,local_58[0]);\n    }" if (parenthesized_expression "((uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4)" ( (binary_expression "(uint *)(index_len + (long)puVar4) <\n        puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4" (cast_expression "(uint *)(index_len + (long)puVar4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(index_len + (long)puVar4)" ( (binary_expression "index_len + (long)puVar4" identifier + (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3 + 4" (binary_expression "puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2 + uVar10 * 3" (binary_expression "puVar4 + (ulong)uVar11 + (ulong)(uVar9 * uVar11) * 2" (binary_expression "puVar4 + (ulong)uVar11" identifier + (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier)) + (binary_expression "(ulong)(uVar9 * uVar11) * 2" (call_expression "(ulong)(uVar9 * uVar11)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar9 * uVar11)" ( (binary_expression "uVar9 * uVar11" identifier * identifier) ))) * number_literal)) + (binary_expression "uVar10 * 3" identifier * number_literal)) + number_literal)) )) (compound_statement "{\n      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);\n      pcVar5 = this->name_;\n      pcVar6 = (char *)gettext("%s: section %s is corrupt");\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */\n      gold_fatal(pcVar6,pcVar5,local_58[0]);\n    }" { (expression_statement "(*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx);" (call_expression "(*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,shndx)" (parenthesized_expression "(*(this->obj_->super_Object)._vptr_Object[0x10])" ( (pointer_expression "*(this->obj_->super_Object)._vptr_Object[0x10]" * (subscript_expression "(this->obj_->super_Object)._vptr_Object[0x10]" (field_expression "(this->obj_->super_Object)._vptr_Object" (parenthesized_expression "(this->obj_->super_Object)" ( (field_expression "this->obj_->super_Object" (field_expression "this->obj_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(local_58,this->obj_,shndx)" ( identifier , (field_expression "this->obj_" identifier -> field_identifier) , identifier ))) ;) (expression_statement "pcVar5 = this->name_;" (assignment_expression "pcVar5 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)gettext("%s: section %s is corrupt");" (assignment_expression "pcVar6 = (char *)gettext("%s: section %s is corrupt")" identifier = (cast_expression "(char *)gettext("%s: section %s is corrupt")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: section %s is corrupt")" identifier (argument_list "("%s: section %s is corrupt")" ( (string_literal ""%s: section %s is corrupt"" " string_content ") ))))) ;) comment comment (expression_statement "gold_fatal(pcVar6,pcVar5,local_58[0]);" (call_expression "gold_fatal(pcVar6,pcVar5,local_58[0])" identifier (argument_list "(pcVar6,pcVar5,local_58[0])" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start;" (assignment_expression "pDVar8 = (files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start" identifier = (field_expression "(files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl._M_start" (field_expression "(files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )._M_impl" (parenthesized_expression "(files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>\n             )" ( (ERROR "files->super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::" (comma_expression "files->super__Vector_base<gold::Dwo_file_entry,_std" (binary_expression "files->super__Vector_base<gold" (field_expression "files->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwo_file_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Dwo_file_entry>_>" (binary_expression "Dwo_file_entry>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish) {\n      bVar13 = true;\n      uVar11 = 0;\n    }\n    else {\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }" if (parenthesized_expression "(pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish)" ( (binary_expression "pDVar8 == (files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish" identifier == (field_expression "(files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl._M_finish" (field_expression "(files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n                  _M_impl" (parenthesized_expression "(files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>)" ( (ERROR "files->\n                  super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::" (comma_expression "files->\n                  super__Vector_base<gold::Dwo_file_entry,_std" (binary_expression "files->\n                  super__Vector_base<gold" (field_expression "files->\n                  super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwo_file_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Dwo_file_entry>_>" (binary_expression "Dwo_file_entry>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n      bVar13 = true;\n      uVar11 = 0;\n    }" { (expression_statement "bVar13 = true;" (assignment_expression "bVar13 = true" identifier = true) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }" else (compound_statement "{\n      uVar12 = uVar12 - 1;\n      uVar11 = 0;\nLAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);\n      bVar13 = uVar11 == 0;\n    }" { (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0015668a:\n      do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);" statement_identifier : (do_statement "do {\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      } while ((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8);" do (compound_statement "{\n        uVar1 = pDVar8->dwo_id;\n        uVar7 = uVar12 & (uint)uVar1;\n        uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n        uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }\n        pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;\n        uVar11 = uVar11 + 1;\n        pDVar8 = pDVar8 + 1;\n        pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(pcVar5,uVar1,pcVar3);\n      }" { (expression_statement "uVar1 = pDVar8->dwo_id;" (assignment_expression "uVar1 = pDVar8->dwo_id" identifier = (field_expression "pDVar8->dwo_id" identifier -> field_identifier)) ;) (expression_statement "uVar7 = uVar12 & (uint)uVar1;" (assignment_expression "uVar7 = uVar12 & (uint)uVar1" identifier = (binary_expression "uVar12 & (uint)uVar1" identifier & (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" * (cast_expression "(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar7 * 2 + 4)" ( (binary_expression "puVar4 + (ulong)uVar7 * 2 + 4" (binary_expression "puVar4 + (ulong)uVar7 * 2" identifier + (binary_expression "(ulong)uVar7 * 2" (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];" (assignment_expression "uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4]" identifier = (subscript_expression "puVar4[uVar10 * 2 + (ulong)uVar7 + 4]" identifier [ (binary_expression "uVar10 * 2 + (ulong)uVar7 + 4" (binary_expression "uVar10 * 2 + (ulong)uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) + (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" if (parenthesized_expression "((uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)))" ( (binary_expression "(uVar9 != 0) &&\n           (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                      (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                      (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                      (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) ))) )) (compound_statement "{\n          do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" { (do_statement "do {\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));" do (compound_statement "{\n            uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;\n            uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);\n            uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          }" { (expression_statement "uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12;" (assignment_expression "uVar7 = uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12" identifier = (binary_expression "uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1) & uVar12" (binary_expression "uVar7 + ((uint)(uVar1 >> 0x20) & uVar12 | 1)" identifier + (parenthesized_expression "((uint)(uVar1 >> 0x20) & uVar12 | 1)" ( (binary_expression "(uint)(uVar1 >> 0x20) & uVar12 | 1" (binary_expression "(uint)(uVar1 >> 0x20) & uVar12" (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) ))) & identifier) | number_literal) ))) & identifier)) ;) (expression_statement "uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" * (cast_expression "(ulong *)(puVar4 + (ulong)uVar7 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar7 * 2 + 4)" ( (binary_expression "puVar4 + (ulong)uVar7 * 2 + 4" (binary_expression "puVar4 + (ulong)uVar7 * 2" identifier + (binary_expression "(ulong)uVar7 * 2" (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4];" (assignment_expression "uVar9 = puVar4[uVar10 * 2 + (ulong)uVar7 + 4]" identifier = (subscript_expression "puVar4[uVar10 * 2 + (ulong)uVar7 + 4]" identifier [ (binary_expression "uVar10 * 2 + (ulong)uVar7 + 4" (binary_expression "uVar10 * 2 + (ulong)uVar7" (binary_expression "uVar10 * 2" identifier * number_literal) + (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar1 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                             (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                             (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                             (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) )) ;) })) (if_statement "if (uVar9 != 0) {\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          pDVar8 = pDVar8 + 1;\n          if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;\n          goto LAB_0015668a;\n        }" { (expression_statement "pDVar8 = pDVar8 + 1;" (assignment_expression "pDVar8 = pDVar8 + 1" identifier = (binary_expression "pDVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8) break;" if (parenthesized_expression "((files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8)" ( (binary_expression "(files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish == pDVar8" (field_expression "(files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl._M_finish" (field_expression "(files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n              _M_impl" (parenthesized_expression "(files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>)" ( (ERROR "files->\n              super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::" (comma_expression "files->\n              super__Vector_base<gold::Dwo_file_entry,_std" (binary_expression "files->\n              super__Vector_base<gold" (field_expression "files->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwo_file_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Dwo_file_entry>_>" (binary_expression "Dwo_file_entry>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0015668a;" goto statement_identifier ;) })) (expression_statement "pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p;" (assignment_expression "pcVar3 = (pDVar8->dwo_name)._M_dataplus._M_p" identifier = (field_expression "(pDVar8->dwo_name)._M_dataplus._M_p" (field_expression "(pDVar8->dwo_name)._M_dataplus" (parenthesized_expression "(pDVar8->dwo_name)" ( (field_expression "pDVar8->dwo_name" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "pDVar8 = pDVar8 + 1;" (assignment_expression "pDVar8 = pDVar8 + 1" identifier = (binary_expression "pDVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n");" (assignment_expression "pcVar5 = (char *)gettext("missing .dwo file: %016llx %s\n")" identifier = (cast_expression "(char *)gettext("missing .dwo file: %016llx %s\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("missing .dwo file: %016llx %s\n")" identifier (argument_list "("missing .dwo file: %016llx %s\n")" ( (string_literal ""missing .dwo file: %016llx %s\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "printf(pcVar5,uVar1,pcVar3);" (call_expression "printf(pcVar5,uVar1,pcVar3)" identifier (argument_list "(pcVar5,uVar1,pcVar3)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8)" ( (binary_expression "(files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish != pDVar8" (field_expression "(files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl._M_finish" (field_expression "(files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>).\n               _M_impl" (parenthesized_expression "(files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::Dwo_file_entry>_>)" ( (ERROR "files->\n               super__Vector_base<gold::Dwo_file_entry,_std::allocator<gold::" (comma_expression "files->\n               super__Vector_base<gold::Dwo_file_entry,_std" (binary_expression "files->\n               super__Vector_base<gold" (field_expression "files->\n               super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Dwo_file_entry" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Dwo_file_entry>_>" (binary_expression "Dwo_file_entry>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;)) (expression_statement "bVar13 = uVar11 == 0;" (assignment_expression "bVar13 = uVar11 == 0" identifier = (binary_expression "uVar11 == 0" identifier == number_literal)) ;) }))) (expression_statement "pcVar5 = (char *)gettext("Found %d missing .dwo files");" (assignment_expression "pcVar5 = (char *)gettext("Found %d missing .dwo files")" identifier = (cast_expression "(char *)gettext("Found %d missing .dwo files")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("Found %d missing .dwo files")" identifier (argument_list "("Found %d missing .dwo files")" ( (string_literal ""Found %d missing .dwo files"" " string_content ") ))))) ;) (expression_statement "gold_info(pcVar5,(ulong)uVar11);" (call_expression "gold_info(pcVar5,(ulong)uVar11)" identifier (argument_list "(pcVar5,(ulong)uVar11)" ( identifier , (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (index_is_new != false) {\n      operator_delete__(puVar4);\n    }" if (parenthesized_expression "(index_is_new != false)" ( (binary_expression "index_is_new != false" identifier != false) )) (compound_statement "{\n      operator_delete__(puVar4);\n    }" { (expression_statement "operator_delete__(puVar4);" (call_expression "operator_delete__(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) })) })) (return_statement "return bVar13;" return identifier ;) (ERROR "}" }))
(translation_unit "ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)\n\n{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}\n\n" (function_definition "ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)\n\n{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" type_identifier (function_declarator "FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)" identifier (parameter_list "(undefined8 *param_1,ulong param_2,long *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "char local_61;" primitive_type identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_58 [5];" type_identifier (array_declarator "local_58 [5]" identifier [ number_literal ]) ;) (if_statement "if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" if (parenthesized_expression "((int)param_2 == 0)" ( (binary_expression "(int)param_2 == 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" identifier (argument_list "("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" ( (string_literal ""../../gold/dwp.cc"" " string_content ") , number_literal , (string_literal ""sized_verify_dwo_list"" " string_content ") ))) ;) })) (expression_statement "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);" (assignment_expression "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" identifier = (cast_expression "(uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" identifier (argument_list "(param_1[1],param_2,&local_60,&local_61,0)" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_61" & identifier) , number_literal ))))) ;) (expression_statement "uVar9 = *puVar3;" (assignment_expression "uVar9 = *puVar3" identifier = (pointer_expression "*puVar3" * identifier)) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" if (parenthesized_expression "(uVar9 != 2)" ( (binary_expression "uVar9 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" { (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" * (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" * (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[1] + 0x80)" ( (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" * (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" ( identifier , (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "param_2 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: section %s has unsupported version number %d");" (assignment_expression "uVar5 = gettext("%s: section %s has unsupported version number %d")" identifier = (call_expression "gettext("%s: section %s has unsupported version number %d")" identifier (argument_list "("%s: section %s has unsupported version number %d")" ( (string_literal ""%s: section %s has unsupported version number %d"" " string_content ") )))) ;) (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9)" identifier (argument_list "(uVar5,uVar4,local_58[0],uVar9)" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) , identifier ))) ;) })) (expression_statement "uVar9 = puVar3[1];" (assignment_expression "uVar9 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar3[2];" (assignment_expression "uVar8 = puVar3[2]" identifier = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" identifier = (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" ( (binary_expression "uVar8 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" ( (binary_expression "uVar8 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar8 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);" (assignment_expression "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0)" identifier = (call_expression "(ulong)(uVar8 == 0 || uVar9 == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar8 == 0 || uVar9 == 0)" ( (binary_expression "uVar8 == 0 || uVar9 == 0" (binary_expression "uVar8 == 0" identifier == number_literal) || (binary_expression "uVar9 == 0" identifier == number_literal)) )))) ;) (if_statement "if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" if (parenthesized_expression "(uVar8 != 0 && uVar9 != 0)" ( (binary_expression "uVar8 != 0 && uVar9 != 0" (binary_expression "uVar8 != 0" identifier != number_literal) && (binary_expression "uVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" { (expression_statement "uVar11 = puVar3[3];" (assignment_expression "uVar11 = puVar3[3]" identifier = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" identifier = (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" ( (binary_expression "uVar11 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" ( (binary_expression "uVar11 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar11 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;" (assignment_expression "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4" identifier = (binary_expression "puVar3 + (ulong)uVar11 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar11 * 2" identifier + (binary_expression "(ulong)uVar11 * 2" (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (if_statement "if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" if (parenthesized_expression "((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11)" ( (binary_expression "(uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (cast_expression "(uint *)(local_60 + (long)puVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + (long)puVar3)" ( (binary_expression "local_60 + (long)puVar3" identifier + (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) < (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2" (binary_expression "puVar1 + (ulong)uVar9" identifier + (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier)) + (binary_expression "(ulong)(uVar8 * uVar9) * 2" (call_expression "(ulong)(uVar8 * uVar9)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar8 * uVar9)" ( (binary_expression "uVar8 * uVar9" identifier * identifier) ))) * number_literal)) + (cast_expression "(ulong)uVar11" ( (type_descriptor "ulong" type_identifier) ) identifier))) )) (compound_statement "{\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" { (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" * (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" * (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[1] + 0x80)" ( (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" * (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" ( identifier , (cast_expression "(long *)param_1[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , (binary_expression "param_2 & 0xffffffff" identifier & number_literal) ))) ;) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar5 = gettext("%s: section %s is corrupt");" (assignment_expression "uVar5 = gettext("%s: section %s is corrupt")" identifier = (call_expression "gettext("%s: section %s is corrupt")" identifier (argument_list "("%s: section %s is corrupt")" ( (string_literal ""%s: section %s is corrupt"" " string_content ") )))) ;) (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0]);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0])" identifier (argument_list "(uVar5,uVar4,local_58[0])" ( identifier , identifier , (subscript_expression "local_58[0]" identifier [ number_literal ]) ))) ;) })) (expression_statement "puVar6 = (ulong *)*param_3;" (assignment_expression "puVar6 = (ulong *)*param_3" identifier = (cast_expression "(ulong *)*param_3" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" if (parenthesized_expression "(puVar6 == (ulong *)param_3[1])" ( (binary_expression "puVar6 == (ulong *)param_3[1]" identifier == (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      uVar10 = 1;\n      iVar7 = 0;\n    }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" else (compound_statement "{\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" { (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" statement_identifier : (do_statement "do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" do (compound_statement "{\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      }" { (expression_statement "uVar10 = *puVar6;" (assignment_expression "uVar10 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "uVar8 = uVar11 & (uint)uVar10;" (assignment_expression "uVar8 = uVar11 & (uint)uVar10" identifier = (binary_expression "uVar11 & (uint)uVar10" identifier & (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" * (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" ( (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" identifier + (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" identifier = (subscript_expression "puVar1[uVar8]" identifier [ identifier ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" if (parenthesized_expression "((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)))" ( (binary_expression "(uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) ))) )) (compound_statement "{\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" { (do_statement "do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));" do (compound_statement "{\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          }" { (expression_statement "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;" (assignment_expression "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" identifier = (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1)" identifier + (parenthesized_expression "((uint)(uVar10 >> 0x20) & uVar11 | 1)" ( (binary_expression "(uint)(uVar10 >> 0x20) & uVar11 | 1" (binary_expression "(uint)(uVar10 >> 0x20) & uVar11" (call_expression "(uint)(uVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 >> 0x20)" ( (binary_expression "uVar10 >> 0x20" identifier >> number_literal) ))) & identifier) | number_literal) ))) & identifier)) ;) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" identifier = (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" * (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" ( (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" identifier + (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" identifier = (subscript_expression "puVar1[uVar8]" identifier [ identifier ])) ;) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (if_statement "if (uVar9 == 0) break;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" ( (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" identifier != (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" ( (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" ( (binary_expression "uVar2 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" ( (binary_expression "uVar2 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" ( (binary_expression "uVar2 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal)) ))) )) ;) })) (if_statement "if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" { (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (if_statement "if ((ulong *)param_3[1] == puVar6) break;" if (parenthesized_expression "((ulong *)param_3[1] == puVar6)" ( (binary_expression "(ulong *)param_3[1] == puVar6" (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0015668a;" goto statement_identifier ;) })) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" identifier = (binary_expression "puVar6 + 5" identifier + number_literal)) ;) (expression_statement "__format = (char *)gettext("missing .dwo file: %016llx %s\n");" (assignment_expression "__format = (char *)gettext("missing .dwo file: %016llx %s\n")" identifier = (cast_expression "(char *)gettext("missing .dwo file: %016llx %s\n")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("missing .dwo file: %016llx %s\n")" identifier (argument_list "("missing .dwo file: %016llx %s\n")" ( (string_literal ""missing .dwo file: %016llx %s\n"" " string_content escape_sequence ") ))))) ;) (expression_statement "printf(__format,uVar10,uVar2);" (call_expression "printf(__format,uVar10,uVar2)" identifier (argument_list "(__format,uVar10,uVar2)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "((ulong *)param_3[1] != puVar6)" ( (binary_expression "(ulong *)param_3[1] != puVar6" (cast_expression "(ulong *)param_3[1]" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;)) (expression_statement "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);" (assignment_expression "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" identifier = (call_expression "CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" identifier (argument_list "((int7)((ulong)puVar1 >> 8),iVar7 == 0)" ( (call_expression "(int7)((ulong)puVar1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "((ulong)puVar1 >> 8)" ( (binary_expression "(ulong)puVar1 >> 8" (cast_expression "(ulong)puVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "iVar7 == 0" identifier == number_literal) )))) ;) }))) (expression_statement "uVar4 = gettext("Found %d missing .dwo files");" (assignment_expression "uVar4 = gettext("Found %d missing .dwo files")" identifier = (call_expression "gettext("Found %d missing .dwo files")" identifier (argument_list "("Found %d missing .dwo files")" ( (string_literal ""Found %d missing .dwo files"" " string_content ") )))) ;) (expression_statement "FUN_00169200(uVar4,iVar7);" (call_expression "FUN_00169200(uVar4,iVar7)" identifier (argument_list "(uVar4,iVar7)" ( identifier , identifier ))) ;) (if_statement "if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }" if (parenthesized_expression "(local_61 != '\0')" ( (binary_expression "local_61 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      thunk_FUN_00276d20(puVar3);\n    }" { (expression_statement "thunk_FUN_00276d20(puVar3);" (call_expression "thunk_FUN_00276d20(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) })) })) (return_statement "return uVar10 & 0xffffffff;" return (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) < (binary_expression (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * IDENT) ))) * LIT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (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 * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & IDENT) | LIT) ))) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression IDENT == LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (return_statement return (binary_expression IDENT & LIT) ;) })))
(function_definition "ulong FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)\n\n{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" (type_identifier "ulong") (function_declarator "FUN_001565d0(undefined8 *param_1,ulong param_2,long *param_3)" (identifier "FUN_001565d0") (parameter_list "(undefined8 *param_1,ulong param_2,long *param_3)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  ulong uVar2;\n  uint *puVar3;\n  char *__format;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  ulong *puVar6;\n  int iVar7;\n  uint uVar8;\n  uint uVar9;\n  ulong uVar10;\n  uint uVar11;\n  char local_61;\n  long local_60;\n  undefined8 local_58 [5];\n  \n  if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }\n  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);\n  uVar9 = *puVar3;\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }\n  uVar9 = puVar3[1];\n  uVar8 = puVar3[2];\n  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;\n  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);\n  if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }\n  return uVar10 & 0xffffffff;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "ulong *puVar6;" (type_identifier "ulong") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "char local_61;" (primitive_type "char") (identifier "local_61") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "undefined8 local_58 [5];" (type_identifier "undefined8") (array_declarator "local_58 [5]" (identifier "local_58") ([ "[") (number_literal "5") (] "]")) (; ";")) (if_statement "if ((int)param_2 == 0) {\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" (if "if") (parenthesized_expression "((int)param_2 == 0)" (( "(") (binary_expression "(int)param_2 == 0" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");" (call_expression "FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/dwp.cc",0x504,"sized_verify_dwo_list")" (( "(") (string_literal ""../../gold/dwp.cc"" (" """) (string_content "../../gold/dwp.cc") (" """)) (, ",") (number_literal "0x504") (, ",") (string_literal ""sized_verify_dwo_list"" (" """) (string_content "sized_verify_dwo_list") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);" (assignment_expression "puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" (identifier "puVar3") (= "=") (cast_expression "(uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0)" (identifier "FUN_0019ae10") (argument_list "(param_1[1],param_2,&local_60,&local_61,0)" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_61" (& "&") (identifier "local_61")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "uVar9 = *puVar3;" (assignment_expression "uVar9 = *puVar3" (identifier "uVar9") (= "=") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (; ";")) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar9 != 2) {\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" (if "if") (parenthesized_expression "(uVar9 != 2)" (( "(") (binary_expression "uVar9 != 2" (identifier "uVar9") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n    uVar4 = *param_1;\n    uVar5 = gettext("%s: section %s has unsupported version number %d");\n                    \n                    \n    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" (( "(") (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" (* "*") (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" (* "*") (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_1[1] + 0x80)" (( "(") (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" (* "*") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (( "(") (identifier "local_58") (, ",") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "param_2 & 0xffffffff" (identifier "param_2") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" (identifier "uVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar5 = gettext("%s: section %s has unsupported version number %d");" (assignment_expression "uVar5 = gettext("%s: section %s has unsupported version number %d")" (identifier "uVar5") (= "=") (call_expression "gettext("%s: section %s has unsupported version number %d")" (identifier "gettext") (argument_list "("%s: section %s has unsupported version number %d")" (( "(") (string_literal ""%s: section %s has unsupported version number %d"" (" """) (string_content "%s: section %s has unsupported version number %d") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0],uVar9)" (identifier "FUN_00168f60") (argument_list "(uVar5,uVar4,local_58[0],uVar9)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar9 = puVar3[1];" (assignment_expression "uVar9 = puVar3[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = puVar3[2];" (assignment_expression "uVar8 = puVar3[2]" (identifier "uVar8") (= "=") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;" (assignment_expression "uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (identifier "uVar8") (= "=") (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8" (binary_expression "uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8" (binary_expression "uVar8 >> 0x18" (identifier "uVar8") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar8 & 0xff0000) >> 8" (parenthesized_expression "(uVar8 & 0xff0000)" (( "(") (binary_expression "uVar8 & 0xff0000" (identifier "uVar8") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar8 & 0xff00) << 8" (parenthesized_expression "(uVar8 & 0xff00)" (( "(") (binary_expression "uVar8 & 0xff00" (identifier "uVar8") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar8 << 0x18" (identifier "uVar8") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);" (assignment_expression "uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0)" (identifier "uVar10") (= "=") (call_expression "(ulong)(uVar8 == 0 || uVar9 == 0)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar8 == 0 || uVar9 == 0)" (( "(") (binary_expression "uVar8 == 0 || uVar9 == 0" (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) (|| "||") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0"))) () ")")))) (; ";")) (if_statement "if (uVar8 != 0 && uVar9 != 0) {\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" (if "if") (parenthesized_expression "(uVar8 != 0 && uVar9 != 0)" (( "(") (binary_expression "uVar8 != 0 && uVar9 != 0" (binary_expression "uVar8 != 0" (identifier "uVar8") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    uVar11 = puVar3[3];\n    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;\n    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;\n    if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }\n    puVar6 = (ulong *)*param_3;\n    if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }\n    uVar4 = gettext("Found %d missing .dwo files");\n    FUN_00169200(uVar4,iVar7);\n    if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }\n  }" ({ "{") (expression_statement "uVar11 = puVar3[3];" (assignment_expression "uVar11 = puVar3[3]" (identifier "uVar11") (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;" (assignment_expression "uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (identifier "uVar11") (= "=") (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8" (binary_expression "uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8" (binary_expression "uVar11 >> 0x18" (identifier "uVar11") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar11 & 0xff0000) >> 8" (parenthesized_expression "(uVar11 & 0xff0000)" (( "(") (binary_expression "uVar11 & 0xff0000" (identifier "uVar11") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar11 & 0xff00) << 8" (parenthesized_expression "(uVar11 & 0xff00)" (( "(") (binary_expression "uVar11 & 0xff00" (identifier "uVar11") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar11 << 0x18" (identifier "uVar11") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;" (assignment_expression "puVar1 = puVar3 + (ulong)uVar11 * 2 + 4" (identifier "puVar1") (= "=") (binary_expression "puVar3 + (ulong)uVar11 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar11 * 2" (identifier "puVar3") (+ "+") (binary_expression "(ulong)uVar11 * 2" (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")) (* "*") (number_literal "2"))) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" (if "if") (parenthesized_expression "((uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11)" (( "(") (binary_expression "(uint *)(local_60 + (long)puVar3) <\n        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (cast_expression "(uint *)(local_60 + (long)puVar3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_60 + (long)puVar3)" (( "(") (binary_expression "local_60 + (long)puVar3" (identifier "local_60") (+ "+") (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3"))) () ")"))) (< "<") (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11" (binary_expression "puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2" (binary_expression "puVar1 + (ulong)uVar9" (identifier "puVar1") (+ "+") (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9"))) (+ "+") (binary_expression "(ulong)(uVar8 * uVar9) * 2" (call_expression "(ulong)(uVar8 * uVar9)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar8 * uVar9)" (( "(") (binary_expression "uVar8 * uVar9" (identifier "uVar8") (* "*") (identifier "uVar9")) () ")"))) (* "*") (number_literal "2"))) (+ "+") (cast_expression "(ulong)uVar11" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar11")))) () ")")) (compound_statement "{\n      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);\n      uVar4 = *param_1;\n      uVar5 = gettext("%s: section %s is corrupt");\n                    \n                    \n      FUN_00168f60(uVar5,uVar4,local_58[0]);\n    }" ({ "{") (expression_statement "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);" (call_expression "(**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (parenthesized_expression "(**(code **)(*(long *)param_1[1] + 0x80))" (( "(") (pointer_expression "**(code **)(*(long *)param_1[1] + 0x80)" (* "*") (pointer_expression "*(code **)(*(long *)param_1[1] + 0x80)" (* "*") (cast_expression "(code **)(*(long *)param_1[1] + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_1[1] + 0x80)" (( "(") (binary_expression "*(long *)param_1[1] + 0x80" (pointer_expression "*(long *)param_1[1]" (* "*") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(local_58,(long *)param_1[1],param_2 & 0xffffffff)" (( "(") (identifier "local_58") (, ",") (cast_expression "(long *)param_1[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "param_2 & 0xffffffff" (identifier "param_2") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (expression_statement "uVar4 = *param_1;" (assignment_expression "uVar4 = *param_1" (identifier "uVar4") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar5 = gettext("%s: section %s is corrupt");" (assignment_expression "uVar5 = gettext("%s: section %s is corrupt")" (identifier "uVar5") (= "=") (call_expression "gettext("%s: section %s is corrupt")" (identifier "gettext") (argument_list "("%s: section %s is corrupt")" (( "(") (string_literal ""%s: section %s is corrupt"" (" """) (string_content "%s: section %s is corrupt") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00168f60(uVar5,uVar4,local_58[0]);" (call_expression "FUN_00168f60(uVar5,uVar4,local_58[0])" (identifier "FUN_00168f60") (argument_list "(uVar5,uVar4,local_58[0])" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (ulong *)*param_3;" (assignment_expression "puVar6 = (ulong *)*param_3" (identifier "puVar6") (= "=") (cast_expression "(ulong *)*param_3" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if (puVar6 == (ulong *)param_3[1]) {\n      uVar10 = 1;\n      iVar7 = 0;\n    }\n    else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" (if "if") (parenthesized_expression "(puVar6 == (ulong *)param_3[1])" (( "(") (binary_expression "puVar6 == (ulong *)param_3[1]" (identifier "puVar6") (== "==") (cast_expression "(ulong *)param_3[1]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      uVar10 = 1;\n      iVar7 = 0;\n    }" ({ "{") (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" (else "else") (compound_statement "{\n      uVar11 = uVar11 - 1;\n      iVar7 = 0;\nLAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);\n      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);\n    }" ({ "{") (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0015668a:\n      do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" (statement_identifier "LAB_0015668a") (: ":") (do_statement "do {\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      } while ((ulong *)param_3[1] != puVar6);" (do "do") (compound_statement "{\n        uVar10 = *puVar6;\n        uVar8 = uVar11 & (uint)uVar10;\n        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n        uVar9 = puVar1[uVar8];\n        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n        if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }\n        if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }\n        uVar2 = puVar6[1];\n        iVar7 = iVar7 + 1;\n        puVar6 = puVar6 + 5;\n        __format = (char *)gettext("missing .dwo file: %016llx %s\n");\n        printf(__format,uVar10,uVar2);\n      }" ({ "{") (expression_statement "uVar10 = *puVar6;" (assignment_expression "uVar10 = *puVar6" (identifier "uVar10") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "uVar8 = uVar11 & (uint)uVar10;" (assignment_expression "uVar8 = uVar11 & (uint)uVar10" (identifier "uVar8") (= "=") (binary_expression "uVar11 & (uint)uVar10" (identifier "uVar11") (& "&") (cast_expression "(uint)uVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar10")))) (; ";")) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (* "*") (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" (( "(") (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" (identifier "puVar3") (+ "+") (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (* "*") (number_literal "2"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" (identifier "uVar9") (= "=") (subscript_expression "puVar1[uVar8]" (identifier "puVar1") ([ "[") (identifier "uVar8") (] "]"))) (; ";")) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if ((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" (if "if") (parenthesized_expression "((uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)))" (( "(") (binary_expression "(uVar9 != 0) &&\n           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (( "(") (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" (identifier "uVar10") (!= "!=") (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" (( "(") (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                       (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                       (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                       (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" (identifier "uVar2") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" (( "(") (binary_expression "uVar2 & 0xff000000000000" (identifier "uVar2") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" (( "(") (binary_expression "uVar2 & 0xff0000000000" (identifier "uVar2") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" (( "(") (binary_expression "uVar2 & 0xff00000000" (identifier "uVar2") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" (( "(") (binary_expression "uVar2 & 0xff000000" (identifier "uVar2") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar2 << 0x38" (identifier "uVar2") (<< "<<") (number_literal "0x38"))) () ")"))) () ")"))) () ")")) (compound_statement "{\n          do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));\n        }" ({ "{") (do_statement "do {\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));" (do "do") (compound_statement "{\n            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;\n            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);\n            uVar9 = puVar1[uVar8];\n            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n            if (uVar9 == 0) break;\n          }" ({ "{") (expression_statement "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;" (assignment_expression "uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" (identifier "uVar8") (= "=") (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11" (binary_expression "uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1)" (identifier "uVar8") (+ "+") (parenthesized_expression "((uint)(uVar10 >> 0x20) & uVar11 | 1)" (( "(") (binary_expression "(uint)(uVar10 >> 0x20) & uVar11 | 1" (binary_expression "(uint)(uVar10 >> 0x20) & uVar11" (call_expression "(uint)(uVar10 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 >> 0x20)" (( "(") (binary_expression "uVar10 >> 0x20" (identifier "uVar10") (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar11")) (| "|") (number_literal "1")) () ")"))) (& "&") (identifier "uVar11"))) (; ";")) (expression_statement "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);" (assignment_expression "uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (* "*") (cast_expression "(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + (ulong)uVar8 * 2 + 4)" (( "(") (binary_expression "puVar3 + (ulong)uVar8 * 2 + 4" (binary_expression "puVar3 + (ulong)uVar8 * 2" (identifier "puVar3") (+ "+") (binary_expression "(ulong)uVar8 * 2" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (* "*") (number_literal "2"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar1[uVar8];" (assignment_expression "uVar9 = puVar1[uVar8]" (identifier "uVar9") (= "=") (subscript_expression "puVar1[uVar8]" (identifier "puVar1") ([ "[") (identifier "uVar8") (] "]"))) (; ";")) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (uVar9 == 0) break;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))" (( "(") (binary_expression "uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" (identifier "uVar10") (!= "!=") (parenthesized_expression "(uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38)" (( "(") (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |\n                              (uVar2 & 0xff00) << 0x28" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |\n                              (uVar2 & 0xff000000) << 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |\n                              (uVar2 & 0xff0000000000) >> 0x18" (binary_expression "uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28" (binary_expression "uVar2 >> 0x38" (identifier "uVar2") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar2 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar2 & 0xff000000000000)" (( "(") (binary_expression "uVar2 & 0xff000000000000" (identifier "uVar2") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar2 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar2 & 0xff0000000000)" (( "(") (binary_expression "uVar2 & 0xff0000000000" (identifier "uVar2") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00000000) >> 8" (parenthesized_expression "(uVar2 & 0xff00000000)" (( "(") (binary_expression "uVar2 & 0xff00000000" (identifier "uVar2") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" (( "(") (binary_expression "uVar2 & 0xff000000" (identifier "uVar2") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar2 << 0x38" (identifier "uVar2") (<< "<<") (number_literal "0x38"))) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if (uVar9 != 0) {\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar6 = puVar6 + 5;\n          if ((ulong *)param_3[1] == puVar6) break;\n          goto LAB_0015668a;\n        }" ({ "{") (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if ((ulong *)param_3[1] == puVar6) break;" (if "if") (parenthesized_expression "((ulong *)param_3[1] == puVar6)" (( "(") (binary_expression "(ulong *)param_3[1] == puVar6" (cast_expression "(ulong *)param_3[1]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (identifier "puVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0015668a;" (goto "goto") (statement_identifier "LAB_0015668a") (; ";")) (} "}"))) (expression_statement "uVar2 = puVar6[1];" (assignment_expression "uVar2 = puVar6[1]" (identifier "uVar2") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar6 = puVar6 + 5;" (assignment_expression "puVar6 = puVar6 + 5" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 5" (identifier "puVar6") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "__format = (char *)gettext("missing .dwo file: %016llx %s\n");" (assignment_expression "__format = (char *)gettext("missing .dwo file: %016llx %s\n")" (identifier "__format") (= "=") (cast_expression "(char *)gettext("missing .dwo file: %016llx %s\n")" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext("missing .dwo file: %016llx %s\n")" (identifier "gettext") (argument_list "("missing .dwo file: %016llx %s\n")" (( "(") (string_literal ""missing .dwo file: %016llx %s\n"" (" """) (string_content "missing .dwo file: %016llx %s") (escape_sequence "\n") (" """)) () ")"))))) (; ";")) (expression_statement "printf(__format,uVar10,uVar2);" (call_expression "printf(__format,uVar10,uVar2)" (identifier "printf") (argument_list "(__format,uVar10,uVar2)" (( "(") (identifier "__format") (, ",") (identifier "uVar10") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ulong *)param_3[1] != puVar6)" (( "(") (binary_expression "(ulong *)param_3[1] != puVar6" (cast_expression "(ulong *)param_3[1]" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "puVar6")) () ")")) (; ";"))) (expression_statement "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);" (assignment_expression "uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" (identifier "uVar10") (= "=") (call_expression "CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0)" (identifier "CONCAT71") (argument_list "((int7)((ulong)puVar1 >> 8),iVar7 == 0)" (( "(") (call_expression "(int7)((ulong)puVar1 >> 8)" (parenthesized_expression "(int7)" (( "(") (identifier "int7") () ")")) (argument_list "((ulong)puVar1 >> 8)" (( "(") (binary_expression "(ulong)puVar1 >> 8" (cast_expression "(ulong)puVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "puVar1")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar4 = gettext("Found %d missing .dwo files");" (assignment_expression "uVar4 = gettext("Found %d missing .dwo files")" (identifier "uVar4") (= "=") (call_expression "gettext("Found %d missing .dwo files")" (identifier "gettext") (argument_list "("Found %d missing .dwo files")" (( "(") (string_literal ""Found %d missing .dwo files"" (" """) (string_content "Found %d missing .dwo files") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00169200(uVar4,iVar7);" (call_expression "FUN_00169200(uVar4,iVar7)" (identifier "FUN_00169200") (argument_list "(uVar4,iVar7)" (( "(") (identifier "uVar4") (, ",") (identifier "iVar7") () ")"))) (; ";")) (if_statement "if (local_61 != '\0') {\n      thunk_FUN_00276d20(puVar3);\n    }" (if "if") (parenthesized_expression "(local_61 != '\0')" (( "(") (binary_expression "local_61 != '\0'" (identifier "local_61") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      thunk_FUN_00276d20(puVar3);\n    }" ({ "{") (expression_statement "thunk_FUN_00276d20(puVar3);" (call_expression "thunk_FUN_00276d20(puVar3)" (identifier "thunk_FUN_00276d20") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return uVar10 & 0xffffffff;" (return "return") (binary_expression "uVar10 & 0xffffffff" (identifier "uVar10") (& "&") (number_literal "0xffffffff")) (; ";")) (} "}")))

/* DWARF original prototype: bool sized_verify_dwo_list<true>(Dwo_file * this, uint shndx, File_list
   * files) */

bool __thiscall
gold::Dwo_file::sized_verify_dwo_list<true>(Dwo_file *this,type_3 var_1,File_list *files)

{
  type_1 var_16;
  type_1 var_17;
  type_2 pcVar3;
  type_3 *var_10;
  char *pcVar5;
  char *pcVar6;
  type_3 var_18;
  type_2 var_15;
  type_3 var_7;
  type_1 var_11;
  type_3 var_4;
  type_3 var_8;
  bool bVar13;
  bool var_21;
  type_4 var_9;
  type_5 local_58 [5];
  
  if (var_1 == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");
  }
  var_10 = (type_3 *)Object::var_3
                             (&this->obj_->super_Object,var_1,&var_9,&var_21,
                              (uint64_t *)0x0);
  var_4 = *var_10;
  var_4 = var_4 >> 0x18 | (var_4 & 0xff0000) >> 8 | (var_4 & 0xff00) << 8 | var_4 << 0x18;
  if (var_4 != 2) {
    (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,var_1);
    pcVar5 = this->name_;
    pcVar6 = (char *)var_5("%s: section %s has unsupported version number %d");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */
    var_6(pcVar6,pcVar5,local_58[0],(type_1)var_4);
  }
  var_4 = var_10[1];
  var_7 = var_10[2];
  var_4 = var_4 >> 0x18 | (var_4 & 0xff0000) >> 8 | (var_4 & 0xff00) << 8 | var_4 << 0x18;
  var_7 = var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 | (var_7 & 0xff00) << 8 | var_7 << 0x18;
  bVar13 = var_7 == 0 || var_4 == 0;
  if (var_7 != 0 && var_4 != 0) {
    var_8 = var_10[3];
    var_8 = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 | var_8 << 0x18;
    var_11 = (type_1)var_8;
    if ((type_3 *)(var_9 + (long)var_10) <
        var_10 + (type_1)var_4 + (type_1)(var_7 * var_4) * 2 + var_11 * 3 + 4) {
      (*(this->obj_->super_Object)._vptr_Object[0x10])(local_58,this->obj_,var_1);
      pcVar5 = this->name_;
      pcVar6 = (char *)var_5("%s: section %s is corrupt");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */
      var_6(pcVar6,pcVar5,local_58[0]);
    }
    var_15 = (files->super__Vector_base<gold::var_12,_std::allocator<gold::var_12>var_13>var_14
             )._M_impl._M_start;
    if (var_15 == (files->
                  super__Vector_base<gold::var_12,_std::allocator<gold::var_12>var_13>var_14).
                  _M_impl._M_finish) {
      bVar13 = true;
      var_4 = 0;
    }
    else {
      var_8 = var_8 - 1;
      var_4 = 0;
LAB_0015668a:
      do {
        var_16 = var_15->dwo_id;
        var_18 = var_8 & (type_3)var_16;
        var_17 = *(type_1 *)(var_10 + (type_1)var_18 * 2 + 4);
        var_7 = var_10[var_11 * 2 + (type_1)var_18 + 4];
        var_7 = var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 | (var_7 & 0xff00) << 8 | var_7 << 0x18;
        if ((var_7 != 0) &&
           (var_16 != (var_17 >> 0x38 | (var_17 & 0xff000000000000) >> 0x28 |
                      (var_17 & 0xff0000000000) >> 0x18 | (var_17 & 0xff00000000) >> 8 |
                      (var_17 & 0xff000000) << 8 | (var_17 & 0xff0000) << 0x18 |
                      (var_17 & 0xff00) << 0x28 | var_17 << 0x38))) {
          do {
            var_18 = var_18 + ((type_3)(var_16 >> 0x20) & var_8 | 1) & var_8;
            var_17 = *(type_1 *)(var_10 + (type_1)var_18 * 2 + 4);
            var_7 = var_10[var_11 * 2 + (type_1)var_18 + 4];
            var_7 = var_7 >> 0x18 | (var_7 & 0xff0000) >> 8 | (var_7 & 0xff00) << 8 | var_7 << 0x18;
            if (var_7 == 0) break;
          } while (var_16 != (var_17 >> 0x38 | (var_17 & 0xff000000000000) >> 0x28 |
                             (var_17 & 0xff0000000000) >> 0x18 | (var_17 & 0xff00000000) >> 8 |
                             (var_17 & 0xff000000) << 8 | (var_17 & 0xff0000) << 0x18 |
                             (var_17 & 0xff00) << 0x28 | var_17 << 0x38));
        }
        if (var_7 != 0) {
          var_15 = var_15 + 1;
          if ((files->
              super__Vector_base<gold::var_12,_std::allocator<gold::var_12>var_13>var_14).
              _M_impl._M_finish == var_15) break;
          goto LAB_0015668a;
        }
        pcVar3 = (var_15->dwo_name)._M_dataplus._M_p;
        var_4 = var_4 + 1;
        var_15 = var_15 + 1;
        pcVar5 = (char *)var_5("missing .dwo file: %016llx %s\n");
        var_19(pcVar5,var_16,pcVar3);
      } while ((files->
               super__Vector_base<gold::var_12,_std::allocator<gold::var_12>var_13>var_14).
               _M_impl._M_finish != var_15);
      bVar13 = var_4 == 0;
    }
    pcVar5 = (char *)var_5("Found %d missing .dwo files");
    var_20(pcVar5,(type_1)var_4);
    if (var_21 != false) {
      var_22(var_10);
    }
  }
  return bVar13;
}


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

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

{
  uint *puVar1;
  ulong uVar2;
  uint *puVar3;
  char *__format;
  undefined8 uVar4;
  undefined8 uVar5;
  ulong *puVar6;
  int iVar7;
  uint uVar8;
  uint uVar9;
  ulong uVar10;
  uint uVar11;
  char local_61;
  long local_60;
  undefined8 local_58 [5];
  
  if ((int)param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/dwp.cc",0x504,"sized_verify_dwo_list");
  }
  puVar3 = (uint *)FUN_0019ae10(param_1[1],param_2,&local_60,&local_61,0);
  uVar9 = *puVar3;
  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
  if (uVar9 != 2) {
    (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);
    uVar4 = *param_1;
    uVar5 = gettext("%s: section %s has unsupported version number %d");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00156825 to 00156829 has its CatchHandler @ 0015682f */
    FUN_00168f60(uVar5,uVar4,local_58[0],uVar9);
  }
  uVar9 = puVar3[1];
  uVar8 = puVar3[2];
  uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
  uVar8 = uVar8 >> 0x18 | (uVar8 & 0xff0000) >> 8 | (uVar8 & 0xff00) << 8 | uVar8 << 0x18;
  uVar10 = (ulong)(uVar8 == 0 || uVar9 == 0);
  if (uVar8 != 0 && uVar9 != 0) {
    uVar11 = puVar3[3];
    uVar11 = uVar11 >> 0x18 | (uVar11 & 0xff0000) >> 8 | (uVar11 & 0xff00) << 8 | uVar11 << 0x18;
    puVar1 = puVar3 + (ulong)uVar11 * 2 + 4;
    if ((uint *)(local_60 + (long)puVar3) <
        puVar1 + (ulong)uVar9 + (ulong)(uVar8 * uVar9) * 2 + (ulong)uVar11) {
      (**(code **)(*(long *)param_1[1] + 0x80))(local_58,(long *)param_1[1],param_2 & 0xffffffff);
      uVar4 = *param_1;
      uVar5 = gettext("%s: section %s is corrupt");
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 001567e6 to 001567ea has its CatchHandler @ 0015682a */
      FUN_00168f60(uVar5,uVar4,local_58[0]);
    }
    puVar6 = (ulong *)*param_3;
    if (puVar6 == (ulong *)param_3[1]) {
      uVar10 = 1;
      iVar7 = 0;
    }
    else {
      uVar11 = uVar11 - 1;
      iVar7 = 0;
LAB_0015668a:
      do {
        uVar10 = *puVar6;
        uVar8 = uVar11 & (uint)uVar10;
        uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);
        uVar9 = puVar1[uVar8];
        uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
        if ((uVar9 != 0) &&
           (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                       (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                       (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                       (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38))) {
          do {
            uVar8 = uVar8 + ((uint)(uVar10 >> 0x20) & uVar11 | 1) & uVar11;
            uVar2 = *(ulong *)(puVar3 + (ulong)uVar8 * 2 + 4);
            uVar9 = puVar1[uVar8];
            uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
            if (uVar9 == 0) break;
          } while (uVar10 != (uVar2 >> 0x38 | (uVar2 & 0xff000000000000) >> 0x28 |
                              (uVar2 & 0xff0000000000) >> 0x18 | (uVar2 & 0xff00000000) >> 8 |
                              (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 |
                              (uVar2 & 0xff00) << 0x28 | uVar2 << 0x38));
        }
        if (uVar9 != 0) {
          puVar6 = puVar6 + 5;
          if ((ulong *)param_3[1] == puVar6) break;
          goto LAB_0015668a;
        }
        uVar2 = puVar6[1];
        iVar7 = iVar7 + 1;
        puVar6 = puVar6 + 5;
        __format = (char *)gettext("missing .dwo file: %016llx %s\n");
        printf(__format,uVar10,uVar2);
      } while ((ulong *)param_3[1] != puVar6);
      uVar10 = CONCAT71((int7)((ulong)puVar1 >> 8),iVar7 == 0);
    }
    uVar4 = gettext("Found %d missing .dwo files");
    FUN_00169200(uVar4,iVar7);
    if (local_61 != '\0') {
      thunk_FUN_00276d20(puVar3);
    }
  }
  return uVar10 & 0xffffffff;
}

