
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: Output_section * section_with_lowest_load_address(Output_segment *
   this) */

Output_section * __thiscall
gold::Output_segment::section_with_lowest_load_address(Output_segment *this)

{
  Output_data_list *pOVar1;
  Output_segment *pdl;
  uint64_t found_lma;
  Output_section *found;
  
  found_lma._4_4_ = 0;
  found_lma._0_4_ = 0;
  found = (Output_section *)0x0;
  pdl = this;
  do {
    pOVar1 = pdl->output_lists_;
    lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);
    pdl = (Output_segment *)(pOVar1 + 1);
  } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c);
  return found;
}



/* gold::Output_segment::section_with_lowest_load_address() const */

Output_section * __thiscall
gold::Output_segment::section_with_lowest_load_address(Output_segment *this)

{
  Output_segment *pOVar1;
  undefined4 local_30;
  undefined4 local_2c;
  Output_section *local_28 [3];
  Output_segment *pOVar2;
  
  local_2c = 0;
  local_30 = 0;
  local_28[0] = (Output_section *)0x0;
  pOVar2 = this;
  do {
    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);
    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);
    pOVar2 = pOVar1;
  } while (pOVar1 != this + 0x15c);
  return local_28[0];
}


lui gp,0x2b
addiu gp,gp,0x6dc
addu gp,gp,t9
addiu sp,sp,-0x48
or v1,zero,zero
or v0,zero,zero
sw s5,0x40(sp)
sw s4,0x3c(sp)
addiu s4,a0,0x15c
sw s3,0x38(sp)
addiu s3,sp,0x20
sw s2,0x34(sp)
addiu s2,sp,0x18
sw s1,0x30(sp)
or s1,a0,zero
sw s0,0x2c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x44(sp)
sw v1,0x1c(sp)
sw v0,0x18(sp)
sw zero,0x20(sp)
lw s5,-0x52f8(gp)
or a1,s0,zero
addiu s0,s0,0xc
or a3,s2,zero
or a2,s3,zero
or t9,s5,zero
bal 0x002189c0
_or a0,s1,zero
bne s0,s4,0x00218bc4
_or a1,s0,zero
lw ra,0x44(sp)
lw v0,0x20(sp)
lw s5,0x40(sp)
lw s4,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x48
(translation_unit "/* gold::Output_segment::section_with_lowest_load_address() const */\n\nOutput_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)\n\n{\n  Output_segment *pOVar1;\n  undefined4 local_30;\n  undefined4 local_2c;\n  Output_section *local_28 [3];\n  Output_segment *pOVar2;\n  \n  local_2c = 0;\n  local_30 = 0;\n  local_28[0] = (Output_section *)0x0;\n  pOVar2 = this;\n  do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);\n  return local_28[0];\n}\n\n" comment (ERROR "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)" (binary_expression "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Output_segment::section_with_lowest_load_address(Output_segment" identifier : : identifier : : identifier ( identifier) * identifier) )) (compound_statement "{\n  Output_segment *pOVar1;\n  undefined4 local_30;\n  undefined4 local_2c;\n  Output_section *local_28 [3];\n  Output_segment *pOVar2;\n  \n  local_2c = 0;\n  local_30 = 0;\n  local_28[0] = (Output_section *)0x0;\n  pOVar2 = this;\n  do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);\n  return local_28[0];\n}" { (declaration "Output_segment *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "Output_section *local_28 [3];" type_identifier (pointer_declarator "*local_28 [3]" * (array_declarator "local_28 [3]" identifier [ number_literal ])) ;) (declaration "Output_segment *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_28[0] = (Output_section *)0x0;" (assignment_expression "local_28[0] = (Output_section *)0x0" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar2 = this;" (assignment_expression "pOVar2 = this" identifier = identifier) ;) (do_statement "do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);" do (compound_statement "{\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  }" { (expression_statement "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);" (assignment_expression "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc)" identifier = (cast_expression "(Output_segment *)((vector *)pOVar2 + 0xc)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((vector *)pOVar2 + 0xc)" ( (binary_expression "(vector *)pOVar2 + 0xc" (cast_expression "(vector *)pOVar2" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);" (call_expression "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" identifier (argument_list "(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" ( identifier , (cast_expression "(vector *)pOVar2" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(ulonglong *)&local_30" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier)) ))) ;) (expression_statement "pOVar2 = pOVar1;" (assignment_expression "pOVar2 = pOVar1" identifier = identifier) ;) }) while (parenthesized_expression "(pOVar1 != this + 0x15c)" ( (binary_expression "pOVar1 != this + 0x15c" identifier != (binary_expression "this + 0x15c" identifier + number_literal)) )) ;) (return_statement "return local_28[0];" return (subscript_expression "local_28[0]" identifier [ number_literal ]) ;) }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: Output_section * section_with_lowest_load_address(Output_segment *\n   this) */\n\nOutput_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)\n\n{\n  Output_data_list *pOVar1;\n  Output_segment *pdl;\n  uint64_t found_lma;\n  Output_section *found;\n  \n  found_lma._4_4_ = 0;\n  found_lma._0_4_ = 0;\n  found = (Output_section *)0x0;\n  pdl = this;\n  do {\n    pOVar1 = pdl->output_lists_;\n    lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);\n    pdl = (Output_segment *)(pOVar1 + 1);\n  } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c);\n  return found;\n}\n\n" comment comment comment (ERROR "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)" (binary_expression "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Output_segment::section_with_lowest_load_address(Output_segment" identifier : : identifier : : identifier ( identifier) * identifier) )) (compound_statement "{\n  Output_data_list *pOVar1;\n  Output_segment *pdl;\n  uint64_t found_lma;\n  Output_section *found;\n  \n  found_lma._4_4_ = 0;\n  found_lma._0_4_ = 0;\n  found = (Output_section *)0x0;\n  pdl = this;\n  do {\n    pOVar1 = pdl->output_lists_;\n    lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);\n    pdl = (Output_segment *)(pOVar1 + 1);\n  } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c);\n  return found;\n}" { (declaration "Output_data_list *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "Output_segment *pdl;" type_identifier (pointer_declarator "*pdl" * identifier) ;) (declaration "uint64_t found_lma;" primitive_type identifier ;) (declaration "Output_section *found;" type_identifier (pointer_declarator "*found" * identifier) ;) (expression_statement "found_lma._4_4_ = 0;" (assignment_expression "found_lma._4_4_ = 0" (field_expression "found_lma._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "found_lma._0_4_ = 0;" (assignment_expression "found_lma._0_4_ = 0" (field_expression "found_lma._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "found = (Output_section *)0x0;" (assignment_expression "found = (Output_section *)0x0" identifier = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdl = this;" (assignment_expression "pdl = this" identifier = identifier) ;) (do_statement "do {\n    pOVar1 = pdl->output_lists_;\n    lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);\n    pdl = (Output_segment *)(pOVar1 + 1);\n  } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c);" do (compound_statement "{\n    pOVar1 = pdl->output_lists_;\n    lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);\n    pdl = (Output_segment *)(pOVar1 + 1);\n  }" { (expression_statement "pOVar1 = pdl->output_lists_;" (assignment_expression "pOVar1 = pdl->output_lists_" identifier = (field_expression "pdl->output_lists_" identifier -> field_identifier)) ;) (expression_statement "lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma);" (call_expression "lowest_load_address_in_list(this,pdl->output_lists_,&found,&found_lma)" identifier (argument_list "(this,pdl->output_lists_,&found,&found_lma)" ( identifier , (field_expression "pdl->output_lists_" identifier -> field_identifier) , (pointer_expression "&found" & identifier) , (pointer_expression "&found_lma" & identifier) ))) ;) (expression_statement "pdl = (Output_segment *)(pOVar1 + 1);" (assignment_expression "pdl = (Output_segment *)(pOVar1 + 1)" identifier = (cast_expression "(Output_segment *)(pOVar1 + 1)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar1 + 1)" ( (binary_expression "pOVar1 + 1" identifier + number_literal) )))) ;) }) while (parenthesized_expression "((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c)" ( (binary_expression "(Output_segment *)(pOVar1 + 1) != (Output_segment *)&this->field_0x15c" (cast_expression "(Output_segment *)(pOVar1 + 1)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar1 + 1)" ( (binary_expression "pOVar1 + 1" identifier + number_literal) ))) != (cast_expression "(Output_segment *)&this->field_0x15c" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x15c" & (field_expression "this->field_0x15c" identifier -> field_identifier)))) )) ;) (return_statement "return found;" return identifier ;) }))
(translation_unit "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)\n\n{\n  Output_segment *pOVar1;\n  undefined4 local_30;\n  undefined4 local_2c;\n  Output_section *local_28 [3];\n  Output_segment *pOVar2;\n  \n  local_2c = 0;\n  local_30 = 0;\n  local_28[0] = (Output_section *)0x0;\n  pOVar2 = this;\n  do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);\n  return local_28[0];\n}\n\n" (ERROR "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)" (binary_expression "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Output_segment::section_with_lowest_load_address(Output_segment" identifier : : identifier : : identifier ( identifier) * identifier) )) (compound_statement "{\n  Output_segment *pOVar1;\n  undefined4 local_30;\n  undefined4 local_2c;\n  Output_section *local_28 [3];\n  Output_segment *pOVar2;\n  \n  local_2c = 0;\n  local_30 = 0;\n  local_28[0] = (Output_section *)0x0;\n  pOVar2 = this;\n  do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);\n  return local_28[0];\n}" { (declaration "Output_segment *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "Output_section *local_28 [3];" type_identifier (pointer_declarator "*local_28 [3]" * (array_declarator "local_28 [3]" identifier [ number_literal ])) ;) (declaration "Output_segment *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_28[0] = (Output_section *)0x0;" (assignment_expression "local_28[0] = (Output_section *)0x0" (subscript_expression "local_28[0]" identifier [ number_literal ]) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar2 = this;" (assignment_expression "pOVar2 = this" identifier = identifier) ;) (do_statement "do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);" do (compound_statement "{\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  }" { (expression_statement "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);" (assignment_expression "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc)" identifier = (cast_expression "(Output_segment *)((vector *)pOVar2 + 0xc)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((vector *)pOVar2 + 0xc)" ( (binary_expression "(vector *)pOVar2 + 0xc" (cast_expression "(vector *)pOVar2" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);" (call_expression "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" identifier (argument_list "(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" ( identifier , (cast_expression "(vector *)pOVar2" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(ulonglong *)&local_30" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30" & identifier)) ))) ;) (expression_statement "pOVar2 = pOVar1;" (assignment_expression "pOVar2 = pOVar1" identifier = identifier) ;) }) while (parenthesized_expression "(pOVar1 != this + 0x15c)" ( (binary_expression "pOVar1 != this + 0x15c" identifier != (binary_expression "this + 0x15c" identifier + number_literal)) )) ;) (return_statement "return local_28[0];" return (subscript_expression "local_28[0]" identifier [ number_literal ]) ;) }))
(translation_unit (ERROR (binary_expression (binary_expression IDENT * IDENT) (ERROR IDENT : : IDENT : : IDENT ( IDENT) * IDENT) )) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (return_statement return (subscript_expression IDENT [ LIT ]) ;) }))
(ERROR "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this)" (binary_expression "Output_section * __thiscall\ngold::Output_segment::section_with_lowest_load_address(Output_segment *this" (binary_expression "Output_section * __thiscall" (identifier "Output_section") (* "*") (identifier "__thiscall")) (ERROR "gold::Output_segment::section_with_lowest_load_address(Output_segment" (identifier "gold") (: ":") (: ":") (identifier "Output_segment") (: ":") (: ":") (identifier "section_with_lowest_load_address") (( "(") (identifier "Output_segment")) (* "*") (identifier "this")) () ")")) (compound_statement "{\n  Output_segment *pOVar1;\n  undefined4 local_30;\n  undefined4 local_2c;\n  Output_section *local_28 [3];\n  Output_segment *pOVar2;\n  \n  local_2c = 0;\n  local_30 = 0;\n  local_28[0] = (Output_section *)0x0;\n  pOVar2 = this;\n  do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);\n  return local_28[0];\n}" ({ "{") (declaration "Output_segment *pOVar1;" (type_identifier "Output_segment") (pointer_declarator "*pOVar1" (* "*") (identifier "pOVar1")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "Output_section *local_28 [3];" (type_identifier "Output_section") (pointer_declarator "*local_28 [3]" (* "*") (array_declarator "local_28 [3]" (identifier "local_28") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "Output_segment *pOVar2;" (type_identifier "Output_segment") (pointer_declarator "*pOVar2" (* "*") (identifier "pOVar2")) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28[0] = (Output_section *)0x0;" (assignment_expression "local_28[0] = (Output_section *)0x0" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(Output_section *)0x0" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pOVar2 = this;" (assignment_expression "pOVar2 = this" (identifier "pOVar2") (= "=") (identifier "this")) (; ";")) (do_statement "do {\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  } while (pOVar1 != this + 0x15c);" (do "do") (compound_statement "{\n    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);\n    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);\n    pOVar2 = pOVar1;\n  }" ({ "{") (expression_statement "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);" (assignment_expression "pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc)" (identifier "pOVar1") (= "=") (cast_expression "(Output_segment *)((vector *)pOVar2 + 0xc)" (( "(") (type_descriptor "Output_segment *" (type_identifier "Output_segment") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((vector *)pOVar2 + 0xc)" (( "(") (binary_expression "(vector *)pOVar2 + 0xc" (cast_expression "(vector *)pOVar2" (( "(") (type_descriptor "vector *" (type_identifier "vector") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar2")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);" (call_expression "lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" (identifier "lowest_load_address_in_list") (argument_list "(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30)" (( "(") (identifier "this") (, ",") (cast_expression "(vector *)pOVar2" (( "(") (type_descriptor "vector *" (type_identifier "vector") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar2")) (, ",") (identifier "local_28") (, ",") (cast_expression "(ulonglong *)&local_30" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) () ")"))) (; ";")) (expression_statement "pOVar2 = pOVar1;" (assignment_expression "pOVar2 = pOVar1" (identifier "pOVar2") (= "=") (identifier "pOVar1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pOVar1 != this + 0x15c)" (( "(") (binary_expression "pOVar1 != this + 0x15c" (identifier "pOVar1") (!= "!=") (binary_expression "this + 0x15c" (identifier "this") (+ "+") (number_literal "0x15c"))) () ")")) (; ";")) (return_statement "return local_28[0];" (return "return") (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (; ";")) (} "}"))
(translation_unit (ERROR (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier) (identifier) (identifier) (identifier)) right: (identifier))) (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (return_statement (subscript_expression argument: (identifier) index: (number_literal)))))

/* gold::Output_segment::MASKED() const */

Output_section * __thiscall
gold::Output_segment::MASKED(Output_segment *this)

{
  Output_segment *pOVar1;
  undefined4 local_30;
  undefined4 local_2c;
  Output_section *local_28 [3];
  Output_segment *pOVar2;
  
  local_2c = 0;
  local_30 = 0;
  local_28[0] = (Output_section *)0x0;
  pOVar2 = this;
  do {
    pOVar1 = (Output_segment *)((vector *)pOVar2 + 0xc);
    lowest_load_address_in_list(this,(vector *)pOVar2,local_28,(ulonglong *)&local_30);
    pOVar2 = pOVar1;
  } while (pOVar1 != this + 0x15c);
  return local_28[0];
}

