
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_stack_segment(Layout * this) */

void __thiscall gold::Layout::create_stack_segment(Layout *this)

{
  int *piVar1;
  undefined4 uVar2;
  int iVar3;
  uint64_t uVar5;
  General_options *pGVar6;
  Output_segment *pOVar7;
  char *pcVar8;
  uint uVar9;
  char cVar10;
  int iVar4;
  
  pGVar6 = parameters->options_;
  if (pGVar6 != (General_options *)0x0) {
    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {
      if (this->input_with_gnu_stack_note_ == false) {
        if ((pGVar6->stack_size_).user_set_via_option == false) {
          return;
        }
        if ((pGVar6->relocatable_).value != false) {
          return;
        }
      }
      cVar10 = this->input_requires_executable_stack_;
      if (((bool)cVar10 == false) &&
         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {
        if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/parameters.h",0x69,"target");
        }
        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);
      }
    }
    else {
      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;
      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&
         ((pGVar6->warn_execstack_).value != false)) {
        pcVar8 = (char *)gettext(
                                "one or more inputs require executable stack, but -z noexecstack was given"
                                );
        gold_warning(pcVar8);
        pGVar6 = parameters->options_;
        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;
      }
    }
    if ((pGVar6->relocatable_).value != false) {
      uVar9 = 0;
      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);
      if (cVar10 != '\0') {
        uVar9 = 4;
      }
      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);
      return;
    }
    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||
       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {
      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);
      pGVar6 = parameters->options_;
      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;
      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);
      uVar5 = pOVar7->min_p_align_;
      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);
      iVar3 = *piVar1;
      iVar4 = *piVar1;
      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;
      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;
      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {
        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;
        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;
        return;
      }
    }
    return;
  }
LAB_0009e0e5:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_0009df10(int param_1)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  uint in_ECX;
  uint extraout_ECX;
  undefined4 uVar4;
  char cVar5;
  
  iVar1 = *(int *)(DAT_0038f378 + 8);
  if (iVar1 != 0) {
    if (*(int *)(iVar1 + 0x5930) == 0) {
      if (*(char *)(param_1 + 0x1c7) == '\0') {
        if (*(char *)(iVar1 + 0x5734) == '\0') {
          return;
        }
        if (*(char *)(iVar1 + 0x318d) != '\0') {
          return;
        }
      }
      cVar5 = *(char *)(param_1 + 0x1c6);
      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {
        if (*(int *)(DAT_0038f378 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);
        }
        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);
      }
    }
    else {
      cVar5 = *(int *)(iVar1 + 0x5930) == 1;
      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&
         (*(char *)(iVar1 + 0x4559) != '\0')) {
        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")
        ;
        FUN_000654e0(uVar3);
        in_ECX = (uint)(byte)cVar5;
        iVar1 = *(int *)(DAT_0038f378 + 8);
        if (iVar1 == 0) goto LAB_0009e0e5;
      }
    }
    if (*(char *)(iVar1 + 0x318d) != '\0') {
      uVar4 = 0;
      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);
      if (cVar5 != '\0') {
        uVar4 = 4;
      }
      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);
      return;
    }
    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||
       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {
      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');
      iVar1 = *(int *)(DAT_0038f378 + 8);
      in_ECX = extraout_ECX;
      if (iVar1 == 0) goto LAB_0009e0e5;
      uVar3 = *(undefined4 *)(iVar1 + 0x573c);
      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);
      *(undefined4 *)(iVar2 + 0x170) = uVar3;
      if (*(int *)(iVar2 + 0x180) == 0 &&
          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {
        *(undefined4 *)(iVar2 + 0x17c) = 0x10;
        *(undefined4 *)(iVar2 + 0x180) = 0;
        return;
      }
    }
    return;
  }
