
void script_add_phdr(void *closurev,char *name,size_t namelen,uint type,Phdr_info *info)

{
  gold::Script_sections::add_phdr
            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,
             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,
             info->flags,info->load_address);
  *(undefined1 *)((long)closurev + 0x1b) = 0;
  return;
}



void FUN_002657f0(long param_1)

{
  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);
  *(undefined1 *)(param_1 + 0x1b) = 0;
  return;
}


PUSH RBX
MOV RAX,R8
MOV RBX,RDI
MOV EDI,dword ptr [R8 + 0x4]
MOV R10D,dword ptr [RAX]
XOR R9D,R9D
TEST EDI,EDI
MOV RDI,qword ptr [RBX + 0x28]
SETNZ R9B
XOR R8D,R8D
TEST R10D,R10D
MOV R10D,dword ptr [RAX + 0xc]
SETNZ R8B
SUB RSP,0x8
PUSH qword ptr [RAX + 0x10]
ADD RDI,0x148
PUSH R10
MOV R11D,dword ptr [RAX + 0x8]
XOR EAX,EAX
TEST R11D,R11D
SETNZ AL
PUSH RAX
CALL 0x00259b50
ADD RSP,0x20
MOV byte ptr [RBX + 0x1b],0x0
POP RBX
RET
(translation_unit "void FUN_002657f0(long param_1)\n\n{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}\n\n" (function_definition "void FUN_002657f0(long param_1)\n\n{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" primitive_type (function_declarator "FUN_002657f0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" { (expression_statement "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);" (call_expression "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x148)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x148" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x1b)" * (cast_expression "(undefined1 *)(param_1 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b)" ( (binary_expression "param_1 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void script_add_phdr(void *closurev,char *name,size_t namelen,uint type,Phdr_info *info)\n\n{\n  gold::Script_sections::add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);\n  *(undefined1 *)((long)closurev + 0x1b) = 0;\n  return;\n}\n\n" (function_definition "void script_add_phdr(void *closurev,char *name,size_t namelen,uint type,Phdr_info *info)\n\n{\n  gold::Script_sections::add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);\n  *(undefined1 *)((long)closurev + 0x1b) = 0;\n  return;\n}" primitive_type (function_declarator "script_add_phdr(void *closurev,char *name,size_t namelen,uint type,Phdr_info *info)" identifier (parameter_list "(void *closurev,char *name,size_t namelen,uint type,Phdr_info *info)" ( (parameter_declaration "void *closurev" primitive_type (pointer_declarator "*closurev" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "size_t namelen" primitive_type identifier) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Phdr_info *info" type_identifier (pointer_declarator "*info" * identifier)) ))) (compound_statement "{\n  gold::Script_sections::add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);\n  *(undefined1 *)((long)closurev + 0x1b) = 0;\n  return;\n}" { (labeled_statement "gold::Script_sections::add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);" statement_identifier : (ERROR ":" :) (labeled_statement "Script_sections::add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);" statement_identifier : (ERROR ":" :) (expression_statement "add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address);" (call_expression "add_phdr\n            ((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address)" identifier (argument_list "((Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,\n             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,\n             info->flags,info->load_address)" ( (cast_expression "(Script_sections *)(*(long *)((long)closurev + 0x28) + 0x148)" ( (type_descriptor "Script_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)((long)closurev + 0x28) + 0x148)" ( (binary_expression "*(long *)((long)closurev + 0x28) + 0x148" (pointer_expression "*(long *)((long)closurev + 0x28)" * (cast_expression "(long *)((long)closurev + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)closurev + 0x28)" ( (binary_expression "(long)closurev + 0x28" (cast_expression "(long)closurev" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal) ))) , identifier , identifier , identifier , (binary_expression "info->includes_filehdr != 0" (field_expression "info->includes_filehdr" identifier -> field_identifier) != number_literal) , (binary_expression "info->includes_phdrs != 0" (field_expression "info->includes_phdrs" identifier -> field_identifier) != number_literal) , (binary_expression "info->is_flags_valid != 0" (field_expression "info->is_flags_valid" identifier -> field_identifier) != number_literal) , (field_expression "info->flags" identifier -> field_identifier) , (field_expression "info->load_address" identifier -> field_identifier) ))) ;))) (expression_statement "*(undefined1 *)((long)closurev + 0x1b) = 0;" (assignment_expression "*(undefined1 *)((long)closurev + 0x1b) = 0" (pointer_expression "*(undefined1 *)((long)closurev + 0x1b)" * (cast_expression "(undefined1 *)((long)closurev + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)closurev + 0x1b)" ( (binary_expression "(long)closurev + 0x1b" (cast_expression "(long)closurev" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002657f0(long param_1)\n\n{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}\n\n" (function_definition "void FUN_002657f0(long param_1)\n\n{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" primitive_type (function_declarator "FUN_002657f0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" { (expression_statement "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);" (call_expression "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148)" identifier (argument_list "(*(long *)(param_1 + 0x28) + 0x148)" ( (binary_expression "*(long *)(param_1 + 0x28) + 0x148" (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x1b)" * (cast_expression "(undefined1 *)(param_1 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b)" ( (binary_expression "param_1 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_002657f0(long param_1)\n\n{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002657f0(long param_1)" (identifier "FUN_002657f0") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);\n  *(undefined1 *)(param_1 + 0x1b) = 0;\n  return;\n}" ({ "{") (expression_statement "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);" (call_expression "FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148)" (identifier "FUN_00259b50") (argument_list "(*(long *)(param_1 + 0x28) + 0x148)" (( "(") (binary_expression "*(long *)(param_1 + 0x28) + 0x148" (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "0x148")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x1b) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0x1b) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0x1b)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x1b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b)" (( "(") (binary_expression "param_1 + 0x1b" (identifier "param_1") (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(void *closurev,char *name,size_t namelen,type_1 type,type_2 *info)

{
  gold::Script_sections::var_1
            ((type_3 *)(*(long *)((long)closurev + 0x28) + 0x148),name,namelen,type,
             info->includes_filehdr != 0,info->includes_phdrs != 0,info->is_flags_valid != 0,
             info->flags,info->load_address);
  *(type_4 *)((long)closurev + 0x1b) = 0;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (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: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (return_statement))))

void MASKED(long param_1)

{
  FUN_00259b50(*(long *)(param_1 + 0x28) + 0x148);
  *(undefined1 *)(param_1 + 0x1b) = 0;
  return;
}

