
/* DWARF original prototype: void print(Script_options * this, FILE * f) */

void __thiscall gold::Script_options::print(Script_options *this,FILE *f)

{
  Symbol_assignment *this_00;
  Script_assertion *this_01;
  pointer ppSVar1;
  pointer ppSVar2;
  
  fprintf((FILE *)f,"%s: Dumping linker script\n",program_name);
  if ((this->entry_)._M_string_length != 0) {
    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);
  }
  ppSVar1 = (this->symbol_assignments_).
            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.
            _M_impl._M_start;
  if (ppSVar1 !=
      (this->symbol_assignments_).
      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.
      _M_impl._M_finish) {
    do {
      this_00 = *ppSVar1;
      ppSVar1 = ppSVar1 + 1;
      Symbol_assignment::print(this_00,f);
    } while ((this->symbol_assignments_).
             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>
             ._M_impl._M_finish != ppSVar1);
  }
  ppSVar2 = (this->assertions_).
            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.
            _M_impl._M_start;
  if (ppSVar2 !=
      (this->assertions_).
      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.
      _M_finish) {
    do {
      this_01 = *ppSVar2;
      ppSVar2 = ppSVar2 + 1;
      Script_assertion::print(this_01,f);
    } while ((this->assertions_).
             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.
             _M_impl._M_finish != ppSVar2);
  }
  Script_sections::print(&this->script_sections_,f);
  if ((this->version_script_info_).version_trees_.
      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.
      _M_finish ==
      (this->version_script_info_).version_trees_.
      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start
     ) {
    return;
  }
  Version_script_info::print(&this->version_script_info_,f);
  return;
}



void FUN_00212940(undefined8 *param_1,FILE *param_2)

{
  undefined8 uVar1;
  undefined8 *puVar2;
  
  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);
  if (param_1[1] != 0) {
    fprintf(param_2,"ENTRY(%s)\n",*param_1);
  }
  puVar2 = (undefined8 *)param_1[4];
  if (puVar2 != (undefined8 *)param_1[5]) {
    do {
      uVar1 = *puVar2;
      puVar2 = puVar2 + 1;
      FUN_00211da0(uVar1,param_2);
    } while ((undefined8 *)param_1[5] != puVar2);
  }
  puVar2 = (undefined8 *)param_1[0x15];
  if (puVar2 != (undefined8 *)param_1[0x16]) {
    do {
      uVar1 = *puVar2;
      puVar2 = puVar2 + 1;
      FUN_00211ea0(uVar1,param_2);
    } while ((undefined8 *)param_1[0x16] != puVar2);
  }
  FUN_00206940(param_1 + 0x29,param_2);
  if (param_1[0x1f] == param_1[0x1e]) {
    return;
  }
  FUN_00212740(param_1 + 0x18,param_2);
  return;
}


