
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: char * output_section_name(Script_sections * this, char * file_name,
   char * section_name, Output_section * * * output_section_slot, Section_type * psection_type, bool
   * keep, bool is_input_section) */

char * __thiscall
gold::Script_sections::output_section_name
          (Script_sections *this,char *file_name,char *section_name,
          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,
          bool is_input_section)

{
  Elements_iterator *pEVar1;
  undefined3 extraout_var;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  bool bVar7;
  _List_node_base *p_Var5;
  uint uVar6;
  undefined *puVar8;
  Output_section *os;
  _List_node_base *p_Var9;
  int *piVar10;
  undefined4 unaff_s1;
  Orphan_section_placement *this_00;
  _List_node_base *p_Var11;
  _List_node_base *p_Var12;
  undefined *puVar13;
  code *pcVar14;
  Elements_iterator *apEStack_78 [2];
  _List_node_base *p_Stack_70;
  undefined4 uStack_6c;
  char *pcStack_68;
  Section_type *pSStack_64;
  Output_section ***pppOStack_60;
  bool *pbStack_5c;
  char *pcStack_58;
  code *pcStack_54;
  Section_type *local_40;
  bool *local_3c;
  uint local_38;
  
  p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)
            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.
           super__List_node_base._M_next;
  if (p_Var9 != (_List_node_base *)this->sections_elements_) {
    do {
      local_3c = keep;
      local_40 = psection_type;
      local_38 = (uint)is_input_section;
      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))
                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);
      if (pcVar2 != (char *)0x0) {
        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);
        if (iVar3 != 0) {
          return pcVar2;
        }
        *output_section_slot = (Output_section **)0x0;
        *psection_type = ST_NONE;
        return (char *)0x0;
      }
      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)
                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
      unaff_s1 = 0;
    } while ((_List_node_base *)this->sections_elements_ != p_Var9);
  }
  puVar13 = PTR_parameters_00432be0;
  *output_section_slot = (Output_section **)0x0;
  *psection_type = ST_NONE;
  *keep = false;
  if (*(int *)(*(int *)puVar13 + 8) != 0) {
    iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98);
    if (iVar3 == 1) {
      pcVar2 = (char *)0x0;
    }
    else if (iVar3 == 3) {
      if (file_name == (char *)0x0) {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);
        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);
      }
      else {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);
        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);
      }
    }
    else {
      if (iVar3 != 2) {
        return section_name;
      }
      pcVar2 = section_name;
      if (file_name == (char *)0x0) {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);
      }
      else {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);
      }
    }
    return pcVar2;
  }
  os = (Output_section *)&DAT_0000005c;
  pcVar14 = place_orphan;
  puVar8 = PTR_s_alize_xindex_004323b4 + -0x5cec;
  puVar13 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar8,0x5c,PTR_s__0043226c + -0x5348);
  pSStack_64 = psection_type;
  pbStack_5c = keep;
  this_00 = *(Orphan_section_placement **)(puVar8 + 0x14);
  p_Stack_70 = p_Var9;
  uStack_6c = unaff_s1;
  pcStack_68 = section_name;
  pppOStack_60 = output_section_slot;
  pcStack_58 = file_name;
  pcStack_54 = pcVar14;
  if (this_00 == (Orphan_section_placement *)0x0) {
    this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88);
    Orphan_section_placement::Orphan_section_placement(this_00);
    piVar10 = (int *)**(int **)(puVar8 + 4);
    if (piVar10 == *(int **)(puVar8 + 4)) goto LAB_0020c894;
    do {
      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);
      piVar10 = (int *)*piVar10;
    } while (*(int **)(puVar8 + 4) != piVar10);
    if (piVar10 == (int *)*piVar10) goto LAB_0020c894;
    p_Var9 = (_List_node_base *)piVar10[1];
    *(Orphan_section_placement **)(puVar8 + 0x14) = this_00;
    this_00->places_[10].have_location = true;
    this_00->places_[10].location._M_node = p_Var9;
  }
  p_Var9 = (_List_node_base *)(**(code **)(puVar13 + 0x225cf0))(8);
  p_Var9->_M_prev = (_List_node_base *)os;
  p_Var9->_M_next = (_List_node_base *)(*(int *)(puVar13 + 0x2289f0) + 8);
  bVar7 = Orphan_section_placement::find_place(this_00,os,apEStack_78);
  if (CONCAT31(extraout_var,bVar7) == 0) {
    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff;
    pcVar14 = *(code **)(puVar13 + 0x225cf0);
    if (this_00->places_[10].have_location == false) {
      (**(code **)(puVar13 + 0x225d78))
                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0
                );
LAB_0020c878:
      uVar4 = 0xe54;
      do {
        (**(code **)(puVar13 + 0x225d78))
                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,
                   *(int *)(puVar13 + 0x225c20) + -0x5484);
LAB_0020c894:
        uVar4 = 0xe3f;
      } while( true );
    }
    p_Var11 = *(_List_node_base **)(puVar8 + 4);
    p_Var12 = this_00->places_[10].location._M_node;
  }
  else {
    p_Var11 = apEStack_78[0]->_M_node[1]._M_next;
    uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);
    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;
    p_Var11 = *(_List_node_base **)(puVar8 + 4);
    pcVar14 = *(code **)(puVar13 + 0x225cf0);
    if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;
    p_Var12 = apEStack_78[0]->_M_node->_M_next;
  }
  pEVar1 = apEStack_78[0];
  p_Var5 = (_List_node_base *)(*pcVar14)(0xc);
  p_Var5[1]._M_next = p_Var9;
  (**(code **)(puVar13 + 0x226784))(p_Var5,p_Var12);
  p_Var11[1]._M_next = (_List_node_base *)((int)&(p_Var11[1]._M_next)->_M_next + 1);
  pEVar1->_M_node = p_Var5;
  p_Var9 = (_List_node_base *)((uint)os->flags_ & 2);
  if (((p_Var9 != (_List_node_base *)0x0) &&
      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,
      p_Var9 != (_List_node_base *)0x0)) &&
     (p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node)) {
    this_00->places_[6].location._M_node = p_Var9;
  }
  return (char *)p_Var9;
}



/* gold::Script_sections::output_section_name(char const*, char const*, gold::Output_section***,
   gold::Script_sections::Section_type*, bool*, bool) */

char * __thiscall
gold::Script_sections::output_section_name
          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,
          Section_type *param_4,bool *param_5,bool param_6)

{
  undefined *puVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  int *piVar5;
  
  piVar5 = (int *)**(int **)(this + 4);
  if (piVar5 != *(int **)(this + 4)) {
    do {
      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))
                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);
      if (pcVar2 != (char *)0x0) {
        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);
        if (iVar3 != 0) {
          return pcVar2;
        }
        *param_3 = (Output_section **)0x0;
        *(undefined4 *)param_4 = 0;
        return (char *)0x0;
      }
      piVar5 = (int *)*piVar5;
    } while ((int *)*(int *)(this + 4) != piVar5);
  }
  puVar1 = PTR_parameters_00432be0;
  *param_3 = (Output_section **)0x0;
  *(undefined4 *)param_4 = 0;
  *param_5 = false;
  if (*(int *)(*(int *)puVar1 + 8) != 0) {
    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);
    if (iVar3 == 1) {
      pcVar2 = (char *)0x0;
    }
    else if (iVar3 == 3) {
      if (param_1 == (char *)0x0) {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);
        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);
      }
      else {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);
        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);
      }
    }
    else {
      if (iVar3 != 2) {
        return param_2;
      }
      pcVar2 = param_2;
      if (param_1 == (char *)0x0) {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);
      }
      else {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);
      }
    }
    return pcVar2;
  }
  pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)
                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)
  ;
  return pcVar2;
}


