
/* gold::Layout::read_layout_from_file() [clone .cold.774] */

void gold::Layout::read_layout_from_file(void)

{
  long unaff_R12;
  undefined *puStack0000000000000030;
  undefined8 uStack0000000000000038;
  undefined **ppuStack0000000000000130;
  
  std::filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));
  puStack0000000000000030 = PTR_DAT_00439640;
  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;
  uStack0000000000000038 = 0;
  ppuStack0000000000000130 = &PTR__ios_00439478;
  std::ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_00148b48(void)

{
  long unaff_R12;
  undefined *in_stack_00000030;
  undefined8 in_stack_00000038;
  undefined **in_stack_00000130;
  
  FUN_00306d70(unaff_R12 + 0x10);
  in_stack_00000030 = PTR_DAT_00439640;
  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;
  in_stack_00000038 = 0;
  in_stack_00000130 = &PTR_FUN_00439478;
  FUN_00318d20(unaff_R12 + 0x100);
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}


LEA RDI,[R12 + 0x10]
CALL 0x00306d70
MOV RAX,qword ptr [0x00439640]
MOV RDX,qword ptr [RAX + -0x18]
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [0x00439648]
MOV qword ptr [RSP + RDX*0x1 + 0x30],RAX
MOV qword ptr [RSP + 0x38],0x0
LEA RAX,[0x439478]
LEA RDI,[R12 + 0x100]
MOV qword ptr [RSP + 0x130],RAX
CALL 0x00318d20
MOV RDI,RBX
CALL 0x003688e0
(translation_unit "void FUN_00148b48(void)\n\n{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148b48(void)\n\n{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148b48(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" { (declaration "long unaff_R12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *in_stack_00000030;" type_identifier (pointer_declarator "*in_stack_00000030" * identifier) ;) (declaration "undefined8 in_stack_00000038;" type_identifier identifier ;) (declaration "undefined **in_stack_00000130;" type_identifier (pointer_declarator "**in_stack_00000130" * (pointer_declarator "*in_stack_00000130" * identifier)) ;) (expression_statement "FUN_00306d70(unaff_R12 + 0x10);" (call_expression "FUN_00306d70(unaff_R12 + 0x10)" identifier (argument_list "(unaff_R12 + 0x10)" ( (binary_expression "unaff_R12 + 0x10" identifier + number_literal) ))) ;) (expression_statement "in_stack_00000030 = PTR_DAT_00439640;" (assignment_expression "in_stack_00000030 = PTR_DAT_00439640" identifier = identifier) ;) (expression_statement "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;" (assignment_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648" (pointer_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" * (cast_expression "(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (binary_expression "(long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)" (cast_expression "(long)&stack0x00000030" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&stack0x00000030" & identifier)) + (pointer_expression "*(long *)(PTR_DAT_00439640 + -0x18)" * (cast_expression "(long *)(PTR_DAT_00439640 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00439640 + -0x18)" ( (binary_expression "PTR_DAT_00439640 + -0x18" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "in_stack_00000038 = 0;" (assignment_expression "in_stack_00000038 = 0" identifier = number_literal) ;) (expression_statement "in_stack_00000130 = &PTR_FUN_00439478;" (assignment_expression "in_stack_00000130 = &PTR_FUN_00439478" identifier = (pointer_expression "&PTR_FUN_00439478" & identifier)) ;) (expression_statement "FUN_00318d20(unaff_R12 + 0x100);" (call_expression "FUN_00318d20(unaff_R12 + 0x100)" identifier (argument_list "(unaff_R12 + 0x100)" ( (binary_expression "unaff_R12 + 0x100" identifier + number_literal) ))) ;) comment (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::Layout::read_layout_from_file() [clone .cold.774] */\n\nvoid gold::Layout::read_layout_from_file(void)\n\n{\n  long unaff_R12;\n  undefined *puStack0000000000000030;\n  undefined8 uStack0000000000000038;\n  undefined **ppuStack0000000000000130;\n  \n  std::filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));\n  puStack0000000000000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  uStack0000000000000038 = 0;\n  ppuStack0000000000000130 = &PTR__ios_00439478;\n  std::ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::Layout::read_layout_from_file(void)\n\n{\n  long unaff_R12;\n  undefined *puStack0000000000000030;\n  undefined8 uStack0000000000000038;\n  undefined **ppuStack0000000000000130;\n  \n  std::filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));\n  puStack0000000000000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  uStack0000000000000038 = 0;\n  ppuStack0000000000000130 = &PTR__ios_00439478;\n  std::ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "read_layout_from_file(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_R12;\n  undefined *puStack0000000000000030;\n  undefined8 uStack0000000000000038;\n  undefined **ppuStack0000000000000130;\n  \n  std::filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));\n  puStack0000000000000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  uStack0000000000000038 = 0;\n  ppuStack0000000000000130 = &PTR__ios_00439478;\n  std::ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "long unaff_R12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *puStack0000000000000030;" type_identifier (pointer_declarator "*puStack0000000000000030" * identifier) ;) (declaration "undefined8 uStack0000000000000038;" type_identifier identifier ;) (declaration "undefined **ppuStack0000000000000130;" type_identifier (pointer_declarator "**ppuStack0000000000000130" * (pointer_declarator "*ppuStack0000000000000130" * identifier)) ;) (labeled_statement "std::filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));" statement_identifier : (ERROR ":" :) (labeled_statement "filebuf::~filebuf((filebuf *)(unaff_R12 + 0x10));" statement_identifier : (ERROR ":" :) (expression_statement "~filebuf((filebuf *)(unaff_R12 + 0x10));" (unary_expression "~filebuf((filebuf *)(unaff_R12 + 0x10))" ~ (call_expression "filebuf((filebuf *)(unaff_R12 + 0x10))" identifier (argument_list "((filebuf *)(unaff_R12 + 0x10))" ( (cast_expression "(filebuf *)(unaff_R12 + 0x10)" ( (type_descriptor "filebuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R12 + 0x10)" ( (binary_expression "unaff_R12 + 0x10" identifier + number_literal) ))) )))) ;))) (expression_statement "puStack0000000000000030 = PTR_DAT_00439640;" (assignment_expression "puStack0000000000000030 = PTR_DAT_00439640" identifier = identifier) ;) (expression_statement "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;" (assignment_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648" (pointer_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" * (cast_expression "(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (binary_expression "(long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)" (cast_expression "(long)&stack0x00000030" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&stack0x00000030" & identifier)) + (pointer_expression "*(long *)(PTR_DAT_00439640 + -0x18)" * (cast_expression "(long *)(PTR_DAT_00439640 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00439640 + -0x18)" ( (binary_expression "PTR_DAT_00439640 + -0x18" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "uStack0000000000000038 = 0;" (assignment_expression "uStack0000000000000038 = 0" identifier = number_literal) ;) (expression_statement "ppuStack0000000000000130 = &PTR__ios_00439478;" (assignment_expression "ppuStack0000000000000130 = &PTR__ios_00439478" identifier = (pointer_expression "&PTR__ios_00439478" & identifier)) ;) (labeled_statement "std::ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));" statement_identifier : (ERROR ":" :) (labeled_statement "ios_base::~ios_base((ios_base *)(unaff_R12 + 0x100));" statement_identifier : (ERROR ":" :) (expression_statement "~ios_base((ios_base *)(unaff_R12 + 0x100));" (unary_expression "~ios_base((ios_base *)(unaff_R12 + 0x100))" ~ (call_expression "ios_base((ios_base *)(unaff_R12 + 0x100))" identifier (argument_list "((ios_base *)(unaff_R12 + 0x100))" ( (cast_expression "(ios_base *)(unaff_R12 + 0x100)" ( (type_descriptor "ios_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_R12 + 0x100)" ( (binary_expression "unaff_R12 + 0x100" identifier + number_literal) ))) )))) ;))) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00148b48(void)\n\n{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    \n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148b48(void)\n\n{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    \n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148b48(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    \n  FUN_003688e0();\n}" { (declaration "long unaff_R12;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined *in_stack_00000030;" type_identifier (pointer_declarator "*in_stack_00000030" * identifier) ;) (declaration "undefined8 in_stack_00000038;" type_identifier identifier ;) (declaration "undefined **in_stack_00000130;" type_identifier (pointer_declarator "**in_stack_00000130" * (pointer_declarator "*in_stack_00000130" * identifier)) ;) (expression_statement "FUN_00306d70(unaff_R12 + 0x10);" (call_expression "FUN_00306d70(unaff_R12 + 0x10)" identifier (argument_list "(unaff_R12 + 0x10)" ( (binary_expression "unaff_R12 + 0x10" identifier + number_literal) ))) ;) (expression_statement "in_stack_00000030 = PTR_DAT_00439640;" (assignment_expression "in_stack_00000030 = PTR_DAT_00439640" identifier = identifier) ;) (expression_statement "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;" (assignment_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648" (pointer_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" * (cast_expression "(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" ( (binary_expression "(long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)" (cast_expression "(long)&stack0x00000030" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&stack0x00000030" & identifier)) + (pointer_expression "*(long *)(PTR_DAT_00439640 + -0x18)" * (cast_expression "(long *)(PTR_DAT_00439640 + -0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00439640 + -0x18)" ( (binary_expression "PTR_DAT_00439640 + -0x18" identifier + number_literal) ))))) )))) = identifier) ;) (expression_statement "in_stack_00000038 = 0;" (assignment_expression "in_stack_00000038 = 0" identifier = number_literal) ;) (expression_statement "in_stack_00000130 = &PTR_FUN_00439478;" (assignment_expression "in_stack_00000130 = &PTR_FUN_00439478" identifier = (pointer_expression "&PTR_FUN_00439478" & identifier)) ;) (expression_statement "FUN_00318d20(unaff_R12 + 0x100);" (call_expression "FUN_00318d20(unaff_R12 + 0x100)" identifier (argument_list "(unaff_R12 + 0x100)" ( (binary_expression "unaff_R12 + 0x100" identifier + number_literal) ))) ;) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00148b48(void)\n\n{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    \n  FUN_003688e0();\n}" (primitive_type "void") (function_declarator "FUN_00148b48(void)" (identifier "FUN_00148b48") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long unaff_R12;\n  undefined *in_stack_00000030;\n  undefined8 in_stack_00000038;\n  undefined **in_stack_00000130;\n  \n  FUN_00306d70(unaff_R12 + 0x10);\n  in_stack_00000030 = PTR_DAT_00439640;\n  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;\n  in_stack_00000038 = 0;\n  in_stack_00000130 = &PTR_FUN_00439478;\n  FUN_00318d20(unaff_R12 + 0x100);\n                    \n  FUN_003688e0();\n}" ({ "{") (declaration "long unaff_R12;" (sized_type_specifier "long" (long "long")) (identifier "unaff_R12") (; ";")) (declaration "undefined *in_stack_00000030;" (type_identifier "undefined") (pointer_declarator "*in_stack_00000030" (* "*") (identifier "in_stack_00000030")) (; ";")) (declaration "undefined8 in_stack_00000038;" (type_identifier "undefined8") (identifier "in_stack_00000038") (; ";")) (declaration "undefined **in_stack_00000130;" (type_identifier "undefined") (pointer_declarator "**in_stack_00000130" (* "*") (pointer_declarator "*in_stack_00000130" (* "*") (identifier "in_stack_00000130"))) (; ";")) (expression_statement "FUN_00306d70(unaff_R12 + 0x10);" (call_expression "FUN_00306d70(unaff_R12 + 0x10)" (identifier "FUN_00306d70") (argument_list "(unaff_R12 + 0x10)" (( "(") (binary_expression "unaff_R12 + 0x10" (identifier "unaff_R12") (+ "+") (number_literal "0x10")) () ")"))) (; ";")) (expression_statement "in_stack_00000030 = PTR_DAT_00439640;" (assignment_expression "in_stack_00000030 = PTR_DAT_00439640" (identifier "in_stack_00000030") (= "=") (identifier "PTR_DAT_00439640")) (; ";")) (expression_statement "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;" (assignment_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648" (pointer_expression "*(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" (* "*") (cast_expression "(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18))" (( "(") (binary_expression "(long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)" (cast_expression "(long)&stack0x00000030" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&stack0x00000030" (& "&") (identifier "stack0x00000030"))) (+ "+") (pointer_expression "*(long *)(PTR_DAT_00439640 + -0x18)" (* "*") (cast_expression "(long *)(PTR_DAT_00439640 + -0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00439640 + -0x18)" (( "(") (binary_expression "PTR_DAT_00439640 + -0x18" (identifier "PTR_DAT_00439640") (+ "+") (number_literal "-0x18")) () ")"))))) () ")")))) (= "=") (identifier "PTR_DAT_00439648")) (; ";")) (expression_statement "in_stack_00000038 = 0;" (assignment_expression "in_stack_00000038 = 0" (identifier "in_stack_00000038") (= "=") (number_literal "0")) (; ";")) (expression_statement "in_stack_00000130 = &PTR_FUN_00439478;" (assignment_expression "in_stack_00000130 = &PTR_FUN_00439478" (identifier "in_stack_00000130") (= "=") (pointer_expression "&PTR_FUN_00439478" (& "&") (identifier "PTR_FUN_00439478"))) (; ";")) (expression_statement "FUN_00318d20(unaff_R12 + 0x100);" (call_expression "FUN_00318d20(unaff_R12 + 0x100)" (identifier "FUN_00318d20") (argument_list "(unaff_R12 + 0x100)" (( "(") (binary_expression "unaff_R12 + 0x100" (identifier "unaff_R12") (+ "+") (number_literal "0x100")) () ")"))) (; ";")) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" (identifier "FUN_003688e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::Layout::read_layout_from_file() [clone .cold.774] */

void gold::Layout::function_1(void)

{
  long var_2;
  type_1 *puStack0000000000000030;
  type_2 uStack0000000000000038;
  type_1 **ppuStack0000000000000130;
  
  std::filebuf::~var_1((var_1 *)(var_2 + 0x10));
  puStack0000000000000030 = var_3;
  *(type_1 **)((long)&stack0x00000030 + *(long *)(var_3 + -0x18)) = PTR_DAT_00439648;
  uStack0000000000000038 = 0;
  ppuStack0000000000000130 = &PTR__ios_00439478;
  std::ios_base::~var_4((var_4 *)(var_2 + 0x100));
                    /* WARNING: Subroutine does not return */
  var_5();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(void)

{
  long unaff_R12;
  undefined *in_stack_00000030;
  undefined8 in_stack_00000038;
  undefined **in_stack_00000130;
  
  FUN_00306d70(unaff_R12 + 0x10);
  in_stack_00000030 = PTR_DAT_00439640;
  *(undefined **)((long)&stack0x00000030 + *(long *)(PTR_DAT_00439640 + -0x18)) = PTR_DAT_00439648;
  in_stack_00000038 = 0;
  in_stack_00000130 = &PTR_FUN_00439478;
  FUN_00318d20(unaff_R12 + 0x100);
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}

