
/* std::locale::facet::_S_lc_ctype_c_locale(__locale_struct*, char const*) */

void std::locale::facet::_S_lc_ctype_c_locale(__locale_struct *param_1,char *param_2)

{
  long lVar1;
  long lVar2;
  
  lVar1 = __duplocale();
  if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");
  }
  lVar2 = __newlocale(1,param_2,lVar1);
  if (lVar2 != 0) {
    return;
  }
  __freelocale(lVar1);
                    /* WARNING: Subroutine does not return */
  __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error");
}



void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)

{
  long lVar1;
  long lVar2;
  
  lVar1 = __duplocale();
  if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");
  }
  lVar2 = __newlocale(1,param_2,lVar1);
  if (lVar2 != 0) {
    return;
  }
  __freelocale(lVar1);
                    /* WARNING: Subroutine does not return */
  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");
}


PUSH RBP
MOV RBP,RSI
PUSH RBX
SUB RSP,0x8
CALL 0x00147170
TEST RAX,RAX
JZ 0x0031bbe2
MOV RDX,RAX
MOV RSI,RBP
MOV EDI,0x1
MOV RBX,RAX
CALL 0x001475f0
TEST RAX,RAX
JZ 0x0031bbee
ADD RSP,0x8
POP RBX
POP RBP
RET
LEA RDI,[0x3938a0]
CALL 0x00319710
MOV RDI,RBX
CALL 0x00147920
LEA RDI,[0x3938d8]
CALL 0x00319710
(translation_unit "void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}\n\n" (function_definition "void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" primitive_type (function_declarator "FUN_0031bbb0(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = __duplocale();" (assignment_expression "lVar1 = __duplocale()" identifier = (call_expression "__duplocale()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" { comment (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale duplocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale duplocale error"" " string_content ") ))) ;) })) (expression_statement "lVar2 = __newlocale(1,param_2,lVar1);" (assignment_expression "lVar2 = __newlocale(1,param_2,lVar1)" identifier = (call_expression "__newlocale(1,param_2,lVar1)" identifier (argument_list "(1,param_2,lVar1)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (lVar2 != 0) {\n    return;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__freelocale(lVar1);" (call_expression "__freelocale(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) comment (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale newlocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale newlocale error"" " string_content ") ))) ;) })))
(translation_unit "/* std::locale::facet::_S_lc_ctype_c_locale(__locale_struct*, char const*) */\n\nvoid std::locale::facet::_S_lc_ctype_c_locale(__locale_struct *param_1,char *param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}\n\n" comment (function_definition "void std::locale::facet::_S_lc_ctype_c_locale(__locale_struct *param_1,char *param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" primitive_type (ERROR "std::locale::facet::" identifier : : identifier : : identifier : :) (function_declarator "_S_lc_ctype_c_locale(__locale_struct *param_1,char *param_2)" identifier (parameter_list "(__locale_struct *param_1,char *param_2)" ( (parameter_declaration "__locale_struct *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    /* WARNING: Subroutine does not return */\n  __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = __duplocale();" (assignment_expression "lVar1 = __duplocale()" identifier = (call_expression "__duplocale()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" { comment (expression_statement "__throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error");" (call_expression "__throw_runtime_error("locale::facet::_S_lc_ctype_c_locale duplocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale duplocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale duplocale error"" " string_content ") ))) ;) })) (expression_statement "lVar2 = __newlocale(1,param_2,lVar1);" (assignment_expression "lVar2 = __newlocale(1,param_2,lVar1)" identifier = (call_expression "__newlocale(1,param_2,lVar1)" identifier (argument_list "(1,param_2,lVar1)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (lVar2 != 0) {\n    return;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__freelocale(lVar1);" (call_expression "__freelocale(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) comment (expression_statement "__throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error");" (call_expression "__throw_runtime_error("locale::facet::_S_lc_ctype_c_locale newlocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale newlocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale newlocale error"" " string_content ") ))) ;) })))
(translation_unit "void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    \n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}\n\n" (function_definition "void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    \n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" primitive_type (function_declarator "FUN_0031bbb0(undefined8 param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    \n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (expression_statement "lVar1 = __duplocale();" (assignment_expression "lVar1 = __duplocale()" identifier = (call_expression "__duplocale()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" { (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale duplocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale duplocale error"" " string_content ") ))) ;) })) (expression_statement "lVar2 = __newlocale(1,param_2,lVar1);" (assignment_expression "lVar2 = __newlocale(1,param_2,lVar1)" identifier = (call_expression "__newlocale(1,param_2,lVar1)" identifier (argument_list "(1,param_2,lVar1)" ( number_literal , identifier , identifier )))) ;) (if_statement "if (lVar2 != 0) {\n    return;\n  }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__freelocale(lVar1);" (call_expression "__freelocale(lVar1)" identifier (argument_list "(lVar1)" ( identifier ))) ;) (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error")" identifier (argument_list "("locale::facet::_S_lc_ctype_c_locale newlocale error")" ( (string_literal ""locale::facet::_S_lc_ctype_c_locale newlocale error"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_0031bbb0(undefined8 param_1,undefined8 param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    \n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" (primitive_type "void") (function_declarator "FUN_0031bbb0(undefined8 param_1,undefined8 param_2)" (identifier "FUN_0031bbb0") (parameter_list "(undefined8 param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  \n  lVar1 = __duplocale();\n  if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }\n  lVar2 = __newlocale(1,param_2,lVar1);\n  if (lVar2 != 0) {\n    return;\n  }\n  __freelocale(lVar1);\n                    \n  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (expression_statement "lVar1 = __duplocale();" (assignment_expression "lVar1 = __duplocale()" (identifier "lVar1") (= "=") (call_expression "__duplocale()" (identifier "__duplocale") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar1 == 0) {\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");\n  }" ({ "{") (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error")" (identifier "FUN_00319710") (argument_list "("locale::facet::_S_lc_ctype_c_locale duplocale error")" (( "(") (string_literal ""locale::facet::_S_lc_ctype_c_locale duplocale error"" (" """) (string_content "locale::facet::_S_lc_ctype_c_locale duplocale error") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar2 = __newlocale(1,param_2,lVar1);" (assignment_expression "lVar2 = __newlocale(1,param_2,lVar1)" (identifier "lVar2") (= "=") (call_expression "__newlocale(1,param_2,lVar1)" (identifier "__newlocale") (argument_list "(1,param_2,lVar1)" (( "(") (number_literal "1") (, ",") (identifier "param_2") (, ",") (identifier "lVar1") () ")")))) (; ";")) (if_statement "if (lVar2 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__freelocale(lVar1);" (call_expression "__freelocale(lVar1)" (identifier "__freelocale") (argument_list "(lVar1)" (( "(") (identifier "lVar1") () ")"))) (; ";")) (expression_statement "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");" (call_expression "FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error")" (identifier "FUN_00319710") (argument_list "("locale::facet::_S_lc_ctype_c_locale newlocale error")" (( "(") (string_literal ""locale::facet::_S_lc_ctype_c_locale newlocale error"" (" """) (string_content "locale::facet::_S_lc_ctype_c_locale newlocale error") (" """)) () ")"))) (; ";")) (} "}")))

/* std::locale::facet::_S_lc_ctype_c_locale(__locale_struct*, char const*) */

void std::locale::facet::function_1(type_1 *param_1,char *param_2)

{
  long var_2;
  long var_5;
  
  var_2 = var_1();
  if (var_2 == 0) {
                    /* WARNING: Subroutine does not return */
    var_3("locale::facet::_S_lc_ctype_c_locale duplocale error");
  }
  var_5 = var_4(1,param_2,var_2);
  if (var_5 != 0) {
    return;
  }
  var_6(var_2);
                    /* WARNING: Subroutine does not return */
  var_3("locale::facet::_S_lc_ctype_c_locale newlocale error");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))))

void MASKED(undefined8 param_1,undefined8 param_2)

{
  long lVar1;
  long lVar2;
  
  lVar1 = __duplocale();
  if (lVar1 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00319710("locale::facet::_S_lc_ctype_c_locale duplocale error");
  }
  lVar2 = __newlocale(1,param_2,lVar1);
  if (lVar2 != 0) {
    return;
  }
  __freelocale(lVar1);
                    /* WARNING: Subroutine does not return */
  FUN_00319710("locale::facet::_S_lc_ctype_c_locale newlocale error");
}

