
/* (anonymous namespace)::get_locale_mutex() */

undefined1 * (anonymous_namespace)::get_locale_mutex(void)

{
  int iVar1;
  
  if (get_locale_mutex()::locale_mutex != '\0') {
    return get_locale_mutex()::locale_mutex;
  }
  iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex);
  if (iVar1 == 0) {
    return get_locale_mutex()::locale_mutex;
  }
  get_locale_mutex()::locale_mutex._32_8_ = 0;
  get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0;
  get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0;
  __cxa_guard_release(&get_locale_mutex()::locale_mutex);
  return get_locale_mutex()::locale_mutex;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined * FUN_002bf340(void)

{
  int iVar1;
  
  if (DAT_003cbba8 != '\0') {
    return &DAT_003cbbc0;
  }
  iVar1 = FUN_002756c0(&DAT_003cbba8);
  if (iVar1 == 0) {
    return &DAT_003cbbc0;
  }
  _DAT_003cbbe0 = 0;
  _DAT_003cbbc0 = (undefined1  [16])0x0;
  _DAT_003cbbd0 = (undefined1  [16])0x0;
  FUN_002757f0(&DAT_003cbba8);
  return &DAT_003cbbc0;
}


MOVZX EAX,byte ptr [0x003cbba8]
TEST AL,AL
JZ 0x002bf358
LEA RAX,[0x3cbbc0]
RET
SUB RSP,0x8
LEA RDI,[0x3cbba8]
CALL 0x002756c0
TEST EAX,EAX
JNZ 0x002bf380
LEA RAX,[0x3cbbc0]
ADD RSP,0x8
RET
PXOR XMM0,XMM0
LEA RDI,[0x3cbba8]
MOV qword ptr [0x003cbbe0],0x0
MOVAPS xmmword ptr [0x003cbbc0],XMM0
MOVAPS xmmword ptr [0x003cbbd0],XMM0
CALL 0x002757f0
LEA RAX,[0x3cbbc0]
ADD RSP,0x8
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined * FUN_002bf340(void)\n\n{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}\n\n" comment (function_definition "undefined * FUN_002bf340(void)\n\n{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" type_identifier (pointer_declarator "* FUN_002bf340(void)" * (function_declarator "FUN_002bf340(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }" if (parenthesized_expression "(DAT_003cbba8 != '\0')" ( (binary_expression "DAT_003cbba8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" { (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })) (expression_statement "iVar1 = FUN_002756c0(&DAT_003cbba8);" (assignment_expression "iVar1 = FUN_002756c0(&DAT_003cbba8)" identifier = (call_expression "FUN_002756c0(&DAT_003cbba8)" identifier (argument_list "(&DAT_003cbba8)" ( (pointer_expression "&DAT_003cbba8" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" { (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })) (expression_statement "_DAT_003cbbe0 = 0;" (assignment_expression "_DAT_003cbbe0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003cbbc0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbc0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "_DAT_003cbbd0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbd0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "FUN_002757f0(&DAT_003cbba8);" (call_expression "FUN_002757f0(&DAT_003cbba8)" identifier (argument_list "(&DAT_003cbba8)" ( (pointer_expression "&DAT_003cbba8" & identifier) ))) ;) (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })))
(translation_unit "/* (anonymous namespace)::get_locale_mutex() */\n\nundefined1 * (anonymous_namespace)::get_locale_mutex(void)\n\n{\n  int iVar1;\n  \n  if (get_locale_mutex()::locale_mutex != '\0') {\n    return get_locale_mutex()::locale_mutex;\n  }\n  iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex);\n  if (iVar1 == 0) {\n    return get_locale_mutex()::locale_mutex;\n  }\n  get_locale_mutex()::locale_mutex._32_8_ = 0;\n  get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0;\n  get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0;\n  __cxa_guard_release(&get_locale_mutex()::locale_mutex);\n  return get_locale_mutex()::locale_mutex;\n}\n\n" comment (ERROR "undefined1 * (anonymous_namespace)::" (binary_expression "undefined1 * (anonymous_namespace)" identifier * (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : :) (function_definition "get_locale_mutex(void)\n\n{\n  int iVar1;\n  \n  if (get_locale_mutex()::locale_mutex != '\0') {\n    return get_locale_mutex()::locale_mutex;\n  }\n  iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex);\n  if (iVar1 == 0) {\n    return get_locale_mutex()::locale_mutex;\n  }\n  get_locale_mutex()::locale_mutex._32_8_ = 0;\n  get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0;\n  get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0;\n  __cxa_guard_release(&get_locale_mutex()::locale_mutex);\n  return get_locale_mutex()::locale_mutex;\n}" type_identifier (parenthesized_declarator "(void)" ( identifier )) (compound_statement "{\n  int iVar1;\n  \n  if (get_locale_mutex()::locale_mutex != '\0') {\n    return get_locale_mutex()::locale_mutex;\n  }\n  iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex);\n  if (iVar1 == 0) {\n    return get_locale_mutex()::locale_mutex;\n  }\n  get_locale_mutex()::locale_mutex._32_8_ = 0;\n  get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0;\n  get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0;\n  __cxa_guard_release(&get_locale_mutex()::locale_mutex);\n  return get_locale_mutex()::locale_mutex;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (get_locale_mutex()::locale_mutex != '\0') {\n    return get_locale_mutex()::locale_mutex;\n  }" if (parenthesized_expression "(get_locale_mutex()::locale_mutex != '\0')" ( (binary_expression "get_locale_mutex()::locale_mutex != '\0'" (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return get_locale_mutex()::locale_mutex;\n  }" { (return_statement "return get_locale_mutex()::locale_mutex;" return (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) ;) })) (expression_statement "iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex);" (assignment_expression "iVar1 = __cxa_guard_acquire(&get_locale_mutex()::locale_mutex)" identifier = (call_expression "__cxa_guard_acquire(&get_locale_mutex()::locale_mutex)" identifier (argument_list "(&get_locale_mutex()::locale_mutex)" ( (pointer_expression "&get_locale_mutex()" & (call_expression "get_locale_mutex()" identifier (argument_list "()" ( )))) (ERROR "::locale_mutex" : : identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n    return get_locale_mutex()::locale_mutex;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return get_locale_mutex()::locale_mutex;\n  }" { (return_statement "return get_locale_mutex()::locale_mutex;" return (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) ;) })) (expression_statement "get_locale_mutex()::locale_mutex._32_8_ = 0;" (assignment_expression "get_locale_mutex()::locale_mutex._32_8_ = 0" (field_expression "get_locale_mutex()::locale_mutex._32_8_" (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) . field_identifier) = number_literal) ;) (expression_statement "get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0;" (assignment_expression "get_locale_mutex()::locale_mutex._0_16_ = (undefined1  [16])0x0" (field_expression "get_locale_mutex()::locale_mutex._0_16_" (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) . field_identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0;" (assignment_expression "get_locale_mutex()::locale_mutex._16_16_ = (undefined1  [16])0x0" (field_expression "get_locale_mutex()::locale_mutex._16_16_" (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) . field_identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "__cxa_guard_release(&get_locale_mutex()::locale_mutex);" (call_expression "__cxa_guard_release(&get_locale_mutex()::locale_mutex)" identifier (argument_list "(&get_locale_mutex()::locale_mutex)" ( (pointer_expression "&get_locale_mutex()" & (call_expression "get_locale_mutex()" identifier (argument_list "()" ( )))) (ERROR "::locale_mutex" : : identifier) ))) ;) (return_statement "return get_locale_mutex()::locale_mutex;" return (call_expression "get_locale_mutex()" identifier (argument_list "()" ( ))) (ERROR "::locale_mutex" : : identifier) ;) })))
(translation_unit "undefined * FUN_002bf340(void)\n\n{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}\n\n" (function_definition "undefined * FUN_002bf340(void)\n\n{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" type_identifier (pointer_declarator "* FUN_002bf340(void)" * (function_declarator "FUN_002bf340(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }" if (parenthesized_expression "(DAT_003cbba8 != '\0')" ( (binary_expression "DAT_003cbba8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" { (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })) (expression_statement "iVar1 = FUN_002756c0(&DAT_003cbba8);" (assignment_expression "iVar1 = FUN_002756c0(&DAT_003cbba8)" identifier = (call_expression "FUN_002756c0(&DAT_003cbba8)" identifier (argument_list "(&DAT_003cbba8)" ( (pointer_expression "&DAT_003cbba8" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" { (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })) (expression_statement "_DAT_003cbbe0 = 0;" (assignment_expression "_DAT_003cbbe0 = 0" identifier = number_literal) ;) (expression_statement "_DAT_003cbbc0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbc0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "_DAT_003cbbd0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbd0 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "FUN_002757f0(&DAT_003cbba8);" (call_expression "FUN_002757f0(&DAT_003cbba8)" identifier (argument_list "(&DAT_003cbba8)" ( (pointer_expression "&DAT_003cbba8" & identifier) ))) ;) (return_statement "return &DAT_003cbbc0;" return (pointer_expression "&DAT_003cbbc0" & identifier) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (pointer_expression & IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (pointer_expression & IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return (pointer_expression & IDENT) ;) })))
(function_definition "undefined * FUN_002bf340(void)\n\n{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" (type_identifier "undefined") (pointer_declarator "* FUN_002bf340(void)" (* "*") (function_declarator "FUN_002bf340(void)" (identifier "FUN_002bf340") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  int iVar1;\n  \n  if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }\n  iVar1 = FUN_002756c0(&DAT_003cbba8);\n  if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }\n  _DAT_003cbbe0 = 0;\n  _DAT_003cbbc0 = (undefined1  [16])0x0;\n  _DAT_003cbbd0 = (undefined1  [16])0x0;\n  FUN_002757f0(&DAT_003cbba8);\n  return &DAT_003cbbc0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (DAT_003cbba8 != '\0') {\n    return &DAT_003cbbc0;\n  }" (if "if") (parenthesized_expression "(DAT_003cbba8 != '\0')" (( "(") (binary_expression "DAT_003cbba8 != '\0'" (identifier "DAT_003cbba8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" ({ "{") (return_statement "return &DAT_003cbbc0;" (return "return") (pointer_expression "&DAT_003cbbc0" (& "&") (identifier "DAT_003cbbc0")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_002756c0(&DAT_003cbba8);" (assignment_expression "iVar1 = FUN_002756c0(&DAT_003cbba8)" (identifier "iVar1") (= "=") (call_expression "FUN_002756c0(&DAT_003cbba8)" (identifier "FUN_002756c0") (argument_list "(&DAT_003cbba8)" (( "(") (pointer_expression "&DAT_003cbba8" (& "&") (identifier "DAT_003cbba8")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    return &DAT_003cbbc0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return &DAT_003cbbc0;\n  }" ({ "{") (return_statement "return &DAT_003cbbc0;" (return "return") (pointer_expression "&DAT_003cbbc0" (& "&") (identifier "DAT_003cbbc0")) (; ";")) (} "}"))) (expression_statement "_DAT_003cbbe0 = 0;" (assignment_expression "_DAT_003cbbe0 = 0" (identifier "_DAT_003cbbe0") (= "=") (number_literal "0")) (; ";")) (expression_statement "_DAT_003cbbc0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbc0 = (undefined1  [16])0x0" (identifier "_DAT_003cbbc0") (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "_DAT_003cbbd0 = (undefined1  [16])0x0;" (assignment_expression "_DAT_003cbbd0 = (undefined1  [16])0x0" (identifier "_DAT_003cbbd0") (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_002757f0(&DAT_003cbba8);" (call_expression "FUN_002757f0(&DAT_003cbba8)" (identifier "FUN_002757f0") (argument_list "(&DAT_003cbba8)" (( "(") (pointer_expression "&DAT_003cbba8" (& "&") (identifier "DAT_003cbba8")) () ")"))) (; ";")) (return_statement "return &DAT_003cbbc0;" (return "return") (pointer_expression "&DAT_003cbbc0" (& "&") (identifier "DAT_003cbbc0")) (; ";")) (} "}")))

/* (anonymous namespace)::get_locale_mutex() */

type_2 * (anonymous_namespace)::type_1(function_1)

{
  int var_2;
  
  if (type_1()::locale_mutex != '\0') {
    return type_1()::locale_mutex;
  }
  var_2 = var_1(&type_1()::locale_mutex);
  if (var_2 == 0) {
    return type_1()::locale_mutex;
  }
  type_1()::locale_mutex._32_8_ = 0;
  type_1()::locale_mutex._0_16_ = (type_2  [16])0x0;
  type_1()::locale_mutex._16_16_ = (type_2  [16])0x0;
  var_3(&type_1()::locale_mutex);
  return type_1()::locale_mutex;
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined * MASKED(void)

{
  int iVar1;
  
  if (DAT_003cbba8 != '\0') {
    return &DAT_003cbbc0;
  }
  iVar1 = FUN_002756c0(&DAT_003cbba8);
  if (iVar1 == 0) {
    return &DAT_003cbbc0;
  }
  _DAT_003cbbe0 = 0;
  _DAT_003cbbc0 = (undefined1  [16])0x0;
  _DAT_003cbbd0 = (undefined1  [16])0x0;
  FUN_002757f0(&DAT_003cbba8);
  return &DAT_003cbbc0;
}