PUSH R12
MOV RDX,qword ptr [0x003be8e8]
MOV R12,RSI
XOR EAX,EAX
PUSH RBP
LEA RSI,[0x31d8da]
MOV RBP,RDI
MOV RDI,R12
PUSH RBX
CALL 0x0013ea00
CMP qword ptr [RBP + 0x8],0x0
JNZ 0x002129f8
MOV RBX,qword ptr [RBP + 0x20]
CMP RBX,qword ptr [RBP + 0x28]
JZ 0x00212995
NOP word ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [RBX]
MOV RSI,R12
ADD RBX,0x8
CALL 0x00211da0
CMP qword ptr [RBP + 0x28],RBX
JNZ 0x00212980
MOV RBX,qword ptr [RBP + 0xa8]
CMP RBX,qword ptr [RBP + 0xb0]
JZ 0x002129c0
NOP dword ptr [RAX]
MOV RDI,qword ptr [RBX]
MOV RSI,R12
ADD RBX,0x8
CALL 0x00211ea0
CMP qword ptr [RBP + 0xb0],RBX
JNZ 0x002129a8
LEA RDI,[RBP + 0x148]
MOV RSI,R12
CALL 0x00206940
MOV RAX,qword ptr [RBP + 0xf0]
CMP qword ptr [RBP + 0xf8],RAX
JZ 0x00212a18
POP RBX
LEA RDI,[RBP + 0xc0]
MOV RSI,R12
POP RBP
POP R12
JMP 0x00212740
MOV RDX,qword ptr [RBP]
LEA RSI,[0x31d8f5]
MOV RDI,R12
XOR EAX,EAX
CALL 0x0013ea00
JMP 0x0021296d
POP RBX
POP RBP
POP R12
RET
(translation_unit "void FUN_00212940(undefined8 *param_1,FILE *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}\n\n" (function_definition "void FUN_00212940(undefined8 *param_1,FILE *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_00212940(undefined8 *param_1,FILE *param_2)" identifier (parameter_list "(undefined8 *param_1,FILE *param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "FILE *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);" (call_expression "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" identifier (argument_list "(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" ( identifier , (string_literal ""%s: Dumping linker script\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" if (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" { (expression_statement "fprintf(param_2,"ENTRY(%s)\n",*param_1);" (call_expression "fprintf(param_2,"ENTRY(%s)\n",*param_1)" identifier (argument_list "(param_2,"ENTRY(%s)\n",*param_1)" ( identifier , (string_literal ""ENTRY(%s)\n"" " string_content escape_sequence ") , (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "puVar2 = (undefined8 *)param_1[4];" (assignment_expression "puVar2 = (undefined8 *)param_1[4]" identifier = (cast_expression "(undefined8 *)param_1[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined8 *)param_1[5])" ( (binary_expression "puVar2 != (undefined8 *)param_1[5]" identifier != (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" { (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);" do (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    }" { (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00211da0(uVar1,param_2);" (call_expression "FUN_00211da0(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((undefined8 *)param_1[5] != puVar2)" ( (binary_expression "(undefined8 *)param_1[5] != puVar2" (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "puVar2 = (undefined8 *)param_1[0x15];" (assignment_expression "puVar2 = (undefined8 *)param_1[0x15]" identifier = (cast_expression "(undefined8 *)param_1[0x15]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined8 *)param_1[0x16])" ( (binary_expression "puVar2 != (undefined8 *)param_1[0x16]" identifier != (cast_expression "(undefined8 *)param_1[0x16]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" { (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);" do (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    }" { (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00211ea0(uVar1,param_2);" (call_expression "FUN_00211ea0(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((undefined8 *)param_1[0x16] != puVar2)" ( (binary_expression "(undefined8 *)param_1[0x16] != puVar2" (cast_expression "(undefined8 *)param_1[0x16]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "FUN_00206940(param_1 + 0x29,param_2);" (call_expression "FUN_00206940(param_1 + 0x29,param_2)" identifier (argument_list "(param_1 + 0x29,param_2)" ( (binary_expression "param_1 + 0x29" identifier + number_literal) , identifier ))) ;) (if_statement "if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }" if (parenthesized_expression "(param_1[0x1f] == param_1[0x1e])" ( (binary_expression "param_1[0x1f] == param_1[0x1e]" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) == (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00212740(param_1 + 0x18,param_2);" (call_expression "FUN_00212740(param_1 + 0x18,param_2)" identifier (argument_list "(param_1 + 0x18,param_2)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void print(Script_options * this, FILE * f) */\n\nvoid __thiscall gold::Script_options::print(Script_options *this,FILE *f)\n\n{\n  Symbol_assignment *this_00;\n  Script_assertion *this_01;\n  pointer ppSVar1;\n  pointer ppSVar2;\n  \n  fprintf((FILE *)f,"%s: Dumping linker script\n",program_name);\n  if ((this->entry_)._M_string_length != 0) {\n    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);\n  }\n  ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl._M_start;\n  if (ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish) {\n    do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);\n  }\n  ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl._M_start;\n  if (ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish) {\n    do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);\n  }\n  Script_sections::print(&this->script_sections_,f);\n  if ((this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start\n     ) {\n    return;\n  }\n  Version_script_info::print(&this->version_script_info_,f);\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::Script_options::print(Script_options *this,FILE *f)\n\n{\n  Symbol_assignment *this_00;\n  Script_assertion *this_01;\n  pointer ppSVar1;\n  pointer ppSVar2;\n  \n  fprintf((FILE *)f,"%s: Dumping linker script\n",program_name);\n  if ((this->entry_)._M_string_length != 0) {\n    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);\n  }\n  ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl._M_start;\n  if (ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish) {\n    do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);\n  }\n  ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl._M_start;\n  if (ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish) {\n    do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);\n  }\n  Script_sections::print(&this->script_sections_,f);\n  if ((this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start\n     ) {\n    return;\n  }\n  Version_script_info::print(&this->version_script_info_,f);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Script_options::" identifier : : identifier : :) (function_declarator "print(Script_options *this,FILE *f)" identifier (parameter_list "(Script_options *this,FILE *f)" ( (parameter_declaration "Script_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "FILE *f" type_identifier (pointer_declarator "*f" * identifier)) ))) (compound_statement "{\n  Symbol_assignment *this_00;\n  Script_assertion *this_01;\n  pointer ppSVar1;\n  pointer ppSVar2;\n  \n  fprintf((FILE *)f,"%s: Dumping linker script\n",program_name);\n  if ((this->entry_)._M_string_length != 0) {\n    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);\n  }\n  ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl._M_start;\n  if (ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish) {\n    do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);\n  }\n  ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl._M_start;\n  if (ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish) {\n    do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);\n  }\n  Script_sections::print(&this->script_sections_,f);\n  if ((this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start\n     ) {\n    return;\n  }\n  Version_script_info::print(&this->version_script_info_,f);\n  return;\n}" { (declaration "Symbol_assignment *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Script_assertion *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "pointer ppSVar1;" type_identifier identifier ;) (declaration "pointer ppSVar2;" type_identifier identifier ;) (expression_statement "fprintf((FILE *)f,"%s: Dumping linker script\n",program_name);" (call_expression "fprintf((FILE *)f,"%s: Dumping linker script\n",program_name)" identifier (argument_list "((FILE *)f,"%s: Dumping linker script\n",program_name)" ( (cast_expression "(FILE *)f" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%s: Dumping linker script\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((this->entry_)._M_string_length != 0) {\n    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);\n  }" if (parenthesized_expression "((this->entry_)._M_string_length != 0)" ( (binary_expression "(this->entry_)._M_string_length != 0" (field_expression "(this->entry_)._M_string_length" (parenthesized_expression "(this->entry_)" ( (field_expression "this->entry_" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n    fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);\n  }" { (expression_statement "fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);" (call_expression "fprintf((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p)" identifier (argument_list "((FILE *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p)" ( (cast_expression "(FILE *)f" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""ENTRY(%s)\n"" " string_content escape_sequence ") , (field_expression "(this->entry_)._M_dataplus._M_p" (field_expression "(this->entry_)._M_dataplus" (parenthesized_expression "(this->entry_)" ( (field_expression "this->entry_" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) })) (expression_statement "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl._M_start;" (field_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl._M_start" (field_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n            _M_impl" (binary_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_" (binary_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold" (binary_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold::Symbol_assignment*,_std" (assignment_expression "ppSVar1 = (this->symbol_assignments_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->symbol_assignments_).\n            super__Vector_base<gold" (field_expression "(this->symbol_assignments_).\n            super__Vector_base" (parenthesized_expression "(this->symbol_assignments_)" ( (field_expression "this->symbol_assignments_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_assignment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_assignment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish) {\n    do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);\n  }" if (parenthesized_expression "(ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish)" ( (field_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl._M_finish" (field_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>.\n      _M_impl" (binary_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_" (binary_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold" (binary_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold::Symbol_assignment*,_std" (binary_expression "ppSVar1 !=\n      (this->symbol_assignments_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->symbol_assignments_).\n      super__Vector_base<gold" (field_expression "(this->symbol_assignments_).\n      super__Vector_base" (parenthesized_expression "(this->symbol_assignments_)" ( (field_expression "this->symbol_assignments_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_assignment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_assignment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);\n  }" { (do_statement "do {\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    } while ((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1);" do (compound_statement "{\n      this_00 = *ppSVar1;\n      ppSVar1 = ppSVar1 + 1;\n      Symbol_assignment::print(this_00,f);\n    }" { (expression_statement "this_00 = *ppSVar1;" (assignment_expression "this_00 = *ppSVar1" identifier = (pointer_expression "*ppSVar1" * identifier)) ;) (expression_statement "ppSVar1 = ppSVar1 + 1;" (assignment_expression "ppSVar1 = ppSVar1 + 1" identifier = (binary_expression "ppSVar1 + 1" identifier + number_literal)) ;) (labeled_statement "Symbol_assignment::print(this_00,f);" statement_identifier : (ERROR ":" :) (expression_statement "print(this_00,f);" (call_expression "print(this_00,f)" identifier (argument_list "(this_00,f)" ( identifier , identifier ))) ;)) }) while (parenthesized_expression "((this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1)" ( (binary_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish != ppSVar1" (field_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl._M_finish" (field_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_>\n             ._M_impl" (binary_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold::Symbol_assignment*>_" (binary_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std::allocator<gold" (binary_expression "(this->symbol_assignments_).\n             super__Vector_base<gold::Symbol_assignment*,_std" (binary_expression "(this->symbol_assignments_).\n             super__Vector_base<gold" (field_expression "(this->symbol_assignments_).\n             super__Vector_base" (parenthesized_expression "(this->symbol_assignments_)" ( (field_expression "this->symbol_assignments_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol_assignment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_assignment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl._M_start;" (field_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl._M_start" (field_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n            _M_impl" (binary_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_" (binary_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std::allocator<gold" (binary_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold::Script_assertion*,_std" (assignment_expression "ppSVar2 = (this->assertions_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->assertions_).\n            super__Vector_base<gold" (field_expression "(this->assertions_).\n            super__Vector_base" (parenthesized_expression "(this->assertions_)" ( (field_expression "this->assertions_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Script_assertion" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Script_assertion" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish) {\n    do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);\n  }" if (parenthesized_expression "(ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish)" ( (field_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl.\n      _M_finish" (field_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>._M_impl" (binary_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_" (binary_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std::allocator<gold" (binary_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold::Script_assertion*,_std" (binary_expression "ppSVar2 !=\n      (this->assertions_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->assertions_).\n      super__Vector_base<gold" (field_expression "(this->assertions_).\n      super__Vector_base" (parenthesized_expression "(this->assertions_)" ( (field_expression "this->assertions_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Script_assertion" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Script_assertion" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);\n  }" { (do_statement "do {\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    } while ((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2);" do (compound_statement "{\n      this_01 = *ppSVar2;\n      ppSVar2 = ppSVar2 + 1;\n      Script_assertion::print(this_01,f);\n    }" { (expression_statement "this_01 = *ppSVar2;" (assignment_expression "this_01 = *ppSVar2" identifier = (pointer_expression "*ppSVar2" * identifier)) ;) (expression_statement "ppSVar2 = ppSVar2 + 1;" (assignment_expression "ppSVar2 = ppSVar2 + 1" identifier = (binary_expression "ppSVar2 + 1" identifier + number_literal)) ;) (labeled_statement "Script_assertion::print(this_01,f);" statement_identifier : (ERROR ":" :) (expression_statement "print(this_01,f);" (call_expression "print(this_01,f)" identifier (argument_list "(this_01,f)" ( identifier , identifier ))) ;)) }) while (parenthesized_expression "((this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2)" ( (binary_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish != ppSVar2" (field_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl._M_finish" (field_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_>.\n             _M_impl" (binary_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold::Script_assertion*>_" (binary_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std::allocator<gold" (binary_expression "(this->assertions_).\n             super__Vector_base<gold::Script_assertion*,_std" (binary_expression "(this->assertions_).\n             super__Vector_base<gold" (field_expression "(this->assertions_).\n             super__Vector_base" (parenthesized_expression "(this->assertions_)" ( (field_expression "this->assertions_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Script_assertion" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Script_assertion" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (labeled_statement "Script_sections::print(&this->script_sections_,f);" statement_identifier : (ERROR ":" :) (expression_statement "print(&this->script_sections_,f);" (call_expression "print(&this->script_sections_,f)" identifier (argument_list "(&this->script_sections_,f)" ( (pointer_expression "&this->script_sections_" & (field_expression "this->script_sections_" identifier -> field_identifier)) , identifier ))) ;)) (if_statement "if ((this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start\n     ) {\n    return;\n  }" if (parenthesized_expression "((this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start\n     )" ( (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl._M_start" (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish ==\n      (this->version_script_info_).version_trees_.\n      super__Vector_base<gold" (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl.\n      _M_finish" (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_>._M_impl" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold::Version_tree*>_" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std::allocator<gold" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold::Version_tree*,_std" (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold" (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base" (field_expression "(this->version_script_info_).version_trees_" (parenthesized_expression "(this->version_script_info_)" ( (field_expression "this->version_script_info_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base<gold" (field_expression "(this->version_script_info_).version_trees_.\n      super__Vector_base" (field_expression "(this->version_script_info_).version_trees_" (parenthesized_expression "(this->version_script_info_)" ( (field_expression "this->version_script_info_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Version_tree" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Version_tree" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "Version_script_info::print(&this->version_script_info_,f);" statement_identifier : (ERROR ":" :) (expression_statement "print(&this->version_script_info_,f);" (call_expression "print(&this->version_script_info_,f)" identifier (argument_list "(&this->version_script_info_,f)" ( (pointer_expression "&this->version_script_info_" & (field_expression "this->version_script_info_" identifier -> field_identifier)) , identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00212940(undefined8 *param_1,FILE *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}\n\n" (function_definition "void FUN_00212940(undefined8 *param_1,FILE *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_00212940(undefined8 *param_1,FILE *param_2)" identifier (parameter_list "(undefined8 *param_1,FILE *param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "FILE *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);" (call_expression "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" identifier (argument_list "(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" ( identifier , (string_literal ""%s: Dumping linker script\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" if (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" { (expression_statement "fprintf(param_2,"ENTRY(%s)\n",*param_1);" (call_expression "fprintf(param_2,"ENTRY(%s)\n",*param_1)" identifier (argument_list "(param_2,"ENTRY(%s)\n",*param_1)" ( identifier , (string_literal ""ENTRY(%s)\n"" " string_content escape_sequence ") , (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "puVar2 = (undefined8 *)param_1[4];" (assignment_expression "puVar2 = (undefined8 *)param_1[4]" identifier = (cast_expression "(undefined8 *)param_1[4]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined8 *)param_1[5])" ( (binary_expression "puVar2 != (undefined8 *)param_1[5]" identifier != (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" { (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);" do (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    }" { (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00211da0(uVar1,param_2);" (call_expression "FUN_00211da0(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((undefined8 *)param_1[5] != puVar2)" ( (binary_expression "(undefined8 *)param_1[5] != puVar2" (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "puVar2 = (undefined8 *)param_1[0x15];" (assignment_expression "puVar2 = (undefined8 *)param_1[0x15]" identifier = (cast_expression "(undefined8 *)param_1[0x15]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x15]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined8 *)param_1[0x16])" ( (binary_expression "puVar2 != (undefined8 *)param_1[0x16]" identifier != (cast_expression "(undefined8 *)param_1[0x16]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" { (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);" do (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    }" { (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" identifier = (binary_expression "puVar2 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00211ea0(uVar1,param_2);" (call_expression "FUN_00211ea0(uVar1,param_2)" identifier (argument_list "(uVar1,param_2)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "((undefined8 *)param_1[0x16] != puVar2)" ( (binary_expression "(undefined8 *)param_1[0x16] != puVar2" (cast_expression "(undefined8 *)param_1[0x16]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x16]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "FUN_00206940(param_1 + 0x29,param_2);" (call_expression "FUN_00206940(param_1 + 0x29,param_2)" identifier (argument_list "(param_1 + 0x29,param_2)" ( (binary_expression "param_1 + 0x29" identifier + number_literal) , identifier ))) ;) (if_statement "if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }" if (parenthesized_expression "(param_1[0x1f] == param_1[0x1e])" ( (binary_expression "param_1[0x1f] == param_1[0x1e]" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) == (subscript_expression "param_1[0x1e]" identifier [ number_literal ])) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00212740(param_1 + 0x18,param_2);" (call_expression "FUN_00212740(param_1 + 0x18,param_2)" identifier (argument_list "(param_1 + 0x18,param_2)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") , (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00212940(undefined8 *param_1,FILE *param_2)\n\n{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00212940(undefined8 *param_1,FILE *param_2)" (identifier "FUN_00212940") (parameter_list "(undefined8 *param_1,FILE *param_2)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "FILE *param_2" (type_identifier "FILE") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *puVar2;\n  \n  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);\n  if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }\n  puVar2 = (undefined8 *)param_1[4];\n  if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }\n  puVar2 = (undefined8 *)param_1[0x15];\n  if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }\n  FUN_00206940(param_1 + 0x29,param_2);\n  if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }\n  FUN_00212740(param_1 + 0x18,param_2);\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (expression_statement "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);" (call_expression "fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" (identifier "fprintf") (argument_list "(param_2,"%s: Dumping linker script\n",DAT_003be8e8)" (( "(") (identifier "param_2") (, ",") (string_literal ""%s: Dumping linker script\n"" (" """) (string_content "%s: Dumping linker script") (escape_sequence "\n") (" """)) (, ",") (identifier "DAT_003be8e8") () ")"))) (; ";")) (if_statement "if (param_1[1] != 0) {\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" (if "if") (parenthesized_expression "(param_1[1] != 0)" (( "(") (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    fprintf(param_2,"ENTRY(%s)\n",*param_1);\n  }" ({ "{") (expression_statement "fprintf(param_2,"ENTRY(%s)\n",*param_1);" (call_expression "fprintf(param_2,"ENTRY(%s)\n",*param_1)" (identifier "fprintf") (argument_list "(param_2,"ENTRY(%s)\n",*param_1)" (( "(") (identifier "param_2") (, ",") (string_literal ""ENTRY(%s)\n"" (" """) (string_content "ENTRY(%s)") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined8 *)param_1[4];" (assignment_expression "puVar2 = (undefined8 *)param_1[4]" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)param_1[4]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (puVar2 != (undefined8 *)param_1[5]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" (if "if") (parenthesized_expression "(puVar2 != (undefined8 *)param_1[5])" (( "(") (binary_expression "puVar2 != (undefined8 *)param_1[5]" (identifier "puVar2") (!= "!=") (cast_expression "(undefined8 *)param_1[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")))) () ")")) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);\n  }" ({ "{") (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    } while ((undefined8 *)param_1[5] != puVar2);" (do "do") (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211da0(uVar1,param_2);\n    }" ({ "{") (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" (identifier "uVar1") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00211da0(uVar1,param_2);" (call_expression "FUN_00211da0(uVar1,param_2)" (identifier "FUN_00211da0") (argument_list "(uVar1,param_2)" (( "(") (identifier "uVar1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined8 *)param_1[5] != puVar2)" (( "(") (binary_expression "(undefined8 *)param_1[5] != puVar2" (cast_expression "(undefined8 *)param_1[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (!= "!=") (identifier "puVar2")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined8 *)param_1[0x15];" (assignment_expression "puVar2 = (undefined8 *)param_1[0x15]" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)param_1[0x15]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (if_statement "if (puVar2 != (undefined8 *)param_1[0x16]) {\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" (if "if") (parenthesized_expression "(puVar2 != (undefined8 *)param_1[0x16])" (( "(") (binary_expression "puVar2 != (undefined8 *)param_1[0x16]" (identifier "puVar2") (!= "!=") (cast_expression "(undefined8 *)param_1[0x16]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]")))) () ")")) (compound_statement "{\n    do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);\n  }" ({ "{") (do_statement "do {\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    } while ((undefined8 *)param_1[0x16] != puVar2);" (do "do") (compound_statement "{\n      uVar1 = *puVar2;\n      puVar2 = puVar2 + 1;\n      FUN_00211ea0(uVar1,param_2);\n    }" ({ "{") (expression_statement "uVar1 = *puVar2;" (assignment_expression "uVar1 = *puVar2" (identifier "uVar1") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "puVar2 = puVar2 + 1;" (assignment_expression "puVar2 = puVar2 + 1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00211ea0(uVar1,param_2);" (call_expression "FUN_00211ea0(uVar1,param_2)" (identifier "FUN_00211ea0") (argument_list "(uVar1,param_2)" (( "(") (identifier "uVar1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined8 *)param_1[0x16] != puVar2)" (( "(") (binary_expression "(undefined8 *)param_1[0x16] != puVar2" (cast_expression "(undefined8 *)param_1[0x16]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x16]" (identifier "param_1") ([ "[") (number_literal "0x16") (] "]"))) (!= "!=") (identifier "puVar2")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00206940(param_1 + 0x29,param_2);" (call_expression "FUN_00206940(param_1 + 0x29,param_2)" (identifier "FUN_00206940") (argument_list "(param_1 + 0x29,param_2)" (( "(") (binary_expression "param_1 + 0x29" (identifier "param_1") (+ "+") (number_literal "0x29")) (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (param_1[0x1f] == param_1[0x1e]) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_1[0x1f] == param_1[0x1e])" (( "(") (binary_expression "param_1[0x1f] == param_1[0x1e]" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (== "==") (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00212740(param_1 + 0x18,param_2);" (call_expression "FUN_00212740(param_1 + 0x18,param_2)" (identifier "FUN_00212740") (argument_list "(param_1 + 0x18,param_2)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void print(Script_options * this, FILE * f) */

void __thiscall var_2::type_1::function_1(type_1 *this,type_2 *f)

{
  type_3 *this_00;
  type_4 *this_01;
  type_5 var_5;
  type_5 var_6;
  
  var_1((type_2 *)f,"%s: Dumping linker script\n",program_name);
  if ((this->entry_)._M_string_length != 0) {
    var_1((type_2 *)f,"ENTRY(%s)\n",(this->entry_)._M_dataplus._M_p);
  }
  var_5 = (this->symbol_assignments_).
            super__Vector_base<var_2::type_3*,var_3::allocator<var_2::type_3*>var_4>.
            _M_impl._M_start;
  if (var_5 !=
      (this->symbol_assignments_).
      super__Vector_base<var_2::type_3*,var_3::allocator<var_2::type_3*>var_4>.
      _M_impl._M_finish) {
    do {
      this_00 = *var_5;
      var_5 = var_5 + 1;
      Symbol_assignment::function_1(this_00,f);
    } while ((this->symbol_assignments_).
             super__Vector_base<var_2::type_3*,var_3::allocator<var_2::type_3*>var_4>
             ._M_impl._M_finish != var_5);
  }
  var_6 = (this->assertions_).
            super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
            _M_impl._M_start;
  if (var_6 !=
      (this->assertions_).
      super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>._M_impl.
      _M_finish) {
    do {
      this_01 = *var_6;
      var_6 = var_6 + 1;
      Script_assertion::function_1(this_01,f);
    } while ((this->assertions_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_finish != var_6);
  }
  Script_sections::function_1(&this->script_sections_,f);
  if ((this->version_script_info_).version_trees_.
      super__Vector_base<var_2::Version_tree*,var_3::allocator<var_2::Version_tree*>var_4>._M_impl.
      _M_finish ==
      (this->version_script_info_).version_trees_.
      super__Vector_base<var_2::Version_tree*,var_3::allocator<var_2::Version_tree*>var_4>._M_impl._M_start
     ) {
    return;
  }
  Version_script_info::function_1(&this->version_script_info_,f);
  return;
}


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

void MASKED(undefined8 *param_1,FILE *param_2)

{
  undefined8 uVar1;
  undefined8 *puVar2;
  
  fprintf(param_2,"%s: Dumping linker script\n",DAT_003be8e8);
  if (param_1[1] != 0) {
    fprintf(param_2,"ENTRY(%s)\n",*param_1);
  }
  puVar2 = (undefined8 *)param_1[4];
  if (puVar2 != (undefined8 *)param_1[5]) {
    do {
      uVar1 = *puVar2;
      puVar2 = puVar2 + 1;
      FUN_00211da0(uVar1,param_2);
    } while ((undefined8 *)param_1[5] != puVar2);
  }
  puVar2 = (undefined8 *)param_1[0x15];
  if (puVar2 != (undefined8 *)param_1[0x16]) {
    do {
      uVar1 = *puVar2;
      puVar2 = puVar2 + 1;
      FUN_00211ea0(uVar1,param_2);
    } while ((undefined8 *)param_1[0x16] != puVar2);
  }
  FUN_00206940(param_1 + 0x29,param_2);
  if (param_1[0x1f] == param_1[0x1e]) {
    return;
  }
  FUN_00212740(param_1 + 0x18,param_2);
  return;
}

