
void lang_new_phdr(char *name,etree_type *type,bfd_boolean filehdr,bfd_boolean phdrs,etree_type *at,
                  etree_type *flags)

{
  long lVar1;
  int iVar2;
  lang_phdr *plVar3;
  lang_phdr *plVar4;
  char *fmt;
  lang_phdr **pplVar5;
  lang_phdr **pplVar6;
  
  plVar3 = (lang_phdr *)stat_alloc(0x30);
  plVar3->next = (lang_phdr *)0x0;
  plVar3->name = name;
  iVar2 = exp_get_value_int(type,0,"program header type");
  plVar3->filehdr = filehdr;
  plVar3->phdrs = phdrs;
  plVar3->type = (long)iVar2;
  plVar3->at = at;
  plVar3->flags = flags;
  if (((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)) {
    if (lang_phdr_list != (lang_phdr *)0x0) {
      pplVar5 = &lang_phdr_list;
      plVar4 = lang_phdr_list;
      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;
      do {
        do {
          pplVar5 = &((lang_phdr *)pplVar5)->next->next;
          plVar4 = ((lang_phdr *)pplVar5)->next;
          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;
        } while (plVar4->type != 1);
LAB_0011f2a2:
        lVar1._0_4_ = plVar4->filehdr;
        lVar1._4_4_ = plVar4->phdrs;
      } while (lVar1 != 0);
      fmt = (char *)dcgettext(0,
                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
                              ,5);
      einfo(fmt,0);
      plVar4 = ((lang_phdr *)pplVar5)->next->next;
      pplVar5 = &((lang_phdr *)pplVar5)->next->next;
      if (plVar4 != (lang_phdr *)0x0) {
        pplVar6 = &plVar4->next->next;
        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&
               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {
LAB_0011f2e7:
          plVar4 = ((lang_phdr *)pplVar6)->next;
          pplVar6 = &plVar4->next->next;
        }
      }
      goto LAB_0011f25c;
    }
  }
  else if (lang_phdr_list != (lang_phdr *)0x0) {
    pplVar6 = &lang_phdr_list;
    goto LAB_0011f2e7;
  }
  pplVar5 = &lang_phdr_list;
LAB_0011f25c:
  ((lang_phdr *)pplVar5)->next = plVar3;
  return;
}



void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,
                 undefined8 param_6)

{
  long *plVar1;
  int iVar2;
  undefined8 *puVar3;
  long lVar4;
  undefined8 uVar5;
  long *plVar6;
  long *plVar7;
  
  puVar3 = (undefined8 *)FUN_00119720(0x30);
  *puVar3 = 0;
  puVar3[1] = param_1;
  iVar2 = FUN_00127a30(param_2,0,"program header type");
  *(int *)(puVar3 + 3) = param_3;
  *(int *)((long)puVar3 + 0x1c) = param_4;
  puVar3[2] = (long)iVar2;
  puVar3[4] = param_5;
  puVar3[5] = param_6;
  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {
    if (DAT_002b5ed0 != 0) {
      plVar6 = &DAT_002b5ed0;
      lVar4 = DAT_002b5ed0;
      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;
      do {
        do {
          plVar6 = (long *)*plVar6;
          lVar4 = *plVar6;
          if (lVar4 == 0) goto LAB_0011f25c;
        } while (*(long *)(lVar4 + 0x10) != 1);
LAB_0011f2a2:
      } while (*(long *)(lVar4 + 0x18) != 0);
      uVar5 = dcgettext(0,
                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
                        ,5);
      FUN_00129380(uVar5,0);
      plVar1 = *(long **)*plVar6;
      plVar6 = (long *)*plVar6;
      if (plVar1 != (long *)0x0) {
        plVar7 = (long *)*plVar1;
        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {
LAB_0011f2e7:
          plVar1 = (long *)*plVar7;
          plVar7 = (long *)*plVar1;
        }
      }
      goto LAB_0011f25c;
    }
  }
  else if (DAT_002b5ed0 != 0) {
    plVar7 = &DAT_002b5ed0;
    goto LAB_0011f2e7;
  }
  plVar6 = &DAT_002b5ed0;
LAB_0011f25c:
  *plVar6 = (long)puVar3;
  return;
}


