
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

bfd_boolean __regparm3 get_program_headers(Filedata *filedata)

{
  int *piVar1;
  uchar *puVar2;
  uint uVar3;
  Elf_Internal_Phdr *__ptr;
  char *pcVar4;
  elf_vma eVar8;
  Elf_Internal_Phdr *pEVar5;
  uchar *puVar6;
  size_t nmemb;
  uint uVar7;
  uchar *local_20;
  
  nmemb = (filedata->file_header).e_phnum;
  piVar1 = (int *)((int)&filedata->file_size + 4);
  if (*piVar1 == 0 &&
      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=
      (uint)-*piVar1) {
    pcVar4 = "Too many program headers - %#x - the file is not that big\n";
LAB_00026d07:
    pcVar4 = (char *)dcgettext(0,pcVar4,5);
    error(pcVar4,nmemb);
    return 0;
  }
  __ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38);
  if (__ptr == (Elf_Internal_Phdr *)0x0) {
    nmemb = (filedata->file_header).e_phnum;
    pcVar4 = "Out of memory reading %u program headers\n";
    goto LAB_00026d07;
  }
  uVar7 = (filedata->file_header).e_phentsize;
  uVar3 = (filedata->file_header).e_phnum;
  if (is_32bit_elf == 0) {
    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;
    if (0x37 < uVar7) {
      if (uVar7 != 0x38) {
        pcVar4 = (char *)dcgettext(0,
                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                                   ,5);
        warn(pcVar4);
      }
      pcVar4 = (char *)dcgettext(0,"program headers",5);
      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,
                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);
      if (local_20 != (uchar *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          uVar7 = 0;
          pEVar5 = __ptr;
          puVar6 = local_20;
          do {
            uVar7 = uVar7 + 1;
            eVar8._0_4_ = (*byte_get)(puVar6,4);
                    /* WARNING: Store size is inaccurate */
            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;
            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);
                    /* WARNING: Store size is inaccurate */
            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;
            eVar8 = (*byte_get)(puVar6 + 8,8);
            pEVar5->p_offset = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x10,8);
            pEVar5->p_vaddr = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x18,8);
            pEVar5->p_paddr = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x20,8);
            pEVar5->p_filesz = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x28,8);
            pEVar5->p_memsz = eVar8;
            puVar2 = puVar6 + 0x30;
            puVar6 = puVar6 + 0x38;
            eVar8 = (*byte_get)(puVar2,8);
            pEVar5->p_align = eVar8;
            pEVar5 = pEVar5 + 1;
          } while (uVar7 < (filedata->file_header).e_phnum);
        }
        goto LAB_00026b63;
      }
      goto LAB_00026cd4;
    }
  }
  else {
    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;
    if (0x1f < uVar7) {
      if (uVar7 != 0x20) {
        pcVar4 = (char *)dcgettext(0,
                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                                   ,5);
        warn(pcVar4);
      }
      pcVar4 = (char *)dcgettext(0,"program headers",5);
      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,
                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);
      if (local_20 != (uchar *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          uVar7 = 0;
          pEVar5 = __ptr;
          puVar6 = local_20;
          do {
            uVar7 = uVar7 + 1;
            eVar8._0_4_ = (*byte_get)(puVar6,4);
                    /* WARNING: Store size is inaccurate */
            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;
            eVar8 = (*byte_get)(puVar6 + 4,4);
            pEVar5->p_offset = eVar8;
            eVar8 = (*byte_get)(puVar6 + 8,4);
            pEVar5->p_vaddr = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0xc,4);
            pEVar5->p_paddr = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x10,4);
            pEVar5->p_filesz = eVar8;
            eVar8 = (*byte_get)(puVar6 + 0x14,4);
            pEVar5->p_memsz = eVar8;
            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);
                    /* WARNING: Store size is inaccurate */
            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;
            puVar2 = puVar6 + 0x1c;
            puVar6 = puVar6 + 0x20;
            eVar8 = (*byte_get)(puVar2,4);
            pEVar5->p_align = eVar8;
            pEVar5 = pEVar5 + 1;
          } while (uVar7 < (filedata->file_header).e_phnum);
        }
LAB_00026b63:
        free(local_20);
        filedata->program_headers = __ptr;
        return 1;
      }
      goto LAB_00026cd4;
    }
  }
  pcVar4 = (char *)dcgettext(0,
                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
                             ,5);
  error(pcVar4);
LAB_00026cd4:
  free(__ptr);
  return 0;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4 __regparm3 FUN_000269d0(int param_1)

{
  undefined4 *__ptr;
  undefined4 uVar1;
  char *pcVar2;
  undefined4 *puVar3;
  void *pvVar4;
  int iVar5;
  uint uVar6;
  undefined8 uVar7;
  void *local_20;
  
  iVar5 = *(int *)(param_1 + 0x4c);
  if (*(int *)(param_1 + 0xc) == 0 &&
      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=
      (uint)-*(int *)(param_1 + 0xc)) {
    pcVar2 = "Too many program headers - %#x - the file is not that big\n";
LAB_00026d07:
    uVar1 = dcgettext(0,pcVar2,5);
    error(uVar1,iVar5);
    return 0;
  }
  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);
  if (__ptr == (undefined4 *)0x0) {
    iVar5 = *(int *)(param_1 + 0x4c);
    pcVar2 = "Out of memory reading %u program headers\n";
    goto LAB_00026d07;
  }
  uVar6 = *(uint *)(param_1 + 0x48);
  iVar5 = *(int *)(param_1 + 0x4c);
  if (DAT_000b6324 == 0) {
    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;
    if (0x37 < uVar6) {
      if (uVar6 != 0x38) {
        uVar1 = dcgettext(0,
                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                          ,5);
        warn(uVar1);
      }
      uVar1 = dcgettext(0,"program headers",5);
      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);
      if (local_20 != (void *)0x0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar6 = 0;
          puVar3 = __ptr;
          pvVar4 = local_20;
          do {
            uVar6 = uVar6 + 1;
            uVar1 = (*DAT_000b9dd8)(pvVar4,4);
            *puVar3 = uVar1;
            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);
            puVar3[1] = uVar1;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);
            *(undefined8 *)(puVar3 + 2) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);
            *(undefined8 *)(puVar3 + 4) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);
            *(undefined8 *)(puVar3 + 6) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);
            *(undefined8 *)(puVar3 + 8) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);
            *(undefined8 *)(puVar3 + 10) = uVar7;
            iVar5 = (int)pvVar4 + 0x30;
            pvVar4 = (void *)((int)pvVar4 + 0x38);
            uVar7 = (*DAT_000b9dd8)(iVar5,8);
            *(undefined8 *)(puVar3 + 0xc) = uVar7;
            puVar3 = puVar3 + 0xe;
          } while (uVar6 < *(uint *)(param_1 + 0x4c));
        }
        goto LAB_00026b63;
      }
      goto LAB_00026cd4;
    }
  }
  else {
    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;
    if (0x1f < uVar6) {
      if (uVar6 != 0x20) {
        uVar1 = dcgettext(0,
                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                          ,5);
        warn(uVar1);
      }
      uVar1 = dcgettext(0,"program headers",5);
      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);
      if (local_20 != (void *)0x0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar6 = 0;
          puVar3 = __ptr;
          pvVar4 = local_20;
          do {
            uVar6 = uVar6 + 1;
            uVar1 = (*DAT_000b9dd8)(pvVar4,4);
            *puVar3 = uVar1;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);
            *(undefined8 *)(puVar3 + 2) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);
            *(undefined8 *)(puVar3 + 4) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);
            *(undefined8 *)(puVar3 + 6) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);
            *(undefined8 *)(puVar3 + 8) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);
            *(undefined8 *)(puVar3 + 10) = uVar7;
            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);
            puVar3[1] = uVar1;
            iVar5 = (int)pvVar4 + 0x1c;
            pvVar4 = (void *)((int)pvVar4 + 0x20);
            uVar7 = (*DAT_000b9dd8)(iVar5,4);
            *(undefined8 *)(puVar3 + 0xc) = uVar7;
            puVar3 = puVar3 + 0xe;
          } while (uVar6 < *(uint *)(param_1 + 0x4c));
        }
LAB_00026b63:
        free(local_20);
        *(undefined4 **)(param_1 + 0x60) = __ptr;
        return 1;
      }
      goto LAB_00026cd4;
    }
  }
  uVar1 = dcgettext(0,
                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
                    ,5);
  error(uVar1);
LAB_00026cd4:
  free(__ptr);
  return 0;
}


