
/* DWARF original prototype: void push_back(vector<unsigned_int,_std::allocator<unsigned_int>_> *
   this, value_type.conflict1 * __x) */

void __thiscall
std::vector<unsigned_int,_std::allocator<unsigned_int>_>::push_back
          (vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)

{
  pointer puVar1;
  
  puVar1 = (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish
  ;
  if (puVar1 != (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.
                _M_end_of_storage) {
    *puVar1 = *__x;
    (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =
         puVar1 + 1;
    return;
  }
                    /* WARNING: Could not recover jumptable at 0x0014846c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,__x);
  return;
}



/* std::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) */

void __thiscall
std::vector<unsigned_int,std::allocator<unsigned_int>>::push_back
          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)

{
  uint *puVar1;
  
  puVar1 = *(uint **)(this + 4);
  if (puVar1 != *(uint **)(this + 8)) {
    *puVar1 = *param_1;
    *(uint **)(this + 4) = puVar1 + 1;
    return;
  }
                    /* WARNING: Could not recover jumptable at 0x0014846c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);
  return;
}


lui gp,0x2f
addiu gp,gp,0x1d9c
addu gp,gp,t9
lw v1,0x4(a0)
lw a3,0x8(a0)
beq v1,a3,0x00148464
_or v0,a0,zero
lw a1,0x0(a1)
addiu a0,v1,0x4
sw a1,0x0(v1)
jr ra
_sw a0,0x4(v0)
lw t9,-0x7cfc(gp)
or a2,a1,zero
jr t9
_or a1,v1,zero
(translation_unit "/* std::vector<unsigned int, std::allocator<unsigned int> >::push_back(unsigned int const&) */\n\nvoid __thiscall\nstd::vector<unsigned_int,std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint *puVar1;\n  \n  puVar1 = *(uint **)(this + 4);\n  if (puVar1 != *(uint **)(this + 8)) {\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }\n                    /* WARNING: Could not recover jumptable at 0x0014846c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<unsigned_int,std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<" identifier : : identifier <) identifier , (ERROR "std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint" identifier : : identifier < identifier >> : : (function_declarator "push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" identifier (parameter_list "(vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" ( (parameter_declaration "vector<unsigned_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::allocator<unsigned_int>> *this" type_identifier (ERROR "::allocator<unsigned_int>>" : : identifier < identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = *(uint **)(this + 4);" (assignment_expression "puVar1 = *(uint **)(this + 4)" identifier = (pointer_expression "*(uint **)(this + 4)" * (cast_expression "(uint **)(this + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 != *(uint **)(this + 8)) {\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" if (parenthesized_expression "(puVar1 != *(uint **)(this + 8))" ( (binary_expression "puVar1 != *(uint **)(this + 8)" identifier != (pointer_expression "*(uint **)(this + 8)" * (cast_expression "(uint **)(this + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" { (expression_statement "*puVar1 = *param_1;" (assignment_expression "*puVar1 = *param_1" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint **)(this + 4) = puVar1 + 1;" (assignment_expression "*(uint **)(this + 4) = puVar1 + 1" (pointer_expression "*(uint **)(this + 4)" * (cast_expression "(uint **)(this + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) comment comment (expression_statement "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);" (call_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)" ( (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4" (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "&" &) > identifier) )) (argument_list "(this,puVar1,param_1)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: void push_back(vector<unsigned_int,_std::allocator<unsigned_int>_> *\n   this, value_type.conflict1 * __x) */\n\nvoid __thiscall\nstd::vector<unsigned_int,_std::allocator<unsigned_int>_>::push_back\n          (vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)\n\n{\n  pointer puVar1;\n  \n  puVar1 = (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish\n  ;\n  if (puVar1 != (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                _M_end_of_storage) {\n    *puVar1 = *__x;\n    (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =\n         puVar1 + 1;\n    return;\n  }\n                    /* WARNING: Could not recover jumptable at 0x0014846c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,__x);\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::vector<unsigned_int,_std::allocator<unsigned_int>_>::push_back\n          (vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)\n\n{\n  pointer puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<" identifier : : identifier <) identifier , (ERROR "_std::allocator<unsigned_int>_>::push_back\n          (vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)\n\n{\n  pointer" identifier : : identifier < identifier > identifier > : : (function_declarator "push_back\n          (vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)" identifier (parameter_list "(vector<unsigned_int,_std::allocator<unsigned_int>_> *this,value_type_conflict1 *__x)" ( (parameter_declaration "vector<unsigned_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "_std::allocator<unsigned_int>_> *this" type_identifier (ERROR "::allocator<unsigned_int>_>" : : identifier < identifier > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "value_type_conflict1 *__x" type_identifier (pointer_declarator "*__x" * identifier)) ))) { identifier) identifier ;) (expression_statement "puVar1 = (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish\n  ;" (assignment_expression "puVar1 = (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish" identifier = (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish" (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (ERROR "this->super__Vector_base<unsigned_int,_std::" (comma_expression "this->super__Vector_base<unsigned_int,_std" (binary_expression "this->super__Vector_base<unsigned_int" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (puVar1 != (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                _M_end_of_storage) {\n    *puVar1 = *__x;\n    (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =\n         puVar1 + 1;\n    return;\n  }" if (parenthesized_expression "(puVar1 != (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                _M_end_of_storage)" ( (binary_expression "puVar1 != (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                _M_end_of_storage" identifier != (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl.\n                _M_end_of_storage" (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (ERROR "this->super__Vector_base<unsigned_int,_std::" (comma_expression "this->super__Vector_base<unsigned_int,_std" (binary_expression "this->super__Vector_base<unsigned_int" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    *puVar1 = *__x;\n    (this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =\n         puVar1 + 1;\n    return;\n  }" { (expression_statement "*puVar1 = *__x;" (assignment_expression "*puVar1 = *__x" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*__x" * identifier)) ;) (expression_statement "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =\n         puVar1 + 1;" (assignment_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish =\n         puVar1 + 1" (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl._M_finish" (field_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)._M_impl" (parenthesized_expression "(this->super__Vector_base<unsigned_int,_std::allocator<unsigned_int>_>)" ( (ERROR "this->super__Vector_base<unsigned_int,_std::" (comma_expression "this->super__Vector_base<unsigned_int,_std" (binary_expression "this->super__Vector_base<unsigned_int" (field_expression "this->super__Vector_base" identifier -> field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_int>_>" (binary_expression "allocator<unsigned_int>_" (binary_expression "allocator<unsigned_int" identifier < identifier) > identifier) > identifier) )) . field_identifier) . field_identifier) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) comment comment (expression_statement "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,__x);" (call_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,__x)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)" ( (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4" (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "&" &) > identifier) )) (argument_list "(this,puVar1,__x)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\nstd::vector<unsigned_int,std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint *puVar1;\n  \n  puVar1 = *(uint **)(this + 4);\n  if (puVar1 != *(uint **)(this + 8)) {\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }\n                    \n                    \n  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);\n  return;\n}\n\n" (declaration "void __thiscall\nstd::vector<unsigned_int,std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint *puVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::vector<" identifier : : identifier <) identifier , (ERROR "std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint" identifier : : identifier < identifier >> : : (function_declarator "push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" identifier (parameter_list "(vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" ( (parameter_declaration "vector<unsigned_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::allocator<unsigned_int>> *this" type_identifier (ERROR "::allocator<unsigned_int>>" : : identifier < identifier >>) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) { identifier) (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = *(uint **)(this + 4);" (assignment_expression "puVar1 = *(uint **)(this + 4)" identifier = (pointer_expression "*(uint **)(this + 4)" * (cast_expression "(uint **)(this + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (puVar1 != *(uint **)(this + 8)) {\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" if (parenthesized_expression "(puVar1 != *(uint **)(this + 8))" ( (binary_expression "puVar1 != *(uint **)(this + 8)" identifier != (pointer_expression "*(uint **)(this + 8)" * (cast_expression "(uint **)(this + 8)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) )) (compound_statement "{\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" { (expression_statement "*puVar1 = *param_1;" (assignment_expression "*puVar1 = *param_1" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*(uint **)(this + 4) = puVar1 + 1;" (assignment_expression "*(uint **)(this + 4) = puVar1 + 1" (pointer_expression "*(uint **)(this + 4)" * (cast_expression "(uint **)(this + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = (binary_expression "puVar1 + 1" identifier + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);" (call_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)" ( (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4" (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const" (pointer_expression "*(code *)PTR__M_realloc_insert" * (cast_expression "(code *)PTR__M_realloc_insert" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "&" &) > identifier) )) (argument_list "(this,puVar1,param_1)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT <) IDENT , (ERROR IDENT : : IDENT < IDENT >> : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (ERROR <) IDENT) , (parameter_declaration TYPE (ERROR : : IDENT < IDENT >>) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) (ERROR &) > IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\nstd::vector<unsigned_int,std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint *puVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "std::vector<" (identifier "std") (: ":") (: ":") (identifier "vector") (< "<")) (identifier "unsigned_int") (, ",") (ERROR "std::allocator<unsigned_int>>::push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)\n\n{\n  uint" (identifier "std") (: ":") (: ":") (identifier "allocator") (< "<") (identifier "unsigned_int") (>> ">>") (: ":") (: ":") (function_declarator "push_back\n          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" (identifier "push_back") (parameter_list "(vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)" (( "(") (parameter_declaration "vector<unsigned_int" (type_identifier "vector") (ERROR "<" (< "<")) (identifier "unsigned_int")) (, ",") (parameter_declaration "std::allocator<unsigned_int>> *this" (type_identifier "std") (ERROR "::allocator<unsigned_int>>" (: ":") (: ":") (identifier "allocator") (< "<") (identifier "unsigned_int") (>> ">>")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) ({ "{") (identifier "uint")) (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (expression_statement "puVar1 = *(uint **)(this + 4);" (assignment_expression "puVar1 = *(uint **)(this + 4)" (identifier "puVar1") (= "=") (pointer_expression "*(uint **)(this + 4)" (* "*") (cast_expression "(uint **)(this + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (puVar1 != *(uint **)(this + 8)) {\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" (if "if") (parenthesized_expression "(puVar1 != *(uint **)(this + 8))" (( "(") (binary_expression "puVar1 != *(uint **)(this + 8)" (identifier "puVar1") (!= "!=") (pointer_expression "*(uint **)(this + 8)" (* "*") (cast_expression "(uint **)(this + 8)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n    *puVar1 = *param_1;\n    *(uint **)(this + 4) = puVar1 + 1;\n    return;\n  }" ({ "{") (expression_statement "*puVar1 = *param_1;" (assignment_expression "*puVar1 = *param_1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*(uint **)(this + 4) = puVar1 + 1;" (assignment_expression "*(uint **)(this + 4) = puVar1 + 1" (pointer_expression "*(uint **)(this + 4)" (* "*") (cast_expression "(uint **)(this + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);" (call_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1)" (parenthesized_expression "(*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)" (( "(") (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4" (binary_expression "*(code *)PTR__M_realloc_insert<unsigned_int_const" (pointer_expression "*(code *)PTR__M_realloc_insert" (* "*") (cast_expression "(code *)PTR__M_realloc_insert" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_realloc_insert"))) (< "<") (identifier "unsigned_int_const")) (ERROR "&" (& "&")) (> ">") (identifier "_004324d4")) () ")")) (argument_list "(this,puVar1,param_1)" (( "(") (identifier "this") (, ",") (identifier "puVar1") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) (ERROR) declarator: (identifier)) (parameter_declaration type: (type_identifier) (ERROR (identifier) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement))) (expression_statement (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) (ERROR) right: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))) (return_statement) (ERROR))

/* std::vector<unsigned int, std::allocator<unsigned int> >::MASKED(unsigned int const&) */

void __thiscall
std::vector<unsigned_int,std::allocator<unsigned_int>>::MASKED
          (vector<unsigned_int,std::allocator<unsigned_int>> *this,uint *param_1)

{
  uint *puVar1;
  
  puVar1 = *(uint **)(this + 4);
  if (puVar1 != *(uint **)(this + 8)) {
    *puVar1 = *param_1;
    *(uint **)(this + 4) = puVar1 + 1;
    return;
  }
                    /* WARNING: Could not recover jumptable at 0x0014846c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)PTR__M_realloc_insert<unsigned_int_const&>_004324d4)(this,puVar1,param_1);
  return;
}