PUSH R15
MOV R15,RDI
MOV EDI,0x30
PUSH R14
MOV R14,R8
PUSH R13
MOV R13,R9
PUSH R12
MOV R12D,EDX
PUSH RBP
PUSH RBX
MOV EBX,ECX
SUB RSP,0x18
MOV qword ptr [RSP + 0x8],RSI
CALL 0x00119720
MOV RDI,qword ptr [RSP + 0x8]
LEA RDX,[0x16c2fd]
XOR ESI,ESI
MOV qword ptr [RAX],0x0
MOV RBP,RAX
MOV qword ptr [RAX + 0x8],R15
CALL 0x00127a30
MOV dword ptr [RBP + 0x18],R12D
CDQE
MOV dword ptr [RBP + 0x1c],EBX
MOV qword ptr [RBP + 0x10],RAX
MOV qword ptr [RBP + 0x20],R14
MOV qword ptr [RBP + 0x28],R13
CMP RAX,0x1
JZ 0x0011f270
CMP qword ptr [0x002b5ed0],0x0
JNZ 0x0011f2e0
LEA RBX,[0x2b5ed0]
MOV qword ptr [RBX],RBP
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
OR R12D,EBX
JZ 0x0011f247
MOV RAX,qword ptr [0x002b5ed0]
TEST RAX,RAX
JZ 0x0011f255
CMP qword ptr [RAX + 0x10],0x1
LEA RBX,[0x2b5ed0]
JZ 0x0011f2a2
NOP
MOV RBX,qword ptr [RBX]
MOV RAX,qword ptr [RBX]
TEST RAX,RAX
JZ 0x0011f25c
CMP qword ptr [RAX + 0x10],0x1
JNZ 0x0011f290
CMP qword ptr [RAX + 0x18],0x0
JNZ 0x0011f290
MOV EDX,0x5
LEA RSI,[0x16cbc0]
XOR EDI,EDI
CALL 0x0010d300
XOR ESI,ESI
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00129380
MOV RAX,qword ptr [RBX]
MOV RBX,qword ptr [RAX]
TEST RBX,RBX
JZ 0x0011f304
MOV RAX,qword ptr [RBX]
TEST RAX,RAX
JNZ 0x0011f2f6
JMP 0x0011f25c
LEA RBX,[0x2b5ed0]
MOV RBX,qword ptr [RBX]
MOV RAX,qword ptr [RBX]
TEST RAX,RAX
JZ 0x0011f25c
CMP qword ptr [RAX],0x0
MOV RBX,RAX
JNZ 0x0011f2e7
JMP 0x0011f25c
MOV RBX,RAX
JMP 0x0011f25c
(translation_unit "void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)\n\n{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}\n\n" (function_definition "void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)\n\n{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" primitive_type (function_declarator "FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (expression_statement "puVar3 = (undefined8 *)FUN_00119720(0x30);" (assignment_expression "puVar3 = (undefined8 *)FUN_00119720(0x30)" identifier = (cast_expression "(undefined8 *)FUN_00119720(0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00119720(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = param_1;" (assignment_expression "puVar3[1] = param_1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = FUN_00127a30(param_2,0,"program header type");" (assignment_expression "iVar2 = FUN_00127a30(param_2,0,"program header type")" identifier = (call_expression "FUN_00127a30(param_2,0,"program header type")" identifier (argument_list "(param_2,0,"program header type")" ( identifier , number_literal , (string_literal ""program header type"" " string_content ") )))) ;) (expression_statement "*(int *)(puVar3 + 3) = param_3;" (assignment_expression "*(int *)(puVar3 + 3) = param_3" (pointer_expression "*(int *)(puVar3 + 3)" * (cast_expression "(int *)(puVar3 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((long)puVar3 + 0x1c) = param_4;" (assignment_expression "*(int *)((long)puVar3 + 0x1c) = param_4" (pointer_expression "*(int *)((long)puVar3 + 0x1c)" * (cast_expression "(int *)((long)puVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar3 + 0x1c)" ( (binary_expression "(long)puVar3 + 0x1c" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar3[2] = (long)iVar2;" (assignment_expression "puVar3[2] = (long)iVar2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "puVar3[4] = param_5;" (assignment_expression "puVar3[4] = param_5" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = param_6;" (assignment_expression "puVar3[5] = param_6" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" if (parenthesized_expression "(((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0))" ( (binary_expression "((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)" (parenthesized_expression "((long)iVar2 == 1)" ( (binary_expression "(long)iVar2 == 1" (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) == number_literal) )) && (parenthesized_expression "(param_3 != 0 || param_4 != 0)" ( (binary_expression "param_3 != 0 || param_4 != 0" (binary_expression "param_3 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" { (if_statement "if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(DAT_002b5ed0 != 0)" ( (binary_expression "DAT_002b5ed0 != 0" identifier != number_literal) )) (compound_statement "{\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }" { (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (expression_statement "lVar4 = DAT_002b5ed0;" (assignment_expression "lVar4 = DAT_002b5ed0" identifier = identifier) ;) (if_statement "if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;" if (parenthesized_expression "(*(long *)(DAT_002b5ed0 + 0x10) == 1)" ( (binary_expression "*(long *)(DAT_002b5ed0 + 0x10) == 1" (pointer_expression "*(long *)(DAT_002b5ed0 + 0x10)" * (cast_expression "(long *)(DAT_002b5ed0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5ed0 + 0x10)" ( (binary_expression "DAT_002b5ed0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0011f2a2;" goto statement_identifier ;)) (ERROR "do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" do (compound_statement "{\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" { (do_statement "do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);" do (compound_statement "{\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        }" { (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (expression_statement "lVar4 = *plVar6;" (assignment_expression "lVar4 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (if_statement "if (lVar4 == 0) goto LAB_0011f25c;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(long *)(lVar4 + 0x10) != 1)" ( (binary_expression "*(long *)(lVar4 + 0x10) != 1" (pointer_expression "*(long *)(lVar4 + 0x10)" * (cast_expression "(long *)(lVar4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x10)" ( (binary_expression "lVar4 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);" statement_identifier : (ERROR "}" }) (while_statement "while (*(long *)(lVar4 + 0x18) != 0);" while (parenthesized_expression "(*(long *)(lVar4 + 0x18) != 0)" ( (binary_expression "*(long *)(lVar4 + 0x18) != 0" (pointer_expression "*(long *)(lVar4 + 0x18)" * (cast_expression "(long *)(lVar4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) != number_literal) )) (expression_statement ";" ;))) (expression_statement "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);" (assignment_expression "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" identifier = (call_expression "dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" identifier (argument_list "(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" ( number_literal , (string_literal ""%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar5,0);" (call_expression "FUN_00129380(uVar5,0)" identifier (argument_list "(uVar5,0)" ( identifier , number_literal ))) ;) (expression_statement "plVar1 = *(long **)*plVar6;" (assignment_expression "plVar1 = *(long **)*plVar6" identifier = (pointer_expression "*(long **)*plVar6" * (cast_expression "(long **)*plVar6" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar6" * identifier)))) ;) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (if_statement "if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" if (parenthesized_expression "(plVar1 != (long *)0x0)" ( (binary_expression "plVar1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" { (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" identifier = (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier))) ;) (while_statement "while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" while (parenthesized_expression "((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)))" ( (parenthesized_expression "(plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))" ( (comma_expression "plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (assignment_expression "plVar6 = plVar1" identifier = identifier) , (binary_expression "plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(plVar6 = plVar7, *plVar7 != 0)" ( (comma_expression "plVar6 = plVar7, *plVar7 != 0" (assignment_expression "plVar6 = plVar7" identifier = identifier) , (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" * identifier) != number_literal)) )))) )) )) (compound_statement "{\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" { (labeled_statement "LAB_0011f2e7:\n          plVar1 = (long *)*plVar7;" statement_identifier : (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;)) (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" identifier = (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier))) ;) })) })) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;) })) }) (else_clause "else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" else (if_statement "if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(DAT_002b5ed0 != 0)" ( (binary_expression "DAT_002b5ed0 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" { (expression_statement "plVar7 = &DAT_002b5ed0;" (assignment_expression "plVar7 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (goto_statement "goto LAB_0011f2e7;" goto statement_identifier ;) })))) (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (labeled_statement "LAB_0011f25c:\n  *plVar6 = (long)puVar3;" statement_identifier : (expression_statement "*plVar6 = (long)puVar3;" (assignment_expression "*plVar6 = (long)puVar3" (pointer_expression "*plVar6" * identifier) = (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (return_statement "return;" return ;) })) })))
(translation_unit "void lang_new_phdr(char *name,etree_type *type,bfd_boolean filehdr,bfd_boolean phdrs,etree_type *at,\n                  etree_type *flags)\n\n{\n  long lVar1;\n  int iVar2;\n  lang_phdr *plVar3;\n  lang_phdr *plVar4;\n  char *fmt;\n  lang_phdr **pplVar5;\n  lang_phdr **pplVar6;\n  \n  plVar3 = (lang_phdr *)stat_alloc(0x30);\n  plVar3->next = (lang_phdr *)0x0;\n  plVar3->name = name;\n  iVar2 = exp_get_value_int(type,0,"program header type");\n  plVar3->filehdr = filehdr;\n  plVar3->phdrs = phdrs;\n  plVar3->type = (long)iVar2;\n  plVar3->at = at;\n  plVar3->flags = flags;\n  if (((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)) {\n    if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }\n  pplVar5 = &lang_phdr_list;\nLAB_0011f25c:\n  ((lang_phdr *)pplVar5)->next = plVar3;\n  return;\n}\n\n" (function_definition "void lang_new_phdr(char *name,etree_type *type,bfd_boolean filehdr,bfd_boolean phdrs,etree_type *at,\n                  etree_type *flags)\n\n{\n  long lVar1;\n  int iVar2;\n  lang_phdr *plVar3;\n  lang_phdr *plVar4;\n  char *fmt;\n  lang_phdr **pplVar5;\n  lang_phdr **pplVar6;\n  \n  plVar3 = (lang_phdr *)stat_alloc(0x30);\n  plVar3->next = (lang_phdr *)0x0;\n  plVar3->name = name;\n  iVar2 = exp_get_value_int(type,0,"program header type");\n  plVar3->filehdr = filehdr;\n  plVar3->phdrs = phdrs;\n  plVar3->type = (long)iVar2;\n  plVar3->at = at;\n  plVar3->flags = flags;\n  if (((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)) {\n    if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }\n  pplVar5 = &lang_phdr_list;\nLAB_0011f25c:\n  ((lang_phdr *)pplVar5)->next = plVar3;\n  return;\n}" primitive_type (function_declarator "lang_new_phdr(char *name,etree_type *type,bfd_boolean filehdr,bfd_boolean phdrs,etree_type *at,\n                  etree_type *flags)" identifier (parameter_list "(char *name,etree_type *type,bfd_boolean filehdr,bfd_boolean phdrs,etree_type *at,\n                  etree_type *flags)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "etree_type *type" type_identifier (pointer_declarator "*type" * identifier)) , (parameter_declaration "bfd_boolean filehdr" type_identifier identifier) , (parameter_declaration "bfd_boolean phdrs" type_identifier identifier) , (parameter_declaration "etree_type *at" type_identifier (pointer_declarator "*at" * identifier)) , (parameter_declaration "etree_type *flags" type_identifier (pointer_declarator "*flags" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  lang_phdr *plVar3;\n  lang_phdr *plVar4;\n  char *fmt;\n  lang_phdr **pplVar5;\n  lang_phdr **pplVar6;\n  \n  plVar3 = (lang_phdr *)stat_alloc(0x30);\n  plVar3->next = (lang_phdr *)0x0;\n  plVar3->name = name;\n  iVar2 = exp_get_value_int(type,0,"program header type");\n  plVar3->filehdr = filehdr;\n  plVar3->phdrs = phdrs;\n  plVar3->type = (long)iVar2;\n  plVar3->at = at;\n  plVar3->flags = flags;\n  if (((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)) {\n    if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }\n  pplVar5 = &lang_phdr_list;\nLAB_0011f25c:\n  ((lang_phdr *)pplVar5)->next = plVar3;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "lang_phdr *plVar3;" type_identifier (pointer_declarator "*plVar3" * identifier) ;) (declaration "lang_phdr *plVar4;" type_identifier (pointer_declarator "*plVar4" * identifier) ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "lang_phdr **pplVar5;" type_identifier (pointer_declarator "**pplVar5" * (pointer_declarator "*pplVar5" * identifier)) ;) (declaration "lang_phdr **pplVar6;" type_identifier (pointer_declarator "**pplVar6" * (pointer_declarator "*pplVar6" * identifier)) ;) (expression_statement "plVar3 = (lang_phdr *)stat_alloc(0x30);" (assignment_expression "plVar3 = (lang_phdr *)stat_alloc(0x30)" identifier = (cast_expression "(lang_phdr *)stat_alloc(0x30)" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stat_alloc(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "plVar3->next = (lang_phdr *)0x0;" (assignment_expression "plVar3->next = (lang_phdr *)0x0" (field_expression "plVar3->next" identifier -> field_identifier) = (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar3->name = name;" (assignment_expression "plVar3->name = name" (field_expression "plVar3->name" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar2 = exp_get_value_int(type,0,"program header type");" (assignment_expression "iVar2 = exp_get_value_int(type,0,"program header type")" identifier = (call_expression "exp_get_value_int(type,0,"program header type")" identifier (argument_list "(type,0,"program header type")" ( identifier , number_literal , (string_literal ""program header type"" " string_content ") )))) ;) (expression_statement "plVar3->filehdr = filehdr;" (assignment_expression "plVar3->filehdr = filehdr" (field_expression "plVar3->filehdr" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar3->phdrs = phdrs;" (assignment_expression "plVar3->phdrs = phdrs" (field_expression "plVar3->phdrs" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar3->type = (long)iVar2;" (assignment_expression "plVar3->type = (long)iVar2" (field_expression "plVar3->type" identifier -> field_identifier) = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar3->at = at;" (assignment_expression "plVar3->at = at" (field_expression "plVar3->at" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar3->flags = flags;" (assignment_expression "plVar3->flags = flags" (field_expression "plVar3->flags" identifier -> field_identifier) = identifier) ;) (if_statement "if (((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)) {\n    if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0))" ( (binary_expression "((long)iVar2 == 1) && (filehdr != 0 || phdrs != 0)" (parenthesized_expression "((long)iVar2 == 1)" ( (binary_expression "(long)iVar2 == 1" (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) == number_literal) )) && (parenthesized_expression "(filehdr != 0 || phdrs != 0)" ( (binary_expression "filehdr != 0 || phdrs != 0" (binary_expression "filehdr != 0" identifier != number_literal) || (binary_expression "phdrs != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }" { (if_statement "if (lang_phdr_list != (lang_phdr *)0x0) {\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }" if (parenthesized_expression "(lang_phdr_list != (lang_phdr *)0x0)" ( (binary_expression "lang_phdr_list != (lang_phdr *)0x0" identifier != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pplVar5 = &lang_phdr_list;\n      plVar4 = lang_phdr_list;\n      if (lang_phdr_list->type == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);\n      fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);\n      einfo(fmt,0);\n      plVar4 = ((lang_phdr *)pplVar5)->next->next;\n      pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n      if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }\n      goto LAB_0011f25c;\n    }" { (expression_statement "pplVar5 = &lang_phdr_list;" (assignment_expression "pplVar5 = &lang_phdr_list" identifier = (pointer_expression "&lang_phdr_list" & identifier)) ;) (expression_statement "plVar4 = lang_phdr_list;" (assignment_expression "plVar4 = lang_phdr_list" identifier = identifier) ;) (if_statement "if (lang_phdr_list->type == 1) goto LAB_0011f2a2;" if (parenthesized_expression "(lang_phdr_list->type == 1)" ( (binary_expression "lang_phdr_list->type == 1" (field_expression "lang_phdr_list->type" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0011f2a2;" goto statement_identifier ;)) (do_statement "do {\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      } while (lVar1 != 0);" do (compound_statement "{\n        do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);\nLAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;\n        lVar1._4_4_ = plVar4->phdrs;\n      }" { (do_statement "do {\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        } while (plVar4->type != 1);" do (compound_statement "{\n          pplVar5 = &((lang_phdr *)pplVar5)->next->next;\n          plVar4 = ((lang_phdr *)pplVar5)->next;\n          if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;\n        }" { (expression_statement "pplVar5 = &((lang_phdr *)pplVar5)->next->next;" (assignment_expression "pplVar5 = &((lang_phdr *)pplVar5)->next->next" identifier = (pointer_expression "&((lang_phdr *)pplVar5)->next->next" & (field_expression "((lang_phdr *)pplVar5)->next->next" (field_expression "((lang_phdr *)pplVar5)->next" (parenthesized_expression "((lang_phdr *)pplVar5)" ( (cast_expression "(lang_phdr *)pplVar5" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier))) ;) (expression_statement "plVar4 = ((lang_phdr *)pplVar5)->next;" (assignment_expression "plVar4 = ((lang_phdr *)pplVar5)->next" identifier = (field_expression "((lang_phdr *)pplVar5)->next" (parenthesized_expression "((lang_phdr *)pplVar5)" ( (cast_expression "(lang_phdr *)pplVar5" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;) (if_statement "if (plVar4 == (lang_phdr *)0x0) goto LAB_0011f25c;" if (parenthesized_expression "(plVar4 == (lang_phdr *)0x0)" ( (binary_expression "plVar4 == (lang_phdr *)0x0" identifier == (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;)) }) while (parenthesized_expression "(plVar4->type != 1)" ( (binary_expression "plVar4->type != 1" (field_expression "plVar4->type" identifier -> field_identifier) != number_literal) )) ;) (labeled_statement "LAB_0011f2a2:\n        lVar1._0_4_ = plVar4->filehdr;" statement_identifier : (expression_statement "lVar1._0_4_ = plVar4->filehdr;" (assignment_expression "lVar1._0_4_ = plVar4->filehdr" (field_expression "lVar1._0_4_" identifier . field_identifier) = (field_expression "plVar4->filehdr" identifier -> field_identifier)) ;)) (expression_statement "lVar1._4_4_ = plVar4->phdrs;" (assignment_expression "lVar1._4_4_ = plVar4->phdrs" (field_expression "lVar1._4_4_" identifier . field_identifier) = (field_expression "plVar4->phdrs" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) ;) (expression_statement "fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5);" (assignment_expression "fmt = (char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                              ,5)" ( number_literal , (string_literal ""%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt,0);" (call_expression "einfo(fmt,0)" identifier (argument_list "(fmt,0)" ( identifier , number_literal ))) ;) (expression_statement "plVar4 = ((lang_phdr *)pplVar5)->next->next;" (assignment_expression "plVar4 = ((lang_phdr *)pplVar5)->next->next" identifier = (field_expression "((lang_phdr *)pplVar5)->next->next" (field_expression "((lang_phdr *)pplVar5)->next" (parenthesized_expression "((lang_phdr *)pplVar5)" ( (cast_expression "(lang_phdr *)pplVar5" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier)) ;) (expression_statement "pplVar5 = &((lang_phdr *)pplVar5)->next->next;" (assignment_expression "pplVar5 = &((lang_phdr *)pplVar5)->next->next" identifier = (pointer_expression "&((lang_phdr *)pplVar5)->next->next" & (field_expression "((lang_phdr *)pplVar5)->next->next" (field_expression "((lang_phdr *)pplVar5)->next" (parenthesized_expression "((lang_phdr *)pplVar5)" ( (cast_expression "(lang_phdr *)pplVar5" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier))) ;) (if_statement "if (plVar4 != (lang_phdr *)0x0) {\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }" if (parenthesized_expression "(plVar4 != (lang_phdr *)0x0)" ( (binary_expression "plVar4 != (lang_phdr *)0x0" identifier != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pplVar6 = &plVar4->next->next;\n        while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }\n      }" { (expression_statement "pplVar6 = &plVar4->next->next;" (assignment_expression "pplVar6 = &plVar4->next->next" identifier = (pointer_expression "&plVar4->next->next" & (field_expression "plVar4->next->next" (field_expression "plVar4->next" identifier -> field_identifier) -> field_identifier))) ;) (while_statement "while ((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))) {\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }" while (parenthesized_expression "((pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0)))" ( (parenthesized_expression "(pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0))" ( (comma_expression "pplVar5 = &plVar4->next, (lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0)" (assignment_expression "pplVar5 = &plVar4->next" identifier = (pointer_expression "&plVar4->next" & (field_expression "plVar4->next" identifier -> field_identifier))) , (binary_expression "(lang_phdr *)pplVar6 != (lang_phdr *)0x0 &&\n               (pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0)" (binary_expression "(lang_phdr *)pplVar6 != (lang_phdr *)0x0" (cast_expression "(lang_phdr *)pplVar6" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0)" ( (comma_expression "pplVar5 = pplVar6, ((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0" (assignment_expression "pplVar5 = pplVar6" identifier = identifier) , (binary_expression "((lang_phdr *)pplVar6)->next != (lang_phdr *)0x0" (field_expression "((lang_phdr *)pplVar6)->next" (parenthesized_expression "((lang_phdr *)pplVar6)" ( (cast_expression "(lang_phdr *)pplVar6" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\nLAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;\n          pplVar6 = &plVar4->next->next;\n        }" { (labeled_statement "LAB_0011f2e7:\n          plVar4 = ((lang_phdr *)pplVar6)->next;" statement_identifier : (expression_statement "plVar4 = ((lang_phdr *)pplVar6)->next;" (assignment_expression "plVar4 = ((lang_phdr *)pplVar6)->next" identifier = (field_expression "((lang_phdr *)pplVar6)->next" (parenthesized_expression "((lang_phdr *)pplVar6)" ( (cast_expression "(lang_phdr *)pplVar6" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) ;)) (expression_statement "pplVar6 = &plVar4->next->next;" (assignment_expression "pplVar6 = &plVar4->next->next" identifier = (pointer_expression "&plVar4->next->next" & (field_expression "plVar4->next->next" (field_expression "plVar4->next" identifier -> field_identifier) -> field_identifier))) ;) })) })) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;) })) }) (else_clause "else if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }" else (if_statement "if (lang_phdr_list != (lang_phdr *)0x0) {\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(lang_phdr_list != (lang_phdr *)0x0)" ( (binary_expression "lang_phdr_list != (lang_phdr *)0x0" identifier != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pplVar6 = &lang_phdr_list;\n    goto LAB_0011f2e7;\n  }" { (expression_statement "pplVar6 = &lang_phdr_list;" (assignment_expression "pplVar6 = &lang_phdr_list" identifier = (pointer_expression "&lang_phdr_list" & identifier)) ;) (goto_statement "goto LAB_0011f2e7;" goto statement_identifier ;) })))) (expression_statement "pplVar5 = &lang_phdr_list;" (assignment_expression "pplVar5 = &lang_phdr_list" identifier = (pointer_expression "&lang_phdr_list" & identifier)) ;) (labeled_statement "LAB_0011f25c:\n  ((lang_phdr *)pplVar5)->next = plVar3;" statement_identifier : (expression_statement "((lang_phdr *)pplVar5)->next = plVar3;" (assignment_expression "((lang_phdr *)pplVar5)->next = plVar3" (field_expression "((lang_phdr *)pplVar5)->next" (parenthesized_expression "((lang_phdr *)pplVar5)" ( (cast_expression "(lang_phdr *)pplVar5" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) = identifier) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)\n\n{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}\n\n" (function_definition "void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)\n\n{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" primitive_type (function_declarator "FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (expression_statement "puVar3 = (undefined8 *)FUN_00119720(0x30);" (assignment_expression "puVar3 = (undefined8 *)FUN_00119720(0x30)" identifier = (cast_expression "(undefined8 *)FUN_00119720(0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00119720(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = param_1;" (assignment_expression "puVar3[1] = param_1" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar2 = FUN_00127a30(param_2,0,"program header type");" (assignment_expression "iVar2 = FUN_00127a30(param_2,0,"program header type")" identifier = (call_expression "FUN_00127a30(param_2,0,"program header type")" identifier (argument_list "(param_2,0,"program header type")" ( identifier , number_literal , (string_literal ""program header type"" " string_content ") )))) ;) (expression_statement "*(int *)(puVar3 + 3) = param_3;" (assignment_expression "*(int *)(puVar3 + 3) = param_3" (pointer_expression "*(int *)(puVar3 + 3)" * (cast_expression "(int *)(puVar3 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((long)puVar3 + 0x1c) = param_4;" (assignment_expression "*(int *)((long)puVar3 + 0x1c) = param_4" (pointer_expression "*(int *)((long)puVar3 + 0x1c)" * (cast_expression "(int *)((long)puVar3 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar3 + 0x1c)" ( (binary_expression "(long)puVar3 + 0x1c" (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar3[2] = (long)iVar2;" (assignment_expression "puVar3[2] = (long)iVar2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "puVar3[4] = param_5;" (assignment_expression "puVar3[4] = param_5" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[5] = param_6;" (assignment_expression "puVar3[5] = param_6" (subscript_expression "puVar3[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" if (parenthesized_expression "(((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0))" ( (binary_expression "((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)" (parenthesized_expression "((long)iVar2 == 1)" ( (binary_expression "(long)iVar2 == 1" (cast_expression "(long)iVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) == number_literal) )) && (parenthesized_expression "(param_3 != 0 || param_4 != 0)" ( (binary_expression "param_3 != 0 || param_4 != 0" (binary_expression "param_3 != 0" identifier != number_literal) || (binary_expression "param_4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" { (if_statement "if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(DAT_002b5ed0 != 0)" ( (binary_expression "DAT_002b5ed0 != 0" identifier != number_literal) )) (compound_statement "{\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }" { (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (expression_statement "lVar4 = DAT_002b5ed0;" (assignment_expression "lVar4 = DAT_002b5ed0" identifier = identifier) ;) (if_statement "if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;" if (parenthesized_expression "(*(long *)(DAT_002b5ed0 + 0x10) == 1)" ( (binary_expression "*(long *)(DAT_002b5ed0 + 0x10) == 1" (pointer_expression "*(long *)(DAT_002b5ed0 + 0x10)" * (cast_expression "(long *)(DAT_002b5ed0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5ed0 + 0x10)" ( (binary_expression "DAT_002b5ed0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0011f2a2;" goto statement_identifier ;)) (ERROR "do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" do (compound_statement "{\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" { (do_statement "do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);" do (compound_statement "{\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        }" { (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (expression_statement "lVar4 = *plVar6;" (assignment_expression "lVar4 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (if_statement "if (lVar4 == 0) goto LAB_0011f25c;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(long *)(lVar4 + 0x10) != 1)" ( (binary_expression "*(long *)(lVar4 + 0x10) != 1" (pointer_expression "*(long *)(lVar4 + 0x10)" * (cast_expression "(long *)(lVar4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x10)" ( (binary_expression "lVar4 + 0x10" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);" statement_identifier : (ERROR "}" }) (while_statement "while (*(long *)(lVar4 + 0x18) != 0);" while (parenthesized_expression "(*(long *)(lVar4 + 0x18) != 0)" ( (binary_expression "*(long *)(lVar4 + 0x18) != 0" (pointer_expression "*(long *)(lVar4 + 0x18)" * (cast_expression "(long *)(lVar4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x18)" ( (binary_expression "lVar4 + 0x18" identifier + number_literal) )))) != number_literal) )) (expression_statement ";" ;))) (expression_statement "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);" (assignment_expression "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" identifier = (call_expression "dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" identifier (argument_list "(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" ( number_literal , (string_literal ""%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129380(uVar5,0);" (call_expression "FUN_00129380(uVar5,0)" identifier (argument_list "(uVar5,0)" ( identifier , number_literal ))) ;) (expression_statement "plVar1 = *(long **)*plVar6;" (assignment_expression "plVar1 = *(long **)*plVar6" identifier = (pointer_expression "*(long **)*plVar6" * (cast_expression "(long **)*plVar6" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar6" * identifier)))) ;) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (if_statement "if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" if (parenthesized_expression "(plVar1 != (long *)0x0)" ( (binary_expression "plVar1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" { (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" identifier = (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier))) ;) (while_statement "while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" while (parenthesized_expression "((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)))" ( (parenthesized_expression "(plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))" ( (comma_expression "plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (assignment_expression "plVar6 = plVar1" identifier = identifier) , (binary_expression "plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(plVar6 = plVar7, *plVar7 != 0)" ( (comma_expression "plVar6 = plVar7, *plVar7 != 0" (assignment_expression "plVar6 = plVar7" identifier = identifier) , (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" * identifier) != number_literal)) )))) )) )) (compound_statement "{\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" { (labeled_statement "LAB_0011f2e7:\n          plVar1 = (long *)*plVar7;" statement_identifier : (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;)) (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" identifier = (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier))) ;) })) })) (goto_statement "goto LAB_0011f25c;" goto statement_identifier ;) })) }) (else_clause "else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" else (if_statement "if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" if (parenthesized_expression "(DAT_002b5ed0 != 0)" ( (binary_expression "DAT_002b5ed0 != 0" identifier != number_literal) )) (compound_statement "{\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" { (expression_statement "plVar7 = &DAT_002b5ed0;" (assignment_expression "plVar7 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (goto_statement "goto LAB_0011f2e7;" goto statement_identifier ;) })))) (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" identifier = (pointer_expression "&DAT_002b5ed0" & identifier)) ;) (labeled_statement "LAB_0011f25c:\n  *plVar6 = (long)puVar3;" statement_identifier : (expression_statement "*plVar6 = (long)puVar3;" (assignment_expression "*plVar6 = (long)puVar3" (pointer_expression "*plVar6" * identifier) = (cast_expression "(long)puVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;)) (return_statement "return;" return ;) })) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (ERROR do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (ERROR }) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (expression_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 , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != LIT)) )))) )) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;)) (return_statement return ;) })) })))
(function_definition "void FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)\n\n{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011f1e0(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" (identifier "FUN_0011f1e0") (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,\n                 undefined8 param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  undefined8 *puVar3;\n  long lVar4;\n  undefined8 uVar5;\n  long *plVar6;\n  long *plVar7;\n  \n  puVar3 = (undefined8 *)FUN_00119720(0x30);\n  *puVar3 = 0;\n  puVar3[1] = param_1;\n  iVar2 = FUN_00127a30(param_2,0,"program header type");\n  *(int *)(puVar3 + 3) = param_3;\n  *(int *)((long)puVar3 + 0x1c) = param_4;\n  puVar3[2] = (long)iVar2;\n  puVar3[4] = param_5;\n  puVar3[5] = param_6;\n  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (expression_statement "puVar3 = (undefined8 *)FUN_00119720(0x30);" (assignment_expression "puVar3 = (undefined8 *)FUN_00119720(0x30)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)FUN_00119720(0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00119720(0x30)" (identifier "FUN_00119720") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[1] = param_1;" (assignment_expression "puVar3[1] = param_1" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar2 = FUN_00127a30(param_2,0,"program header type");" (assignment_expression "iVar2 = FUN_00127a30(param_2,0,"program header type")" (identifier "iVar2") (= "=") (call_expression "FUN_00127a30(param_2,0,"program header type")" (identifier "FUN_00127a30") (argument_list "(param_2,0,"program header type")" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (string_literal ""program header type"" (" """) (string_content "program header type") (" """)) () ")")))) (; ";")) (expression_statement "*(int *)(puVar3 + 3) = param_3;" (assignment_expression "*(int *)(puVar3 + 3) = param_3" (pointer_expression "*(int *)(puVar3 + 3)" (* "*") (cast_expression "(int *)(puVar3 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + 3)" (( "(") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(int *)((long)puVar3 + 0x1c) = param_4;" (assignment_expression "*(int *)((long)puVar3 + 0x1c) = param_4" (pointer_expression "*(int *)((long)puVar3 + 0x1c)" (* "*") (cast_expression "(int *)((long)puVar3 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar3 + 0x1c)" (( "(") (binary_expression "(long)puVar3 + 0x1c" (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar3[2] = (long)iVar2;" (assignment_expression "puVar3[2] = (long)iVar2" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)iVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar2"))) (; ";")) (expression_statement "puVar3[4] = param_5;" (assignment_expression "puVar3[4] = param_5" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "puVar3[5] = param_6;" (assignment_expression "puVar3[5] = param_6" (subscript_expression "puVar3[5]" (identifier "puVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_6")) (; ";")) (if_statement "if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" (if "if") (parenthesized_expression "(((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0))" (( "(") (binary_expression "((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)" (parenthesized_expression "((long)iVar2 == 1)" (( "(") (binary_expression "(long)iVar2 == 1" (cast_expression "(long)iVar2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar2")) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(param_3 != 0 || param_4 != 0)" (( "(") (binary_expression "param_3 != 0 || param_4 != 0" (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }\n  plVar6 = &DAT_002b5ed0;\nLAB_0011f25c:\n  *plVar6 = (long)puVar3;\n  return;\n}" ({ "{") (if_statement "if (DAT_002b5ed0 != 0) {\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }\n  else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" (if "if") (parenthesized_expression "(DAT_002b5ed0 != 0)" (( "(") (binary_expression "DAT_002b5ed0 != 0" (identifier "DAT_002b5ed0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      plVar6 = &DAT_002b5ed0;\n      lVar4 = DAT_002b5ed0;\n      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;\n      do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }\n  }" ({ "{") (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" (identifier "plVar6") (= "=") (pointer_expression "&DAT_002b5ed0" (& "&") (identifier "DAT_002b5ed0"))) (; ";")) (expression_statement "lVar4 = DAT_002b5ed0;" (assignment_expression "lVar4 = DAT_002b5ed0" (identifier "lVar4") (= "=") (identifier "DAT_002b5ed0")) (; ";")) (if_statement "if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;" (if "if") (parenthesized_expression "(*(long *)(DAT_002b5ed0 + 0x10) == 1)" (( "(") (binary_expression "*(long *)(DAT_002b5ed0 + 0x10) == 1" (pointer_expression "*(long *)(DAT_002b5ed0 + 0x10)" (* "*") (cast_expression "(long *)(DAT_002b5ed0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5ed0 + 0x10)" (( "(") (binary_expression "DAT_002b5ed0 + 0x10" (identifier "DAT_002b5ed0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0011f2a2;" (goto "goto") (statement_identifier "LAB_0011f2a2") (; ";"))) (ERROR "do {\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" (do "do") (compound_statement "{\n        do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);\nLAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);\n      uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);\n      FUN_00129380(uVar5,0);\n      plVar1 = *(long **)*plVar6;\n      plVar6 = (long *)*plVar6;\n      if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }\n      goto LAB_0011f25c;\n    }" ({ "{") (do_statement "do {\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        } while (*(long *)(lVar4 + 0x10) != 1);" (do "do") (compound_statement "{\n          plVar6 = (long *)*plVar6;\n          lVar4 = *plVar6;\n          if (lVar4 == 0) goto LAB_0011f25c;\n        }" ({ "{") (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (; ";")) (expression_statement "lVar4 = *plVar6;" (assignment_expression "lVar4 = *plVar6" (identifier "lVar4") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (; ";")) (if_statement "if (lVar4 == 0) goto LAB_0011f25c;" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011f25c;" (goto "goto") (statement_identifier "LAB_0011f25c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(long *)(lVar4 + 0x10) != 1)" (( "(") (binary_expression "*(long *)(lVar4 + 0x10) != 1" (pointer_expression "*(long *)(lVar4 + 0x10)" (* "*") (cast_expression "(long *)(lVar4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x10)" (( "(") (binary_expression "lVar4 + 0x10" (identifier "lVar4") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (; ";")) (labeled_statement "LAB_0011f2a2:\n      } while (*(long *)(lVar4 + 0x18) != 0);" (statement_identifier "LAB_0011f2a2") (: ":") (ERROR "}" (} "}")) (while_statement "while (*(long *)(lVar4 + 0x18) != 0);" (while "while") (parenthesized_expression "(*(long *)(lVar4 + 0x18) != 0)" (( "(") (binary_expression "*(long *)(lVar4 + 0x18) != 0" (pointer_expression "*(long *)(lVar4 + 0x18)" (* "*") (cast_expression "(long *)(lVar4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x18)" (( "(") (binary_expression "lVar4 + 0x18" (identifier "lVar4") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (expression_statement ";" (; ";")))) (expression_statement "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5);" (assignment_expression "uVar5 = dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" (identifier "dcgettext") (argument_list "(0,\n                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"\n                        ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"" (" """) (string_content "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129380(uVar5,0);" (call_expression "FUN_00129380(uVar5,0)" (identifier "FUN_00129380") (argument_list "(uVar5,0)" (( "(") (identifier "uVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "plVar1 = *(long **)*plVar6;" (assignment_expression "plVar1 = *(long **)*plVar6" (identifier "plVar1") (= "=") (pointer_expression "*(long **)*plVar6" (* "*") (cast_expression "(long **)*plVar6" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))))) (; ";")) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (; ";")) (if_statement "if (plVar1 != (long *)0x0) {\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" (if "if") (parenthesized_expression "(plVar1 != (long *)0x0)" (( "(") (binary_expression "plVar1 != (long *)0x0" (identifier "plVar1") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        plVar7 = (long *)*plVar1;\n        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }\n      }" ({ "{") (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")))) (; ";")) (while_statement "while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" (while "while") (parenthesized_expression "((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)))" (( "(") (parenthesized_expression "(plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))" (( "(") (comma_expression "plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (assignment_expression "plVar6 = plVar1" (identifier "plVar6") (= "=") (identifier "plVar1")) (, ",") (binary_expression "plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0)" (binary_expression "plVar7 != (long *)0x0" (identifier "plVar7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(plVar6 = plVar7, *plVar7 != 0)" (( "(") (comma_expression "plVar6 = plVar7, *plVar7 != 0" (assignment_expression "plVar6 = plVar7" (identifier "plVar6") (= "=") (identifier "plVar7")) (, ",") (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" (* "*") (identifier "plVar7")) (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")")) (compound_statement "{\nLAB_0011f2e7:\n          plVar1 = (long *)*plVar7;\n          plVar7 = (long *)*plVar1;\n        }" ({ "{") (labeled_statement "LAB_0011f2e7:\n          plVar1 = (long *)*plVar7;" (statement_identifier "LAB_0011f2e7") (: ":") (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" (identifier "plVar1") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";"))) (expression_statement "plVar7 = (long *)*plVar1;" (assignment_expression "plVar7 = (long *)*plVar1" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0011f25c;" (goto "goto") (statement_identifier "LAB_0011f25c") (; ";")) (} "}"))) (} "}")) (else_clause "else if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" (else "else") (if_statement "if (DAT_002b5ed0 != 0) {\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" (if "if") (parenthesized_expression "(DAT_002b5ed0 != 0)" (( "(") (binary_expression "DAT_002b5ed0 != 0" (identifier "DAT_002b5ed0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    plVar7 = &DAT_002b5ed0;\n    goto LAB_0011f2e7;\n  }" ({ "{") (expression_statement "plVar7 = &DAT_002b5ed0;" (assignment_expression "plVar7 = &DAT_002b5ed0" (identifier "plVar7") (= "=") (pointer_expression "&DAT_002b5ed0" (& "&") (identifier "DAT_002b5ed0"))) (; ";")) (goto_statement "goto LAB_0011f2e7;" (goto "goto") (statement_identifier "LAB_0011f2e7") (; ";")) (} "}"))))) (expression_statement "plVar6 = &DAT_002b5ed0;" (assignment_expression "plVar6 = &DAT_002b5ed0" (identifier "plVar6") (= "=") (pointer_expression "&DAT_002b5ed0" (& "&") (identifier "DAT_002b5ed0"))) (; ";")) (labeled_statement "LAB_0011f25c:\n  *plVar6 = (long)puVar3;" (statement_identifier "LAB_0011f25c") (: ":") (expression_statement "*plVar6 = (long)puVar3;" (assignment_expression "*plVar6 = (long)puVar3" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (= "=") (cast_expression "(long)puVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar3"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "")))

void function_1(char *name,type_1 *type,type_2 var_3,type_2 var_4,type_1 *at,
                  type_1 *flags)

{
  long var_7;
  int iVar2;
  type_3 *plVar3;
  type_3 *var_6;
  char *fmt;
  type_3 **pplVar5;
  type_3 **pplVar6;
  
  plVar3 = (type_3 *)var_1(0x30);
  plVar3->next = (type_3 *)0x0;
  plVar3->name = name;
  iVar2 = var_2(type,0,"program header type");
  plVar3->var_3 = var_3;
  plVar3->var_4 = var_4;
  plVar3->type = (long)iVar2;
  plVar3->at = at;
  plVar3->flags = flags;
  if (((long)iVar2 == 1) && (var_3 != 0 || var_4 != 0)) {
    if (var_5 != (type_3 *)0x0) {
      pplVar5 = &var_5;
      var_6 = var_5;
      if (var_5->type == 1) goto LAB_0011f2a2;
      do {
        do {
          pplVar5 = &((type_3 *)pplVar5)->next->next;
          var_6 = ((type_3 *)pplVar5)->next;
          if (var_6 == (type_3 *)0x0) goto LAB_0011f25c;
        } while (var_6->type != 1);
LAB_0011f2a2:
        var_7._0_4_ = var_6->var_3;
        var_7._4_4_ = var_6->var_4;
      } while (var_7 != 0);
      fmt = (char *)var_8(0,
                              "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
                              ,5);
      var_9(fmt,0);
      var_6 = ((type_3 *)pplVar5)->next->next;
      pplVar5 = &((type_3 *)pplVar5)->next->next;
      if (var_6 != (type_3 *)0x0) {
        pplVar6 = &var_6->next->next;
        while ((pplVar5 = &var_6->next, (type_3 *)pplVar6 != (type_3 *)0x0 &&
               (pplVar5 = pplVar6, ((type_3 *)pplVar6)->next != (type_3 *)0x0))) {
LAB_0011f2e7:
          var_6 = ((type_3 *)pplVar6)->next;
          pplVar6 = &var_6->next->next;
        }
      }
      goto LAB_0011f25c;
    }
  }
  else if (var_5 != (type_3 *)0x0) {
    pplVar6 = &var_5;
    goto LAB_0011f2e7;
  }
  pplVar5 = &var_5;
LAB_0011f25c:
  ((type_3 *)pplVar5)->next = plVar3;
  return;
}


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

void MASKED(undefined8 param_1,undefined8 param_2,int param_3,int param_4,undefined8 param_5,
                 undefined8 param_6)

{
  long *plVar1;
  int iVar2;
  undefined8 *puVar3;
  long lVar4;
  undefined8 uVar5;
  long *plVar6;
  long *plVar7;
  
  puVar3 = (undefined8 *)FUN_00119720(0x30);
  *puVar3 = 0;
  puVar3[1] = param_1;
  iVar2 = FUN_00127a30(param_2,0,"program header type");
  *(int *)(puVar3 + 3) = param_3;
  *(int *)((long)puVar3 + 0x1c) = param_4;
  puVar3[2] = (long)iVar2;
  puVar3[4] = param_5;
  puVar3[5] = param_6;
  if (((long)iVar2 == 1) && (param_3 != 0 || param_4 != 0)) {
    if (DAT_002b5ed0 != 0) {
      plVar6 = &DAT_002b5ed0;
      lVar4 = DAT_002b5ed0;
      if (*(long *)(DAT_002b5ed0 + 0x10) == 1) goto LAB_0011f2a2;
      do {
        do {
          plVar6 = (long *)*plVar6;
          lVar4 = *plVar6;
          if (lVar4 == 0) goto LAB_0011f25c;
        } while (*(long *)(lVar4 + 0x10) != 1);
LAB_0011f2a2:
      } while (*(long *)(lVar4 + 0x18) != 0);
      uVar5 = dcgettext(0,
                        "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
                        ,5);
      FUN_00129380(uVar5,0);
      plVar1 = *(long **)*plVar6;
      plVar6 = (long *)*plVar6;
      if (plVar1 != (long *)0x0) {
        plVar7 = (long *)*plVar1;
        while ((plVar6 = plVar1, plVar7 != (long *)0x0 && (plVar6 = plVar7, *plVar7 != 0))) {
LAB_0011f2e7:
          plVar1 = (long *)*plVar7;
          plVar7 = (long *)*plVar1;
        }
      }
      goto LAB_0011f25c;
    }
  }
  else if (DAT_002b5ed0 != 0) {
    plVar7 = &DAT_002b5ed0;
    goto LAB_0011f2e7;
  }
  plVar6 = &DAT_002b5ed0;
LAB_0011f25c:
  *plVar6 = (long)puVar3;
  return;
}