CALL 0x000140a5
ADD EDX,0x8d62b
PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
SUB ESP,0x1c
CMP dword ptr [EDX + 0x2324],0x1
MOV ESI,dword ptr [EAX + 0x4c]
SBB EAX,EAX
MOV dword ptr [ESP],EDX
XOR EDX,EDX
AND EAX,0x18
ADD EAX,0x20
IMUL EAX,ESI
CMP EAX,dword ptr [EDI + 0x8]
MOV EAX,EDX
SBB EAX,dword ptr [EDI + 0xc]
JNC 0x00026cf8
SUB ESP,0x8
PUSH 0x38
PUSH ESI
MOV EBX,dword ptr [ESP + 0x10]
CALL 0x0005dac0
MOV dword ptr [ESP + 0x14],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00026d30
MOV ESI,dword ptr [EDI + 0x48]
MOV EBP,dword ptr [EDI + 0x4c]
MOV ECX,dword ptr [ESP]
TEST ESI,ESI
SETZ AL
MOV EBX,dword ptr [ECX + 0x2324]
TEST EBP,EBP
SETZ DL
OR EAX,EDX
TEST EBX,EBX
JZ 0x00026b90
TEST AL,AL
JNZ 0x00026cd4
CMP ESI,0x1f
JBE 0x00026cb0
CMP ESI,0x20
JNZ 0x00026d48
SUB ESP,0x4
PUSH 0x5
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xfffc411d]
PUSH EAX
PUSH 0x0
CALL 0x000130f0
XOR EDX,EDX
MOV ECX,dword ptr [EDI + 0x28]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH EDX
XOR EDX,EDX
PUSH EBP
PUSH EDX
MOV EDX,EDI
PUSH ESI
CALL 0x0001bf90
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00026cd4
MOV ECX,dword ptr [EDI + 0x4c]
TEST ECX,ECX
JZ 0x00026b63
MOV EAX,dword ptr [ESP]
XOR ECX,ECX
MOV EBP,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],EDI
MOV ESI,dword ptr [ESP + 0xc]
MOV EDI,ECX
LEA EBX,[EAX + 0x5dd8]
LEA ESI,[ESI]
NOP
SUB ESP,0x8
ADD EDI,0x1
ADD EBP,0x38
PUSH 0x4
PUSH ESI
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x38],EAX
POP EAX
LEA EAX,[ESI + 0x4]
POP EDX
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EDX
POP ECX
POP EAX
LEA EAX,[ESI + 0x8]
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
POP EAX
LEA EAX,[ESI + 0xc]
POP EDX
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x20],EAX
MOV dword ptr [EBP + -0x1c],EDX
POP ECX
POP EAX
LEA EAX,[ESI + 0x10]
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x18],EAX
MOV dword ptr [EBP + -0x14],EDX
POP EAX
LEA EAX,[ESI + 0x14]
POP EDX
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x10],EAX
MOV dword ptr [EBP + -0xc],EDX
POP ECX
POP EAX
LEA EAX,[ESI + 0x18]
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x34],EAX
POP EAX
LEA EAX,[ESI + 0x1c]
ADD ESI,0x20
POP EDX
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x8],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV dword ptr [EBP + -0x4],EDX
CMP EDI,dword ptr [EAX + 0x4c]
JC 0x00026ad0
MOV EDI,EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x10]
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EDI + 0x60],EAX
ADD ESP,0x1c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST AL,AL
JNZ 0x00026cd4
CMP ESI,0x37
JBE 0x00026cb0
CMP ESI,0x38
JNZ 0x00026d80
SUB ESP,0x4
PUSH 0x5
MOV EBX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xfffc411d]
PUSH EAX
PUSH 0x0
CALL 0x000130f0
XOR EDX,EDX
MOV ECX,dword ptr [EDI + 0x28]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH EDX
XOR EDX,EDX
PUSH EBP
PUSH EDX
MOV EDX,EDI
PUSH ESI
CALL 0x0001bf90
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00026cd4
MOV ECX,dword ptr [EDI + 0x4c]
TEST ECX,ECX
JZ 0x00026b63
MOV EAX,dword ptr [ESP]
XOR ECX,ECX
MOV EBP,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],EDI
MOV ESI,dword ptr [ESP + 0xc]
MOV EDI,ECX
LEA EBX,[EAX + 0x5dd8]
LEA ESI,[ESI]
NOP
SUB ESP,0x8
ADD EDI,0x1
ADD EBP,0x38
PUSH 0x4
PUSH ESI
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x38],EAX
POP EAX
LEA EAX,[ESI + 0x4]
POP EDX
PUSH 0x4
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x34],EAX
POP ECX
POP EAX
LEA EAX,[ESI + 0x8]
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x30],EAX
MOV dword ptr [EBP + -0x2c],EDX
POP EAX
LEA EAX,[ESI + 0x10]
POP EDX
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x28],EAX
MOV dword ptr [EBP + -0x24],EDX
POP ECX
POP EAX
LEA EAX,[ESI + 0x18]
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x20],EAX
MOV dword ptr [EBP + -0x1c],EDX
POP EAX
LEA EAX,[ESI + 0x20]
POP EDX
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x18],EAX
MOV dword ptr [EBP + -0x14],EDX
POP ECX
POP EAX
LEA EAX,[ESI + 0x28]
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x10],EAX
MOV dword ptr [EBP + -0xc],EDX
POP EAX
LEA EAX,[ESI + 0x30]
ADD ESI,0x38
POP EDX
PUSH 0x8
PUSH EAX
CALL dword ptr [EBX]
MOV dword ptr [EBP + -0x8],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV dword ptr [EBP + -0x4],EDX
CMP EDI,dword ptr [EAX + 0x4c]
JC 0x00026c10
JMP 0x00026b61
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x8]
LEA EAX,[EDI + 0xfffce780]
MOV EBX,EDI
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066870
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x10]
CALL 0x000130a0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x8]
LEA EAX,[EDI + 0xfffce718]
PUSH EAX
MOV EBX,EDI
PUSH 0x0
CALL 0x000130f0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV ESI,dword ptr [EDI + 0x4c]
PUSH 0x5
MOV EDI,dword ptr [ESP + 0x8]
LEA EAX,[EDI + 0xfffce754]
JMP 0x00026d07
SUB ESP,0x4
PUSH 0x5
MOV ECX,dword ptr [ESP + 0x8]
LEA EAX,[ECX + 0xfffce7d8]
MOV EBX,ECX
PUSH EAX
PUSH 0x0
MOV dword ptr [ESP + 0x10],ECX
CALL 0x000130f0
MOV EBX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x00026a67
SUB ESP,0x4
PUSH 0x5
MOV ECX,dword ptr [ESP + 0x8]
LEA EAX,[ECX + 0xfffce7d8]
MOV EBX,ECX
PUSH EAX
PUSH 0x0
MOV dword ptr [ESP + 0x10],ECX
CALL 0x000130f0
MOV EBX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x00026baa
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nundefined4 __regparm3 FUN_000269d0(int param_1)\n\n{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_000269d0(int param_1)\n\n{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000269d0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" { (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "void *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc))" ( (binary_expression "*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (call_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)" (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5" (parenthesized_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20)" ( (binary_expression "(-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20" (parenthesized_expression "(-(uint)(DAT_000b6324 == 0) & 0x18)" ( (binary_expression "-(uint)(DAT_000b6324 == 0) & 0x18" (unary_expression "-(uint)(DAT_000b6324 == 0)" - (call_expression "(uint)(DAT_000b6324 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) )) * identifier) < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ))) <= (binary_expression "(uint)-*(int *)(param_1 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" { (expression_statement "pcVar2 = "Too many program headers - %#x - the file is not that big\n";" (assignment_expression "pcVar2 = "Too many program headers - %#x - the file is not that big\n"" identifier = (string_literal ""Too many program headers - %#x - the file is not that big\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar1 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar1,iVar5);" (call_expression "error(uVar1,iVar5)" identifier (argument_list "(uVar1,iVar5)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);" (assignment_expression "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38)" identifier = (cast_expression "(undefined4 *)FUN_0005dac0(iVar5,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005dac0(iVar5,0x38)" identifier (argument_list "(iVar5,0x38)" ( identifier , number_literal ))))) ;) (if_statement "if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" if (parenthesized_expression "(__ptr == (undefined4 *)0x0)" ( (binary_expression "__ptr == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Out of memory reading %u program headers\n";" (assignment_expression "pcVar2 = "Out of memory reading %u program headers\n"" identifier = (string_literal ""Out of memory reading %u program headers\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00026d07;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x48)" identifier = (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" if (parenthesized_expression "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" ( (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" identifier == number_literal) || (binary_expression "iVar5 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x37 < uVar6)" ( (binary_expression "0x37 < uVar6" number_literal < identifier) )) (compound_statement "{\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" if (parenthesized_expression "(uVar6 != 0x38)" ( (binary_expression "uVar6 != 0x38" identifier != number_literal) )) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" { (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" identifier = (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal )))) ;) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier = (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier (argument_list "(uVar6,0,iVar5,0,uVar1)" ( identifier , number_literal , identifier , number_literal , identifier ))))) ;) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" if (parenthesized_expression "(local_20 != (void *)0x0)" ( (binary_expression "local_20 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" identifier = identifier) ;) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" do (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" identifier = (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pvVar4,4)" ( identifier , number_literal )))) ;) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 4,4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 8,8)" ( (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x10,8)" ( (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x18,8)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x20,8)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x28,8)" ( (binary_expression "(int)pvVar4 + 0x28" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" * (cast_expression "(undefined8 *)(puVar3 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 10)" ( (binary_expression "puVar3 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = (int)pvVar4 + 0x30;" (assignment_expression "iVar5 = (int)pvVar4 + 0x30" identifier = (binary_expression "(int)pvVar4 + 0x30" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x38);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x38)" identifier = (cast_expression "(void *)((int)pvVar4 + 0x38)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x38)" ( (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,8)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )) ;) })) (goto_statement "goto LAB_00026b63;" goto statement_identifier ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" else (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" ( (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" identifier == number_literal) || (binary_expression "iVar5 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x1f < uVar6)" ( (binary_expression "0x1f < uVar6" number_literal < identifier) )) (compound_statement "{\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" if (parenthesized_expression "(uVar6 != 0x20)" ( (binary_expression "uVar6 != 0x20" identifier != number_literal) )) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" { (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" identifier = (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal )))) ;) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier = (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier (argument_list "(uVar6,0,iVar5,0,uVar1)" ( identifier , number_literal , identifier , number_literal , identifier ))))) ;) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" if (parenthesized_expression "(local_20 != (void *)0x0)" ( (binary_expression "local_20 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" identifier = identifier) ;) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" do (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" identifier = (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pvVar4,4)" ( identifier , number_literal )))) ;) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 4,4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 8,4)" ( (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0xc,4)" ( (binary_expression "(int)pvVar4 + 0xc" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x10,4)" ( (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x14,4)" ( (binary_expression "(int)pvVar4 + 0x14" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" * (cast_expression "(undefined8 *)(puVar3 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 10)" ( (binary_expression "puVar3 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x18,4)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar5 = (int)pvVar4 + 0x1c;" (assignment_expression "iVar5 = (int)pvVar4 + 0x1c" identifier = (binary_expression "(int)pvVar4 + 0x1c" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x20);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x20)" identifier = (cast_expression "(void *)((int)pvVar4 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x20)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,4)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_00026b63:\n        free(local_20);" statement_identifier : (expression_statement "free(local_20);" (call_expression "free(local_20)" identifier (argument_list "(local_20)" ( identifier ))) ;)) (expression_statement "*(undefined4 **)(param_1 + 0x60) = __ptr;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = __ptr" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" * (cast_expression "(undefined4 **)(param_1 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }))) (expression_statement "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" identifier = (call_expression "dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" identifier (argument_list "(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is less than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar1);" (call_expression "error(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (labeled_statement "LAB_00026cd4:\n  free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nbfd_boolean __regparm3 get_program_headers(Filedata *filedata)\n\n{\n  int *piVar1;\n  uchar *puVar2;\n  uint uVar3;\n  Elf_Internal_Phdr *__ptr;\n  char *pcVar4;\n  elf_vma eVar8;\n  Elf_Internal_Phdr *pEVar5;\n  uchar *puVar6;\n  size_t nmemb;\n  uint uVar7;\n  uchar *local_20;\n  \n  nmemb = (filedata->file_header).e_phnum;\n  piVar1 = (int *)((int)&filedata->file_size + 4);\n  if (*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1) {\n    pcVar4 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    error(pcVar4,nmemb);\n    return 0;\n  }\n  __ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38);\n  if (__ptr == (Elf_Internal_Phdr *)0x0) {\n    nmemb = (filedata->file_header).e_phnum;\n    pcVar4 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar7 = (filedata->file_header).e_phentsize;\n  uVar3 = (filedata->file_header).e_phnum;\n  if (is_32bit_elf == 0) {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5);\n  error(pcVar4);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}\n\n" comment (function_definition "bfd_boolean __regparm3 get_program_headers(Filedata *filedata)\n\n{\n  int *piVar1;\n  uchar *puVar2;\n  uint uVar3;\n  Elf_Internal_Phdr *__ptr;\n  char *pcVar4;\n  elf_vma eVar8;\n  Elf_Internal_Phdr *pEVar5;\n  uchar *puVar6;\n  size_t nmemb;\n  uint uVar7;\n  uchar *local_20;\n  \n  nmemb = (filedata->file_header).e_phnum;\n  piVar1 = (int *)((int)&filedata->file_size + 4);\n  if (*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1) {\n    pcVar4 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    error(pcVar4,nmemb);\n    return 0;\n  }\n  __ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38);\n  if (__ptr == (Elf_Internal_Phdr *)0x0) {\n    nmemb = (filedata->file_header).e_phnum;\n    pcVar4 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar7 = (filedata->file_header).e_phentsize;\n  uVar3 = (filedata->file_header).e_phnum;\n  if (is_32bit_elf == 0) {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5);\n  error(pcVar4);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "get_program_headers(Filedata *filedata)" identifier (parameter_list "(Filedata *filedata)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  uchar *puVar2;\n  uint uVar3;\n  Elf_Internal_Phdr *__ptr;\n  char *pcVar4;\n  elf_vma eVar8;\n  Elf_Internal_Phdr *pEVar5;\n  uchar *puVar6;\n  size_t nmemb;\n  uint uVar7;\n  uchar *local_20;\n  \n  nmemb = (filedata->file_header).e_phnum;\n  piVar1 = (int *)((int)&filedata->file_size + 4);\n  if (*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1) {\n    pcVar4 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    error(pcVar4,nmemb);\n    return 0;\n  }\n  __ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38);\n  if (__ptr == (Elf_Internal_Phdr *)0x0) {\n    nmemb = (filedata->file_header).e_phnum;\n    pcVar4 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar7 = (filedata->file_header).e_phentsize;\n  uVar3 = (filedata->file_header).e_phnum;\n  if (is_32bit_elf == 0) {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  pcVar4 = (char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5);\n  error(pcVar4);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Elf_Internal_Phdr *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "elf_vma eVar8;" type_identifier identifier ;) (declaration "Elf_Internal_Phdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t nmemb;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uchar *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "nmemb = (filedata->file_header).e_phnum;" (assignment_expression "nmemb = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "piVar1 = (int *)((int)&filedata->file_size + 4);" (assignment_expression "piVar1 = (int *)((int)&filedata->file_size + 4)" identifier = (cast_expression "(int *)((int)&filedata->file_size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&filedata->file_size + 4)" ( (binary_expression "(int)&filedata->file_size + 4" (cast_expression "(int)&filedata->file_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&filedata->file_size" & (field_expression "filedata->file_size" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1) {\n    pcVar4 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    error(pcVar4,nmemb);\n    return 0;\n  }" if (parenthesized_expression "(*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1)" ( (binary_expression "*piVar1 == 0 &&\n      (uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1" (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) && (binary_expression "(uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size) <=\n      (uint)-*piVar1" (call_expression "(uint)(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size)" ( (binary_expression "((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb < (uint)filedata->file_size" (binary_expression "((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20) * nmemb" (parenthesized_expression "((-(uint)(is_32bit_elf == 0) & 0x18) + 0x20)" ( (binary_expression "(-(uint)(is_32bit_elf == 0) & 0x18) + 0x20" (parenthesized_expression "(-(uint)(is_32bit_elf == 0) & 0x18)" ( (binary_expression "-(uint)(is_32bit_elf == 0) & 0x18" (unary_expression "-(uint)(is_32bit_elf == 0)" - (call_expression "(uint)(is_32bit_elf == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) )) * identifier) < (cast_expression "(uint)filedata->file_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "filedata->file_size" identifier -> field_identifier))) ))) <= (binary_expression "(uint)-*piVar1" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*piVar1" * identifier)))) )) (compound_statement "{\n    pcVar4 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);\n    error(pcVar4,nmemb);\n    return 0;\n  }" { (expression_statement "pcVar4 = "Too many program headers - %#x - the file is not that big\n";" (assignment_expression "pcVar4 = "Too many program headers - %#x - the file is not that big\n"" identifier = (string_literal ""Too many program headers - %#x - the file is not that big\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00026d07:\n    pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "error(pcVar4,nmemb);" (call_expression "error(pcVar4,nmemb)" identifier (argument_list "(pcVar4,nmemb)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38);" (assignment_expression "__ptr = (Elf_Internal_Phdr *)cmalloc(nmemb,0x38)" identifier = (cast_expression "(Elf_Internal_Phdr *)cmalloc(nmemb,0x38)" ( (type_descriptor "Elf_Internal_Phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "cmalloc(nmemb,0x38)" identifier (argument_list "(nmemb,0x38)" ( identifier , number_literal ))))) ;) (if_statement "if (__ptr == (Elf_Internal_Phdr *)0x0) {\n    nmemb = (filedata->file_header).e_phnum;\n    pcVar4 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" if (parenthesized_expression "(__ptr == (Elf_Internal_Phdr *)0x0)" ( (binary_expression "__ptr == (Elf_Internal_Phdr *)0x0" identifier == (cast_expression "(Elf_Internal_Phdr *)0x0" ( (type_descriptor "Elf_Internal_Phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    nmemb = (filedata->file_header).e_phnum;\n    pcVar4 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" { (expression_statement "nmemb = (filedata->file_header).e_phnum;" (assignment_expression "nmemb = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar4 = "Out of memory reading %u program headers\n";" (assignment_expression "pcVar4 = "Out of memory reading %u program headers\n"" identifier = (string_literal ""Out of memory reading %u program headers\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00026d07;" goto statement_identifier ;) })) (expression_statement "uVar7 = (filedata->file_header).e_phentsize;" (assignment_expression "uVar7 = (filedata->file_header).e_phentsize" identifier = (field_expression "(filedata->file_header).e_phentsize" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar3 = (filedata->file_header).e_phnum;" (assignment_expression "uVar3 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (is_32bit_elf == 0) {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" if (parenthesized_expression "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar7 == 0 || uVar3 == 0)" ( (binary_expression "uVar7 == 0 || uVar3 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) || (binary_expression "uVar3 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar7) {\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x37 < uVar7)" ( (binary_expression "0x37 < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar7 != 0x38) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }" if (parenthesized_expression "(uVar7 != 0x38)" ( (binary_expression "uVar7 != 0x38" identifier != number_literal) )) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }" { (expression_statement "pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar4);" (call_expression "warn(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) (expression_statement "pcVar4 = (char *)dcgettext(0,"program headers",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"program headers",5)" identifier = (cast_expression "(char *)dcgettext(0,"program headers",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal ))))) ;) (expression_statement "local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);" (assignment_expression "local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" identifier = (cast_expression "(uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" identifier (argument_list "((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (field_expression "(ulong)(filedata->file_header).e_phoff" (call_expression "(ulong)(filedata->file_header)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) ))) . field_identifier) , (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier ))))) ;) (if_statement "if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }" if (parenthesized_expression "(local_20 != (uchar *)0x0)" ( (binary_expression "local_20 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\n        goto LAB_00026b63;\n      }" { (if_statement "if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }" if (parenthesized_expression "((filedata->file_header).e_phnum != 0)" ( (binary_expression "(filedata->file_header).e_phnum != 0" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "pEVar5 = __ptr;" (assignment_expression "pEVar5 = __ptr" identifier = identifier) ;) (expression_statement "puVar6 = local_20;" (assignment_expression "puVar6 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);" do (compound_statement "{\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,8);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,8);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x18,8);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x20,8);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x28,8);\n            pEVar5->p_memsz = eVar8;\n            puVar2 = puVar6 + 0x30;\n            puVar6 = puVar6 + 0x38;\n            eVar8 = (*byte_get)(puVar2,8);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "eVar8._0_4_ = (*byte_get)(puVar6,4);" (assignment_expression "eVar8._0_4_ = (*byte_get)(puVar6,4)" (field_expression "eVar8._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(puVar6,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6,4)" ( identifier , number_literal )))) ;) comment (expression_statement "*(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;" (assignment_expression "*(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8" (pointer_expression "*(elf_vma *)&pEVar5->p_type" * (cast_expression "(elf_vma *)&pEVar5->p_type" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->p_type" & (field_expression "pEVar5->p_type" identifier -> field_identifier)))) = (cast_expression "(elf_vma)eVar8" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (expression_statement "eVar8._0_4_ = (*byte_get)(puVar6 + 4,4);" (assignment_expression "eVar8._0_4_ = (*byte_get)(puVar6 + 4,4)" (field_expression "eVar8._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(puVar6 + 4,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 4,4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "*(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;" (assignment_expression "*(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8" (pointer_expression "*(elf_vma *)&pEVar5->p_flags" * (cast_expression "(elf_vma *)&pEVar5->p_flags" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->p_flags" & (field_expression "pEVar5->p_flags" identifier -> field_identifier)))) = (cast_expression "(elf_vma)eVar8" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 8,8);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 8,8)" identifier = (call_expression "(*byte_get)(puVar6 + 8,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 8,8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_offset = eVar8;" (assignment_expression "pEVar5->p_offset = eVar8" (field_expression "pEVar5->p_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x10,8);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x10,8)" identifier = (call_expression "(*byte_get)(puVar6 + 0x10,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x10,8)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_vaddr = eVar8;" (assignment_expression "pEVar5->p_vaddr = eVar8" (field_expression "pEVar5->p_vaddr" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x18,8);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x18,8)" identifier = (call_expression "(*byte_get)(puVar6 + 0x18,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x18,8)" ( (binary_expression "puVar6 + 0x18" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_paddr = eVar8;" (assignment_expression "pEVar5->p_paddr = eVar8" (field_expression "pEVar5->p_paddr" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x20,8);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x20,8)" identifier = (call_expression "(*byte_get)(puVar6 + 0x20,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x20,8)" ( (binary_expression "puVar6 + 0x20" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_filesz = eVar8;" (assignment_expression "pEVar5->p_filesz = eVar8" (field_expression "pEVar5->p_filesz" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x28,8);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x28,8)" identifier = (call_expression "(*byte_get)(puVar6 + 0x28,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x28,8)" ( (binary_expression "puVar6 + 0x28" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_memsz = eVar8;" (assignment_expression "pEVar5->p_memsz = eVar8" (field_expression "pEVar5->p_memsz" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar2 = puVar6 + 0x30;" (assignment_expression "puVar2 = puVar6 + 0x30" identifier = (binary_expression "puVar6 + 0x30" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 0x38;" (assignment_expression "puVar6 = puVar6 + 0x38" identifier = (binary_expression "puVar6 + 0x38" identifier + number_literal)) ;) (expression_statement "eVar8 = (*byte_get)(puVar2,8);" (assignment_expression "eVar8 = (*byte_get)(puVar2,8)" identifier = (call_expression "(*byte_get)(puVar2,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar2,8)" ( identifier , number_literal )))) ;) (expression_statement "pEVar5->p_align = eVar8;" (assignment_expression "pEVar5->p_align = eVar8" (field_expression "pEVar5->p_align" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar5 = pEVar5 + 1;" (assignment_expression "pEVar5 = pEVar5 + 1" identifier = (binary_expression "pEVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < (filedata->file_header).e_phnum)" ( (binary_expression "uVar7 < (filedata->file_header).e_phnum" identifier < (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) )) ;) })) (goto_statement "goto LAB_00026b63;" goto statement_identifier ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" else (compound_statement "{\n    if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar7 == 0 || uVar3 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar7 == 0 || uVar3 == 0)" ( (binary_expression "uVar7 == 0 || uVar3 == 0" (binary_expression "uVar7 == 0" identifier == number_literal) || (binary_expression "uVar3 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar7) {\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x1f < uVar7)" ( (binary_expression "0x1f < uVar7" number_literal < identifier) )) (compound_statement "{\n      if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }\n      pcVar4 = (char *)dcgettext(0,"program headers",5);\n      local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);\n      if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar7 != 0x20) {\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }" if (parenthesized_expression "(uVar7 != 0x20)" ( (binary_expression "uVar7 != 0x20" identifier != number_literal) )) (compound_statement "{\n        pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);\n        warn(pcVar4);\n      }" { (expression_statement "pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                                   ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar4);" (call_expression "warn(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) })) (expression_statement "pcVar4 = (char *)dcgettext(0,"program headers",5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,"program headers",5)" identifier = (cast_expression "(char *)dcgettext(0,"program headers",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal ))))) ;) (expression_statement "local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4);" (assignment_expression "local_20 = (uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" identifier = (cast_expression "(uchar *)get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" identifier (argument_list "((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,\n                                   (ulonglong)uVar7,(ulonglong)uVar3,pcVar4)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (field_expression "(ulong)(filedata->file_header).e_phoff" (call_expression "(ulong)(filedata->file_header)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) ))) . field_identifier) , (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier ))))) ;) (if_statement "if (local_20 != (uchar *)0x0) {\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }" if (parenthesized_expression "(local_20 != (uchar *)0x0)" ( (binary_expression "local_20 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }\nLAB_00026b63:\n        free(local_20);\n        filedata->program_headers = __ptr;\n        return 1;\n      }" { (if_statement "if ((filedata->file_header).e_phnum != 0) {\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }" if (parenthesized_expression "((filedata->file_header).e_phnum != 0)" ( (binary_expression "(filedata->file_header).e_phnum != 0" (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          uVar7 = 0;\n          pEVar5 = __ptr;\n          puVar6 = local_20;\n          do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);\n        }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "pEVar5 = __ptr;" (assignment_expression "pEVar5 = __ptr" identifier = identifier) ;) (expression_statement "puVar6 = local_20;" (assignment_expression "puVar6 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          } while (uVar7 < (filedata->file_header).e_phnum);" do (compound_statement "{\n            uVar7 = uVar7 + 1;\n            eVar8._0_4_ = (*byte_get)(puVar6,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;\n            eVar8 = (*byte_get)(puVar6 + 4,4);\n            pEVar5->p_offset = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 8,4);\n            pEVar5->p_vaddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0xc,4);\n            pEVar5->p_paddr = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x10,4);\n            pEVar5->p_filesz = eVar8;\n            eVar8 = (*byte_get)(puVar6 + 0x14,4);\n            pEVar5->p_memsz = eVar8;\n            eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);\n                    /* WARNING: Store size is inaccurate */\n            *(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;\n            puVar2 = puVar6 + 0x1c;\n            puVar6 = puVar6 + 0x20;\n            eVar8 = (*byte_get)(puVar2,4);\n            pEVar5->p_align = eVar8;\n            pEVar5 = pEVar5 + 1;\n          }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "eVar8._0_4_ = (*byte_get)(puVar6,4);" (assignment_expression "eVar8._0_4_ = (*byte_get)(puVar6,4)" (field_expression "eVar8._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(puVar6,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6,4)" ( identifier , number_literal )))) ;) comment (expression_statement "*(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8;" (assignment_expression "*(elf_vma *)&pEVar5->p_type = (elf_vma)eVar8" (pointer_expression "*(elf_vma *)&pEVar5->p_type" * (cast_expression "(elf_vma *)&pEVar5->p_type" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->p_type" & (field_expression "pEVar5->p_type" identifier -> field_identifier)))) = (cast_expression "(elf_vma)eVar8" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 4,4);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 4,4)" identifier = (call_expression "(*byte_get)(puVar6 + 4,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 4,4)" ( (binary_expression "puVar6 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_offset = eVar8;" (assignment_expression "pEVar5->p_offset = eVar8" (field_expression "pEVar5->p_offset" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 8,4);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 8,4)" identifier = (call_expression "(*byte_get)(puVar6 + 8,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 8,4)" ( (binary_expression "puVar6 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_vaddr = eVar8;" (assignment_expression "pEVar5->p_vaddr = eVar8" (field_expression "pEVar5->p_vaddr" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0xc,4);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0xc,4)" identifier = (call_expression "(*byte_get)(puVar6 + 0xc,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0xc,4)" ( (binary_expression "puVar6 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_paddr = eVar8;" (assignment_expression "pEVar5->p_paddr = eVar8" (field_expression "pEVar5->p_paddr" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x10,4);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x10,4)" identifier = (call_expression "(*byte_get)(puVar6 + 0x10,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x10,4)" ( (binary_expression "puVar6 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_filesz = eVar8;" (assignment_expression "pEVar5->p_filesz = eVar8" (field_expression "pEVar5->p_filesz" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8 = (*byte_get)(puVar6 + 0x14,4);" (assignment_expression "eVar8 = (*byte_get)(puVar6 + 0x14,4)" identifier = (call_expression "(*byte_get)(puVar6 + 0x14,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x14,4)" ( (binary_expression "puVar6 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "pEVar5->p_memsz = eVar8;" (assignment_expression "pEVar5->p_memsz = eVar8" (field_expression "pEVar5->p_memsz" identifier -> field_identifier) = identifier) ;) (expression_statement "eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4);" (assignment_expression "eVar8._0_4_ = (*byte_get)(puVar6 + 0x18,4)" (field_expression "eVar8._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(puVar6 + 0x18,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar6 + 0x18,4)" ( (binary_expression "puVar6 + 0x18" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "*(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8;" (assignment_expression "*(elf_vma *)&pEVar5->p_flags = (elf_vma)eVar8" (pointer_expression "*(elf_vma *)&pEVar5->p_flags" * (cast_expression "(elf_vma *)&pEVar5->p_flags" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar5->p_flags" & (field_expression "pEVar5->p_flags" identifier -> field_identifier)))) = (cast_expression "(elf_vma)eVar8" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (expression_statement "puVar2 = puVar6 + 0x1c;" (assignment_expression "puVar2 = puVar6 + 0x1c" identifier = (binary_expression "puVar6 + 0x1c" identifier + number_literal)) ;) (expression_statement "puVar6 = puVar6 + 0x20;" (assignment_expression "puVar6 = puVar6 + 0x20" identifier = (binary_expression "puVar6 + 0x20" identifier + number_literal)) ;) (expression_statement "eVar8 = (*byte_get)(puVar2,4);" (assignment_expression "eVar8 = (*byte_get)(puVar2,4)" identifier = (call_expression "(*byte_get)(puVar2,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar2,4)" ( identifier , number_literal )))) ;) (expression_statement "pEVar5->p_align = eVar8;" (assignment_expression "pEVar5->p_align = eVar8" (field_expression "pEVar5->p_align" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar5 = pEVar5 + 1;" (assignment_expression "pEVar5 = pEVar5 + 1" identifier = (binary_expression "pEVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 < (filedata->file_header).e_phnum)" ( (binary_expression "uVar7 < (filedata->file_header).e_phnum" identifier < (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) )) ;) })) (labeled_statement "LAB_00026b63:\n        free(local_20);" statement_identifier : (expression_statement "free(local_20);" (call_expression "free(local_20)" identifier (argument_list "(local_20)" ( identifier ))) ;)) (expression_statement "filedata->program_headers = __ptr;" (assignment_expression "filedata->program_headers = __ptr" (field_expression "filedata->program_headers" identifier -> field_identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }))) (expression_statement "pcVar4 = (char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5)" identifier (argument_list "(0,\n                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                             ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is less than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar4);" (call_expression "error(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (labeled_statement "LAB_00026cd4:\n  free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 __regparm3 FUN_000269d0(int param_1)\n\n{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_000269d0(int param_1)\n\n{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000269d0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" { (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "void *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc))" ( (binary_expression "*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (call_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)" (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5" (parenthesized_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20)" ( (binary_expression "(-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20" (parenthesized_expression "(-(uint)(DAT_000b6324 == 0) & 0x18)" ( (binary_expression "-(uint)(DAT_000b6324 == 0) & 0x18" (unary_expression "-(uint)(DAT_000b6324 == 0)" - (call_expression "(uint)(DAT_000b6324 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal) )) * identifier) < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ))) <= (binary_expression "(uint)-*(int *)(param_1 + 0xc)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" { (expression_statement "pcVar2 = "Too many program headers - %#x - the file is not that big\n";" (assignment_expression "pcVar2 = "Too many program headers - %#x - the file is not that big\n"" identifier = (string_literal ""Too many program headers - %#x - the file is not that big\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar1 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar1,iVar5);" (call_expression "error(uVar1,iVar5)" identifier (argument_list "(uVar1,iVar5)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);" (assignment_expression "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38)" identifier = (cast_expression "(undefined4 *)FUN_0005dac0(iVar5,0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005dac0(iVar5,0x38)" identifier (argument_list "(iVar5,0x38)" ( identifier , number_literal ))))) ;) (if_statement "if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" if (parenthesized_expression "(__ptr == (undefined4 *)0x0)" ( (binary_expression "__ptr == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" { (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Out of memory reading %u program headers\n";" (assignment_expression "pcVar2 = "Out of memory reading %u program headers\n"" identifier = (string_literal ""Out of memory reading %u program headers\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00026d07;" goto statement_identifier ;) })) (expression_statement "uVar6 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x48)" identifier = (pointer_expression "*(uint *)(param_1 + 0x48)" * (cast_expression "(uint *)(param_1 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" if (parenthesized_expression "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" ( (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" identifier == number_literal) || (binary_expression "iVar5 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x37 < uVar6)" ( (binary_expression "0x37 < uVar6" number_literal < identifier) )) (compound_statement "{\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" if (parenthesized_expression "(uVar6 != 0x38)" ( (binary_expression "uVar6 != 0x38" identifier != number_literal) )) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" { (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" identifier = (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal )))) ;) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier = (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier (argument_list "(uVar6,0,iVar5,0,uVar1)" ( identifier , number_literal , identifier , number_literal , identifier ))))) ;) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" if (parenthesized_expression "(local_20 != (void *)0x0)" ( (binary_expression "local_20 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" identifier = identifier) ;) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" do (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" identifier = (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pvVar4,4)" ( identifier , number_literal )))) ;) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 4,4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 8,8)" ( (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x10,8)" ( (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x18,8)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x20,8)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x28,8)" ( (binary_expression "(int)pvVar4 + 0x28" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" * (cast_expression "(undefined8 *)(puVar3 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 10)" ( (binary_expression "puVar3 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = (int)pvVar4 + 0x30;" (assignment_expression "iVar5 = (int)pvVar4 + 0x30" identifier = (binary_expression "(int)pvVar4 + 0x30" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x38);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x38)" identifier = (cast_expression "(void *)((int)pvVar4 + 0x38)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x38)" ( (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,8)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5,8)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5,8)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )) ;) })) (goto_statement "goto LAB_00026b63;" goto statement_identifier ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" else (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" { (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" if (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" ( (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" identifier == number_literal) || (binary_expression "iVar5 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;)) (if_statement "if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" if (parenthesized_expression "(0x1f < uVar6)" ( (binary_expression "0x1f < uVar6" number_literal < identifier) )) (compound_statement "{\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" { (if_statement "if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" if (parenthesized_expression "(uVar6 != 0x20)" ( (binary_expression "uVar6 != 0x20" identifier != number_literal) )) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" { (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier = (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" identifier (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" identifier = (call_expression "dcgettext(0,"program headers",5)" identifier (argument_list "(0,"program headers",5)" ( number_literal , (string_literal ""program headers"" " string_content ") , number_literal )))) ;) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier = (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" identifier (argument_list "(uVar6,0,iVar5,0,uVar1)" ( identifier , number_literal , identifier , number_literal , identifier ))))) ;) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" if (parenthesized_expression "(local_20 != (void *)0x0)" ( (binary_expression "local_20 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" { (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" identifier = identifier) ;) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" identifier = identifier) ;) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" do (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" identifier = (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(pvVar4,4)" ( identifier , number_literal )))) ;) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 4,4)" ( (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" * (cast_expression "(undefined8 *)(puVar3 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 2)" ( (binary_expression "puVar3 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 8,4)" ( (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" * (cast_expression "(undefined8 *)(puVar3 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 4)" ( (binary_expression "puVar3 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0xc,4)" ( (binary_expression "(int)pvVar4 + 0xc" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" * (cast_expression "(undefined8 *)(puVar3 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 6)" ( (binary_expression "puVar3 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x10,4)" ( (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" * (cast_expression "(undefined8 *)(puVar3 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x14,4)" ( (binary_expression "(int)pvVar4 + 0x14" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" * (cast_expression "(undefined8 *)(puVar3 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 10)" ( (binary_expression "puVar3 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" identifier = (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "((int)pvVar4 + 0x18,4)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , number_literal )))) ;) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar5 = (int)pvVar4 + 0x1c;" (assignment_expression "iVar5 = (int)pvVar4 + 0x1c" identifier = (binary_expression "(int)pvVar4 + 0x1c" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x20);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x20)" identifier = (cast_expression "(void *)((int)pvVar4 + 0x20)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x20)" ( (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,4)" identifier = (call_expression "(*DAT_000b9dd8)(iVar5,4)" (parenthesized_expression "(*DAT_000b9dd8)" ( (pointer_expression "*DAT_000b9dd8" * identifier) )) (argument_list "(iVar5,4)" ( identifier , number_literal )))) ;) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" * (cast_expression "(undefined8 *)(puVar3 + 0xc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0xc)" ( (binary_expression "puVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" identifier = (binary_expression "puVar3 + 0xe" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" ( (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" identifier < (pointer_expression "*(uint *)(param_1 + 0x4c)" * (cast_expression "(uint *)(param_1 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_00026b63:\n        free(local_20);" statement_identifier : (expression_statement "free(local_20);" (call_expression "free(local_20)" identifier (argument_list "(local_20)" ( identifier ))) ;)) (expression_statement "*(undefined4 **)(param_1 + 0x60) = __ptr;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = __ptr" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" * (cast_expression "(undefined4 **)(param_1 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00026cd4;" goto statement_identifier ;) })) }))) (expression_statement "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" identifier = (call_expression "dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" identifier (argument_list "(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" ( number_literal , (string_literal ""The e_phentsize field in the ELF header is less than the size of an ELF program header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar1);" (call_expression "error(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (labeled_statement "LAB_00026cd4:\n  free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT) )) * IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_000269d0(int param_1)\n\n{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000269d0(int param_1)" (identifier "FUN_000269d0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *__ptr;\n  undefined4 uVar1;\n  char *pcVar2;\n  undefined4 *puVar3;\n  void *pvVar4;\n  int iVar5;\n  uint uVar6;\n  undefined8 uVar7;\n  void *local_20;\n  \n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }\n  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);\n  if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }\n  uVar6 = *(uint *)(param_1 + 0x48);\n  iVar5 = *(int *)(param_1 + 0x4c);\n  if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);\n  error(uVar1);\nLAB_00026cd4:\n  free(__ptr);\n  return 0;\n}" ({ "{") (declaration "undefined4 *__ptr;" (type_identifier "undefined4") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "void *local_20;" (primitive_type "void") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)) {\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc))" (( "(") (binary_expression "*(int *)(param_1 + 0xc) == 0 &&\n      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (binary_expression "*(int *)(param_1 + 0xc) == 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=\n      (uint)-*(int *)(param_1 + 0xc)" (call_expression "(uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8))" (( "(") (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)" (binary_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5" (parenthesized_expression "((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20)" (( "(") (binary_expression "(-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20" (parenthesized_expression "(-(uint)(DAT_000b6324 == 0) & 0x18)" (( "(") (binary_expression "-(uint)(DAT_000b6324 == 0) & 0x18" (unary_expression "-(uint)(DAT_000b6324 == 0)" (- "-") (call_expression "(uint)(DAT_000b6324 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_000b6324 == 0)" (( "(") (binary_expression "DAT_000b6324 == 0" (identifier "DAT_000b6324") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x18")) () ")")) (+ "+") (number_literal "0x20")) () ")")) (* "*") (identifier "iVar5")) (< "<") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")"))) (<= "<=") (binary_expression "(uint)-*(int *)(param_1 + 0xc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))))) () ")")) (compound_statement "{\n    pcVar2 = "Too many program headers - %#x - the file is not that big\n";\nLAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);\n    error(uVar1,iVar5);\n    return 0;\n  }" ({ "{") (expression_statement "pcVar2 = "Too many program headers - %#x - the file is not that big\n";" (assignment_expression "pcVar2 = "Too many program headers - %#x - the file is not that big\n"" (identifier "pcVar2") (= "=") (string_literal ""Too many program headers - %#x - the file is not that big\n"" (" """) (string_content "Too many program headers - %#x - the file is not that big") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_00026d07:\n    uVar1 = dcgettext(0,pcVar2,5);" (statement_identifier "LAB_00026d07") (: ":") (expression_statement "uVar1 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar1 = dcgettext(0,pcVar2,5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "error(uVar1,iVar5);" (call_expression "error(uVar1,iVar5)" (identifier "error") (argument_list "(uVar1,iVar5)" (( "(") (identifier "uVar1") (, ",") (identifier "iVar5") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);" (assignment_expression "__ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38)" (identifier "__ptr") (= "=") (cast_expression "(undefined4 *)FUN_0005dac0(iVar5,0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0005dac0(iVar5,0x38)" (identifier "FUN_0005dac0") (argument_list "(iVar5,0x38)" (( "(") (identifier "iVar5") (, ",") (number_literal "0x38") () ")"))))) (; ";")) (if_statement "if (__ptr == (undefined4 *)0x0) {\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" (if "if") (parenthesized_expression "(__ptr == (undefined4 *)0x0)" (( "(") (binary_expression "__ptr == (undefined4 *)0x0" (identifier "__ptr") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar5 = *(int *)(param_1 + 0x4c);\n    pcVar2 = "Out of memory reading %u program headers\n";\n    goto LAB_00026d07;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "pcVar2 = "Out of memory reading %u program headers\n";" (assignment_expression "pcVar2 = "Out of memory reading %u program headers\n"" (identifier "pcVar2") (= "=") (string_literal ""Out of memory reading %u program headers\n"" (" """) (string_content "Out of memory reading %u program headers") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00026d07;" (goto "goto") (statement_identifier "LAB_00026d07") (; ";")) (} "}"))) (expression_statement "uVar6 = *(uint *)(param_1 + 0x48);" (assignment_expression "uVar6 = *(uint *)(param_1 + 0x48)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 0x48)" (* "*") (cast_expression "(uint *)(param_1 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x4c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (DAT_000b6324 == 0) {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }\n  else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000b6324 == 0)" (( "(") (binary_expression "DAT_000b6324 == 0" (identifier "DAT_000b6324") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }\n  }" ({ "{") (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" (if "if") (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" (( "(") (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) (|| "||") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00026cd4;" (goto "goto") (statement_identifier "LAB_00026cd4") (; ";"))) (if_statement "if (0x37 < uVar6) {\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" (if "if") (parenthesized_expression "(0x37 < uVar6)" (( "(") (binary_expression "0x37 < uVar6" (number_literal "0x37") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n      if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }\n      goto LAB_00026cd4;\n    }" ({ "{") (if_statement "if (uVar6 != 0x38) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" (if "if") (parenthesized_expression "(uVar6 != 0x38)" (( "(") (binary_expression "uVar6 != 0x38" (identifier "uVar6") (!= "!=") (number_literal "0x38")) () ")")) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" ({ "{") (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (identifier "dcgettext") (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" (" """) (string_content "The e_phentsize field in the ELF header is larger than the size of an ELF program header") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" (identifier "warn") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"program headers",5)" (identifier "dcgettext") (argument_list "(0,"program headers",5)" (( "(") (number_literal "0") (, ",") (string_literal ""program headers"" (" """) (string_content "program headers") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (identifier "local_20") (= "=") (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (identifier "FUN_0001bf90") (argument_list "(uVar6,0,iVar5,0,uVar1)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (identifier "uVar1") () ")"))))) (; ";")) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" (if "if") (parenthesized_expression "(local_20 != (void *)0x0)" (( "(") (binary_expression "local_20 != (void *)0x0" (identifier "local_20") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\n        goto LAB_00026b63;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" (identifier "puVar3") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" (identifier "pvVar4") (= "=") (identifier "local_20")) (; ";")) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" (do "do") (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            puVar3[1] = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            iVar5 = (int)pvVar4 + 0x30;\n            pvVar4 = (void *)((int)pvVar4 + 0x38);\n            uVar7 = (*DAT_000b9dd8)(iVar5,8);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" ({ "{") (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" (identifier "uVar1") (= "=") (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(pvVar4,4)" (( "(") (identifier "pvVar4") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" (identifier "uVar1") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 4,4)" (( "(") (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 8,8)" (( "(") (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "8")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 2)" (( "(") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x10,8)" (( "(") (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x10")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x18,8)" (( "(") (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x18")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 6)" (( "(") (binary_expression "puVar3 + 6" (identifier "puVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x20,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x20,8)" (( "(") (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x20")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x28,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x28,8)" (( "(") (binary_expression "(int)pvVar4 + 0x28" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x28")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 10)" (( "(") (binary_expression "puVar3 + 10" (identifier "puVar3") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar5 = (int)pvVar4 + 0x30;" (assignment_expression "iVar5 = (int)pvVar4 + 0x30" (identifier "iVar5") (= "=") (binary_expression "(int)pvVar4 + 0x30" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x30"))) (; ";")) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x38);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x38)" (identifier "pvVar4") (= "=") (cast_expression "(void *)((int)pvVar4 + 0x38)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x38)" (( "(") (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,8);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,8)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)(iVar5,8)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(iVar5,8)" (( "(") (identifier "iVar5") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xc)" (( "(") (binary_expression "puVar3 + 0xc" (identifier "puVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" (( "(") (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" (identifier "uVar6") (< "<") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00026b63;" (goto "goto") (statement_identifier "LAB_00026b63") (; ";")) (} "}"))) (goto_statement "goto LAB_00026cd4;" (goto "goto") (statement_identifier "LAB_00026cd4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" (else "else") (compound_statement "{\n    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;\n    if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }\n  }" ({ "{") (if_statement "if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;" (if "if") (parenthesized_expression "(uVar6 == 0 || iVar5 == 0)" (( "(") (binary_expression "uVar6 == 0 || iVar5 == 0" (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) (|| "||") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00026cd4;" (goto "goto") (statement_identifier "LAB_00026cd4") (; ";"))) (if_statement "if (0x1f < uVar6) {\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" (if "if") (parenthesized_expression "(0x1f < uVar6)" (( "(") (binary_expression "0x1f < uVar6" (number_literal "0x1f") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n      if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }\n      uVar1 = dcgettext(0,"program headers",5);\n      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);\n      if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }\n      goto LAB_00026cd4;\n    }" ({ "{") (if_statement "if (uVar6 != 0x20) {\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" (if "if") (parenthesized_expression "(uVar6 != 0x20)" (( "(") (binary_expression "uVar6 != 0x20" (identifier "uVar6") (!= "!=") (number_literal "0x20")) () ")")) (compound_statement "{\n        uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);\n        warn(uVar1);\n      }" ({ "{") (expression_statement "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (identifier "dcgettext") (argument_list "(0,\n                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"\n                          ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"" (" """) (string_content "The e_phentsize field in the ELF header is larger than the size of an ELF program header") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar1);" (call_expression "warn(uVar1)" (identifier "warn") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = dcgettext(0,"program headers",5);" (assignment_expression "uVar1 = dcgettext(0,"program headers",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"program headers",5)" (identifier "dcgettext") (argument_list "(0,"program headers",5)" (( "(") (number_literal "0") (, ",") (string_literal ""program headers"" (" """) (string_content "program headers") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);" (assignment_expression "local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (identifier "local_20") (= "=") (cast_expression "(void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(uVar6,0,iVar5,0,uVar1)" (identifier "FUN_0001bf90") (argument_list "(uVar6,0,iVar5,0,uVar1)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (identifier "uVar1") () ")"))))) (; ";")) (if_statement "if (local_20 != (void *)0x0) {\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" (if "if") (parenthesized_expression "(local_20 != (void *)0x0)" (( "(") (binary_expression "local_20 != (void *)0x0" (identifier "local_20") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }\nLAB_00026b63:\n        free(local_20);\n        *(undefined4 **)(param_1 + 0x60) = __ptr;\n        return 1;\n      }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x4c) != 0) {\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x4c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x4c) != 0" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = 0;\n          puVar3 = __ptr;\n          pvVar4 = local_20;\n          do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));\n        }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = __ptr;" (assignment_expression "puVar3 = __ptr" (identifier "puVar3") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "pvVar4 = local_20;" (assignment_expression "pvVar4 = local_20" (identifier "pvVar4") (= "=") (identifier "local_20")) (; ";")) (do_statement "do {\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          } while (uVar6 < *(uint *)(param_1 + 0x4c));" (do "do") (compound_statement "{\n            uVar6 = uVar6 + 1;\n            uVar1 = (*DAT_000b9dd8)(pvVar4,4);\n            *puVar3 = uVar1;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);\n            *(undefined8 *)(puVar3 + 2) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);\n            *(undefined8 *)(puVar3 + 4) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);\n            *(undefined8 *)(puVar3 + 6) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);\n            *(undefined8 *)(puVar3 + 8) = uVar7;\n            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);\n            *(undefined8 *)(puVar3 + 10) = uVar7;\n            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);\n            puVar3[1] = uVar1;\n            iVar5 = (int)pvVar4 + 0x1c;\n            pvVar4 = (void *)((int)pvVar4 + 0x20);\n            uVar7 = (*DAT_000b9dd8)(iVar5,4);\n            *(undefined8 *)(puVar3 + 0xc) = uVar7;\n            puVar3 = puVar3 + 0xe;\n          }" ({ "{") (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar1 = (*DAT_000b9dd8)(pvVar4,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)(pvVar4,4)" (identifier "uVar1") (= "=") (call_expression "(*DAT_000b9dd8)(pvVar4,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(pvVar4,4)" (( "(") (identifier "pvVar4") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*puVar3 = uVar1;" (assignment_expression "*puVar3 = uVar1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 4,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 4,4)" (( "(") (binary_expression "(int)pvVar4 + 4" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 2) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 2) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 2)" (( "(") (binary_expression "puVar3 + 2" (identifier "puVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 8,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 8,4)" (( "(") (binary_expression "(int)pvVar4 + 8" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "8")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 4) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 4) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 4)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 4)" (( "(") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0xc,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0xc,4)" (( "(") (binary_expression "(int)pvVar4 + 0xc" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0xc")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 6) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 6) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 6)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 6)" (( "(") (binary_expression "puVar3 + 6" (identifier "puVar3") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x10,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x10,4)" (( "(") (binary_expression "(int)pvVar4 + 0x10" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x10")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 8) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 8) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 8)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x14,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x14,4)" (( "(") (binary_expression "(int)pvVar4 + 0x14" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x14")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 10) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 10) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 10)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 10)" (( "(") (binary_expression "puVar3 + 10" (identifier "puVar3") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);" (assignment_expression "uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" (identifier "uVar1") (= "=") (call_expression "(*DAT_000b9dd8)((int)pvVar4 + 0x18,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "((int)pvVar4 + 0x18,4)" (( "(") (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x18")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "puVar3[1] = uVar1;" (assignment_expression "puVar3[1] = uVar1" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "iVar5 = (int)pvVar4 + 0x1c;" (assignment_expression "iVar5 = (int)pvVar4 + 0x1c" (identifier "iVar5") (= "=") (binary_expression "(int)pvVar4 + 0x1c" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "pvVar4 = (void *)((int)pvVar4 + 0x20);" (assignment_expression "pvVar4 = (void *)((int)pvVar4 + 0x20)" (identifier "pvVar4") (= "=") (cast_expression "(void *)((int)pvVar4 + 0x20)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x20)" (( "(") (binary_expression "(int)pvVar4 + 0x20" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar7 = (*DAT_000b9dd8)(iVar5,4);" (assignment_expression "uVar7 = (*DAT_000b9dd8)(iVar5,4)" (identifier "uVar7") (= "=") (call_expression "(*DAT_000b9dd8)(iVar5,4)" (parenthesized_expression "(*DAT_000b9dd8)" (( "(") (pointer_expression "*DAT_000b9dd8" (* "*") (identifier "DAT_000b9dd8")) () ")")) (argument_list "(iVar5,4)" (( "(") (identifier "iVar5") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(puVar3 + 0xc) = uVar7;" (assignment_expression "*(undefined8 *)(puVar3 + 0xc) = uVar7" (pointer_expression "*(undefined8 *)(puVar3 + 0xc)" (* "*") (cast_expression "(undefined8 *)(puVar3 + 0xc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 0xc)" (( "(") (binary_expression "puVar3 + 0xc" (identifier "puVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar3 = puVar3 + 0xe;" (assignment_expression "puVar3 = puVar3 + 0xe" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 0xe" (identifier "puVar3") (+ "+") (number_literal "0xe"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 < *(uint *)(param_1 + 0x4c))" (( "(") (binary_expression "uVar6 < *(uint *)(param_1 + 0x4c)" (identifier "uVar6") (< "<") (pointer_expression "*(uint *)(param_1 + 0x4c)" (* "*") (cast_expression "(uint *)(param_1 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00026b63:\n        free(local_20);" (statement_identifier "LAB_00026b63") (: ":") (expression_statement "free(local_20);" (call_expression "free(local_20)" (identifier "free") (argument_list "(local_20)" (( "(") (identifier "local_20") () ")"))) (; ";"))) (expression_statement "*(undefined4 **)(param_1 + 0x60) = __ptr;" (assignment_expression "*(undefined4 **)(param_1 + 0x60) = __ptr" (pointer_expression "*(undefined4 **)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "__ptr")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00026cd4;" (goto "goto") (statement_identifier "LAB_00026cd4") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5);" (assignment_expression "uVar1 = dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" (identifier "dcgettext") (argument_list "(0,\n                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"\n                    ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""The e_phentsize field in the ELF header is less than the size of an ELF program header\n"" (" """) (string_content "The e_phentsize field in the ELF header is less than the size of an ELF program header") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar1);" (call_expression "error(uVar1)" (identifier "error") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (labeled_statement "LAB_00026cd4:\n  free(__ptr);" (statement_identifier "LAB_00026cd4") (: ":") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

type_1 __regparm3 function_1(type_2 *filedata)

{
  int *piVar1;
  type_3 *puVar2;
  type_4 var_8;
  type_5 *var_6;
  char *pcVar4;
  type_6 eVar8;
  type_5 *var_13;
  type_3 *var_12;
  size_t var_2;
  type_4 var_7;
  type_3 *var_11;
  
  var_2 = (filedata->file_header).e_phnum;
  piVar1 = (int *)((int)&filedata->file_size + 4);
  if (*piVar1 == 0 &&
      (type_4)(((-(type_4)(var_1 == 0) & 0x18) + 0x20) * var_2 < (type_4)filedata->file_size) <=
      (type_4)-*piVar1) {
    pcVar4 = "Too many program headers - %#x - the file is not that big\n";
LAB_00026d07:
    pcVar4 = (char *)var_3(0,pcVar4,5);
    var_4(pcVar4,var_2);
    return 0;
  }
  var_6 = (type_5 *)var_5(var_2,0x38);
  if (var_6 == (type_5 *)0x0) {
    var_2 = (filedata->file_header).e_phnum;
    pcVar4 = "Out of memory reading %u program headers\n";
    goto LAB_00026d07;
  }
  var_7 = (filedata->file_header).e_phentsize;
  var_8 = (filedata->file_header).e_phnum;
  if (var_1 == 0) {
    if (var_7 == 0 || var_8 == 0) goto LAB_00026cd4;
    if (0x37 < var_7) {
      if (var_7 != 0x38) {
        pcVar4 = (char *)var_3(0,
                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                                   ,5);
        var_9(pcVar4);
      }
      pcVar4 = (char *)var_3(0,"program headers",5);
      var_11 = (type_3 *)var_10((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,
                                   (type_7)var_7,(type_7)var_8,pcVar4);
      if (var_11 != (type_3 *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          var_7 = 0;
          var_13 = var_6;
          var_12 = var_11;
          do {
            var_7 = var_7 + 1;
            eVar8._0_4_ = (*byte_get)(var_12,4);
                    /* WARNING: Store size is inaccurate */
            *(type_6 *)&var_13->p_type = (type_6)eVar8;
            eVar8._0_4_ = (*byte_get)(var_12 + 4,4);
                    /* WARNING: Store size is inaccurate */
            *(type_6 *)&var_13->p_flags = (type_6)eVar8;
            eVar8 = (*byte_get)(var_12 + 8,8);
            var_13->p_offset = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x10,8);
            var_13->p_vaddr = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x18,8);
            var_13->p_paddr = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x20,8);
            var_13->p_filesz = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x28,8);
            var_13->p_memsz = eVar8;
            puVar2 = var_12 + 0x30;
            var_12 = var_12 + 0x38;
            eVar8 = (*byte_get)(puVar2,8);
            var_13->p_align = eVar8;
            var_13 = var_13 + 1;
          } while (var_7 < (filedata->file_header).e_phnum);
        }
        goto LAB_00026b63;
      }
      goto LAB_00026cd4;
    }
  }
  else {
    if (var_7 == 0 || var_8 == 0) goto LAB_00026cd4;
    if (0x1f < var_7) {
      if (var_7 != 0x20) {
        pcVar4 = (char *)var_3(0,
                                   "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                                   ,5);
        var_9(pcVar4);
      }
      pcVar4 = (char *)var_3(0,"program headers",5);
      var_11 = (type_3 *)var_10((void *)0x0,filedata,(ulong)(filedata->file_header).e_phoff,
                                   (type_7)var_7,(type_7)var_8,pcVar4);
      if (var_11 != (type_3 *)0x0) {
        if ((filedata->file_header).e_phnum != 0) {
          var_7 = 0;
          var_13 = var_6;
          var_12 = var_11;
          do {
            var_7 = var_7 + 1;
            eVar8._0_4_ = (*byte_get)(var_12,4);
                    /* WARNING: Store size is inaccurate */
            *(type_6 *)&var_13->p_type = (type_6)eVar8;
            eVar8 = (*byte_get)(var_12 + 4,4);
            var_13->p_offset = eVar8;
            eVar8 = (*byte_get)(var_12 + 8,4);
            var_13->p_vaddr = eVar8;
            eVar8 = (*byte_get)(var_12 + 0xc,4);
            var_13->p_paddr = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x10,4);
            var_13->p_filesz = eVar8;
            eVar8 = (*byte_get)(var_12 + 0x14,4);
            var_13->p_memsz = eVar8;
            eVar8._0_4_ = (*byte_get)(var_12 + 0x18,4);
                    /* WARNING: Store size is inaccurate */
            *(type_6 *)&var_13->p_flags = (type_6)eVar8;
            puVar2 = var_12 + 0x1c;
            var_12 = var_12 + 0x20;
            eVar8 = (*byte_get)(puVar2,4);
            var_13->p_align = eVar8;
            var_13 = var_13 + 1;
          } while (var_7 < (filedata->file_header).e_phnum);
        }
LAB_00026b63:
        var_14(var_11);
        filedata->program_headers = var_6;
        return 1;
      }
      goto LAB_00026cd4;
    }
  }
  pcVar4 = (char *)var_3(0,
                             "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
                             ,5);
  var_4(pcVar4);
LAB_00026cd4:
  var_14(var_6);
  return 0;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (binary_expression left: (parenthesized_expression (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4 __regparm3 MASKED(int param_1)

{
  undefined4 *__ptr;
  undefined4 uVar1;
  char *pcVar2;
  undefined4 *puVar3;
  void *pvVar4;
  int iVar5;
  uint uVar6;
  undefined8 uVar7;
  void *local_20;
  
  iVar5 = *(int *)(param_1 + 0x4c);
  if (*(int *)(param_1 + 0xc) == 0 &&
      (uint)(((-(uint)(DAT_000b6324 == 0) & 0x18) + 0x20) * iVar5 < *(uint *)(param_1 + 8)) <=
      (uint)-*(int *)(param_1 + 0xc)) {
    pcVar2 = "Too many program headers - %#x - the file is not that big\n";
LAB_00026d07:
    uVar1 = dcgettext(0,pcVar2,5);
    error(uVar1,iVar5);
    return 0;
  }
  __ptr = (undefined4 *)FUN_0005dac0(iVar5,0x38);
  if (__ptr == (undefined4 *)0x0) {
    iVar5 = *(int *)(param_1 + 0x4c);
    pcVar2 = "Out of memory reading %u program headers\n";
    goto LAB_00026d07;
  }
  uVar6 = *(uint *)(param_1 + 0x48);
  iVar5 = *(int *)(param_1 + 0x4c);
  if (DAT_000b6324 == 0) {
    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;
    if (0x37 < uVar6) {
      if (uVar6 != 0x38) {
        uVar1 = dcgettext(0,
                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                          ,5);
        warn(uVar1);
      }
      uVar1 = dcgettext(0,"program headers",5);
      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);
      if (local_20 != (void *)0x0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar6 = 0;
          puVar3 = __ptr;
          pvVar4 = local_20;
          do {
            uVar6 = uVar6 + 1;
            uVar1 = (*DAT_000b9dd8)(pvVar4,4);
            *puVar3 = uVar1;
            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);
            puVar3[1] = uVar1;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,8);
            *(undefined8 *)(puVar3 + 2) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,8);
            *(undefined8 *)(puVar3 + 4) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,8);
            *(undefined8 *)(puVar3 + 6) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x20,8);
            *(undefined8 *)(puVar3 + 8) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x28,8);
            *(undefined8 *)(puVar3 + 10) = uVar7;
            iVar5 = (int)pvVar4 + 0x30;
            pvVar4 = (void *)((int)pvVar4 + 0x38);
            uVar7 = (*DAT_000b9dd8)(iVar5,8);
            *(undefined8 *)(puVar3 + 0xc) = uVar7;
            puVar3 = puVar3 + 0xe;
          } while (uVar6 < *(uint *)(param_1 + 0x4c));
        }
        goto LAB_00026b63;
      }
      goto LAB_00026cd4;
    }
  }
  else {
    if (uVar6 == 0 || iVar5 == 0) goto LAB_00026cd4;
    if (0x1f < uVar6) {
      if (uVar6 != 0x20) {
        uVar1 = dcgettext(0,
                          "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
                          ,5);
        warn(uVar1);
      }
      uVar1 = dcgettext(0,"program headers",5);
      local_20 = (void *)FUN_0001bf90(uVar6,0,iVar5,0,uVar1);
      if (local_20 != (void *)0x0) {
        if (*(int *)(param_1 + 0x4c) != 0) {
          uVar6 = 0;
          puVar3 = __ptr;
          pvVar4 = local_20;
          do {
            uVar6 = uVar6 + 1;
            uVar1 = (*DAT_000b9dd8)(pvVar4,4);
            *puVar3 = uVar1;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 4,4);
            *(undefined8 *)(puVar3 + 2) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 8,4);
            *(undefined8 *)(puVar3 + 4) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0xc,4);
            *(undefined8 *)(puVar3 + 6) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x10,4);
            *(undefined8 *)(puVar3 + 8) = uVar7;
            uVar7 = (*DAT_000b9dd8)((int)pvVar4 + 0x14,4);
            *(undefined8 *)(puVar3 + 10) = uVar7;
            uVar1 = (*DAT_000b9dd8)((int)pvVar4 + 0x18,4);
            puVar3[1] = uVar1;
            iVar5 = (int)pvVar4 + 0x1c;
            pvVar4 = (void *)((int)pvVar4 + 0x20);
            uVar7 = (*DAT_000b9dd8)(iVar5,4);
            *(undefined8 *)(puVar3 + 0xc) = uVar7;
            puVar3 = puVar3 + 0xe;
          } while (uVar6 < *(uint *)(param_1 + 0x4c));
        }
LAB_00026b63:
        free(local_20);
        *(undefined4 **)(param_1 + 0x60) = __ptr;
        return 1;
      }
      goto LAB_00026cd4;
    }
  }
  uVar1 = dcgettext(0,
                    "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
                    ,5);
  error(uVar1);
LAB_00026cd4:
  free(__ptr);
  return 0;
}

