
/* DWARF original prototype: uint do_get_unused_symbol_count(Sized_input_reader * this) */

uint __thiscall
gold::Sized_incremental_binary<32,_false>::Sized_input_reader::do_get_unused_symbol_count
          (Sized_input_reader *this)

{
  if ((char)(this->reader_).flags_ == '\x03') {
    return *(uint *)(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4);
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/incremental.h",0x3db,"get_unused_symbol_count");
}



undefined4 FUN_0035cd00(long param_1)

{
  if (*(char *)(param_1 + 0x10) == '\x03') {
    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");
}


CMP byte ptr [RDI + 0x10],0x3
JNZ 0x0035cd15
MOV RDX,qword ptr [RDI + 0x8]
MOV EAX,dword ptr [RDI + 0x18]
MOV RDX,qword ptr [RDX]
MOV EAX,dword ptr [RDX + RAX*0x1 + 0x4]
RET
PUSH RAX
LEA RDX,[0x56fe60]
MOV ESI,0x3db
LEA RDI,[0x56e2fe]
CALL 0x00352af0
(translation_unit "undefined4 FUN_0035cd00(long param_1)\n\n{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}\n\n" (function_definition "undefined4 FUN_0035cd00(long param_1)\n\n{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" type_identifier (function_declarator "FUN_0035cd00(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" { (if_statement "if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x10) == '\x03')" ( (binary_expression "*(char *)(param_1 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_1 + 0x10)" * (cast_expression "(char *)(param_1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" { (return_statement "return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));" return (pointer_expression "*(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" * (cast_expression "(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" ( (binary_expression "**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18)" (binary_expression "**(long **)(param_1 + 8) + 4" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) + (binary_expression "(ulong)*(uint *)(param_1 + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )))) ;) })) comment (expression_statement "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");" (call_expression "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" identifier (argument_list "("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""get_unused_symbol_count"" " string_content ") ))) ;) })))
(translation_unit "/* DWARF original prototype: uint do_get_unused_symbol_count(Sized_input_reader * this) */\n\nuint __thiscall\ngold::Sized_incremental_binary<32,_false>::Sized_input_reader::do_get_unused_symbol_count\n          (Sized_input_reader *this)\n\n{\n  if ((char)(this->reader_).flags_ == '\x03') {\n    return *(uint *)(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}\n\n" comment (declaration "uint __thiscall\ngold::Sized_incremental_binary<32,_false>::Sized_input_reader::do_get_unused_symbol_count\n          (Sized_input_reader *this)\n\n{\n  if ((char)(this->reader_).flags_ == '\x03') {\n    return *(uint *)(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4);" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::Sized_input_reader::do_get_unused_symbol_count\n          (Sized_input_reader *this)\n\n{\n  if ((char)(this->reader_).flags_ == '\x03') {\n    return" identifier > : : identifier : : (function_declarator "do_get_unused_symbol_count\n          (Sized_input_reader *this)\n\n{\n  if ((char)(this->reader_).flags_ == '\x03" (function_declarator "do_get_unused_symbol_count\n          (Sized_input_reader *this)\n\n{\n  if ((char)" (function_declarator "do_get_unused_symbol_count\n          (Sized_input_reader *this)" identifier (parameter_list "(Sized_input_reader *this)" ( (parameter_declaration "Sized_input_reader *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (ERROR "{\n  if (" { if () (parameter_list "(char)" ( (parameter_declaration "char" primitive_type) ))) (parameter_list "(this->reader_)" ( (parameter_declaration "this->reader_" type_identifier (ERROR "->" ->) identifier) )) (ERROR "." .) identifier (ERROR "== '\" == ' ERROR) identifier) ' ) { return) (pointer_declarator "*(uint *)(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4)" * (function_declarator "(uint *)(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4)" (parenthesized_declarator "(uint *)" ( identifier (ERROR "*" *) )) (parameter_list "(((this->reader_).inputs_)->p_ + (ulong)(this->reader_).info_offset_ + 4)" ( (parameter_declaration "((this->reader_).inputs_)->p_ + (ulong)(this->reader_)" type_identifier (abstract_function_declarator "((this->reader_).inputs_)->p_ + (ulong)(this->reader_)" (abstract_function_declarator "((this->reader_).inputs_)->p_ + (ulong)" (abstract_parenthesized_declarator "((this->reader_).inputs_)" ( (abstract_function_declarator "(this->reader_)" (parameter_list "(this->reader_)" ( (parameter_declaration "this->reader_" type_identifier (ERROR "->" ->) identifier) ))) (ERROR ".inputs_" . identifier) )) (ERROR "->p_ +" -> identifier +) (parameter_list "(ulong)" ( (parameter_declaration "ulong" type_identifier) ))) (parameter_list "(this->reader_)" ( (parameter_declaration "this->reader_" type_identifier (ERROR "->" ->) identifier) )))) (ERROR ".info_offset_ + 4" . identifier + number_literal) )))) ;) (ERROR "}" }) comment (expression_statement "do_gold_unreachable("../../gold/incremental.h",0x3db,"get_unused_symbol_count");" (call_expression "do_gold_unreachable("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" identifier (argument_list "("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""get_unused_symbol_count"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "undefined4 FUN_0035cd00(long param_1)\n\n{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    \n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}\n\n" (function_definition "undefined4 FUN_0035cd00(long param_1)\n\n{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    \n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" type_identifier (function_declarator "FUN_0035cd00(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    \n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" { (if_statement "if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x10) == '\x03')" ( (binary_expression "*(char *)(param_1 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_1 + 0x10)" * (cast_expression "(char *)(param_1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" { (return_statement "return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));" return (pointer_expression "*(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" * (cast_expression "(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" ( (binary_expression "**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18)" (binary_expression "**(long **)(param_1 + 8) + 4" (pointer_expression "**(long **)(param_1 + 8)" * (pointer_expression "*(long **)(param_1 + 8)" * (cast_expression "(long **)(param_1 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) + number_literal) + (binary_expression "(ulong)*(uint *)(param_1 + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) )))) ;) })) (expression_statement "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");" (call_expression "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" identifier (argument_list "("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" ( (string_literal ""../../gold/incremental.h"" " string_content ") , number_literal , (string_literal ""get_unused_symbol_count"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined4 FUN_0035cd00(long param_1)\n\n{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    \n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" (type_identifier "undefined4") (function_declarator "FUN_0035cd00(long param_1)" (identifier "FUN_0035cd00") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }\n                    \n  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");\n}" ({ "{") (if_statement "if (*(char *)(param_1 + 0x10) == '\x03') {\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x10) == '\x03')" (( "(") (binary_expression "*(char *)(param_1 + 0x10) == '\x03'" (pointer_expression "*(char *)(param_1 + 0x10)" (* "*") (cast_expression "(char *)(param_1 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));\n  }" ({ "{") (return_statement "return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));" (return "return") (pointer_expression "*(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" (* "*") (cast_expression "(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18))" (( "(") (binary_expression "**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18)" (binary_expression "**(long **)(param_1 + 8) + 4" (pointer_expression "**(long **)(param_1 + 8)" (* "*") (pointer_expression "*(long **)(param_1 + 8)" (* "*") (cast_expression "(long **)(param_1 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "4")) (+ "+") (binary_expression "(ulong)*(uint *)(param_1 + 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(param_1 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");" (call_expression "FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" (identifier "FUN_00352af0") (argument_list "("../../gold/incremental.h",0x3db,"get_unused_symbol_count")" (( "(") (string_literal ""../../gold/incremental.h"" (" """) (string_content "../../gold/incremental.h") (" """)) (, ",") (number_literal "0x3db") (, ",") (string_literal ""get_unused_symbol_count"" (" """) (string_content "get_unused_symbol_count") (" """)) () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: uint do_get_unused_symbol_count(Sized_input_reader * this) */

type_1 __thiscall
gold::Sized_incremental_binary<32,_false>::Sized_input_reader::do_get_unused_symbol_count
          (Sized_input_reader *type_3)

{
  if ((char)(type_3->reader_).flags_ == '\x03') {
    return *(type_1 *)(type_2((type_3->reader_).inputs_)->p_ + (type_4)(type_3->reader_).info_offset_ + 4);
  }
                    /* WARNING: Subroutine does not return */
  var_1("../../gold/incremental.h",0x3db,"get_unused_symbol_count");
}


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

undefined4 MASKED(long param_1)

{
  if (*(char *)(param_1 + 0x10) == '\x03') {
    return *(undefined4 *)(**(long **)(param_1 + 8) + 4 + (ulong)*(uint *)(param_1 + 0x18));
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/incremental.h",0x3db,"get_unused_symbol_count");
}

