
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: __bucket_type *
   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
   * this, size_t __n) */

__bucket_type * __thiscall
std::__detail::
_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
::_M_allocate_buckets
          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
           *this,size_t __n)

{
  uint in_EAX;
  __bucket_type *__s;
  
  if (in_EAX < 0x40000000) {
    __s = (__bucket_type *)operator_new(in_EAX * 4);
    memset(__s,0,in_EAX * 4);
    return __s;
  }
                    /* WARNING: Subroutine does not return */
  __throw_bad_alloc();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void * __regparm3 FUN_00168cf0(uint param_1)

{
  void *__s;
  
  if (param_1 < 0x40000000) {
    __s = (void *)FUN_001e5200(param_1 * 4);
    memset(__s,0,param_1 * 4);
    return __s;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0022c5f0();
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x226308
CMP EAX,0x3fffffff
JA 0x00168d2c
LEA ESI,[EAX*0x4 + 0x0]
SUB ESP,0xc
PUSH ESI
CALL 0x001e5200
ADD ESP,0xc
PUSH ESI
MOV EDI,EAX
PUSH 0x0
PUSH EAX
CALL 0x000292f0
ADD ESP,0x10
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
RET
CALL 0x0022c5f0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid * __regparm3 FUN_00168cf0(uint param_1)\n\n{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0022c5f0();\n}\n\n" comment (function_definition "void * __regparm3 FUN_00168cf0(uint param_1)\n\n{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0022c5f0();\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00168cf0(uint param_1)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00168cf0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) )))) (compound_statement "{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0022c5f0();\n}" { (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (if_statement "if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" if (parenthesized_expression "(param_1 < 0x40000000)" ( (binary_expression "param_1 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" { (expression_statement "__s = (void *)FUN_001e5200(param_1 * 4);" (assignment_expression "__s = (void *)FUN_001e5200(param_1 * 4)" identifier = (cast_expression "(void *)FUN_001e5200(param_1 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(param_1 * 4)" identifier (argument_list "(param_1 * 4)" ( (binary_expression "param_1 * 4" identifier * number_literal) ))))) ;) (expression_statement "memset(__s,0,param_1 * 4);" (call_expression "memset(__s,0,param_1 * 4)" identifier (argument_list "(__s,0,param_1 * 4)" ( identifier , number_literal , (binary_expression "param_1 * 4" identifier * number_literal) ))) ;) (return_statement "return __s;" return identifier ;) })) comment (expression_statement "FUN_0022c5f0();" (call_expression "FUN_0022c5f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: __bucket_type *\n   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n   * this, size_t __n) */\n\n__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n::_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  uint in_EAX;\n  __bucket_type *__s;\n  \n  if (in_EAX < 0x40000000) {\n    __s = (__bucket_type *)operator_new(in_EAX * 4);\n    memset(__s,0,in_EAX * 4);\n    return __s;\n  }\n                    /* WARNING: Subroutine does not return */\n  __throw_bad_alloc();\n}\n\n" comment comment (ERROR "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n::_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n::_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std" (binary_expression "__bucket_type * __thiscall" identifier * identifier) (ERROR "std::__detail::\n_Hashtable_alloc" identifier : : identifier : : identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) (ERROR ",_std::char_traits" , identifier : : identifier) < identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" identifier (argument_list "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" ( (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_>,_true>_>_>\n           *this" (binary_expression "allocator<char>_>,_true>_>_" (binary_expression "allocator<char>_>,_true>_" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*this" * identifier)) , identifier (ERROR "__n" identifier) ))))) (compound_statement "{\n  uint in_EAX;\n  __bucket_type *__s;\n  \n  if (in_EAX < 0x40000000) {\n    __s = (__bucket_type *)operator_new(in_EAX * 4);\n    memset(__s,0,in_EAX * 4);\n    return __s;\n  }\n                    /* WARNING: Subroutine does not return */\n  __throw_bad_alloc();\n}" { (declaration "uint in_EAX;" type_identifier identifier ;) (declaration "__bucket_type *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (if_statement "if (in_EAX < 0x40000000) {\n    __s = (__bucket_type *)operator_new(in_EAX * 4);\n    memset(__s,0,in_EAX * 4);\n    return __s;\n  }" if (parenthesized_expression "(in_EAX < 0x40000000)" ( (binary_expression "in_EAX < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    __s = (__bucket_type *)operator_new(in_EAX * 4);\n    memset(__s,0,in_EAX * 4);\n    return __s;\n  }" { (expression_statement "__s = (__bucket_type *)operator_new(in_EAX * 4);" (assignment_expression "__s = (__bucket_type *)operator_new(in_EAX * 4)" identifier = (cast_expression "(__bucket_type *)operator_new(in_EAX * 4)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(in_EAX * 4)" identifier (argument_list "(in_EAX * 4)" ( (binary_expression "in_EAX * 4" identifier * number_literal) ))))) ;) (expression_statement "memset(__s,0,in_EAX * 4);" (call_expression "memset(__s,0,in_EAX * 4)" identifier (argument_list "(__s,0,in_EAX * 4)" ( identifier , number_literal , (binary_expression "in_EAX * 4" identifier * number_literal) ))) ;) (return_statement "return __s;" return identifier ;) })) comment (expression_statement "__throw_bad_alloc();" (call_expression "__throw_bad_alloc()" identifier (argument_list "()" ( ))) ;) }))
(translation_unit "void * __regparm3 FUN_00168cf0(uint param_1)\n\n{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    \n  FUN_0022c5f0();\n}\n\n" (function_definition "void * __regparm3 FUN_00168cf0(uint param_1)\n\n{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    \n  FUN_0022c5f0();\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00168cf0(uint param_1)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00168cf0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) )))) (compound_statement "{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    \n  FUN_0022c5f0();\n}" { (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (if_statement "if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" if (parenthesized_expression "(param_1 < 0x40000000)" ( (binary_expression "param_1 < 0x40000000" identifier < number_literal) )) (compound_statement "{\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" { (expression_statement "__s = (void *)FUN_001e5200(param_1 * 4);" (assignment_expression "__s = (void *)FUN_001e5200(param_1 * 4)" identifier = (cast_expression "(void *)FUN_001e5200(param_1 * 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001e5200(param_1 * 4)" identifier (argument_list "(param_1 * 4)" ( (binary_expression "param_1 * 4" identifier * number_literal) ))))) ;) (expression_statement "memset(__s,0,param_1 * 4);" (call_expression "memset(__s,0,param_1 * 4)" identifier (argument_list "(__s,0,param_1 * 4)" ( identifier , number_literal , (binary_expression "param_1 * 4" identifier * number_literal) ))) ;) (return_statement "return __s;" return identifier ;) })) (expression_statement "FUN_0022c5f0();" (call_expression "FUN_0022c5f0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT * LIT) ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void * __regparm3 FUN_00168cf0(uint param_1)\n\n{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    \n  FUN_0022c5f0();\n}" (primitive_type "void") (pointer_declarator "* __regparm3 FUN_00168cf0(uint param_1)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00168cf0(uint param_1)" (identifier "FUN_00168cf0") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")")))) (compound_statement "{\n  void *__s;\n  \n  if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }\n                    \n  FUN_0022c5f0();\n}" ({ "{") (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (if_statement "if (param_1 < 0x40000000) {\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" (if "if") (parenthesized_expression "(param_1 < 0x40000000)" (( "(") (binary_expression "param_1 < 0x40000000" (identifier "param_1") (< "<") (number_literal "0x40000000")) () ")")) (compound_statement "{\n    __s = (void *)FUN_001e5200(param_1 * 4);\n    memset(__s,0,param_1 * 4);\n    return __s;\n  }" ({ "{") (expression_statement "__s = (void *)FUN_001e5200(param_1 * 4);" (assignment_expression "__s = (void *)FUN_001e5200(param_1 * 4)" (identifier "__s") (= "=") (cast_expression "(void *)FUN_001e5200(param_1 * 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001e5200(param_1 * 4)" (identifier "FUN_001e5200") (argument_list "(param_1 * 4)" (( "(") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "memset(__s,0,param_1 * 4);" (call_expression "memset(__s,0,param_1 * 4)" (identifier "memset") (argument_list "(__s,0,param_1 * 4)" (( "(") (identifier "__s") (, ",") (number_literal "0") (, ",") (binary_expression "param_1 * 4" (identifier "param_1") (* "*") (number_literal "4")) () ")"))) (; ";")) (return_statement "return __s;" (return "return") (identifier "__s") (; ";")) (} "}"))) (expression_statement "FUN_0022c5f0();" (call_expression "FUN_0022c5f0()" (identifier "FUN_0022c5f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: __bucket_type *
   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
   * this, size_t __n) */

type_2 * __thiscall
std::__detail::
_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
::_M_allocate_buckets
          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
           *this,size_t __n)

{
  type_1 var_1;
  type_2 *__s;
  
  if (var_1 < 0x40000000) {
    __s = (type_2 *)var_2(var_1 * 4);
    var_3(__s,0,var_1 * 4);
    return __s;
  }
                    /* WARNING: Subroutine does not return */
  var_4();
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void * __regparm3 MASKED(uint param_1)

{
  void *__s;
  
  if (param_1 < 0x40000000) {
    __s = (void *)FUN_001e5200(param_1 * 4);
    memset(__s,0,param_1 * 4);
    return __s;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0022c5f0();
}