LAB_0009e0e5:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2f10e7
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
LEA EDI,[EBX + 0x378]
MOV EBP,dword ptr [EDI]
MOV EAX,dword ptr [EBP + 0x8]
TEST EAX,EAX
JZ 0x0009e0e5
MOV EDX,dword ptr [EAX + 0x5930]
TEST EDX,EDX
JZ 0x0009df90
CMP EDX,0x1
SETZ CL
JZ 0x0009df60
CMP byte ptr [ESI + 0x1c6],0x0
JNZ 0x0009e0a8
LEA ESI,[ESI]
NOP
CMP byte ptr [EAX + 0x318d],0x0
JNZ 0x0009e058
MOV EAX,dword ptr [ESI + 0x4]
CMP byte ptr [EAX + 0xac],0x0
JZ 0x0009dfd8
MOV EAX,dword ptr [EAX + 0xbc]
TEST EAX,EAX
JZ 0x0009dfd8
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [ESI + 0x1c7],0x0
JNZ 0x0009dfab
CMP byte ptr [EAX + 0x5734],0x0
JZ 0x0009df83
CMP byte ptr [EAX + 0x318d],0x0
JNZ 0x0009df83
MOVZX ECX,byte ptr [ESI + 0x1c6]
TEST CL,CL
JNZ 0x0009df60
MOVZX ECX,byte ptr [ESI + 0x1c8]
TEST CL,CL
JZ 0x0009df60
MOV EDX,dword ptr [EBP + 0xc]
TEST EDX,EDX
JZ 0x0009e0fb
MOV EDX,dword ptr [EDX + 0x4]
MOVZX ECX,byte ptr [EDX + 0xf]
JMP 0x0009df60
XOR EAX,EAX
TEST CL,CL
SETNZ AL
SUB ESP,0x4
ADD EAX,0x6
PUSH EAX
PUSH 0x6474e551
PUSH ESI
CALL 0x0009b0e0
MOV EDX,dword ptr [EDI]
ADD ESP,0x10
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0009e0e5
MOV ECX,dword ptr [EDX + 0x5738]
MOV EBX,dword ptr [EDX + 0x573c]
MOV EDX,0xf
CMP EDX,dword ptr [EAX + 0x17c]
MOV EDX,0x0
SBB EDX,dword ptr [EAX + 0x180]
MOV dword ptr [EAX + 0x16c],ECX
MOV dword ptr [EAX + 0x170],EBX
JC 0x0009df83
MOV dword ptr [EAX + 0x17c],0x10
MOV dword ptr [EAX + 0x180],0x0
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xffefb724]
MOV byte ptr [ESP + 0xf],CL
XOR EDI,EDI
XOR EBP,EBP
PUSH 0x0
PUSH 0x0
PUSH EAX
LEA EAX,[ESI + 0x8]
PUSH EAX
CALL 0x00174940
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0xf]
TEST CL,CL
JZ 0x0009e087
MOV EDI,0x4
XOR EBP,EBP
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EBP
PUSH EDI
PUSH 0x1
PUSH EAX
PUSH ESI
CALL 0x0009b860
ADD ESP,0x20
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EAX + 0x4559],0x0
JZ 0x0009df60
MOV byte ptr [ESP + 0xf],CL
LEA EAX,[EBX + 0xffefbe78]
SUB ESP,0xc
PUSH EAX
CALL 0x000293b0
MOV dword ptr [ESP],EAX
CALL 0x000654e0
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOVZX ECX,byte ptr [ESP + 0xf]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x0009df60
LEA EAX,[EBX + 0xffefca48]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x5c
PUSH EAX
CALL 0x00069d00
LEA EAX,[EBX + 0xffefc9f8]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x69
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0009df10(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}\n\n" comment (function_definition "void FUN_0009df10(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" primitive_type (function_declarator "FUN_0009df10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint in_ECX;" type_identifier identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x5930) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x5930) == 0" (pointer_expression "*(int *)(iVar1 + 0x5930)" * (cast_expression "(int *)(iVar1 + 0x5930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5930)" ( (binary_expression "iVar1 + 0x5930" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }" { (if_statement "if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x1c7) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c7) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c7)" * (cast_expression "(char *)(param_1 + 0x1c7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c7)" ( (binary_expression "param_1 + 0x1c7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" { (if_statement "if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x5734) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x5734) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x5734)" * (cast_expression "(char *)(iVar1 + 0x5734)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5734)" ( (binary_expression "iVar1 + 0x5734" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" * (cast_expression "(char *)(iVar1 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x318d)" ( (binary_expression "iVar1 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "cVar5 = *(char *)(param_1 + 0x1c6);" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c6)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c6)" * (cast_expression "(char *)(param_1 + 0x1c6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c6)" ( (binary_expression "param_1 + 0x1c6" identifier + number_literal) ))))) ;) (if_statement "if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" if (parenthesized_expression "((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'))" ( (binary_expression "(cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" ( (comma_expression "cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c8)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c8)" * (cast_expression "(char *)(param_1 + 0x1c8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" { (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" { comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);" (assignment_expression "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) })) }) (else_clause "else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" else (compound_statement "{\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" { (expression_statement "cVar5 = *(int *)(iVar1 + 0x5930) == 1;" (assignment_expression "cVar5 = *(int *)(iVar1 + 0x5930) == 1" identifier = (binary_expression "*(int *)(iVar1 + 0x5930) == 1" (pointer_expression "*(int *)(iVar1 + 0x5930)" * (cast_expression "(int *)(iVar1 + 0x5930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5930)" ( (binary_expression "iVar1 + 0x5930" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" if (parenthesized_expression "(((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0'))" ( (binary_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')" (parenthesized_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0'))" ( (binary_expression "(!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')" (parenthesized_expression "(!(bool)cVar5)" ( (unary_expression "!(bool)cVar5" ! (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(char *)(param_1 + 0x1c6) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c6) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1c6)" * (cast_expression "(char *)(param_1 + 0x1c6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c6)" ( (binary_expression "param_1 + 0x1c6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x4559) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x4559) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x4559)" * (cast_expression "(char *)(iVar1 + 0x4559)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4559)" ( (binary_expression "iVar1 + 0x4559" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" { (expression_statement "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;" (assignment_expression "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")" identifier = (call_expression "gettext("one or more inputs require executable stack, but -z noexecstack was given")" identifier (argument_list "("one or more inputs require executable stack, but -z noexecstack was given")" ( (string_literal ""one or more inputs require executable stack, but -z noexecstack was given"" " string_content ") )))) ;) (expression_statement "FUN_000654e0(uVar3);" (call_expression "FUN_000654e0(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "in_ECX = (uint)(byte)cVar5;" (assignment_expression "in_ECX = (uint)(byte)cVar5" identifier = (cast_expression "(uint)(byte)cVar5" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar5" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) })) }))) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" if (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" * (cast_expression "(char *)(iVar1 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x318d)" ( (binary_expression "iVar1 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);" (assignment_expression "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" identifier = (call_expression "FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" identifier (argument_list "(param_1 + 8,".note.GNU-stack",0,0)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (string_literal "".note.GNU-stack"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if (cVar5 != '\0') {\n        uVar4 = 4;\n      }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = 4;\n      }" { (expression_statement "uVar4 = 4;" (assignment_expression "uVar4 = 4" identifier = number_literal) ;) })) (expression_statement "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);" (call_expression "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0)" identifier (argument_list "(param_1,uVar3,1,uVar4,0,0,0)" ( identifier , identifier , number_literal , identifier , number_literal , number_literal , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" ( (binary_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" ( (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" { (expression_statement "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');" (assignment_expression "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" identifier = (call_expression "FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" identifier (argument_list "(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" ( identifier , number_literal , (binary_expression "(cVar5 != '\0') + '\x06'" (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + (char_literal "'\x06'" ' escape_sequence ')) )))) ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x573c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x573c)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x573c)" * (cast_expression "(undefined4 *)(iVar1 + 0x573c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x573c)" ( (binary_expression "iVar1 + 0x573c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);" (assignment_expression "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738)" (pointer_expression "*(undefined4 *)(iVar2 + 0x16c)" * (cast_expression "(undefined4 *)(iVar2 + 0x16c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x16c)" ( (binary_expression "iVar2 + 0x16c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x5738)" * (cast_expression "(undefined4 *)(iVar1 + 0x5738)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5738)" ( (binary_expression "iVar1 + 0x5738" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x170) = uVar3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x170) = uVar3" (pointer_expression "*(undefined4 *)(iVar2 + 0x170)" * (cast_expression "(undefined4 *)(iVar2 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x170)" ( (binary_expression "iVar2 + 0x170" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" if (parenthesized_expression "(*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180))" ( (binary_expression "*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (binary_expression "*(int *)(iVar2 + 0x180) == 0" (pointer_expression "*(int *)(iVar2 + 0x180)" * (cast_expression "(int *)(iVar2 + 0x180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (call_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < *(uint *)(iVar2 + 0x17c))" ( (binary_expression "0xf < *(uint *)(iVar2 + 0x17c)" number_literal < (pointer_expression "*(uint *)(iVar2 + 0x17c)" * (cast_expression "(uint *)(iVar2 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x17c)" ( (binary_expression "iVar2 + 0x17c" identifier + number_literal) ))))) ))) <= (binary_expression "(uint)-*(int *)(iVar2 + 0x180)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(iVar2 + 0x180)" * (cast_expression "(int *)(iVar2 + 0x180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) ))))))) )) (compound_statement "{\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)(iVar2 + 0x17c) = 0x10;" (assignment_expression "*(undefined4 *)(iVar2 + 0x17c) = 0x10" (pointer_expression "*(undefined4 *)(iVar2 + 0x17c)" * (cast_expression "(undefined4 *)(iVar2 + 0x17c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x17c)" ( (binary_expression "iVar2 + 0x17c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x180) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x180) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x180)" * (cast_expression "(undefined4 *)(iVar2 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" statement_identifier : comment (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",in_ECX)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void create_stack_segment(Layout * this) */\n\nvoid __thiscall gold::Layout::create_stack_segment(Layout *this)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint64_t uVar5;\n  General_options *pGVar6;\n  Output_segment *pOVar7;\n  char *pcVar8;\n  uint uVar9;\n  char cVar10;\n  int iVar4;\n  \n  pGVar6 = parameters->options_;\n  if (pGVar6 != (General_options *)0x0) {\n    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }\n    if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }\n    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}\n\n" comment comment comment (function_definition "void __thiscall gold::Layout::create_stack_segment(Layout *this)\n\n{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint64_t uVar5;\n  General_options *pGVar6;\n  Output_segment *pOVar7;\n  char *pcVar8;\n  uint uVar9;\n  char cVar10;\n  int iVar4;\n  \n  pGVar6 = parameters->options_;\n  if (pGVar6 != (General_options *)0x0) {\n    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }\n    if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }\n    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "create_stack_segment(Layout *this)" identifier (parameter_list "(Layout *this)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint64_t uVar5;\n  General_options *pGVar6;\n  Output_segment *pOVar7;\n  char *pcVar8;\n  uint uVar9;\n  char cVar10;\n  int iVar4;\n  \n  pGVar6 = parameters->options_;\n  if (pGVar6 != (General_options *)0x0) {\n    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }\n    if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }\n    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint64_t uVar5;" primitive_type identifier ;) (declaration "General_options *pGVar6;" type_identifier (pointer_declarator "*pGVar6" * identifier) ;) (declaration "Output_segment *pOVar7;" type_identifier (pointer_declarator "*pOVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "pGVar6 = parameters->options_;" (assignment_expression "pGVar6 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar6 != (General_options *)0x0) {\n    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }\n    if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }\n    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(pGVar6 != (General_options *)0x0)" ( (binary_expression "pGVar6 != (General_options *)0x0" identifier != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }\n    if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }\n    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT) {\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }\n    else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }" if (parenthesized_expression "(pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT)" ( (binary_expression "pGVar6->execstack_status_ == EXECSTACK_FROM_INPUT" (field_expression "pGVar6->execstack_status_" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }\n      cVar10 = this->input_requires_executable_stack_;\n      if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }\n    }" { (if_statement "if (this->input_with_gnu_stack_note_ == false) {\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }" if (parenthesized_expression "(this->input_with_gnu_stack_note_ == false)" ( (binary_expression "this->input_with_gnu_stack_note_ == false" (field_expression "this->input_with_gnu_stack_note_" identifier -> field_identifier) == false) )) (compound_statement "{\n        if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }\n        if ((pGVar6->relocatable_).value != false) {\n          return;\n        }\n      }" { (if_statement "if ((pGVar6->stack_size_).user_set_via_option == false) {\n          return;\n        }" if (parenthesized_expression "((pGVar6->stack_size_).user_set_via_option == false)" ( (binary_expression "(pGVar6->stack_size_).user_set_via_option == false" (field_expression "(pGVar6->stack_size_).user_set_via_option" (parenthesized_expression "(pGVar6->stack_size_)" ( (field_expression "pGVar6->stack_size_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if ((pGVar6->relocatable_).value != false) {\n          return;\n        }" if (parenthesized_expression "((pGVar6->relocatable_).value != false)" ( (binary_expression "(pGVar6->relocatable_).value != false" (field_expression "(pGVar6->relocatable_).value" (parenthesized_expression "(pGVar6->relocatable_)" ( (field_expression "pGVar6->relocatable_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "cVar10 = this->input_requires_executable_stack_;" (assignment_expression "cVar10 = this->input_requires_executable_stack_" identifier = (field_expression "this->input_requires_executable_stack_" identifier -> field_identifier)) ;) (if_statement "if (((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)) {\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }" if (parenthesized_expression "(((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false))" ( (binary_expression "((bool)cVar10 == false) &&\n         (cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)" (parenthesized_expression "((bool)cVar10 == false)" ( (binary_expression "(bool)cVar10 == false" (cast_expression "(bool)cVar10" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) && (parenthesized_expression "(cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false)" ( (comma_expression "cVar10 = this->input_without_gnu_stack_note_, (bool)cVar10 != false" (assignment_expression "cVar10 = this->input_without_gnu_stack_note_" identifier = (field_expression "this->input_without_gnu_stack_note_" identifier -> field_identifier)) , (binary_expression "(bool)cVar10 != false" (cast_expression "(bool)cVar10" ( (type_descriptor "bool" primitive_type) ) identifier) != false)) ))) )) (compound_statement "{\n        if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }\n        cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);\n      }" { (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);" (assignment_expression "cVar10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf)" identifier = (pointer_expression "*(char *)(*(int *)(parameters->target_ + 4) + 0xf)" * (cast_expression "(char *)(*(int *)(parameters->target_ + 4) + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(parameters->target_ + 4) + 0xf)" ( (binary_expression "*(int *)(parameters->target_ + 4) + 0xf" (pointer_expression "*(int *)(parameters->target_ + 4)" * (cast_expression "(int *)(parameters->target_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) )))) + number_literal) ))))) ;) })) }) (else_clause "else {\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }" else (compound_statement "{\n      cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;\n      if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }\n    }" { (expression_statement "cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES;" (assignment_expression "cVar10 = pGVar6->execstack_status_ == EXECSTACK_YES" identifier = (binary_expression "pGVar6->execstack_status_ == EXECSTACK_YES" (field_expression "pGVar6->execstack_status_" identifier -> field_identifier) == identifier)) ;) (if_statement "if (((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)) {\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }" if (parenthesized_expression "(((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false))" ( (binary_expression "((!(bool)cVar10) && (this->input_requires_executable_stack_ != false)) &&\n         ((pGVar6->warn_execstack_).value != false)" (parenthesized_expression "((!(bool)cVar10) && (this->input_requires_executable_stack_ != false))" ( (binary_expression "(!(bool)cVar10) && (this->input_requires_executable_stack_ != false)" (parenthesized_expression "(!(bool)cVar10)" ( (unary_expression "!(bool)cVar10" ! (cast_expression "(bool)cVar10" ( (type_descriptor "bool" primitive_type) ) identifier)) )) && (parenthesized_expression "(this->input_requires_executable_stack_ != false)" ( (binary_expression "this->input_requires_executable_stack_ != false" (field_expression "this->input_requires_executable_stack_" identifier -> field_identifier) != false) ))) )) && (parenthesized_expression "((pGVar6->warn_execstack_).value != false)" ( (binary_expression "(pGVar6->warn_execstack_).value != false" (field_expression "(pGVar6->warn_execstack_).value" (parenthesized_expression "(pGVar6->warn_execstack_)" ( (field_expression "pGVar6->warn_execstack_" identifier -> field_identifier) )) . field_identifier) != false) ))) )) (compound_statement "{\n        pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );\n        gold_warning(pcVar8);\n        pGVar6 = parameters->options_;\n        if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      }" { (expression_statement "pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                );" (assignment_expression "pcVar8 = (char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                )" identifier = (cast_expression "(char *)gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                )" identifier (argument_list "(\n                                "one or more inputs require executable stack, but -z noexecstack was given"\n                                )" ( (string_literal ""one or more inputs require executable stack, but -z noexecstack was given"" " string_content ") ))))) ;) (expression_statement "gold_warning(pcVar8);" (call_expression "gold_warning(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "pGVar6 = parameters->options_;" (assignment_expression "pGVar6 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;" if (parenthesized_expression "(pGVar6 == (General_options *)0x0)" ( (binary_expression "pGVar6 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) })) }))) (if_statement "if ((pGVar6->relocatable_).value != false) {\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }" if (parenthesized_expression "((pGVar6->relocatable_).value != false)" ( (binary_expression "(pGVar6->relocatable_).value != false" (field_expression "(pGVar6->relocatable_).value" (parenthesized_expression "(pGVar6->relocatable_)" ( (field_expression "pGVar6->relocatable_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      uVar9 = 0;\n      pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);\n      if (cVar10 != '\0') {\n        uVar9 = 4;\n      }\n      make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);\n      return;\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0);" (assignment_expression "pcVar8 = Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,".note.GNU-stack",false,(Key *)0x0)" identifier (argument_list "(&this->namepool_,".note.GNU-stack",false,(Key *)0x0)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (string_literal "".note.GNU-stack"" " string_content ") , false , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (if_statement "if (cVar10 != '\0') {\n        uVar9 = 4;\n      }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar9 = 4;\n      }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) })) (expression_statement "make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false);" (call_expression "make_output_section(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar8,1,(ulonglong)uVar9,ORDER_INVALID,false)" ( identifier , identifier , number_literal , (cast_expression "(ulonglong)uVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier , false ))) ;) (return_statement "return;" return ;) })) (if_statement "if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)) {\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "(((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))" ( (binary_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n       ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" ( (binary_expression "(this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0" (field_expression "(this->script_options_->script_sections_).phdrs_elements_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == (cast_expression "(Phdrs_elements *)0x0" ( (type_descriptor "Phdrs_elements *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);\n      pGVar6 = parameters->options_;\n      if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;\n      uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);\n      uVar5 = pOVar7->min_p_align_;\n      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);\n      iVar3 = *piVar1;\n      iVar4 = *piVar1;\n      *(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;\n      *(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;\n      if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }\n    }" { (expression_statement "pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6);" (assignment_expression "pOVar7 = make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6)" identifier = (call_expression "make_output_segment(this,0x6474e551,(cVar10 != '\0') + 6)" identifier (argument_list "(this,0x6474e551,(cVar10 != '\0') + 6)" ( identifier , number_literal , (binary_expression "(cVar10 != '\0') + 6" (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) )))) ;) (expression_statement "pGVar6 = parameters->options_;" (assignment_expression "pGVar6 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar6 == (General_options *)0x0) goto LAB_0009e0e5;" if (parenthesized_expression "(pGVar6 == (General_options *)0x0)" ( (binary_expression "pGVar6 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) (expression_statement "uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4);" (assignment_expression "uVar2 = *(undefined4 *)((int)&(pGVar6->stack_size_).value + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pGVar6->stack_size_).value + 4)" * (cast_expression "(undefined4 *)((int)&(pGVar6->stack_size_).value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar6->stack_size_).value + 4)" ( (binary_expression "(int)&(pGVar6->stack_size_).value + 4" (cast_expression "(int)&(pGVar6->stack_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar6->stack_size_).value" & (field_expression "(pGVar6->stack_size_).value" (parenthesized_expression "(pGVar6->stack_size_)" ( (field_expression "pGVar6->stack_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar5 = pOVar7->min_p_align_;" (assignment_expression "uVar5 = pOVar7->min_p_align_" identifier = (field_expression "pOVar7->min_p_align_" identifier -> field_identifier)) ;) (expression_statement "piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);" (assignment_expression "piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4)" identifier = (cast_expression "(int *)((int)&pOVar7->min_p_align_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar7->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar7->min_p_align_ + 4" (cast_expression "(int)&pOVar7->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar7->min_p_align_" & (field_expression "pOVar7->min_p_align_" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar3 = *piVar1;" (assignment_expression "iVar3 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar4 = *piVar1;" (assignment_expression "iVar4 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "*(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value;" (assignment_expression "*(int *)&pOVar7->memsz_ = (int)(pGVar6->stack_size_).value" (pointer_expression "*(int *)&pOVar7->memsz_" * (cast_expression "(int *)&pOVar7->memsz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar7->memsz_" & (field_expression "pOVar7->memsz_" identifier -> field_identifier)))) = (cast_expression "(int)(pGVar6->stack_size_).value" ( (type_descriptor "int" primitive_type) ) (field_expression "(pGVar6->stack_size_).value" (parenthesized_expression "(pGVar6->stack_size_)" ( (field_expression "pGVar6->stack_size_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2;" (assignment_expression "*(undefined4 *)((int)&pOVar7->memsz_ + 4) = uVar2" (pointer_expression "*(undefined4 *)((int)&pOVar7->memsz_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar7->memsz_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar7->memsz_ + 4)" ( (binary_expression "(int)&pOVar7->memsz_ + 4" (cast_expression "(int)&pOVar7->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar7->memsz_" & (field_expression "pOVar7->memsz_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4) {\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4)" ( (binary_expression "iVar3 == 0 && (uint)(0xf < (uint)uVar5) <= (uint)-iVar4" (binary_expression "iVar3 == 0" identifier == number_literal) && (binary_expression "(uint)(0xf < (uint)uVar5) <= (uint)-iVar4" (call_expression "(uint)(0xf < (uint)uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < (uint)uVar5)" ( (binary_expression "0xf < (uint)uVar5" number_literal < (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "(uint)-iVar4" (parenthesized_expression "(uint)" ( identifier )) - identifier))) )) (compound_statement "{\n        *(undefined4 *)&pOVar7->min_p_align_ = 0x10;\n        *(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)&pOVar7->min_p_align_ = 0x10;" (assignment_expression "*(undefined4 *)&pOVar7->min_p_align_ = 0x10" (pointer_expression "*(undefined4 *)&pOVar7->min_p_align_" * (cast_expression "(undefined4 *)&pOVar7->min_p_align_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar7->min_p_align_" & (field_expression "pOVar7->min_p_align_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar7->min_p_align_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar7->min_p_align_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar7->min_p_align_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar7->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar7->min_p_align_ + 4" (cast_expression "(int)&pOVar7->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar7->min_p_align_" & (field_expression "pOVar7->min_p_align_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0009e0e5:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })))
(translation_unit "void FUN_0009df10(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}\n\n" (function_definition "void FUN_0009df10(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" primitive_type (function_declarator "FUN_0009df10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint in_ECX;" type_identifier identifier ;) (declaration "uint extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 0x5930) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x5930) == 0" (pointer_expression "*(int *)(iVar1 + 0x5930)" * (cast_expression "(int *)(iVar1 + 0x5930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5930)" ( (binary_expression "iVar1 + 0x5930" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }" { (if_statement "if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" if (parenthesized_expression "(*(char *)(param_1 + 0x1c7) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c7) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c7)" * (cast_expression "(char *)(param_1 + 0x1c7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c7)" ( (binary_expression "param_1 + 0x1c7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" { (if_statement "if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x5734) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x5734) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x5734)" * (cast_expression "(char *)(iVar1 + 0x5734)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5734)" ( (binary_expression "iVar1 + 0x5734" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" * (cast_expression "(char *)(iVar1 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x318d)" ( (binary_expression "iVar1 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) (expression_statement "cVar5 = *(char *)(param_1 + 0x1c6);" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c6)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c6)" * (cast_expression "(char *)(param_1 + 0x1c6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c6)" ( (binary_expression "param_1 + 0x1c6" identifier + number_literal) ))))) ;) (if_statement "if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" if (parenthesized_expression "((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'))" ( (binary_expression "(cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" ( (comma_expression "cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c8)" identifier = (pointer_expression "*(char *)(param_1 + 0x1c8)" * (cast_expression "(char *)(param_1 + 0x1c8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) , (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" { (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" if (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" { (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",0)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , number_literal ))) ;) })) (expression_statement "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);" (assignment_expression "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" identifier = (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" * (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" ( (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" * (cast_expression "(int *)(DAT_0038f378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 0xc)" ( (binary_expression "DAT_0038f378 + 0xc" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) })) }) (else_clause "else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" else (compound_statement "{\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" { (expression_statement "cVar5 = *(int *)(iVar1 + 0x5930) == 1;" (assignment_expression "cVar5 = *(int *)(iVar1 + 0x5930) == 1" identifier = (binary_expression "*(int *)(iVar1 + 0x5930) == 1" (pointer_expression "*(int *)(iVar1 + 0x5930)" * (cast_expression "(int *)(iVar1 + 0x5930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5930)" ( (binary_expression "iVar1 + 0x5930" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" if (parenthesized_expression "(((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0'))" ( (binary_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')" (parenthesized_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0'))" ( (binary_expression "(!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')" (parenthesized_expression "(!(bool)cVar5)" ( (unary_expression "!(bool)cVar5" ! (cast_expression "(bool)cVar5" ( (type_descriptor "bool" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(char *)(param_1 + 0x1c6) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x1c6) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1c6)" * (cast_expression "(char *)(param_1 + 0x1c6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c6)" ( (binary_expression "param_1 + 0x1c6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x4559) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x4559) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x4559)" * (cast_expression "(char *)(iVar1 + 0x4559)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4559)" ( (binary_expression "iVar1 + 0x4559" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" { (expression_statement "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;" (assignment_expression "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")" identifier = (call_expression "gettext("one or more inputs require executable stack, but -z noexecstack was given")" identifier (argument_list "("one or more inputs require executable stack, but -z noexecstack was given")" ( (string_literal ""one or more inputs require executable stack, but -z noexecstack was given"" " string_content ") )))) ;) (expression_statement "FUN_000654e0(uVar3);" (call_expression "FUN_000654e0(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "in_ECX = (uint)(byte)cVar5;" (assignment_expression "in_ECX = (uint)(byte)cVar5" identifier = (cast_expression "(uint)(byte)cVar5" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)cVar5" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) })) }))) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" if (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" * (cast_expression "(char *)(iVar1 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x318d)" ( (binary_expression "iVar1 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);" (assignment_expression "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" identifier = (call_expression "FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" identifier (argument_list "(param_1 + 8,".note.GNU-stack",0,0)" ( (binary_expression "param_1 + 8" identifier + number_literal) , (string_literal "".note.GNU-stack"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if (cVar5 != '\0') {\n        uVar4 = 4;\n      }" if (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = 4;\n      }" { (expression_statement "uVar4 = 4;" (assignment_expression "uVar4 = 4" identifier = number_literal) ;) })) (expression_statement "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);" (call_expression "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0)" identifier (argument_list "(param_1,uVar3,1,uVar4,0,0,0)" ( identifier , identifier , number_literal , identifier , number_literal , number_literal , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" if (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" ( (binary_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" ( (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" { (expression_statement "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');" (assignment_expression "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" identifier = (call_expression "FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" identifier (argument_list "(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" ( identifier , number_literal , (binary_expression "(cVar5 != '\0') + '\x06'" (parenthesized_expression "(cVar5 != '\0')" ( (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + (char_literal "'\x06'" ' escape_sequence ')) )))) ;) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(int *)(DAT_0038f378 + 8)" * (cast_expression "(int *)(DAT_0038f378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" identifier = identifier) ;) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e0e5;" goto statement_identifier ;)) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x573c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x573c)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x573c)" * (cast_expression "(undefined4 *)(iVar1 + 0x573c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x573c)" ( (binary_expression "iVar1 + 0x573c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);" (assignment_expression "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738)" (pointer_expression "*(undefined4 *)(iVar2 + 0x16c)" * (cast_expression "(undefined4 *)(iVar2 + 0x16c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x16c)" ( (binary_expression "iVar2 + 0x16c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x5738)" * (cast_expression "(undefined4 *)(iVar1 + 0x5738)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5738)" ( (binary_expression "iVar1 + 0x5738" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x170) = uVar3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x170) = uVar3" (pointer_expression "*(undefined4 *)(iVar2 + 0x170)" * (cast_expression "(undefined4 *)(iVar2 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x170)" ( (binary_expression "iVar2 + 0x170" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" if (parenthesized_expression "(*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180))" ( (binary_expression "*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (binary_expression "*(int *)(iVar2 + 0x180) == 0" (pointer_expression "*(int *)(iVar2 + 0x180)" * (cast_expression "(int *)(iVar2 + 0x180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (call_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xf < *(uint *)(iVar2 + 0x17c))" ( (binary_expression "0xf < *(uint *)(iVar2 + 0x17c)" number_literal < (pointer_expression "*(uint *)(iVar2 + 0x17c)" * (cast_expression "(uint *)(iVar2 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x17c)" ( (binary_expression "iVar2 + 0x17c" identifier + number_literal) ))))) ))) <= (binary_expression "(uint)-*(int *)(iVar2 + 0x180)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(iVar2 + 0x180)" * (cast_expression "(int *)(iVar2 + 0x180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) ))))))) )) (compound_statement "{\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" { (expression_statement "*(undefined4 *)(iVar2 + 0x17c) = 0x10;" (assignment_expression "*(undefined4 *)(iVar2 + 0x17c) = 0x10" (pointer_expression "*(undefined4 *)(iVar2 + 0x17c)" * (cast_expression "(undefined4 *)(iVar2 + 0x17c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x17c)" ( (binary_expression "iVar2 + 0x17c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x180) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x180) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x180)" * (cast_expression "(undefined4 *)(iVar2 + 0x180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x180)" ( (binary_expression "iVar2 + 0x180" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })) (labeled_statement "LAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" statement_identifier : (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",in_ECX)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , LIT , LIT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) + (char_literal ' escape_sequence ')) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })) })) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })))
(function_definition "void FUN_0009df10(int param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" (primitive_type "void") (function_declarator "FUN_0009df10(int param_1)" (identifier "FUN_0009df10") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined4 uVar3;\n  uint in_ECX;\n  uint extraout_ECX;\n  undefined4 uVar4;\n  char cVar5;\n  \n  iVar1 = *(int *)(DAT_0038f378 + 8);\n  if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }\nLAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint in_ECX;" (type_identifier "uint") (identifier "in_ECX") (; ";")) (declaration "uint extraout_ECX;" (type_identifier "uint") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }\n    if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }\n    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }\n    return;\n  }" ({ "{") (if_statement "if (*(int *)(iVar1 + 0x5930) == 0) {\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }\n    else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x5930) == 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x5930) == 0" (pointer_expression "*(int *)(iVar1 + 0x5930)" (* "*") (cast_expression "(int *)(iVar1 + 0x5930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5930)" (( "(") (binary_expression "iVar1 + 0x5930" (identifier "iVar1") (+ "+") (number_literal "0x5930")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }\n      cVar5 = *(char *)(param_1 + 0x1c6);\n      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }\n    }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x1c7) == '\0') {\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x1c7) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x1c7) == '\0'" (pointer_expression "*(char *)(param_1 + 0x1c7)" (* "*") (cast_expression "(char *)(param_1 + 0x1c7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c7)" (( "(") (binary_expression "param_1 + 0x1c7" (identifier "param_1") (+ "+") (number_literal "0x1c7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }\n        if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }\n      }" ({ "{") (if_statement "if (*(char *)(iVar1 + 0x5734) == '\0') {\n          return;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x5734) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x5734) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x5734)" (* "*") (cast_expression "(char *)(iVar1 + 0x5734)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5734)" (( "(") (binary_expression "iVar1 + 0x5734" (identifier "iVar1") (+ "+") (number_literal "0x5734")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n          return;\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" (* "*") (cast_expression "(char *)(iVar1 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x318d)" (( "(") (binary_expression "iVar1 + 0x318d" (identifier "iVar1") (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (expression_statement "cVar5 = *(char *)(param_1 + 0x1c6);" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c6)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(param_1 + 0x1c6)" (* "*") (cast_expression "(char *)(param_1 + 0x1c6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c6)" (( "(") (binary_expression "param_1 + 0x1c6" (identifier "param_1") (+ "+") (number_literal "0x1c6")) () ")"))))) (; ";")) (if_statement "if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" (if "if") (parenthesized_expression "((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'))" (( "(") (binary_expression "(cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" (parenthesized_expression "(cVar5 == '\0')" (( "(") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')" (( "(") (comma_expression "cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0'" (assignment_expression "cVar5 = *(char *)(param_1 + 0x1c8)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(param_1 + 0x1c8)" (* "*") (cast_expression "(char *)(param_1 + 0x1c8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c8)" (( "(") (binary_expression "param_1 + 0x1c8" (identifier "param_1") (+ "+") (number_literal "0x1c8")) () ")"))))) (, ",") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }\n        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);\n      }" ({ "{") (if_statement "if (*(int *)(DAT_0038f378 + 0xc) == 0) {\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" (if "if") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);\n        }" ({ "{") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x69,"target",0);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x69,"target",0)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x69,"target",0)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);" (assignment_expression "cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf" (pointer_expression "*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0038f378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0038f378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0038f378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 0xc)" (( "(") (binary_expression "DAT_0038f378 + 0xc" (identifier "DAT_0038f378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xf")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" (else "else") (compound_statement "{\n      cVar5 = *(int *)(iVar1 + 0x5930) == 1;\n      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }\n    }" ({ "{") (expression_statement "cVar5 = *(int *)(iVar1 + 0x5930) == 1;" (assignment_expression "cVar5 = *(int *)(iVar1 + 0x5930) == 1" (identifier "cVar5") (= "=") (binary_expression "*(int *)(iVar1 + 0x5930) == 1" (pointer_expression "*(int *)(iVar1 + 0x5930)" (* "*") (cast_expression "(int *)(iVar1 + 0x5930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5930)" (( "(") (binary_expression "iVar1 + 0x5930" (identifier "iVar1") (+ "+") (number_literal "0x5930")) () ")")))) (== "==") (number_literal "1"))) (; ";")) (if_statement "if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')) {\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" (if "if") (parenthesized_expression "(((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0'))" (( "(") (binary_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&\n         (*(char *)(iVar1 + 0x4559) != '\0')" (parenthesized_expression "((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0'))" (( "(") (binary_expression "(!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')" (parenthesized_expression "(!(bool)cVar5)" (( "(") (unary_expression "!(bool)cVar5" (! "!") (cast_expression "(bool)cVar5" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar5"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_1 + 0x1c6) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x1c6) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1c6)" (* "*") (cast_expression "(char *)(param_1 + 0x1c6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c6)" (( "(") (binary_expression "param_1 + 0x1c6" (identifier "param_1") (+ "+") (number_literal "0x1c6")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar1 + 0x4559) != '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x4559) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x4559)" (* "*") (cast_expression "(char *)(iVar1 + 0x4559)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x4559)" (( "(") (binary_expression "iVar1 + 0x4559" (identifier "iVar1") (+ "+") (number_literal "0x4559")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;\n        FUN_000654e0(uVar3);\n        in_ECX = (uint)(byte)cVar5;\n        iVar1 = *(int *)(DAT_0038f378 + 8);\n        if (iVar1 == 0) goto LAB_0009e0e5;\n      }" ({ "{") (expression_statement "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")\n        ;" (assignment_expression "uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")" (identifier "uVar3") (= "=") (call_expression "gettext("one or more inputs require executable stack, but -z noexecstack was given")" (identifier "gettext") (argument_list "("one or more inputs require executable stack, but -z noexecstack was given")" (( "(") (string_literal ""one or more inputs require executable stack, but -z noexecstack was given"" (" """) (string_content "one or more inputs require executable stack, but -z noexecstack was given") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000654e0(uVar3);" (call_expression "FUN_000654e0(uVar3)" (identifier "FUN_000654e0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "in_ECX = (uint)(byte)cVar5;" (assignment_expression "in_ECX = (uint)(byte)cVar5" (identifier "in_ECX") (= "=") (cast_expression "(uint)(byte)cVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)cVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "cVar5")))) (; ";")) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009e0e5;" (goto "goto") (statement_identifier "LAB_0009e0e5") (; ";"))) (} "}"))) (} "}")))) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" (* "*") (cast_expression "(char *)(iVar1 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x318d)" (( "(") (binary_expression "iVar1 + 0x318d" (identifier "iVar1") (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = 0;\n      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);\n      if (cVar5 != '\0') {\n        uVar4 = 4;\n      }\n      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);\n      return;\n    }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);" (assignment_expression "uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" (identifier "uVar3") (= "=") (call_expression "FUN_00174940(param_1 + 8,".note.GNU-stack",0,0)" (identifier "FUN_00174940") (argument_list "(param_1 + 8,".note.GNU-stack",0,0)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (, ",") (string_literal "".note.GNU-stack"" (" """) (string_content ".note.GNU-stack") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (cVar5 != '\0') {\n        uVar4 = 4;\n      }" (if "if") (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar4 = 4;\n      }" ({ "{") (expression_statement "uVar4 = 4;" (assignment_expression "uVar4 = 4" (identifier "uVar4") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);" (call_expression "FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0)" (identifier "FUN_0009b860") (argument_list "(param_1,uVar3,1,uVar4,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar3") (, ",") (number_literal "1") (, ",") (identifier "uVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" (( "(") (binary_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||\n       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xbc")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');\n      iVar1 = *(int *)(DAT_0038f378 + 8);\n      in_ECX = extraout_ECX;\n      if (iVar1 == 0) goto LAB_0009e0e5;\n      uVar3 = *(undefined4 *)(iVar1 + 0x573c);\n      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);\n      *(undefined4 *)(iVar2 + 0x170) = uVar3;\n      if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }\n    }" ({ "{") (expression_statement "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');" (assignment_expression "iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" (identifier "iVar2") (= "=") (call_expression "FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" (identifier "FUN_0009b0e0") (argument_list "(param_1,0x6474e551,(cVar5 != '\0') + '\x06')" (( "(") (identifier "param_1") (, ",") (number_literal "0x6474e551") (, ",") (binary_expression "(cVar5 != '\0') + '\x06'" (parenthesized_expression "(cVar5 != '\0')" (( "(") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")))) (; ";")) (expression_statement "iVar1 = *(int *)(DAT_0038f378 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0038f378 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(int *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" (identifier "in_ECX") (= "=") (identifier "extraout_ECX")) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0009e0e5;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009e0e5;" (goto "goto") (statement_identifier "LAB_0009e0e5") (; ";"))) (expression_statement "uVar3 = *(undefined4 *)(iVar1 + 0x573c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar1 + 0x573c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x573c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x573c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x573c)" (( "(") (binary_expression "iVar1 + 0x573c" (identifier "iVar1") (+ "+") (number_literal "0x573c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);" (assignment_expression "*(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738)" (pointer_expression "*(undefined4 *)(iVar2 + 0x16c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x16c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x16c)" (( "(") (binary_expression "iVar2 + 0x16c" (identifier "iVar2") (+ "+") (number_literal "0x16c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x5738)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x5738)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5738)" (( "(") (binary_expression "iVar1 + 0x5738" (identifier "iVar1") (+ "+") (number_literal "0x5738")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x170) = uVar3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x170) = uVar3" (pointer_expression "*(undefined4 *)(iVar2 + 0x170)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x170)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x170)" (( "(") (binary_expression "iVar2 + 0x170" (identifier "iVar2") (+ "+") (number_literal "0x170")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180))" (( "(") (binary_expression "*(int *)(iVar2 + 0x180) == 0 &&\n          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (binary_expression "*(int *)(iVar2 + 0x180) == 0" (pointer_expression "*(int *)(iVar2 + 0x180)" (* "*") (cast_expression "(int *)(iVar2 + 0x180)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x180)" (( "(") (binary_expression "iVar2 + 0x180" (identifier "iVar2") (+ "+") (number_literal "0x180")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)" (call_expression "(uint)(0xf < *(uint *)(iVar2 + 0x17c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xf < *(uint *)(iVar2 + 0x17c))" (( "(") (binary_expression "0xf < *(uint *)(iVar2 + 0x17c)" (number_literal "0xf") (< "<") (pointer_expression "*(uint *)(iVar2 + 0x17c)" (* "*") (cast_expression "(uint *)(iVar2 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x17c)" (( "(") (binary_expression "iVar2 + 0x17c" (identifier "iVar2") (+ "+") (number_literal "0x17c")) () ")"))))) () ")"))) (<= "<=") (binary_expression "(uint)-*(int *)(iVar2 + 0x180)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (pointer_expression "*(int *)(iVar2 + 0x180)" (* "*") (cast_expression "(int *)(iVar2 + 0x180)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x180)" (( "(") (binary_expression "iVar2 + 0x180" (identifier "iVar2") (+ "+") (number_literal "0x180")) () ")"))))))) () ")")) (compound_statement "{\n        *(undefined4 *)(iVar2 + 0x17c) = 0x10;\n        *(undefined4 *)(iVar2 + 0x180) = 0;\n        return;\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar2 + 0x17c) = 0x10;" (assignment_expression "*(undefined4 *)(iVar2 + 0x17c) = 0x10" (pointer_expression "*(undefined4 *)(iVar2 + 0x17c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x17c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x17c)" (( "(") (binary_expression "iVar2 + 0x17c" (identifier "iVar2") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (number_literal "0x10")) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x180) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x180) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x180)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x180)" (( "(") (binary_expression "iVar2 + 0x180" (identifier "iVar2") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0009e0e5:\n                    \n  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" (statement_identifier "LAB_0009e0e5") (: ":") (expression_statement "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);" (call_expression "FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX)" (identifier "FUN_00069d00") (argument_list "("../../gold/parameters.h",0x5c,"options",in_ECX)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "in_ECX") () ")"))) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void create_stack_segment(Layout * this) */

void __thiscall gold::type_1::function_1(type_1 *this)

{
  int *piVar1;
  type_2 uVar2;
  int var_13;
  uint64_t uVar5;
  type_3 *var_1;
  type_4 *pOVar7;
  char *pcVar8;
  type_5 uVar9;
  char var_10;
  int var_14;
  
  var_1 = parameters->options_;
  if (var_1 != (type_3 *)0x0) {
    if (var_1->execstack_status_ == var_2) {
      if (this->input_with_gnu_stack_note_ == false) {
        if ((var_1->stack_size_).user_set_via_option == false) {
          return;
        }
        if ((var_1->relocatable_).value != false) {
          return;
        }
      }
      var_10 = this->input_requires_executable_stack_;
      if (((bool)var_10 == false) &&
         (var_10 = this->input_without_gnu_stack_note_, (bool)var_10 != false)) {
        if (parameters->target_ == (type_6 *)0x0) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/parameters.h",0x69,"target");
        }
        var_10 = *(char *)(*(int *)(parameters->target_ + 4) + 0xf);
      }
    }
    else {
      var_10 = var_1->execstack_status_ == var_4;
      if (((!(bool)var_10) && (this->input_requires_executable_stack_ != false)) &&
         ((var_1->warn_execstack_).value != false)) {
        pcVar8 = (char *)var_5(
                                "one or more inputs require executable stack, but -z noexecstack was given"
                                );
        var_6(pcVar8);
        var_1 = parameters->options_;
        if (var_1 == (type_3 *)0x0) goto LAB_0009e0e5;
      }
    }
    if ((var_1->relocatable_).value != false) {
      uVar9 = 0;
      pcVar8 = var_7<var_8>::var_9(&this->namepool_,".note.GNU-stack",false,(type_7 *)0x0);
      if (var_10 != '\0') {
        uVar9 = 4;
      }
      var_11(this,pcVar8,1,(type_8)uVar9,ORDER_INVALID,false);
      return;
    }
    if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||
       ((this->script_options_->script_sections_).phdrs_elements_ == (type_9 *)0x0)) {
      pOVar7 = var_12(this,0x6474e551,(var_10 != '\0') + 6);
      var_1 = parameters->options_;
      if (var_1 == (type_3 *)0x0) goto LAB_0009e0e5;
      uVar2 = *(type_2 *)((int)&(var_1->stack_size_).value + 4);
      uVar5 = pOVar7->min_p_align_;
      piVar1 = (int *)((int)&pOVar7->min_p_align_ + 4);
      var_13 = *piVar1;
      var_14 = *piVar1;
      *(int *)&pOVar7->memsz_ = (int)(var_1->stack_size_).value;
      *(type_2 *)((int)&pOVar7->memsz_ + 4) = uVar2;
      if (var_13 == 0 && (type_5)(0xf < (type_5)uVar5) <= (type_5)-var_14) {
        *(type_2 *)&pOVar7->min_p_align_ = 0x10;
        *(type_2 *)((int)&pOVar7->min_p_align_ + 4) = 0;
        return;
      }
    }
    return;
  }
LAB_0009e0e5:
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/parameters.h",0x5c,"options");
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  uint in_ECX;
  uint extraout_ECX;
  undefined4 uVar4;
  char cVar5;
  
  iVar1 = *(int *)(DAT_0038f378 + 8);
  if (iVar1 != 0) {
    if (*(int *)(iVar1 + 0x5930) == 0) {
      if (*(char *)(param_1 + 0x1c7) == '\0') {
        if (*(char *)(iVar1 + 0x5734) == '\0') {
          return;
        }
        if (*(char *)(iVar1 + 0x318d) != '\0') {
          return;
        }
      }
      cVar5 = *(char *)(param_1 + 0x1c6);
      if ((cVar5 == '\0') && (cVar5 = *(char *)(param_1 + 0x1c8), cVar5 != '\0')) {
        if (*(int *)(DAT_0038f378 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_00069d00("../../gold/parameters.h",0x69,"target",0);
        }
        cVar5 = *(char *)(*(int *)(*(int *)(DAT_0038f378 + 0xc) + 4) + 0xf);
      }
    }
    else {
      cVar5 = *(int *)(iVar1 + 0x5930) == 1;
      if (((!(bool)cVar5) && (*(char *)(param_1 + 0x1c6) != '\0')) &&
         (*(char *)(iVar1 + 0x4559) != '\0')) {
        uVar3 = gettext("one or more inputs require executable stack, but -z noexecstack was given")
        ;
        FUN_000654e0(uVar3);
        in_ECX = (uint)(byte)cVar5;
        iVar1 = *(int *)(DAT_0038f378 + 8);
        if (iVar1 == 0) goto LAB_0009e0e5;
      }
    }
    if (*(char *)(iVar1 + 0x318d) != '\0') {
      uVar4 = 0;
      uVar3 = FUN_00174940(param_1 + 8,".note.GNU-stack",0,0);
      if (cVar5 != '\0') {
        uVar4 = 4;
      }
      FUN_0009b860(param_1,uVar3,1,uVar4,0,0,0);
      return;
    }
    if ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0') ||
       (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)) {
      iVar2 = FUN_0009b0e0(param_1,0x6474e551,(cVar5 != '\0') + '\x06');
      iVar1 = *(int *)(DAT_0038f378 + 8);
      in_ECX = extraout_ECX;
      if (iVar1 == 0) goto LAB_0009e0e5;
      uVar3 = *(undefined4 *)(iVar1 + 0x573c);
      *(undefined4 *)(iVar2 + 0x16c) = *(undefined4 *)(iVar1 + 0x5738);
      *(undefined4 *)(iVar2 + 0x170) = uVar3;
      if (*(int *)(iVar2 + 0x180) == 0 &&
          (uint)(0xf < *(uint *)(iVar2 + 0x17c)) <= (uint)-*(int *)(iVar2 + 0x180)) {
        *(undefined4 *)(iVar2 + 0x17c) = 0x10;
        *(undefined4 *)(iVar2 + 0x180) = 0;
        return;
      }
    }
    return;
  }
LAB_0009e0e5:
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/parameters.h",0x5c,"options",in_ECX);
}

