
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::locale::facet::_S_get_c_locale() */

int std::locale::facet::_S_get_c_locale(void)

{
  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {
    if (_S_c_locale == 0) {
      _S_initialize_once();
    }
  }
  else {
    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,
                 (__init_routine *)PTR__S_initialize_once_00301d60);
  }
  return _S_c_locale;
}



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

int FUN_00182c80(void)

{
  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {
    if (DAT_0030930c == 0) {
      FUN_00182680();
    }
  }
  else {
    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);
  }
  return DAT_0030930c;
}


PUSH ESI
PUSH EBX
CALL 0x00032730
ADD EBX,0x17f379
SUB ESP,0x4
MOV EAX,dword ptr [EBX + 0xffffff24]
TEST EAX,EAX
JZ 0x00182cc0
SUB ESP,0x8
PUSH dword ptr [EBX + 0xfffffd60]
PUSH dword ptr [EBX + 0xfffffc4c]
CALL 0x000260b0
LEA EAX,[EBX + 0x730c]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
ADD ESP,0x4
POP EBX
POP ESI
RET
LEA ESI,[EBX + 0x730c]
MOV EAX,dword ptr [ESI]
TEST EAX,EAX
JNZ 0x00182cb9
CALL 0x00182680
MOV EAX,dword ptr [ESI]
JMP 0x00182cb9
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_00182c80(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}\n\n" comment (function_definition "int FUN_00182c80(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" primitive_type (function_declarator "FUN_00182c80(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" { (if_statement "if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 == (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }" { (if_statement "if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }" if (parenthesized_expression "(DAT_0030930c == 0)" ( (binary_expression "DAT_0030930c == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00182680();\n    }" { (expression_statement "FUN_00182680();" (call_expression "FUN_00182680()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" else (compound_statement "{\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" { (expression_statement "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);" (call_expression "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" identifier (argument_list "((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" ( (cast_expression "(pthread_once_t *)PTR_DAT_00301c4c" ( (type_descriptor "pthread_once_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(__init_routine *)PTR_FUN_00301d60" ( (type_descriptor "__init_routine *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (return_statement "return DAT_0030930c;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::locale::facet::_S_get_c_locale() */\n\nint std::locale::facet::_S_get_c_locale(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }\n  return _S_c_locale;\n}\n\n" comment comment (function_definition "int std::locale::facet::_S_get_c_locale(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }\n  return _S_c_locale;\n}" primitive_type (ERROR "std::locale::facet::" identifier : : identifier : : identifier : :) (function_declarator "_S_get_c_locale(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }\n  return _S_c_locale;\n}" { (if_statement "if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 == (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }\n  }" { (if_statement "if (_S_c_locale == 0) {\n      _S_initialize_once();\n    }" if (parenthesized_expression "(_S_c_locale == 0)" ( (binary_expression "_S_c_locale == 0" identifier == number_literal) )) (compound_statement "{\n      _S_initialize_once();\n    }" { (expression_statement "_S_initialize_once();" (call_expression "_S_initialize_once()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }" else (compound_statement "{\n    pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);\n  }" { (expression_statement "pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60);" (call_expression "pthread_once((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60)" identifier (argument_list "((pthread_once_t *)PTR__S_once_00301c4c,\n                 (__init_routine *)PTR__S_initialize_once_00301d60)" ( (cast_expression "(pthread_once_t *)PTR__S_once_00301c4c" ( (type_descriptor "pthread_once_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(__init_routine *)PTR__S_initialize_once_00301d60" ( (type_descriptor "__init_routine *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (return_statement "return _S_c_locale;" return identifier ;) })))
(translation_unit "int FUN_00182c80(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}\n\n" (function_definition "int FUN_00182c80(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" primitive_type (function_declarator "FUN_00182c80(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" { (if_statement "if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" if (parenthesized_expression "(PTR___pthread_key_create_00301f24 == (undefined *)0x0)" ( (binary_expression "PTR___pthread_key_create_00301f24 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }" { (if_statement "if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }" if (parenthesized_expression "(DAT_0030930c == 0)" ( (binary_expression "DAT_0030930c == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00182680();\n    }" { (expression_statement "FUN_00182680();" (call_expression "FUN_00182680()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" else (compound_statement "{\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" { (expression_statement "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);" (call_expression "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" identifier (argument_list "((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" ( (cast_expression "(pthread_once_t *)PTR_DAT_00301c4c" ( (type_descriptor "pthread_once_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(__init_routine *)PTR_FUN_00301d60" ( (type_descriptor "__init_routine *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (return_statement "return DAT_0030930c;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_00182c80(void)\n\n{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" (primitive_type "int") (function_declarator "FUN_00182c80(void)" (identifier "FUN_00182c80") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }\n  return DAT_0030930c;\n}" ({ "{") (if_statement "if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }\n  else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" (if "if") (parenthesized_expression "(PTR___pthread_key_create_00301f24 == (undefined *)0x0)" (( "(") (binary_expression "PTR___pthread_key_create_00301f24 == (undefined *)0x0" (identifier "PTR___pthread_key_create_00301f24") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }\n  }" ({ "{") (if_statement "if (DAT_0030930c == 0) {\n      FUN_00182680();\n    }" (if "if") (parenthesized_expression "(DAT_0030930c == 0)" (( "(") (binary_expression "DAT_0030930c == 0" (identifier "DAT_0030930c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00182680();\n    }" ({ "{") (expression_statement "FUN_00182680();" (call_expression "FUN_00182680()" (identifier "FUN_00182680") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" (else "else") (compound_statement "{\n    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);\n  }" ({ "{") (expression_statement "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);" (call_expression "pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" (identifier "pthread_once") (argument_list "((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60)" (( "(") (cast_expression "(pthread_once_t *)PTR_DAT_00301c4c" (( "(") (type_descriptor "pthread_once_t *" (type_identifier "pthread_once_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00301c4c")) (, ",") (cast_expression "(__init_routine *)PTR_FUN_00301d60" (( "(") (type_descriptor "__init_routine *" (type_identifier "__init_routine") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00301d60")) () ")"))) (; ";")) (} "}")))) (return_statement "return DAT_0030930c;" (return "return") (identifier "DAT_0030930c") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::locale::facet::_S_get_c_locale() */

int std::locale::facet::function_1(void)

{
  if (var_1 == (type_1 *)0x0) {
    if (var_2 == 0) {
      var_3();
    }
  }
  else {
    var_4((type_2 *)PTR__S_once_00301c4c,
                 (type_3 *)PTR__S_initialize_once_00301d60);
  }
  return var_2;
}


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

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

int MASKED(void)

{
  if (PTR___pthread_key_create_00301f24 == (undefined *)0x0) {
    if (DAT_0030930c == 0) {
      FUN_00182680();
    }
  }
  else {
    pthread_once((pthread_once_t *)PTR_DAT_00301c4c,(__init_routine *)PTR_FUN_00301d60);
  }
  return DAT_0030930c;
}

