
/* DWARF original prototype: void acquire(Lock_impl_threads * this) */

void __thiscall gold::Lock_impl_threads::acquire(Lock_impl_threads *this)

{
  int __errnum;
  char *pcVar1;
  char *format;
  
  __errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_);
  if (__errnum == 0) {
    return;
  }
  pcVar1 = strerror(__errnum);
  format = (char *)gettext("pthread_mutex_lock failed: %s");
                    /* WARNING: Subroutine does not return */
  gold_fatal(format,pcVar1);
}



void FUN_00192790(long param_1)

{
  int __errnum;
  char *pcVar1;
  undefined8 uVar2;
  
  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));
  if (__errnum == 0) {
    return;
  }
  pcVar1 = strerror(__errnum);
  uVar2 = gettext("pthread_mutex_lock failed: %s");
                    /* WARNING: Subroutine does not return */
  FUN_00187770(uVar2,pcVar1);
}


PUSH RBX
ADD RDI,0x8
CALL 0x001499a0
TEST EAX,EAX
JNZ 0x001927a0
POP RBX
RET
MOV EDI,EAX
CALL 0x00149610
LEA RDI,[0x38d055]
MOV RBX,RAX
CALL 0x00149320
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00187770
(translation_unit "void FUN_00192790(long param_1)\n\n{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  FUN_00187770(uVar2,pcVar1);\n}\n\n" (function_definition "void FUN_00192790(long param_1)\n\n{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  FUN_00187770(uVar2,pcVar1);\n}" primitive_type (function_declarator "FUN_00192790(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  FUN_00187770(uVar2,pcVar1);\n}" { (declaration "int __errnum;" primitive_type identifier ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));" (assignment_expression "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" identifier = (call_expression "pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" identifier (argument_list "((pthread_mutex_t *)(param_1 + 8))" ( (cast_expression "(pthread_mutex_t *)(param_1 + 8)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))) )))) ;) (if_statement "if (__errnum == 0) {\n    return;\n  }" if (parenthesized_expression "(__errnum == 0)" ( (binary_expression "__errnum == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar1 = strerror(__errnum);" (assignment_expression "pcVar1 = strerror(__errnum)" identifier = (call_expression "strerror(__errnum)" identifier (argument_list "(__errnum)" ( identifier )))) ;) (expression_statement "uVar2 = gettext("pthread_mutex_lock failed: %s");" (assignment_expression "uVar2 = gettext("pthread_mutex_lock failed: %s")" identifier = (call_expression "gettext("pthread_mutex_lock failed: %s")" identifier (argument_list "("pthread_mutex_lock failed: %s")" ( (string_literal ""pthread_mutex_lock failed: %s"" " string_content ") )))) ;) comment (expression_statement "FUN_00187770(uVar2,pcVar1);" (call_expression "FUN_00187770(uVar2,pcVar1)" identifier (argument_list "(uVar2,pcVar1)" ( identifier , identifier ))) ;) })))
(translation_unit "/* DWARF original prototype: void acquire(Lock_impl_threads * this) */\n\nvoid __thiscall gold::Lock_impl_threads::acquire(Lock_impl_threads *this)\n\n{\n  int __errnum;\n  char *pcVar1;\n  char *format;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_);\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  format = (char *)gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  gold_fatal(format,pcVar1);\n}\n\n" comment (function_definition "void __thiscall gold::Lock_impl_threads::acquire(Lock_impl_threads *this)\n\n{\n  int __errnum;\n  char *pcVar1;\n  char *format;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_);\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  format = (char *)gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  gold_fatal(format,pcVar1);\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Lock_impl_threads::" identifier : : identifier : :) (function_declarator "acquire(Lock_impl_threads *this)" identifier (parameter_list "(Lock_impl_threads *this)" ( (parameter_declaration "Lock_impl_threads *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  int __errnum;\n  char *pcVar1;\n  char *format;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_);\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  format = (char *)gettext("pthread_mutex_lock failed: %s");\n                    /* WARNING: Subroutine does not return */\n  gold_fatal(format,pcVar1);\n}" { (declaration "int __errnum;" primitive_type identifier ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (expression_statement "__errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_);" (assignment_expression "__errnum = pthread_mutex_lock((pthread_mutex_t *)&this->mutex_)" identifier = (call_expression "pthread_mutex_lock((pthread_mutex_t *)&this->mutex_)" identifier (argument_list "((pthread_mutex_t *)&this->mutex_)" ( (cast_expression "(pthread_mutex_t *)&this->mutex_" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->mutex_" & (field_expression "this->mutex_" identifier -> field_identifier))) )))) ;) (if_statement "if (__errnum == 0) {\n    return;\n  }" if (parenthesized_expression "(__errnum == 0)" ( (binary_expression "__errnum == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar1 = strerror(__errnum);" (assignment_expression "pcVar1 = strerror(__errnum)" identifier = (call_expression "strerror(__errnum)" identifier (argument_list "(__errnum)" ( identifier )))) ;) (expression_statement "format = (char *)gettext("pthread_mutex_lock failed: %s");" (assignment_expression "format = (char *)gettext("pthread_mutex_lock failed: %s")" identifier = (cast_expression "(char *)gettext("pthread_mutex_lock failed: %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("pthread_mutex_lock failed: %s")" identifier (argument_list "("pthread_mutex_lock failed: %s")" ( (string_literal ""pthread_mutex_lock failed: %s"" " string_content ") ))))) ;) comment (expression_statement "gold_fatal(format,pcVar1);" (call_expression "gold_fatal(format,pcVar1)" identifier (argument_list "(format,pcVar1)" ( identifier , identifier ))) ;) })))
(translation_unit "void FUN_00192790(long param_1)\n\n{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    \n  FUN_00187770(uVar2,pcVar1);\n}\n\n" (function_definition "void FUN_00192790(long param_1)\n\n{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    \n  FUN_00187770(uVar2,pcVar1);\n}" primitive_type (function_declarator "FUN_00192790(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    \n  FUN_00187770(uVar2,pcVar1);\n}" { (declaration "int __errnum;" primitive_type identifier ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));" (assignment_expression "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" identifier = (call_expression "pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" identifier (argument_list "((pthread_mutex_t *)(param_1 + 8))" ( (cast_expression "(pthread_mutex_t *)(param_1 + 8)" ( (type_descriptor "pthread_mutex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))) )))) ;) (if_statement "if (__errnum == 0) {\n    return;\n  }" if (parenthesized_expression "(__errnum == 0)" ( (binary_expression "__errnum == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar1 = strerror(__errnum);" (assignment_expression "pcVar1 = strerror(__errnum)" identifier = (call_expression "strerror(__errnum)" identifier (argument_list "(__errnum)" ( identifier )))) ;) (expression_statement "uVar2 = gettext("pthread_mutex_lock failed: %s");" (assignment_expression "uVar2 = gettext("pthread_mutex_lock failed: %s")" identifier = (call_expression "gettext("pthread_mutex_lock failed: %s")" identifier (argument_list "("pthread_mutex_lock failed: %s")" ( (string_literal ""pthread_mutex_lock failed: %s"" " string_content ") )))) ;) (expression_statement "FUN_00187770(uVar2,pcVar1);" (call_expression "FUN_00187770(uVar2,pcVar1)" identifier (argument_list "(uVar2,pcVar1)" ( identifier , identifier ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))
(function_definition "void FUN_00192790(long param_1)\n\n{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    \n  FUN_00187770(uVar2,pcVar1);\n}" (primitive_type "void") (function_declarator "FUN_00192790(long param_1)" (identifier "FUN_00192790") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  int __errnum;\n  char *pcVar1;\n  undefined8 uVar2;\n  \n  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));\n  if (__errnum == 0) {\n    return;\n  }\n  pcVar1 = strerror(__errnum);\n  uVar2 = gettext("pthread_mutex_lock failed: %s");\n                    \n  FUN_00187770(uVar2,pcVar1);\n}" ({ "{") (declaration "int __errnum;" (primitive_type "int") (identifier "__errnum") (; ";")) (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (expression_statement "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));" (assignment_expression "__errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" (identifier "__errnum") (= "=") (call_expression "pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8))" (identifier "pthread_mutex_lock") (argument_list "((pthread_mutex_t *)(param_1 + 8))" (( "(") (cast_expression "(pthread_mutex_t *)(param_1 + 8)" (( "(") (type_descriptor "pthread_mutex_t *" (type_identifier "pthread_mutex_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))) () ")")))) (; ";")) (if_statement "if (__errnum == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(__errnum == 0)" (( "(") (binary_expression "__errnum == 0" (identifier "__errnum") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar1 = strerror(__errnum);" (assignment_expression "pcVar1 = strerror(__errnum)" (identifier "pcVar1") (= "=") (call_expression "strerror(__errnum)" (identifier "strerror") (argument_list "(__errnum)" (( "(") (identifier "__errnum") () ")")))) (; ";")) (expression_statement "uVar2 = gettext("pthread_mutex_lock failed: %s");" (assignment_expression "uVar2 = gettext("pthread_mutex_lock failed: %s")" (identifier "uVar2") (= "=") (call_expression "gettext("pthread_mutex_lock failed: %s")" (identifier "gettext") (argument_list "("pthread_mutex_lock failed: %s")" (( "(") (string_literal ""pthread_mutex_lock failed: %s"" (" """) (string_content "pthread_mutex_lock failed: %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00187770(uVar2,pcVar1);" (call_expression "FUN_00187770(uVar2,pcVar1)" (identifier "FUN_00187770") (argument_list "(uVar2,pcVar1)" (( "(") (identifier "uVar2") (, ",") (identifier "pcVar1") () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void acquire(Lock_impl_threads * this) */

void __thiscall gold::type_1::function_1(type_1 *this)

{
  int var_2;
  char *pcVar1;
  char *format;
  
  var_2 = var_1((type_2 *)&this->mutex_);
  if (var_2 == 0) {
    return;
  }
  pcVar1 = var_3(var_2);
  format = (char *)var_4("pthread_mutex_lock failed: %s");
                    /* WARNING: Subroutine does not return */
  var_5(format,pcVar1);
}


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

void MASKED(long param_1)

{
  int __errnum;
  char *pcVar1;
  undefined8 uVar2;
  
  __errnum = pthread_mutex_lock((pthread_mutex_t *)(param_1 + 8));
  if (__errnum == 0) {
    return;
  }
  pcVar1 = strerror(__errnum);
  uVar2 = gettext("pthread_mutex_lock failed: %s");
                    /* WARNING: Subroutine does not return */
  FUN_00187770(uVar2,pcVar1);
}