lui gp,0x23
addiu gp,gp,-0x21dc
addu gp,gp,t9
lw v0,0x4(a0)
addiu sp,sp,-0x50
sw s0,0x28(sp)
sw gp,0x20(sp)
sw s7,0x44(sp)
sw s6,0x40(sp)
or s6,a1,zero
sw s5,0x3c(sp)
sw s4,0x38(sp)
or s4,a3,zero
sw s3,0x34(sp)
sw s2,0x30(sp)
or s2,a2,zero
sw ra,0x4c(sp)
sw s8,0x48(sp)
sw s1,0x2c(sp)
lw s0,0x0(v0)
lw s3,0x60(sp)
lw s5,0x64(sp)
beq s0,v0,0x0020c4ac
_lbu s7,0x6b(sp)
b 0x0020c424
_or s8,a0,zero
lw s0,0x0(s0)
lw v0,0x4(s8)
beq v0,s0,0x0020c4b0
_lw v0,-0x75f0(gp)
lw v0,0x8(s0)
or a3,s4,zero
or a2,s2,zero
or a0,v0,zero
lw v0,0x0(v0)
sw s7,0x18(sp)
sw s5,0x14(sp)
sw s3,0x10(sp)
lw t9,0x1c(v0)
jalr t9
_or a1,s6,zero
lw gp,0x20(sp)
beq v0,zero,0x0020c414
_or s1,v0,zero
lw a1,-0x7f64(gp)
or a0,v0,zero
lw t9,-0x3b8c(gp)
jalr t9
_addiu a1,a1,-0x5c34
beq v0,zero,0x0020c560
_lw ra,0x4c(sp)
lw ra,0x4c(sp)
or v0,s1,zero
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
lw v0,-0x75f0(gp)
sw zero,0x0(s4)
sw zero,0x0(s3)
sb zero,0x0(s5)
lw v0,0x0(v0)
lw v0,0x8(v0)
beq v0,zero,0x0020c630
_li v1,0x1
lw v0,0x5a98(v0)
beq v0,v1,0x0020c51c
_li v1,0x3
beq v0,v1,0x0020c59c
_li v1,0x2
beq v0,v1,0x0020c524
_lw ra,0x4c(sp)
or s1,s2,zero
or v0,s1,zero
lw s8,0x48(sp)
lw s7,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x50
b 0x0020c478
_or s1,zero,zero
beq s6,zero,0x0020c5d4
_lw t9,-0x39b8(gp)
lw a0,-0x7f64(gp)
or s1,s2,zero
jalr t9
_addiu a0,a0,-0x59f8
or a3,s2,zero
lw gp,0x20(sp)
or a2,s6,zero
or a1,s2,zero
lw t9,-0x7d74(gp)
jalr t9
_or a0,v0,zero
b 0x0020c47c
_lw ra,0x4c(sp)
or s1,zero,zero
lw s8,0x48(sp)
lw s7,0x44(sp)
or v0,s1,zero
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
sw zero,0x0(s4)
sw zero,0x0(s3)
lw s4,0x38(sp)
lw s3,0x34(sp)
jr ra
_addiu sp,sp,0x50
beq s6,zero,0x0020c604
_lw t9,-0x39b8(gp)
lw a0,-0x7f64(gp)
or s1,zero,zero
jalr t9
_addiu a0,a0,-0x5a54
or a2,s6,zero
lw gp,0x20(sp)
or a1,s2,zero
lw t9,-0x744c(gp)
jalr t9
_or a0,v0,zero
b 0x0020c47c
_lw ra,0x4c(sp)
lw a0,-0x7f64(gp)
or s1,s2,zero
jalr t9
_addiu a0,a0,-0x5a2c
or a2,s2,zero
lw gp,0x20(sp)
or a1,s2,zero
lw t9,-0x7d74(gp)
jalr t9
_or a0,v0,zero
b 0x0020c47c
_lw ra,0x4c(sp)
lw a0,-0x7f64(gp)
or s1,zero,zero
jalr t9
_addiu a0,a0,-0x5a74
or a1,s2,zero
lw gp,0x20(sp)
lw t9,-0x744c(gp)
jalr t9
_or a0,v0,zero
b 0x0020c47c
_lw ra,0x4c(sp)
lw a2,-0x7f64(gp)
li a1,0x5c
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x5348
jalr t9
_addiu a0,a0,-0x5cec
(translation_unit "/* gold::Script_sections::output_section_name(char const*, char const*, gold::Output_section***,\n   gold::Script_sections::Section_type*, bool*, bool) */\n\nchar * __thiscall\ngold::Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  \n  piVar5 = (int *)**(int **)(this + 4);\n  if (piVar5 != *(int **)(this + 4)) {\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }\n  puVar1 = PTR_parameters_00432be0;\n  *param_3 = (Output_section **)0x0;\n  *(undefined4 *)param_4 = 0;\n  *param_5 = false;\n  if (*(int *)(*(int *)puVar1 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }\n  pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)\n  ;\n  return pcVar2;\n}\n\n" comment (declaration "char * __thiscall" primitive_type (pointer_declarator "* __thiscall" * identifier) ;) (labeled_statement "gold::Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" statement_identifier : (ERROR ":output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{" : (call_expression "output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" identifier (argument_list "(Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" ( (binary_expression "Script_sections *this" identifier * identifier) , (binary_expression "char *param_1" identifier * identifier) , (binary_expression "char *param_2" identifier * identifier) , (binary_expression "Output_section ***param_3" identifier * (pointer_expression "**param_3" * (pointer_expression "*param_3" * identifier))) , (binary_expression "Section_type *param_4" identifier * identifier) , (binary_expression "bool *param_5" identifier * identifier) , (ERROR "bool" identifier) identifier ))) {) (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;))) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (expression_statement "piVar5 = (int *)**(int **)(this + 4);" (assignment_expression "piVar5 = (int *)**(int **)(this + 4)" identifier = (cast_expression "(int *)**(int **)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(this + 4)" * (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))))) ;) (if_statement "if (piVar5 != *(int **)(this + 4)) {\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" if (parenthesized_expression "(piVar5 != *(int **)(this + 4))" ( (binary_expression "piVar5 != *(int **)(this + 4)" identifier != (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" { (do_statement "do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);" do (compound_statement "{\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    }" { (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" identifier = (cast_expression "(char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (parenthesized_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))" ( (pointer_expression "**(code **)(*(int *)piVar5[2] + 0x1c)" * (pointer_expression "*(code **)(*(int *)piVar5[2] + 0x1c)" * (cast_expression "(code **)(*(int *)piVar5[2] + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)piVar5[2] + 0x1c)" ( (binary_expression "*(int *)piVar5[2] + 0x1c" (pointer_expression "*(int *)piVar5[2]" * (cast_expression "(int *)piVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" ( (cast_expression "(int *)piVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[2]" identifier [ number_literal ])) , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,PTR_DAT_0043226c + -0x5c34)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x5c34" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n          return pcVar2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return pcVar2;\n        }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar5 = (int *)*piVar5;" (assignment_expression "piVar5 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) }) while (parenthesized_expression "((int *)*(int *)(this + 4) != piVar5)" ( (binary_expression "(int *)*(int *)(this + 4) != piVar5" (cast_expression "(int *)*(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) != identifier) )) ;) })) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*param_5 = false;" (assignment_expression "*param_5 = false" (pointer_expression "*param_5" * identifier) = false) ;) (if_statement "if (*(int *)(*(int *)puVar1 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) != 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) != 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" { (expression_statement "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);" (assignment_expression "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" * (cast_expression "(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) + 0x5a98" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" else (if_statement "if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }" { (if_statement "if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a74)" ( (binary_expression "PTR_DAT_0043226c + -0x5a74" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" else (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a54)" ( (binary_expression "PTR_DAT_0043226c + -0x5a54" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_1)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" else (compound_statement "{\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" { (if_statement "if (iVar3 != 2) {\n        return param_2;\n      }" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "pcVar2 = param_2;" (assignment_expression "pcVar2 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a2c)" ( (binary_expression "PTR_DAT_0043226c + -0x5a2c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_2)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" else (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x59f8)" ( (binary_expression "PTR_DAT_0043226c + -0x59f8" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) }))) }))))) (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)\n  ;" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" identifier = (cast_expression "(char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x5348" identifier + number_literal) ))))) ;) (return_statement "return pcVar2;" return identifier ;) (ERROR "}" }))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: char * output_section_name(Script_sections * this, char * file_name,\n   char * section_name, Output_section * * * output_section_slot, Section_type * psection_type, bool\n   * keep, bool is_input_section) */\n\nchar * __thiscall\ngold::Script_sections::output_section_name\n          (Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)\n\n{\n  Elements_iterator *pEVar1;\n  undefined3 extraout_var;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  bool bVar7;\n  _List_node_base *p_Var5;\n  uint uVar6;\n  undefined *puVar8;\n  Output_section *os;\n  _List_node_base *p_Var9;\n  int *piVar10;\n  undefined4 unaff_s1;\n  Orphan_section_placement *this_00;\n  _List_node_base *p_Var11;\n  _List_node_base *p_Var12;\n  undefined *puVar13;\n  code *pcVar14;\n  Elements_iterator *apEStack_78 [2];\n  _List_node_base *p_Stack_70;\n  undefined4 uStack_6c;\n  char *pcStack_68;\n  Section_type *pSStack_64;\n  Output_section ***pppOStack_60;\n  bool *pbStack_5c;\n  char *pcStack_58;\n  code *pcStack_54;\n  Section_type *local_40;\n  bool *local_3c;\n  uint local_38;\n  \n  p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.\n           super__List_node_base._M_next;\n  if (p_Var9 != (_List_node_base *)this->sections_elements_) {\n    do {\n      local_3c = keep;\n      local_40 = psection_type;\n      local_38 = (uint)is_input_section;\n      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }\n      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      unaff_s1 = 0;\n    } while ((_List_node_base *)this->sections_elements_ != p_Var9);\n  }\n  puVar13 = PTR_parameters_00432be0;\n  *output_section_slot = (Output_section **)0x0;\n  *psection_type = ST_NONE;\n  *keep = false;\n  if (*(int *)(*(int *)puVar13 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }\n    return pcVar2;\n  }\n  os = (Output_section *)&DAT_0000005c;\n  pcVar14 = place_orphan;\n  puVar8 = PTR_s_alize_xindex_004323b4 + -0x5cec;\n  puVar13 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(puVar8,0x5c,PTR_s__0043226c + -0x5348);\n  pSStack_64 = psection_type;\n  pbStack_5c = keep;\n  this_00 = *(Orphan_section_placement **)(puVar8 + 0x14);\n  p_Stack_70 = p_Var9;\n  uStack_6c = unaff_s1;\n  pcStack_68 = section_name;\n  pppOStack_60 = output_section_slot;\n  pcStack_58 = file_name;\n  pcStack_54 = pcVar14;\n  if (this_00 == (Orphan_section_placement *)0x0) {\n    this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88);\n    Orphan_section_placement::Orphan_section_placement(this_00);\n    piVar10 = (int *)**(int **)(puVar8 + 4);\n    if (piVar10 == *(int **)(puVar8 + 4)) goto LAB_0020c894;\n    do {\n      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);\n      piVar10 = (int *)*piVar10;\n    } while (*(int **)(puVar8 + 4) != piVar10);\n    if (piVar10 == (int *)*piVar10) goto LAB_0020c894;\n    p_Var9 = (_List_node_base *)piVar10[1];\n    *(Orphan_section_placement **)(puVar8 + 0x14) = this_00;\n    this_00->places_[10].have_location = true;\n    this_00->places_[10].location._M_node = p_Var9;\n  }\n  p_Var9 = (_List_node_base *)(**(code **)(puVar13 + 0x225cf0))(8);\n  p_Var9->_M_prev = (_List_node_base *)os;\n  p_Var9->_M_next = (_List_node_base *)(*(int *)(puVar13 + 0x2289f0) + 8);\n  bVar7 = Orphan_section_placement::find_place(this_00,os,apEStack_78);\n  if (CONCAT31(extraout_var,bVar7) == 0) {\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff;\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (this_00->places_[10].have_location == false) {\n      (**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );\nLAB_0020c878:\n      uVar4 = 0xe54;\n      do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );\n    }\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    p_Var12 = this_00->places_[10].location._M_node;\n  }\n  else {\n    p_Var11 = apEStack_78[0]->_M_node[1]._M_next;\n    uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;\n    p_Var12 = apEStack_78[0]->_M_node->_M_next;\n  }\n  pEVar1 = apEStack_78[0];\n  p_Var5 = (_List_node_base *)(*pcVar14)(0xc);\n  p_Var5[1]._M_next = p_Var9;\n  (**(code **)(puVar13 + 0x226784))(p_Var5,p_Var12);\n  p_Var11[1]._M_next = (_List_node_base *)((int)&(p_Var11[1]._M_next)->_M_next + 1);\n  pEVar1->_M_node = p_Var5;\n  p_Var9 = (_List_node_base *)((uint)os->flags_ & 2);\n  if (((p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)) &&\n     (p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node)) {\n    this_00->places_[6].location._M_node = p_Var9;\n  }\n  return (char *)p_Var9;\n}\n\n" comment comment comment comment (declaration "char * __thiscall" primitive_type (pointer_declarator "* __thiscall" * identifier) ;) (labeled_statement "gold::Script_sections::output_section_name\n          (Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)\n\n{\n  Elements_iterator *pEVar1;" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::output_section_name\n          (Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)\n\n{\n  Elements_iterator *pEVar1;" statement_identifier : (ERROR ":output_section_name\n          (Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)\n\n{" : (call_expression "output_section_name\n          (Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)" identifier (argument_list "(Script_sections *this,char *file_name,char *section_name,\n          Output_section ***output_section_slot,Section_type *psection_type,bool *keep,\n          bool is_input_section)" ( (binary_expression "Script_sections *this" identifier * identifier) , (binary_expression "char *file_name" identifier * identifier) , (binary_expression "char *section_name" identifier * identifier) , (binary_expression "Output_section ***output_section_slot" identifier * (pointer_expression "**output_section_slot" * (pointer_expression "*output_section_slot" * identifier))) , (binary_expression "Section_type *psection_type" identifier * identifier) , (binary_expression "bool *keep" identifier * identifier) , (ERROR "bool" identifier) identifier ))) {) (declaration "Elements_iterator *pEVar1;" type_identifier (pointer_declarator "*pEVar1" * identifier) ;))) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "_List_node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "Output_section *os;" type_identifier (pointer_declarator "*os" * identifier) ;) (declaration "_List_node_base *p_Var9;" type_identifier (pointer_declarator "*p_Var9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 unaff_s1;" type_identifier identifier ;) (declaration "Orphan_section_placement *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "_List_node_base *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "_List_node_base *p_Var12;" type_identifier (pointer_declarator "*p_Var12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "Elements_iterator *apEStack_78 [2];" type_identifier (pointer_declarator "*apEStack_78 [2]" * (array_declarator "apEStack_78 [2]" identifier [ number_literal ])) ;) (declaration "_List_node_base *p_Stack_70;" type_identifier (pointer_declarator "*p_Stack_70" * identifier) ;) (declaration "undefined4 uStack_6c;" type_identifier identifier ;) (declaration "char *pcStack_68;" primitive_type (pointer_declarator "*pcStack_68" * identifier) ;) (declaration "Section_type *pSStack_64;" type_identifier (pointer_declarator "*pSStack_64" * identifier) ;) (declaration "Output_section ***pppOStack_60;" type_identifier (pointer_declarator "***pppOStack_60" * (pointer_declarator "**pppOStack_60" * (pointer_declarator "*pppOStack_60" * identifier))) ;) (declaration "bool *pbStack_5c;" primitive_type (pointer_declarator "*pbStack_5c" * identifier) ;) (declaration "char *pcStack_58;" primitive_type (pointer_declarator "*pcStack_58" * identifier) ;) (declaration "code *pcStack_54;" type_identifier (pointer_declarator "*pcStack_54" * identifier) ;) (declaration "Section_type *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "bool *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.\n           super__List_node_base._M_next;" (assignment_expression "p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.\n           super__List_node_base._M_next" identifier = (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.\n           super__List_node_base._M_next" (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node.\n           super__List_node_base" (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)._M_node" (parenthesized_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl)" ( (field_expression "((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)->_M_impl" (parenthesized_expression "((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next)" ( (binary_expression "(_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n            &((_List_node_base *)this->sections_elements_)->_M_next" (parenthesized_expression "(_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)" ( (ERROR "_List_base<gold::Sections_element*,_std::allocator<gold::" (binary_expression "_List_base<gold" identifier < identifier) : : (type_descriptor "Sections_element*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Sections_element*>_> *" (binary_expression "Sections_element*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "((_List_node_base *)this->sections_elements_)->_M_next" (parenthesized_expression "((_List_node_base *)this->sections_elements_)" ( (cast_expression "(_List_node_base *)this->sections_elements_" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->sections_elements_" identifier -> field_identifier)) )) -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (p_Var9 != (_List_node_base *)this->sections_elements_) {\n    do {\n      local_3c = keep;\n      local_40 = psection_type;\n      local_38 = (uint)is_input_section;\n      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }\n      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      unaff_s1 = 0;\n    } while ((_List_node_base *)this->sections_elements_ != p_Var9);\n  }" if (parenthesized_expression "(p_Var9 != (_List_node_base *)this->sections_elements_)" ( (binary_expression "p_Var9 != (_List_node_base *)this->sections_elements_" identifier != (cast_expression "(_List_node_base *)this->sections_elements_" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->sections_elements_" identifier -> field_identifier))) )) (compound_statement "{\n    do {\n      local_3c = keep;\n      local_40 = psection_type;\n      local_38 = (uint)is_input_section;\n      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }\n      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      unaff_s1 = 0;\n    } while ((_List_node_base *)this->sections_elements_ != p_Var9);\n  }" { (do_statement "do {\n      local_3c = keep;\n      local_40 = psection_type;\n      local_38 = (uint)is_input_section;\n      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }\n      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      unaff_s1 = 0;\n    } while ((_List_node_base *)this->sections_elements_ != p_Var9);" do (compound_statement "{\n      local_3c = keep;\n      local_40 = psection_type;\n      local_38 = (uint)is_input_section;\n      pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }\n      p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;\n      unaff_s1 = 0;\n    }" { (expression_statement "local_3c = keep;" (assignment_expression "local_3c = keep" identifier = identifier) ;) (expression_statement "local_40 = psection_type;" (assignment_expression "local_40 = psection_type" identifier = identifier) ;) (expression_statement "local_38 = (uint)is_input_section;" (assignment_expression "local_38 = (uint)is_input_section" identifier = (cast_expression "(uint)is_input_section" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot);" (assignment_expression "pcVar2 = (char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot)" identifier = (cast_expression "(char *)(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))\n                                 (p_Var9[1]._M_next,file_name,section_name,output_section_slot)" (parenthesized_expression "(**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c))" ( (pointer_expression "**(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c)" * (pointer_expression "*(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c)" * (cast_expression "(code **)((int)(p_Var9[1]._M_next)->_M_next + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)(p_Var9[1]._M_next)->_M_next + 0x1c)" ( (binary_expression "(int)(p_Var9[1]._M_next)->_M_next + 0x1c" (cast_expression "(int)(p_Var9[1]._M_next)->_M_next" ( (type_descriptor "int" primitive_type) ) (field_expression "(p_Var9[1]._M_next)->_M_next" (parenthesized_expression "(p_Var9[1]._M_next)" ( (field_expression "p_Var9[1]._M_next" (subscript_expression "p_Var9[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier)) + number_literal) ))))) )) (argument_list "(p_Var9[1]._M_next,file_name,section_name,output_section_slot)" ( (field_expression "p_Var9[1]._M_next" (subscript_expression "p_Var9[1]" identifier [ number_literal ]) . field_identifier) , identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *output_section_slot = (Output_section **)0x0;\n        *psection_type = ST_NONE;\n        return (char *)0x0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(pcVar2,PTR_s__0043226c + -0x5c34)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,PTR_s__0043226c + -0x5c34)" ( identifier , (binary_expression "PTR_s__0043226c + -0x5c34" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n          return pcVar2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return pcVar2;\n        }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "*output_section_slot = (Output_section **)0x0;" (assignment_expression "*output_section_slot = (Output_section **)0x0" (pointer_expression "*output_section_slot" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*psection_type = ST_NONE;" (assignment_expression "*psection_type = ST_NONE" (pointer_expression "*psection_type" * identifier) = identifier) ;) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;" (assignment_expression "p_Var9 = (((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" identifier = (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base._M_next" (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node.super__List_node_base" (field_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)._M_node" (parenthesized_expression "(((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl)" ( (field_expression "((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)->_M_impl" (parenthesized_expression "((_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next)" ( (binary_expression "(_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)\n                &p_Var9->_M_next" (parenthesized_expression "(_List_base<gold::Sections_element*,_std::allocator<gold::Sections_element*>_> *)" ( (ERROR "_List_base<gold::Sections_element*,_std::allocator<gold::" (binary_expression "_List_base<gold" identifier < identifier) : : (type_descriptor "Sections_element*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Sections_element*>_> *" (binary_expression "Sections_element*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "p_Var9->_M_next" identifier -> field_identifier)) )) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "unaff_s1 = 0;" (assignment_expression "unaff_s1 = 0" identifier = number_literal) ;) }) while (parenthesized_expression "((_List_node_base *)this->sections_elements_ != p_Var9)" ( (binary_expression "(_List_node_base *)this->sections_elements_ != p_Var9" (cast_expression "(_List_node_base *)this->sections_elements_" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->sections_elements_" identifier -> field_identifier)) != identifier) )) ;) })) (expression_statement "puVar13 = PTR_parameters_00432be0;" (assignment_expression "puVar13 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "*output_section_slot = (Output_section **)0x0;" (assignment_expression "*output_section_slot = (Output_section **)0x0" (pointer_expression "*output_section_slot" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*psection_type = ST_NONE;" (assignment_expression "*psection_type = ST_NONE" (pointer_expression "*psection_type" * identifier) = identifier) ;) (expression_statement "*keep = false;" (assignment_expression "*keep = false" (pointer_expression "*keep" * identifier) = false) ;) (if_statement "if (*(int *)(*(int *)puVar13 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)puVar13 + 8) != 0)" ( (binary_expression "*(int *)(*(int *)puVar13 + 8) != 0" (pointer_expression "*(int *)(*(int *)puVar13 + 8)" * (cast_expression "(int *)(*(int *)puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar13 + 8)" ( (binary_expression "*(int *)puVar13 + 8" (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }\n    return pcVar2;\n  }" { (expression_statement "iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98);" (assignment_expression "iVar3 = *(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98)" * (cast_expression "(int *)(*(int *)(*(int *)puVar13 + 8) + 0x5a98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar13 + 8) + 0x5a98)" ( (binary_expression "*(int *)(*(int *)puVar13 + 8) + 0x5a98" (pointer_expression "*(int *)(*(int *)puVar13 + 8)" * (cast_expression "(int *)(*(int *)puVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar13 + 8)" ( (binary_expression "*(int *)puVar13 + 8" (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }" else (if_statement "if (iVar3 == 3) {\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n      if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }\n    }" { (if_statement "if (file_name == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }" if (parenthesized_expression "(file_name == (char *)0x0)" ( (binary_expression "file_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a74)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x5a74)" ( (binary_expression "PTR_s__0043226c + -0x5a74" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,section_name);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,section_name)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,section_name)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }" else (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a54)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x5a54)" ( (binary_expression "PTR_s__0043226c + -0x5a54" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,section_name,file_name)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,section_name,file_name)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }" else (compound_statement "{\n      if (iVar3 != 2) {\n        return section_name;\n      }\n      pcVar2 = section_name;\n      if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }\n    }" { (if_statement "if (iVar3 != 2) {\n        return section_name;\n      }" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (compound_statement "{\n        return section_name;\n      }" { (return_statement "return section_name;" return identifier ;) })) (expression_statement "pcVar2 = section_name;" (assignment_expression "pcVar2 = section_name" identifier = identifier) ;) (if_statement "if (file_name == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }" if (parenthesized_expression "(file_name == (char *)0x0)" ( (binary_expression "file_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x5a2c)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x5a2c)" ( (binary_expression "PTR_s__0043226c + -0x5a2c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,section_name,section_name)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }" else (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_s__0043226c + -0x59f8)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + -0x59f8)" ( (binary_expression "PTR_s__0043226c + -0x59f8" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,section_name,file_name,section_name)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,section_name,file_name,section_name)" ( identifier , identifier , identifier , identifier ))) ;) }))) }))))) (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "os = (Output_section *)&DAT_0000005c;" (assignment_expression "os = (Output_section *)&DAT_0000005c" identifier = (cast_expression "(Output_section *)&DAT_0000005c" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "pcVar14 = place_orphan;" (assignment_expression "pcVar14 = place_orphan" identifier = identifier) ;) (expression_statement "puVar8 = PTR_s_alize_xindex_004323b4 + -0x5cec;" (assignment_expression "puVar8 = PTR_s_alize_xindex_004323b4 + -0x5cec" identifier = (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar8,0x5c,PTR_s__0043226c + -0x5348);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(puVar8,0x5c,PTR_s__0043226c + -0x5348)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,0x5c,PTR_s__0043226c + -0x5348)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + -0x5348" identifier + number_literal) ))) ;) (expression_statement "pSStack_64 = psection_type;" (assignment_expression "pSStack_64 = psection_type" identifier = identifier) ;) (expression_statement "pbStack_5c = keep;" (assignment_expression "pbStack_5c = keep" identifier = identifier) ;) (expression_statement "this_00 = *(Orphan_section_placement **)(puVar8 + 0x14);" (assignment_expression "this_00 = *(Orphan_section_placement **)(puVar8 + 0x14)" identifier = (pointer_expression "*(Orphan_section_placement **)(puVar8 + 0x14)" * (cast_expression "(Orphan_section_placement **)(puVar8 + 0x14)" ( (type_descriptor "Orphan_section_placement **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "p_Stack_70 = p_Var9;" (assignment_expression "p_Stack_70 = p_Var9" identifier = identifier) ;) (expression_statement "uStack_6c = unaff_s1;" (assignment_expression "uStack_6c = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_68 = section_name;" (assignment_expression "pcStack_68 = section_name" identifier = identifier) ;) (expression_statement "pppOStack_60 = output_section_slot;" (assignment_expression "pppOStack_60 = output_section_slot" identifier = identifier) ;) (expression_statement "pcStack_58 = file_name;" (assignment_expression "pcStack_58 = file_name" identifier = identifier) ;) (expression_statement "pcStack_54 = pcVar14;" (assignment_expression "pcStack_54 = pcVar14" identifier = identifier) ;) (if_statement "if (this_00 == (Orphan_section_placement *)0x0) {\n    this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88);\n    Orphan_section_placement::Orphan_section_placement(this_00);\n    piVar10 = (int *)**(int **)(puVar8 + 4);\n    if (piVar10 == *(int **)(puVar8 + 4)) goto LAB_0020c894;\n    do {\n      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);\n      piVar10 = (int *)*piVar10;\n    } while (*(int **)(puVar8 + 4) != piVar10);\n    if (piVar10 == (int *)*piVar10) goto LAB_0020c894;\n    p_Var9 = (_List_node_base *)piVar10[1];\n    *(Orphan_section_placement **)(puVar8 + 0x14) = this_00;\n    this_00->places_[10].have_location = true;\n    this_00->places_[10].location._M_node = p_Var9;\n  }" if (parenthesized_expression "(this_00 == (Orphan_section_placement *)0x0)" ( (binary_expression "this_00 == (Orphan_section_placement *)0x0" identifier == (cast_expression "(Orphan_section_placement *)0x0" ( (type_descriptor "Orphan_section_placement *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88);\n    Orphan_section_placement::Orphan_section_placement(this_00);\n    piVar10 = (int *)**(int **)(puVar8 + 4);\n    if (piVar10 == *(int **)(puVar8 + 4)) goto LAB_0020c894;\n    do {\n      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);\n      piVar10 = (int *)*piVar10;\n    } while (*(int **)(puVar8 + 4) != piVar10);\n    if (piVar10 == (int *)*piVar10) goto LAB_0020c894;\n    p_Var9 = (_List_node_base *)piVar10[1];\n    *(Orphan_section_placement **)(puVar8 + 0x14) = this_00;\n    this_00->places_[10].have_location = true;\n    this_00->places_[10].location._M_node = p_Var9;\n  }" { (expression_statement "this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88);" (assignment_expression "this_00 = (Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88)" identifier = (cast_expression "(Orphan_section_placement *)(**(code **)(puVar13 + 0x225cf0))(0x88)" ( (type_descriptor "Orphan_section_placement *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar13 + 0x225cf0))(0x88)" (parenthesized_expression "(**(code **)(puVar13 + 0x225cf0))" ( (pointer_expression "**(code **)(puVar13 + 0x225cf0)" * (pointer_expression "*(code **)(puVar13 + 0x225cf0)" * (cast_expression "(code **)(puVar13 + 0x225cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225cf0)" ( (binary_expression "puVar13 + 0x225cf0" identifier + number_literal) ))))) )) (argument_list "(0x88)" ( number_literal ))))) ;) (labeled_statement "Orphan_section_placement::Orphan_section_placement(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "Orphan_section_placement(this_00);" (call_expression "Orphan_section_placement(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;)) (expression_statement "piVar10 = (int *)**(int **)(puVar8 + 4);" (assignment_expression "piVar10 = (int *)**(int **)(puVar8 + 4)" identifier = (cast_expression "(int *)**(int **)(puVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puVar8 + 4)" * (pointer_expression "*(int **)(puVar8 + 4)" * (cast_expression "(int **)(puVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))))) ;) (if_statement "if (piVar10 == *(int **)(puVar8 + 4)) goto LAB_0020c894;" if (parenthesized_expression "(piVar10 == *(int **)(puVar8 + 4))" ( (binary_expression "piVar10 == *(int **)(puVar8 + 4)" identifier == (pointer_expression "*(int **)(puVar8 + 4)" * (cast_expression "(int **)(puVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0020c894;" goto statement_identifier ;)) (do_statement "do {\n      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);\n      piVar10 = (int *)*piVar10;\n    } while (*(int **)(puVar8 + 4) != piVar10);" do (compound_statement "{\n      (**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);\n      piVar10 = (int *)*piVar10;\n    }" { (expression_statement "(**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10);" (call_expression "(**(code **)(*(int *)piVar10[2] + 0x20))((int *)piVar10[2],this_00,piVar10)" (parenthesized_expression "(**(code **)(*(int *)piVar10[2] + 0x20))" ( (pointer_expression "**(code **)(*(int *)piVar10[2] + 0x20)" * (pointer_expression "*(code **)(*(int *)piVar10[2] + 0x20)" * (cast_expression "(code **)(*(int *)piVar10[2] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)piVar10[2] + 0x20)" ( (binary_expression "*(int *)piVar10[2] + 0x20" (pointer_expression "*(int *)piVar10[2]" * (cast_expression "(int *)piVar10[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)piVar10[2],this_00,piVar10)" ( (cast_expression "(int *)piVar10[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[2]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "piVar10 = (int *)*piVar10;" (assignment_expression "piVar10 = (int *)*piVar10" identifier = (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) }) while (parenthesized_expression "(*(int **)(puVar8 + 4) != piVar10)" ( (binary_expression "*(int **)(puVar8 + 4) != piVar10" (pointer_expression "*(int **)(puVar8 + 4)" * (cast_expression "(int **)(puVar8 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if (piVar10 == (int *)*piVar10) goto LAB_0020c894;" if (parenthesized_expression "(piVar10 == (int *)*piVar10)" ( (binary_expression "piVar10 == (int *)*piVar10" identifier == (cast_expression "(int *)*piVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) )) (goto_statement "goto LAB_0020c894;" goto statement_identifier ;)) (expression_statement "p_Var9 = (_List_node_base *)piVar10[1];" (assignment_expression "p_Var9 = (_List_node_base *)piVar10[1]" identifier = (cast_expression "(_List_node_base *)piVar10[1]" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "*(Orphan_section_placement **)(puVar8 + 0x14) = this_00;" (assignment_expression "*(Orphan_section_placement **)(puVar8 + 0x14) = this_00" (pointer_expression "*(Orphan_section_placement **)(puVar8 + 0x14)" * (cast_expression "(Orphan_section_placement **)(puVar8 + 0x14)" ( (type_descriptor "Orphan_section_placement **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x14)" ( (binary_expression "puVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "this_00->places_[10].have_location = true;" (assignment_expression "this_00->places_[10].have_location = true" (field_expression "this_00->places_[10].have_location" (subscript_expression "this_00->places_[10]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) = true) ;) (expression_statement "this_00->places_[10].location._M_node = p_Var9;" (assignment_expression "this_00->places_[10].location._M_node = p_Var9" (field_expression "this_00->places_[10].location._M_node" (field_expression "this_00->places_[10].location" (subscript_expression "this_00->places_[10]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) = identifier) ;) })) (expression_statement "p_Var9 = (_List_node_base *)(**(code **)(puVar13 + 0x225cf0))(8);" (assignment_expression "p_Var9 = (_List_node_base *)(**(code **)(puVar13 + 0x225cf0))(8)" identifier = (cast_expression "(_List_node_base *)(**(code **)(puVar13 + 0x225cf0))(8)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar13 + 0x225cf0))(8)" (parenthesized_expression "(**(code **)(puVar13 + 0x225cf0))" ( (pointer_expression "**(code **)(puVar13 + 0x225cf0)" * (pointer_expression "*(code **)(puVar13 + 0x225cf0)" * (cast_expression "(code **)(puVar13 + 0x225cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225cf0)" ( (binary_expression "puVar13 + 0x225cf0" identifier + number_literal) ))))) )) (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "p_Var9->_M_prev = (_List_node_base *)os;" (assignment_expression "p_Var9->_M_prev = (_List_node_base *)os" (field_expression "p_Var9->_M_prev" identifier -> field_identifier) = (cast_expression "(_List_node_base *)os" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var9->_M_next = (_List_node_base *)(*(int *)(puVar13 + 0x2289f0) + 8);" (assignment_expression "p_Var9->_M_next = (_List_node_base *)(*(int *)(puVar13 + 0x2289f0) + 8)" (field_expression "p_Var9->_M_next" identifier -> field_identifier) = (cast_expression "(_List_node_base *)(*(int *)(puVar13 + 0x2289f0) + 8)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x2289f0) + 8)" ( (binary_expression "*(int *)(puVar13 + 0x2289f0) + 8" (pointer_expression "*(int *)(puVar13 + 0x2289f0)" * (cast_expression "(int *)(puVar13 + 0x2289f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x2289f0)" ( (binary_expression "puVar13 + 0x2289f0" identifier + number_literal) )))) + number_literal) )))) ;) (ERROR "bVar7 = Orphan_section_placement::" (assignment_expression "bVar7 = Orphan_section_placement" identifier = identifier) : :) (expression_statement "find_place(this_00,os,apEStack_78);" (call_expression "find_place(this_00,os,apEStack_78)" identifier (argument_list "(this_00,os,apEStack_78)" ( identifier , identifier , identifier ))) ;) (if_statement "if (CONCAT31(extraout_var,bVar7) == 0) {\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff;\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (this_00->places_[10].have_location == false) {\n      (**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );\nLAB_0020c878:\n      uVar4 = 0xe54;\n      do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );\n    }\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    p_Var12 = this_00->places_[10].location._M_node;\n  }\n  else {\n    p_Var11 = apEStack_78[0]->_M_node[1]._M_next;\n    uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;\n    p_Var12 = apEStack_78[0]->_M_node->_M_next;\n  }" if (parenthesized_expression "(CONCAT31(extraout_var,bVar7) == 0)" ( (binary_expression "CONCAT31(extraout_var,bVar7) == 0" (call_expression "CONCAT31(extraout_var,bVar7)" identifier (argument_list "(extraout_var,bVar7)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff;\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (this_00->places_[10].have_location == false) {\n      (**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );\nLAB_0020c878:\n      uVar4 = 0xe54;\n      do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );\n    }\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    p_Var12 = this_00->places_[10].location._M_node;\n  }" { (expression_statement "*(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff;" (assignment_expression "*(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff" (pointer_expression "*(uint *)&os->field_0x98" * (cast_expression "(uint *)&os->field_0x98" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&os->field_0x98" & (field_expression "os->field_0x98" identifier -> field_identifier)))) = (binary_expression "*(uint *)&os->field_0x98 & 0xfffbffff" (pointer_expression "*(uint *)&os->field_0x98" * (cast_expression "(uint *)&os->field_0x98" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&os->field_0x98" & (field_expression "os->field_0x98" identifier -> field_identifier)))) & number_literal)) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x225cf0);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x225cf0)" identifier = (pointer_expression "*(code **)(puVar13 + 0x225cf0)" * (cast_expression "(code **)(puVar13 + 0x225cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225cf0)" ( (binary_expression "puVar13 + 0x225cf0" identifier + number_literal) ))))) ;) (if_statement "if (this_00->places_[10].have_location == false) {\n      (**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );\nLAB_0020c878:\n      uVar4 = 0xe54;\n      do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );\n    }" if (parenthesized_expression "(this_00->places_[10].have_location == false)" ( (binary_expression "this_00->places_[10].have_location == false" (field_expression "this_00->places_[10].have_location" (subscript_expression "this_00->places_[10]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) == false) )) (compound_statement "{\n      (**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );\nLAB_0020c878:\n      uVar4 = 0xe54;\n      do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );\n    }" { (expression_statement "(**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                );" (call_expression "(**(code **)(puVar13 + 0x225d78))\n                (*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                )" (parenthesized_expression "(**(code **)(puVar13 + 0x225d78))" ( (pointer_expression "**(code **)(puVar13 + 0x225d78)" * (pointer_expression "*(code **)(puVar13 + 0x225d78)" * (cast_expression "(code **)(puVar13 + 0x225d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225d78)" ( (binary_expression "puVar13 + 0x225d78" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x225c20) + -0x5d54,0x24d,*(int *)(puVar13 + 0x225c20) + -0x51b0\n                )" ( (binary_expression "*(int *)(puVar13 + 0x225c20) + -0x5d54" (pointer_expression "*(int *)(puVar13 + 0x225c20)" * (cast_expression "(int *)(puVar13 + 0x225c20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x225c20)" ( (binary_expression "puVar13 + 0x225c20" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar13 + 0x225c20) + -0x51b0" (pointer_expression "*(int *)(puVar13 + 0x225c20)" * (cast_expression "(int *)(puVar13 + 0x225c20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x225c20)" ( (binary_expression "puVar13 + 0x225c20" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0020c878:\n      uVar4 = 0xe54;" statement_identifier : (expression_statement "uVar4 = 0xe54;" (assignment_expression "uVar4 = 0xe54" identifier = number_literal) ;)) (do_statement "do {\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      } while( true );" do (compound_statement "{\n        (**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);\nLAB_0020c894:\n        uVar4 = 0xe3f;\n      }" { (expression_statement "(**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484);" (call_expression "(**(code **)(puVar13 + 0x225d78))\n                  (*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484)" (parenthesized_expression "(**(code **)(puVar13 + 0x225d78))" ( (pointer_expression "**(code **)(puVar13 + 0x225d78)" * (pointer_expression "*(code **)(puVar13 + 0x225d78)" * (cast_expression "(code **)(puVar13 + 0x225d78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225d78)" ( (binary_expression "puVar13 + 0x225d78" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x225c20) + -0x5d54,uVar4,\n                   *(int *)(puVar13 + 0x225c20) + -0x5484)" ( (binary_expression "*(int *)(puVar13 + 0x225c20) + -0x5d54" (pointer_expression "*(int *)(puVar13 + 0x225c20)" * (cast_expression "(int *)(puVar13 + 0x225c20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x225c20)" ( (binary_expression "puVar13 + 0x225c20" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar13 + 0x225c20) + -0x5484" (pointer_expression "*(int *)(puVar13 + 0x225c20)" * (cast_expression "(int *)(puVar13 + 0x225c20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x225c20)" ( (binary_expression "puVar13 + 0x225c20" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0020c894:\n        uVar4 = 0xe3f;" statement_identifier : (expression_statement "uVar4 = 0xe3f;" (assignment_expression "uVar4 = 0xe3f" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "p_Var11 = *(_List_node_base **)(puVar8 + 4);" (assignment_expression "p_Var11 = *(_List_node_base **)(puVar8 + 4)" identifier = (pointer_expression "*(_List_node_base **)(puVar8 + 4)" * (cast_expression "(_List_node_base **)(puVar8 + 4)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "p_Var12 = this_00->places_[10].location._M_node;" (assignment_expression "p_Var12 = this_00->places_[10].location._M_node" identifier = (field_expression "this_00->places_[10].location._M_node" (field_expression "this_00->places_[10].location" (subscript_expression "this_00->places_[10]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n    p_Var11 = apEStack_78[0]->_M_node[1]._M_next;\n    uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;\n    p_Var12 = apEStack_78[0]->_M_node->_M_next;\n  }" else (compound_statement "{\n    p_Var11 = apEStack_78[0]->_M_node[1]._M_next;\n    uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);\n    *(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;\n    p_Var11 = *(_List_node_base **)(puVar8 + 4);\n    pcVar14 = *(code **)(puVar13 + 0x225cf0);\n    if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;\n    p_Var12 = apEStack_78[0]->_M_node->_M_next;\n  }" { (expression_statement "p_Var11 = apEStack_78[0]->_M_node[1]._M_next;" (assignment_expression "p_Var11 = apEStack_78[0]->_M_node[1]._M_next" identifier = (field_expression "apEStack_78[0]->_M_node[1]._M_next" (subscript_expression "apEStack_78[0]->_M_node[1]" (field_expression "apEStack_78[0]->_M_node" (subscript_expression "apEStack_78[0]" identifier [ number_literal ]) -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11);" (assignment_expression "uVar6 = (*(code *)p_Var11->_M_next[1]._M_next)(p_Var11)" identifier = (call_expression "(*(code *)p_Var11->_M_next[1]._M_next)(p_Var11)" (parenthesized_expression "(*(code *)p_Var11->_M_next[1]._M_next)" ( (pointer_expression "*(code *)p_Var11->_M_next[1]._M_next" * (cast_expression "(code *)p_Var11->_M_next[1]._M_next" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var11->_M_next[1]._M_next" (subscript_expression "p_Var11->_M_next[1]" (field_expression "p_Var11->_M_next" identifier -> field_identifier) [ number_literal ]) . field_identifier))) )) (argument_list "(p_Var11)" ( identifier )))) ;) (expression_statement "*(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12;" (assignment_expression "*(uint *)&os->field_0x98 = *(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12" (pointer_expression "*(uint *)&os->field_0x98" * (cast_expression "(uint *)&os->field_0x98" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&os->field_0x98" & (field_expression "os->field_0x98" identifier -> field_identifier)))) = (binary_expression "*(uint *)&os->field_0x98 & 0xfffbffff | (uVar6 & 1) << 0x12" (binary_expression "*(uint *)&os->field_0x98 & 0xfffbffff" (pointer_expression "*(uint *)&os->field_0x98" * (cast_expression "(uint *)&os->field_0x98" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&os->field_0x98" & (field_expression "os->field_0x98" identifier -> field_identifier)))) & number_literal) | (binary_expression "(uVar6 & 1) << 0x12" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) << number_literal))) ;) (expression_statement "p_Var11 = *(_List_node_base **)(puVar8 + 4);" (assignment_expression "p_Var11 = *(_List_node_base **)(puVar8 + 4)" identifier = (pointer_expression "*(_List_node_base **)(puVar8 + 4)" * (cast_expression "(_List_node_base **)(puVar8 + 4)" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 4)" ( (binary_expression "puVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x225cf0);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x225cf0)" identifier = (pointer_expression "*(code **)(puVar13 + 0x225cf0)" * (cast_expression "(code **)(puVar13 + 0x225cf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x225cf0)" ( (binary_expression "puVar13 + 0x225cf0" identifier + number_literal) ))))) ;) (if_statement "if (apEStack_78[0]->_M_node == p_Var11) goto LAB_0020c878;" if (parenthesized_expression "(apEStack_78[0]->_M_node == p_Var11)" ( (binary_expression "apEStack_78[0]->_M_node == p_Var11" (field_expression "apEStack_78[0]->_M_node" (subscript_expression "apEStack_78[0]" identifier [ number_literal ]) -> field_identifier) == identifier) )) (goto_statement "goto LAB_0020c878;" goto statement_identifier ;)) (expression_statement "p_Var12 = apEStack_78[0]->_M_node->_M_next;" (assignment_expression "p_Var12 = apEStack_78[0]->_M_node->_M_next" identifier = (field_expression "apEStack_78[0]->_M_node->_M_next" (field_expression "apEStack_78[0]->_M_node" (subscript_expression "apEStack_78[0]" identifier [ number_literal ]) -> field_identifier) -> field_identifier)) ;) }))) (expression_statement "pEVar1 = apEStack_78[0];" (assignment_expression "pEVar1 = apEStack_78[0]" identifier = (subscript_expression "apEStack_78[0]" identifier [ number_literal ])) ;) (expression_statement "p_Var5 = (_List_node_base *)(*pcVar14)(0xc);" (assignment_expression "p_Var5 = (_List_node_base *)(*pcVar14)(0xc)" identifier = (cast_expression "(_List_node_base *)(*pcVar14)(0xc)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar14)(0xc)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "p_Var5[1]._M_next = p_Var9;" (assignment_expression "p_Var5[1]._M_next = p_Var9" (field_expression "p_Var5[1]._M_next" (subscript_expression "p_Var5[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "(**(code **)(puVar13 + 0x226784))(p_Var5,p_Var12);" (call_expression "(**(code **)(puVar13 + 0x226784))(p_Var5,p_Var12)" (parenthesized_expression "(**(code **)(puVar13 + 0x226784))" ( (pointer_expression "**(code **)(puVar13 + 0x226784)" * (pointer_expression "*(code **)(puVar13 + 0x226784)" * (cast_expression "(code **)(puVar13 + 0x226784)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x226784)" ( (binary_expression "puVar13 + 0x226784" identifier + number_literal) ))))) )) (argument_list "(p_Var5,p_Var12)" ( identifier , identifier ))) ;) (expression_statement "p_Var11[1]._M_next = (_List_node_base *)((int)&(p_Var11[1]._M_next)->_M_next + 1);" (assignment_expression "p_Var11[1]._M_next = (_List_node_base *)((int)&(p_Var11[1]._M_next)->_M_next + 1)" (field_expression "p_Var11[1]._M_next" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)((int)&(p_Var11[1]._M_next)->_M_next + 1)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(p_Var11[1]._M_next)->_M_next + 1)" ( (binary_expression "(int)&(p_Var11[1]._M_next)->_M_next + 1" (cast_expression "(int)&(p_Var11[1]._M_next)->_M_next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(p_Var11[1]._M_next)->_M_next" & (field_expression "(p_Var11[1]._M_next)->_M_next" (parenthesized_expression "(p_Var11[1]._M_next)" ( (field_expression "p_Var11[1]._M_next" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "pEVar1->_M_node = p_Var5;" (assignment_expression "pEVar1->_M_node = p_Var5" (field_expression "pEVar1->_M_node" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var9 = (_List_node_base *)((uint)os->flags_ & 2);" (assignment_expression "p_Var9 = (_List_node_base *)((uint)os->flags_ & 2)" identifier = (cast_expression "(_List_node_base *)((uint)os->flags_ & 2)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)os->flags_ & 2)" ( (binary_expression "(uint)os->flags_ & 2" (cast_expression "(uint)os->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "os->flags_" identifier -> field_identifier)) & number_literal) )))) ;) (if_statement "if (((p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)) &&\n     (p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node)) {\n    this_00->places_[6].location._M_node = p_Var9;\n  }" if (parenthesized_expression "(((p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)) &&\n     (p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node))" ( (binary_expression "((p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)) &&\n     (p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node)" (parenthesized_expression "((p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0))" ( (binary_expression "(p_Var9 != (_List_node_base *)0x0) &&\n      (p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)" (parenthesized_expression "(p_Var9 != (_List_node_base *)0x0)" ( (binary_expression "p_Var9 != (_List_node_base *)0x0" identifier != (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0)" ( (comma_expression "p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location,\n      p_Var9 != (_List_node_base *)0x0" (assignment_expression "p_Var9 = (_List_node_base *)(uint)this_00->places_[6].have_location" identifier = (cast_expression "(_List_node_base *)(uint)this_00->places_[6].have_location" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)this_00->places_[6].have_location" ( (type_descriptor "uint" type_identifier) ) (field_expression "this_00->places_[6].have_location" (subscript_expression "this_00->places_[6]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) , (binary_expression "p_Var9 != (_List_node_base *)0x0" identifier != (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node)" ( (comma_expression "p_Var9 = apEStack_78[0]->_M_node, p_Var9->_M_prev == this_00->places_[6].location._M_node" (assignment_expression "p_Var9 = apEStack_78[0]->_M_node" identifier = (field_expression "apEStack_78[0]->_M_node" (subscript_expression "apEStack_78[0]" identifier [ number_literal ]) -> field_identifier)) , (binary_expression "p_Var9->_M_prev == this_00->places_[6].location._M_node" (field_expression "p_Var9->_M_prev" identifier -> field_identifier) == (field_expression "this_00->places_[6].location._M_node" (field_expression "this_00->places_[6].location" (subscript_expression "this_00->places_[6]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier))) ))) )) (compound_statement "{\n    this_00->places_[6].location._M_node = p_Var9;\n  }" { (expression_statement "this_00->places_[6].location._M_node = p_Var9;" (assignment_expression "this_00->places_[6].location._M_node = p_Var9" (field_expression "this_00->places_[6].location._M_node" (field_expression "this_00->places_[6].location" (subscript_expression "this_00->places_[6]" (field_expression "this_00->places_" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) = identifier) ;) })) (return_statement "return (char *)p_Var9;" return (cast_expression "(char *)p_Var9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) (ERROR "}" }))
(translation_unit "char * __thiscall\ngold::Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  \n  piVar5 = (int *)**(int **)(this + 4);\n  if (piVar5 != *(int **)(this + 4)) {\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }\n  puVar1 = PTR_parameters_00432be0;\n  *param_3 = (Output_section **)0x0;\n  *(undefined4 *)param_4 = 0;\n  *param_5 = false;\n  if (*(int *)(*(int *)puVar1 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }\n  pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)\n  ;\n  return pcVar2;\n}\n\n" (declaration "char * __thiscall" primitive_type (pointer_declarator "* __thiscall" * identifier) ;) (labeled_statement "gold::Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" statement_identifier : (ERROR ":output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{" : (call_expression "output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" identifier (argument_list "(Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" ( (binary_expression "Script_sections *this" identifier * identifier) , (binary_expression "char *param_1" identifier * identifier) , (binary_expression "char *param_2" identifier * identifier) , (binary_expression "Output_section ***param_3" identifier * (pointer_expression "**param_3" * (pointer_expression "*param_3" * identifier))) , (binary_expression "Section_type *param_4" identifier * identifier) , (binary_expression "bool *param_5" identifier * identifier) , (ERROR "bool" identifier) identifier ))) {) (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;))) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (expression_statement "piVar5 = (int *)**(int **)(this + 4);" (assignment_expression "piVar5 = (int *)**(int **)(this + 4)" identifier = (cast_expression "(int *)**(int **)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(this + 4)" * (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))))) ;) (if_statement "if (piVar5 != *(int **)(this + 4)) {\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" if (parenthesized_expression "(piVar5 != *(int **)(this + 4))" ( (binary_expression "piVar5 != *(int **)(this + 4)" identifier != (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" { (do_statement "do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);" do (compound_statement "{\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    }" { (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" identifier = (cast_expression "(char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (parenthesized_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))" ( (pointer_expression "**(code **)(*(int *)piVar5[2] + 0x1c)" * (pointer_expression "*(code **)(*(int *)piVar5[2] + 0x1c)" * (cast_expression "(code **)(*(int *)piVar5[2] + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)piVar5[2] + 0x1c)" ( (binary_expression "*(int *)piVar5[2] + 0x1c" (pointer_expression "*(int *)piVar5[2]" * (cast_expression "(int *)piVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" ( (cast_expression "(int *)piVar5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[2]" identifier [ number_literal ])) , identifier , identifier , identifier , identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar2,PTR_DAT_0043226c + -0x5c34)" ( identifier , (binary_expression "PTR_DAT_0043226c + -0x5c34" identifier + number_literal) )))) ;) (if_statement "if (iVar3 != 0) {\n          return pcVar2;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          return pcVar2;\n        }" { (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar5 = (int *)*piVar5;" (assignment_expression "piVar5 = (int *)*piVar5" identifier = (cast_expression "(int *)*piVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar5" * identifier))) ;) }) while (parenthesized_expression "((int *)*(int *)(this + 4) != piVar5)" ( (binary_expression "(int *)*(int *)(this + 4) != piVar5" (cast_expression "(int *)*(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) != identifier) )) ;) })) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" identifier = identifier) ;) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" * identifier) = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" * (cast_expression "(undefined4 *)param_4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*param_5 = false;" (assignment_expression "*param_5 = false" (pointer_expression "*param_5" * identifier) = false) ;) (if_statement "if (*(int *)(*(int *)puVar1 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" if (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) != 0)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) != 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" { (expression_statement "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);" (assignment_expression "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" identifier = (pointer_expression "*(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" * (cast_expression "(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" ( (binary_expression "*(int *)(*(int *)puVar1 + 8) + 0x5a98" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" * (cast_expression "(int *)(*(int *)puVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar1 + 8)" ( (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" else (if_statement "if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" if (parenthesized_expression "(iVar3 == 3)" ( (binary_expression "iVar3 == 3" identifier == number_literal) )) (compound_statement "{\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }" { (if_statement "if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a74)" ( (binary_expression "PTR_DAT_0043226c + -0x5a74" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" else (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" { (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a54)" ( (binary_expression "PTR_DAT_0043226c + -0x5a54" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" ( (pointer_expression "*(code *)PTR_gold_error_00432d84" * (cast_expression "(code *)PTR_gold_error_00432d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_1)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" else (compound_statement "{\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" { (if_statement "if (iVar3 != 2) {\n        return param_2;\n      }" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "pcVar2 = param_2;" (assignment_expression "pcVar2 = param_2" identifier = identifier) ;) (if_statement "if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x5a2c)" ( (binary_expression "PTR_DAT_0043226c + -0x5a2c" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_2)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" else (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" identifier = (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" ( (pointer_expression "*(code *)PTR_gettext_00436818" * (cast_expression "(code *)PTR_gettext_00436818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x59f8)" ( (binary_expression "PTR_DAT_0043226c + -0x59f8" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" ( (pointer_expression "*(code *)PTR_gold_warning_0043245c" * (cast_expression "(code *)PTR_gold_warning_0043245c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,param_2,param_1,param_2)" ( identifier , identifier , identifier , identifier ))) ;) }))) }))))) (return_statement "return pcVar2;" return identifier ;) })) (expression_statement "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)\n  ;" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" identifier = (cast_expression "(char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + -0x5348" identifier + number_literal) ))))) ;) (return_statement "return pcVar2;" return identifier ;) (ERROR "}" }))
(translation_unit (declaration TYPE (pointer_declarator * IDENT) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR : (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * (pointer_expression * (pointer_expression * IDENT))) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT ))) {) (declaration TYPE (pointer_declarator * IDENT) ;))) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = BOOL) ;) (if_statement if (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 *)) ) IDENT)) + LIT) )))) != LIT) )) (compound_statement { (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 *)) ) IDENT)) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }))) }))))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) (ERROR }))
(declaration "char * __thiscall" (primitive_type "char") (pointer_declarator "* __thiscall" (* "*") (identifier "__thiscall")) (; "")) (labeled_statement "gold::Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Script_sections::output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{\n  undefined *puVar1;" (statement_identifier "Script_sections") (: ":") (ERROR ":output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)\n\n{" (: ":") (call_expression "output_section_name\n          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" (identifier "output_section_name") (argument_list "(Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,\n          Section_type *param_4,bool *param_5,bool param_6)" (( "(") (binary_expression "Script_sections *this" (identifier "Script_sections") (* "*") (identifier "this")) (, ",") (binary_expression "char *param_1" (identifier "char") (* "*") (identifier "param_1")) (, ",") (binary_expression "char *param_2" (identifier "char") (* "*") (identifier "param_2")) (, ",") (binary_expression "Output_section ***param_3" (identifier "Output_section") (* "*") (pointer_expression "**param_3" (* "*") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (, ",") (binary_expression "Section_type *param_4" (identifier "Section_type") (* "*") (identifier "param_4")) (, ",") (binary_expression "bool *param_5" (identifier "bool") (* "*") (identifier "param_5")) (, ",") (ERROR "bool" (identifier "bool")) (identifier "param_6") () ")"))) ({ "{")) (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")))) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (expression_statement "piVar5 = (int *)**(int **)(this + 4);" (assignment_expression "piVar5 = (int *)**(int **)(this + 4)" (identifier "piVar5") (= "=") (cast_expression "(int *)**(int **)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(this + 4)" (* "*") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))))) (; ";")) (if_statement "if (piVar5 != *(int **)(this + 4)) {\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" (if "if") (parenthesized_expression "(piVar5 != *(int **)(this + 4))" (( "(") (binary_expression "piVar5 != *(int **)(this + 4)" (identifier "piVar5") (!= "!=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);\n  }" ({ "{") (do_statement "do {\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    } while ((int *)*(int *)(this + 4) != piVar5);" (do "do") (compound_statement "{\n      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);\n      if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }\n      piVar5 = (int *)*piVar5;\n    }" ({ "{") (expression_statement "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);" (assignment_expression "pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))\n                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (parenthesized_expression "(**(code **)(*(int *)piVar5[2] + 0x1c))" (( "(") (pointer_expression "**(code **)(*(int *)piVar5[2] + 0x1c)" (* "*") (pointer_expression "*(code **)(*(int *)piVar5[2] + 0x1c)" (* "*") (cast_expression "(code **)(*(int *)piVar5[2] + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)piVar5[2] + 0x1c)" (( "(") (binary_expression "*(int *)piVar5[2] + 0x1c" (pointer_expression "*(int *)piVar5[2]" (* "*") (cast_expression "(int *)piVar5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6)" (( "(") (cast_expression "(int *)piVar5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]"))) (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);\n        if (iVar3 != 0) {\n          return pcVar2;\n        }\n        *param_3 = (Output_section **)0x0;\n        *(undefined4 *)param_4 = 0;\n        return (char *)0x0;\n      }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00436644" (* "*") (cast_expression "(code *)PTR_strcmp_00436644" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00436644"))) () ")")) (argument_list "(pcVar2,PTR_DAT_0043226c + -0x5c34)" (( "(") (identifier "pcVar2") (, ",") (binary_expression "PTR_DAT_0043226c + -0x5c34" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x5c34")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          return pcVar2;\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return pcVar2;\n        }" ({ "{") (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}"))) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(Output_section **)0x0" (( "(") (type_descriptor "Output_section **" (type_identifier "Output_section") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" (* "*") (cast_expression "(undefined4 *)param_4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return (char *)0x0;" (return "return") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "piVar5 = (int *)*piVar5;" (assignment_expression "piVar5 = (int *)*piVar5" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)*(int *)(this + 4) != piVar5)" (( "(") (binary_expression "(int *)*(int *)(this + 4) != piVar5" (cast_expression "(int *)*(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (!= "!=") (identifier "piVar5")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_parameters_00432be0;" (assignment_expression "puVar1 = PTR_parameters_00432be0" (identifier "puVar1") (= "=") (identifier "PTR_parameters_00432be0")) (; ";")) (expression_statement "*param_3 = (Output_section **)0x0;" (assignment_expression "*param_3 = (Output_section **)0x0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(Output_section **)0x0" (( "(") (type_descriptor "Output_section **" (type_identifier "Output_section") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)param_4 = 0;" (assignment_expression "*(undefined4 *)param_4 = 0" (pointer_expression "*(undefined4 *)param_4" (* "*") (cast_expression "(undefined4 *)param_4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_5 = false;" (assignment_expression "*param_5 = false" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)(*(int *)puVar1 + 8) != 0) {\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) != 0)" (( "(") (binary_expression "*(int *)(*(int *)puVar1 + 8) != 0" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);\n    if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }\n    return pcVar2;\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);" (assignment_expression "iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)puVar1 + 8) + 0x5a98)" (( "(") (binary_expression "*(int *)(*(int *)puVar1 + 8) + 0x5a98" (pointer_expression "*(int *)(*(int *)puVar1 + 8)" (* "*") (cast_expression "(int *)(*(int *)puVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar1 + 8)" (( "(") (binary_expression "*(int *)puVar1 + 8" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x5a98")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 1) {\n      pcVar2 = (char *)0x0;\n    }\n    else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar2 = (char *)0x0;\n    }" ({ "{") (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" (else "else") (if_statement "if (iVar3 == 3) {\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }\n    else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" (if "if") (parenthesized_expression "(iVar3 == 3)" (( "(") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }\n    }" ({ "{") (if_statement "if (param_1 == (char *)0x0) {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }\n      else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);\n      }" ({ "{") (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x5a74)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x5a74" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x5a74")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" (( "(") (pointer_expression "*(code *)PTR_gold_error_00432d84" (* "*") (cast_expression "(code *)PTR_gold_error_00432d84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_error_00432d84"))) () ")")) (argument_list "(uVar4,param_2)" (( "(") (identifier "uVar4") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" (else "else") (compound_statement "{\n        pcVar2 = (char *)0x0;\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);\n        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);\n      }" ({ "{") (expression_statement "pcVar2 = (char *)0x0;" (assignment_expression "pcVar2 = (char *)0x0" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x5a54)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x5a54" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x5a54")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);" (call_expression "(*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1)" (parenthesized_expression "(*(code *)PTR_gold_error_00432d84)" (( "(") (pointer_expression "*(code *)PTR_gold_error_00432d84" (* "*") (cast_expression "(code *)PTR_gold_error_00432d84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_error_00432d84"))) () ")")) (argument_list "(uVar4,param_2,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_2") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" (else "else") (compound_statement "{\n      if (iVar3 != 2) {\n        return param_2;\n      }\n      pcVar2 = param_2;\n      if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }\n    }" ({ "{") (if_statement "if (iVar3 != 2) {\n        return param_2;\n      }" (if "if") (parenthesized_expression "(iVar3 != 2)" (( "(") (binary_expression "iVar3 != 2" (identifier "iVar3") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        return param_2;\n      }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "pcVar2 = param_2;" (assignment_expression "pcVar2 = param_2" (identifier "pcVar2") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_1 == (char *)0x0) {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }\n      else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);\n      }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x5a2c)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x5a2c" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x5a2c")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" (( "(") (pointer_expression "*(code *)PTR_gold_warning_0043245c" (* "*") (cast_expression "(code *)PTR_gold_warning_0043245c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_warning_0043245c"))) () ")")) (argument_list "(uVar4,param_2,param_2)" (( "(") (identifier "uVar4") (, ",") (identifier "param_2") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" (else "else") (compound_statement "{\n        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);\n        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);\n      }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);" (assignment_expression "uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8)" (parenthesized_expression "(*(code *)PTR_gettext_00436818)" (( "(") (pointer_expression "*(code *)PTR_gettext_00436818" (* "*") (cast_expression "(code *)PTR_gettext_00436818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gettext_00436818"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x59f8)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x59f8" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x59f8")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);" (call_expression "(*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_gold_warning_0043245c)" (( "(") (pointer_expression "*(code *)PTR_gold_warning_0043245c" (* "*") (cast_expression "(code *)PTR_gold_warning_0043245c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_gold_warning_0043245c"))) () ")")) (argument_list "(uVar4,param_2,param_1,param_2)" (( "(") (identifier "uVar4") (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")))) (} "}")))))) (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}"))) (expression_statement "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)\n  ;" (assignment_expression "pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x5cec" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x5cec")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_DAT_0043226c + -0x5348" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x5348")) () ")"))))) (; ";")) (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (ERROR "}" (} "}"))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: char * output_section_name(Script_sections * this, char * file_name,
   char * section_name, Output_section * * * output_section_slot, Section_type * psection_type, bool
   * keep, bool is_input_section) */

char * __thiscall
gold::Script_sections::output_section_name
          (Script_sections *this,char *var_7,char *section_name,
          type_7 ***output_section_slot,type_10 *psection_type,bool *keep,
          bool is_input_section)

{
  type_1 *pEVar1;
  type_2 extraout_var;
  char *var_4;
  int var_6;
  type_3 uVar4;
  bool bVar7;
  type_4 *p_Var5;
  type_5 var_15;
  type_6 *var_9;
  type_7 *os;
  type_4 *var_3;
  int *var_12;
  type_3 unaff_s1;
  type_8 *var_10;
  type_4 *var_16;
  type_4 *p_Var12;
  type_6 *var_11;
  type_9 *pcVar14;
  type_1 *apEStack_78 [2];
  type_4 *p_Stack_70;
  type_3 uStack_6c;
  char *pcStack_68;
  type_10 *pSStack_64;
  type_7 ***pppOStack_60;
  bool *pbStack_5c;
  char *pcStack_58;
  type_9 *pcStack_54;
  type_10 *local_40;
  bool *local_3c;
  type_5 local_38;
  
  var_3 = (((_List_base<gold::var_1*,_std::allocator<gold::var_1*>var_2> *)
            &((type_4 *)this->sections_elements_)->_M_next)->_M_impl)._M_node.
           super__List_node_base._M_next;
  if (var_3 != (type_4 *)this->sections_elements_) {
    do {
      local_3c = keep;
      local_40 = psection_type;
      local_38 = (type_5)is_input_section;
      var_4 = (char *)(**(type_9 **)((int)(var_3[1]._M_next)->_M_next + 0x1c))
                                 (var_3[1]._M_next,var_7,section_name,output_section_slot);
      if (var_4 != (char *)0x0) {
        var_6 = (*(type_9 *)PTR_strcmp_00436644)(var_4,var_5 + -0x5c34);
        if (var_6 != 0) {
          return var_4;
        }
        *output_section_slot = (type_7 **)0x0;
        *psection_type = ST_NONE;
        return (char *)0x0;
      }
      var_3 = (((_List_base<gold::var_1*,_std::allocator<gold::var_1*>var_2> *)
                &var_3->_M_next)->_M_impl)._M_node.super__List_node_base._M_next;
      unaff_s1 = 0;
    } while ((type_4 *)this->sections_elements_ != var_3);
  }
  var_11 = PTR_parameters_00432be0;
  *output_section_slot = (type_7 **)0x0;
  *psection_type = ST_NONE;
  *keep = false;
  if (*(int *)(*(int *)var_11 + 8) != 0) {
    var_6 = *(int *)(*(int *)(*(int *)var_11 + 8) + 0x5a98);
    if (var_6 == 1) {
      var_4 = (char *)0x0;
    }
    else if (var_6 == 3) {
      if (var_7 == (char *)0x0) {
        var_4 = (char *)0x0;
        uVar4 = (*(type_9 *)PTR_gettext_00436818)(var_5 + -0x5a74);
        (*(type_9 *)PTR_gold_error_00432d84)(uVar4,section_name);
      }
      else {
        var_4 = (char *)0x0;
        uVar4 = (*(type_9 *)PTR_gettext_00436818)(var_5 + -0x5a54);
        (*(type_9 *)PTR_gold_error_00432d84)(uVar4,section_name,var_7);
      }
    }
    else {
      if (var_6 != 2) {
        return section_name;
      }
      var_4 = section_name;
      if (var_7 == (char *)0x0) {
        uVar4 = (*(type_9 *)PTR_gettext_00436818)(var_5 + -0x5a2c);
        (*(type_9 *)PTR_gold_warning_0043245c)(uVar4,section_name,section_name);
      }
      else {
        uVar4 = (*(type_9 *)PTR_gettext_00436818)(var_5 + -0x59f8);
        (*(type_9 *)PTR_gold_warning_0043245c)(uVar4,section_name,var_7,section_name);
      }
    }
    return var_4;
  }
  os = (type_7 *)&DAT_0000005c;
  pcVar14 = place_orphan;
  var_9 = var_8 + -0x5cec;
  var_11 = PTR_do_gold_unreachable_004323c4;
  (*(type_9 *)PTR_do_gold_unreachable_004323c4)(var_9,0x5c,var_5 + -0x5348);
  pSStack_64 = psection_type;
  pbStack_5c = keep;
  var_10 = *(type_8 **)(var_9 + 0x14);
  p_Stack_70 = var_3;
  uStack_6c = unaff_s1;
  pcStack_68 = section_name;
  pppOStack_60 = output_section_slot;
  pcStack_58 = var_7;
  pcStack_54 = pcVar14;
  if (var_10 == (type_8 *)0x0) {
    var_10 = (type_8 *)(**(type_9 **)(var_11 + 0x225cf0))(0x88);
    Orphan_section_placement::type_8(var_10);
    var_12 = (int *)**(int **)(var_9 + 4);
    if (var_12 == *(int **)(var_9 + 4)) goto LAB_0020c894;
    do {
      (**(type_9 **)(*(int *)var_12[2] + 0x20))((int *)var_12[2],var_10,var_12);
      var_12 = (int *)*var_12;
    } while (*(int **)(var_9 + 4) != var_12);
    if (var_12 == (int *)*var_12) goto LAB_0020c894;
    var_3 = (type_4 *)var_12[1];
    *(type_8 **)(var_9 + 0x14) = var_10;
    var_10->places_[10].have_location = true;
    var_10->places_[10].location._M_node = var_3;
  }
  var_3 = (type_4 *)(**(type_9 **)(var_11 + 0x225cf0))(8);
  var_3->_M_prev = (type_4 *)os;
  var_3->_M_next = (type_4 *)(*(int *)(var_11 + 0x2289f0) + 8);
  bVar7 = type_8::var_13(var_10,os,apEStack_78);
  if (var_14(extraout_var,bVar7) == 0) {
    *(type_5 *)&os->field_0x98 = *(type_5 *)&os->field_0x98 & 0xfffbffff;
    pcVar14 = *(type_9 **)(var_11 + 0x225cf0);
    if (var_10->places_[10].have_location == false) {
      (**(type_9 **)(var_11 + 0x225d78))
                (*(int *)(var_11 + 0x225c20) + -0x5d54,0x24d,*(int *)(var_11 + 0x225c20) + -0x51b0
                );
LAB_0020c878:
      uVar4 = 0xe54;
      do {
        (**(type_9 **)(var_11 + 0x225d78))
                  (*(int *)(var_11 + 0x225c20) + -0x5d54,uVar4,
                   *(int *)(var_11 + 0x225c20) + -0x5484);
LAB_0020c894:
        uVar4 = 0xe3f;
      } while( true );
    }
    var_16 = *(type_4 **)(var_9 + 4);
    p_Var12 = var_10->places_[10].location._M_node;
  }
  else {
    var_16 = apEStack_78[0]->_M_node[1]._M_next;
    var_15 = (*(type_9 *)var_16->_M_next[1]._M_next)(var_16);
    *(type_5 *)&os->field_0x98 = *(type_5 *)&os->field_0x98 & 0xfffbffff | (var_15 & 1) << 0x12;
    var_16 = *(type_4 **)(var_9 + 4);
    pcVar14 = *(type_9 **)(var_11 + 0x225cf0);
    if (apEStack_78[0]->_M_node == var_16) goto LAB_0020c878;
    p_Var12 = apEStack_78[0]->_M_node->_M_next;
  }
  pEVar1 = apEStack_78[0];
  p_Var5 = (type_4 *)(*pcVar14)(0xc);
  p_Var5[1]._M_next = var_3;
  (**(type_9 **)(var_11 + 0x226784))(p_Var5,p_Var12);
  var_16[1]._M_next = (type_4 *)((int)&(var_16[1]._M_next)->_M_next + 1);
  pEVar1->_M_node = p_Var5;
  var_3 = (type_4 *)((type_5)os->flags_ & 2);
  if (((var_3 != (type_4 *)0x0) &&
      (var_3 = (type_4 *)(type_5)var_10->places_[6].have_location,
      var_3 != (type_4 *)0x0)) &&
     (var_3 = apEStack_78[0]->_M_node, var_3->_M_prev == var_10->places_[6].location._M_node)) {
    var_10->places_[6].location._M_node = var_3;
  }
  return (char *)var_3;
}


(translation_unit (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)) (MISSING ";")) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (identifier)))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (false))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (identifier))) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))))))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)) (ERROR))

/* gold::Script_sections::MASKED(char const*, char const*, gold::Output_section***,
   gold::Script_sections::Section_type*, bool*, bool) */

char * __thiscall
gold::Script_sections::MASKED
          (Script_sections *this,char *param_1,char *param_2,Output_section ***param_3,
          Section_type *param_4,bool *param_5,bool param_6)

{
  undefined *puVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  int *piVar5;
  
  piVar5 = (int *)**(int **)(this + 4);
  if (piVar5 != *(int **)(this + 4)) {
    do {
      pcVar2 = (char *)(**(code **)(*(int *)piVar5[2] + 0x1c))
                                 ((int *)piVar5[2],param_1,param_2,param_3,param_4,param_5,param_6);
      if (pcVar2 != (char *)0x0) {
        iVar3 = (*(code *)PTR_strcmp_00436644)(pcVar2,PTR_DAT_0043226c + -0x5c34);
        if (iVar3 != 0) {
          return pcVar2;
        }
        *param_3 = (Output_section **)0x0;
        *(undefined4 *)param_4 = 0;
        return (char *)0x0;
      }
      piVar5 = (int *)*piVar5;
    } while ((int *)*(int *)(this + 4) != piVar5);
  }
  puVar1 = PTR_parameters_00432be0;
  *param_3 = (Output_section **)0x0;
  *(undefined4 *)param_4 = 0;
  *param_5 = false;
  if (*(int *)(*(int *)puVar1 + 8) != 0) {
    iVar3 = *(int *)(*(int *)(*(int *)puVar1 + 8) + 0x5a98);
    if (iVar3 == 1) {
      pcVar2 = (char *)0x0;
    }
    else if (iVar3 == 3) {
      if (param_1 == (char *)0x0) {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a74);
        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2);
      }
      else {
        pcVar2 = (char *)0x0;
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a54);
        (*(code *)PTR_gold_error_00432d84)(uVar4,param_2,param_1);
      }
    }
    else {
      if (iVar3 != 2) {
        return param_2;
      }
      pcVar2 = param_2;
      if (param_1 == (char *)0x0) {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x5a2c);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_2);
      }
      else {
        uVar4 = (*(code *)PTR_gettext_00436818)(PTR_DAT_0043226c + -0x59f8);
        (*(code *)PTR_gold_warning_0043245c)(uVar4,param_2,param_1,param_2);
      }
    }
    return pcVar2;
  }
  pcVar2 = (char *)(*(code *)PTR_do_gold_unreachable_004323c4)
                             (PTR_s_alize_xindex_004323b4 + -0x5cec,0x5c,PTR_DAT_0043226c + -0x5348)
  ;
  return pcVar2;
}

