
/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Workqueue::Workqueue(gold::General_options const&) [clone .cold.51] */

void __thiscall gold::Workqueue::Workqueue(Workqueue *this,General_options *param_1)

{
  Lock *unaff_RBX;
  Condvar *unaff_RBP;
  int __in_chrg;
  void *unaff_R12;
  
  __in_chrg = 0x28;
  operator_delete(unaff_R12,0x28);
  Condvar::~Condvar(unaff_RBP,__in_chrg);
  if ((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");
  }
  if ((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)) {
    Lock::~Lock(unaff_RBX,__in_chrg);
                    /* WARNING: Subroutine does not return */
    _Unwind_Resume();
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");
}



void FUN_001447f4(void)

{
  long unaff_RBX;
  
  thunk_FUN_00276d20();
  FUN_0016fa60();
  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");
  }
  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {
    FUN_0016f970();
                    /* WARNING: Subroutine does not return */
    FUN_00304990();
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");
}


MOV RDI,R12
MOV ESI,0x28
MOV R12,R13
CALL 0x00276d10
MOV RDI,RBP
CALL 0x0016fa60
CMP qword ptr [RBX + 0x18],0x0
JNZ 0x00144838
CMP qword ptr [RBX + 0x20],0x0
JNZ 0x00144838
CMP qword ptr [RBX + 0x8],0x0
JNZ 0x00144850
CMP qword ptr [RBX + 0x10],0x0
JNZ 0x00144850
MOV RDI,RBX
CALL 0x0016f970
MOV RDI,R12
CALL 0x00304990
LEA RDX,[0x31fd08]
MOV ESI,0x2c
LEA RDI,[0x3075e5]
CALL 0x0016cdf0
LEA RDX,[0x31fd08]
MOV ESI,0x2c
LEA RDI,[0x3075e5]
CALL 0x0016cdf0
(translation_unit "void FUN_001447f4(void)\n\n{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    /* WARNING: Subroutine does not return */\n    FUN_00304990();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}\n\n" (function_definition "void FUN_001447f4(void)\n\n{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    /* WARNING: Subroutine does not return */\n    FUN_00304990();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" primitive_type (function_declarator "FUN_001447f4(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    /* WARNING: Subroutine does not return */\n    FUN_00304990();\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" { (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016fa60();" (call_expression "FUN_0016fa60()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" if (parenthesized_expression "((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0))" ( (binary_expression "(*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 0x18) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x18)" * (cast_expression "(long *)(unaff_RBX + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x18)" ( (binary_expression "unaff_RBX + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(long *)(unaff_RBX + 0x20) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x20) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x20)" * (cast_expression "(long *)(unaff_RBX + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x20)" ( (binary_expression "unaff_RBX + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })) (if_statement "if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    /* WARNING: Subroutine does not return */\n    FUN_00304990();\n  }" if (parenthesized_expression "((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0))" ( (binary_expression "(*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 8) == 0)" ( (binary_expression "*(long *)(unaff_RBX + 8) == 0" (pointer_expression "*(long *)(unaff_RBX + 8)" * (cast_expression "(long *)(unaff_RBX + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(long *)(unaff_RBX + 0x10) == 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x10) == 0" (pointer_expression "*(long *)(unaff_RBX + 0x10)" * (cast_expression "(long *)(unaff_RBX + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_0016f970();\n                    /* WARNING: Subroutine does not return */\n    FUN_00304990();\n  }" { (expression_statement "FUN_0016f970();" (call_expression "FUN_0016f970()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* gold::Workqueue::Workqueue(gold::General_options const&) [clone .cold.51] */\n\nvoid __thiscall gold::Workqueue::Workqueue(Workqueue *this,General_options *param_1)\n\n{\n  Lock *unaff_RBX;\n  Condvar *unaff_RBP;\n  int __in_chrg;\n  void *unaff_R12;\n  \n  __in_chrg = 0x28;\n  operator_delete(unaff_R12,0x28);\n  Condvar::~Condvar(unaff_RBP,__in_chrg);\n  if ((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)) {\n    Lock::~Lock(unaff_RBX,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n    _Unwind_Resume();\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n}\n\n" comment comment (function_definition "void __thiscall gold::Workqueue::Workqueue(Workqueue *this,General_options *param_1)\n\n{\n  Lock *unaff_RBX;\n  Condvar *unaff_RBP;\n  int __in_chrg;\n  void *unaff_R12;\n  \n  __in_chrg = 0x28;\n  operator_delete(unaff_R12,0x28);\n  Condvar::~Condvar(unaff_RBP,__in_chrg);\n  if ((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)) {\n    Lock::~Lock(unaff_RBX,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n    _Unwind_Resume();\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Workqueue::" identifier : : identifier : :) (function_declarator "Workqueue(Workqueue *this,General_options *param_1)" identifier (parameter_list "(Workqueue *this,General_options *param_1)" ( (parameter_declaration "Workqueue *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "General_options *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  Lock *unaff_RBX;\n  Condvar *unaff_RBP;\n  int __in_chrg;\n  void *unaff_R12;\n  \n  __in_chrg = 0x28;\n  operator_delete(unaff_R12,0x28);\n  Condvar::~Condvar(unaff_RBP,__in_chrg);\n  if ((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)) {\n    Lock::~Lock(unaff_RBX,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n    _Unwind_Resume();\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n}" { (declaration "Lock *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "Condvar *unaff_RBP;" type_identifier (pointer_declarator "*unaff_RBP" * identifier) ;) (declaration "int __in_chrg;" primitive_type identifier ;) (declaration "void *unaff_R12;" primitive_type (pointer_declarator "*unaff_R12" * identifier) ;) (expression_statement "__in_chrg = 0x28;" (assignment_expression "__in_chrg = 0x28" identifier = number_literal) ;) (expression_statement "operator_delete(unaff_R12,0x28);" (call_expression "operator_delete(unaff_R12,0x28)" identifier (argument_list "(unaff_R12,0x28)" ( identifier , number_literal ))) ;) (labeled_statement "Condvar::~Condvar(unaff_RBP,__in_chrg);" statement_identifier : (ERROR ":" :) (expression_statement "~Condvar(unaff_RBP,__in_chrg);" (unary_expression "~Condvar(unaff_RBP,__in_chrg)" ~ (call_expression "Condvar(unaff_RBP,__in_chrg)" identifier (argument_list "(unaff_RBP,__in_chrg)" ( identifier , identifier )))) ;)) (if_statement "if ((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n  }" if (parenthesized_expression "((unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0))" ( (binary_expression "(unaff_RBX[3].lock_ != (Lock_impl *)0x0) || (unaff_RBX[4].lock_ != (Lock_impl *)0x0)" (parenthesized_expression "(unaff_RBX[3].lock_ != (Lock_impl *)0x0)" ( (binary_expression "unaff_RBX[3].lock_ != (Lock_impl *)0x0" (field_expression "unaff_RBX[3].lock_" (subscript_expression "unaff_RBX[3]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(Lock_impl *)0x0" ( (type_descriptor "Lock_impl *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(unaff_RBX[4].lock_ != (Lock_impl *)0x0)" ( (binary_expression "unaff_RBX[4].lock_ != (Lock_impl *)0x0" (field_expression "unaff_RBX[4].lock_" (subscript_expression "unaff_RBX[4]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(Lock_impl *)0x0" ( (type_descriptor "Lock_impl *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");" (call_expression "do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })) (if_statement "if ((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)) {\n    Lock::~Lock(unaff_RBX,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n    _Unwind_Resume();\n  }" if (parenthesized_expression "((unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0))" ( (binary_expression "(unaff_RBX[1].lock_ == (Lock_impl *)0x0) && (unaff_RBX[2].lock_ == (Lock_impl *)0x0)" (parenthesized_expression "(unaff_RBX[1].lock_ == (Lock_impl *)0x0)" ( (binary_expression "unaff_RBX[1].lock_ == (Lock_impl *)0x0" (field_expression "unaff_RBX[1].lock_" (subscript_expression "unaff_RBX[1]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(Lock_impl *)0x0" ( (type_descriptor "Lock_impl *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_RBX[2].lock_ == (Lock_impl *)0x0)" ( (binary_expression "unaff_RBX[2].lock_ == (Lock_impl *)0x0" (field_expression "unaff_RBX[2].lock_" (subscript_expression "unaff_RBX[2]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(Lock_impl *)0x0" ( (type_descriptor "Lock_impl *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    Lock::~Lock(unaff_RBX,__in_chrg);\n                    /* WARNING: Subroutine does not return */\n    _Unwind_Resume();\n  }" { (labeled_statement "Lock::~Lock(unaff_RBX,__in_chrg);" statement_identifier : (ERROR ":" :) (expression_statement "~Lock(unaff_RBX,__in_chrg);" (unary_expression "~Lock(unaff_RBX,__in_chrg)" ~ (call_expression "Lock(unaff_RBX,__in_chrg)" identifier (argument_list "(unaff_RBX,__in_chrg)" ( identifier , identifier )))) ;)) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list");" (call_expression "do_gold_unreachable("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })))
(translation_unit "void FUN_001447f4(void)\n\n{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }\n                    \n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}\n\n" (function_definition "void FUN_001447f4(void)\n\n{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }\n                    \n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" primitive_type (function_declarator "FUN_001447f4(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }\n                    \n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" { (declaration "long unaff_RBX;" (sized_type_specifier "long" long) identifier ;) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016fa60();" (call_expression "FUN_0016fa60()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" if (parenthesized_expression "((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0))" ( (binary_expression "(*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 0x18) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x18)" * (cast_expression "(long *)(unaff_RBX + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x18)" ( (binary_expression "unaff_RBX + 0x18" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(long *)(unaff_RBX + 0x20) != 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x20) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x20)" * (cast_expression "(long *)(unaff_RBX + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x20)" ( (binary_expression "unaff_RBX + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })) (if_statement "if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }" if (parenthesized_expression "((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0))" ( (binary_expression "(*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 8) == 0)" ( (binary_expression "*(long *)(unaff_RBX + 8) == 0" (pointer_expression "*(long *)(unaff_RBX + 8)" * (cast_expression "(long *)(unaff_RBX + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 8)" ( (binary_expression "unaff_RBX + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(long *)(unaff_RBX + 0x10) == 0)" ( (binary_expression "*(long *)(unaff_RBX + 0x10) == 0" (pointer_expression "*(long *)(unaff_RBX + 0x10)" * (cast_expression "(long *)(unaff_RBX + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_RBX + 0x10)" ( (binary_expression "unaff_RBX + 0x10" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }" { (expression_statement "FUN_0016f970();" (call_expression "FUN_0016f970()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" identifier (argument_list "("../../gold/token.h",0x2c,"~Task_list")" ( (string_literal ""../../gold/token.h"" " string_content ") , number_literal , (string_literal ""~Task_list"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_001447f4(void)\n\n{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }\n                    \n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" (primitive_type "void") (function_declarator "FUN_001447f4(void)" (identifier "FUN_001447f4") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  long unaff_RBX;\n  \n  thunk_FUN_00276d20();\n  FUN_0016fa60();\n  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }\n  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }\n                    \n  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n}" ({ "{") (declaration "long unaff_RBX;" (sized_type_specifier "long" (long "long")) (identifier "unaff_RBX") (; ";")) (expression_statement "thunk_FUN_00276d20();" (call_expression "thunk_FUN_00276d20()" (identifier "thunk_FUN_00276d20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0016fa60();" (call_expression "FUN_0016fa60()" (identifier "FUN_0016fa60") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" (if "if") (parenthesized_expression "((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0))" (( "(") (binary_expression "(*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 0x18) != 0)" (( "(") (binary_expression "*(long *)(unaff_RBX + 0x18) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x18)" (* "*") (cast_expression "(long *)(unaff_RBX + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0x18)" (( "(") (binary_expression "unaff_RBX + 0x18" (identifier "unaff_RBX") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(unaff_RBX + 0x20) != 0)" (( "(") (binary_expression "*(long *)(unaff_RBX + 0x20) != 0" (pointer_expression "*(long *)(unaff_RBX + 0x20)" (* "*") (cast_expression "(long *)(unaff_RBX + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0x20)" (( "(") (binary_expression "unaff_RBX + 0x20" (identifier "unaff_RBX") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/token.h",0x2c,"~Task_list")" (( "(") (string_literal ""../../gold/token.h"" (" """) (string_content "../../gold/token.h") (" """)) (, ",") (number_literal "0x2c") (, ",") (string_literal ""~Task_list"" (" """) (string_content "~Task_list") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }" (if "if") (parenthesized_expression "((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0))" (( "(") (binary_expression "(*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)" (parenthesized_expression "(*(long *)(unaff_RBX + 8) == 0)" (( "(") (binary_expression "*(long *)(unaff_RBX + 8) == 0" (pointer_expression "*(long *)(unaff_RBX + 8)" (* "*") (cast_expression "(long *)(unaff_RBX + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 8)" (( "(") (binary_expression "unaff_RBX + 8" (identifier "unaff_RBX") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(unaff_RBX + 0x10) == 0)" (( "(") (binary_expression "*(long *)(unaff_RBX + 0x10) == 0" (pointer_expression "*(long *)(unaff_RBX + 0x10)" (* "*") (cast_expression "(long *)(unaff_RBX + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_RBX + 0x10)" (( "(") (binary_expression "unaff_RBX + 0x10" (identifier "unaff_RBX") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0016f970();\n                    \n    FUN_00304990();\n  }" ({ "{") (expression_statement "FUN_0016f970();" (call_expression "FUN_0016f970()" (identifier "FUN_0016f970") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00304990();" (call_expression "FUN_00304990()" (identifier "FUN_00304990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");" (call_expression "FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/token.h",0x2c,"~Task_list")" (( "(") (string_literal ""../../gold/token.h"" (" """) (string_content "../../gold/token.h") (" """)) (, ",") (number_literal "0x2c") (, ",") (string_literal ""~Task_list"" (" """) (string_content "~Task_list") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* gold::Workqueue::Workqueue(gold::General_options const&) [clone .cold.51] */

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

{
  type_2 *unaff_RBX;
  type_3 *unaff_RBP;
  int __in_chrg;
  void *unaff_R12;
  
  __in_chrg = 0x28;
  var_1(unaff_R12,0x28);
  Condvar::~type_3(unaff_RBP,__in_chrg);
  if ((unaff_RBX[3].lock_ != (type_4 *)0x0) || (unaff_RBX[4].lock_ != (type_4 *)0x0)) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/token.h",0x2c,"~Task_list");
  }
  if ((unaff_RBX[1].lock_ == (type_4 *)0x0) && (unaff_RBX[2].lock_ == (type_4 *)0x0)) {
    Lock::~type_2(unaff_RBX,__in_chrg);
                    /* WARNING: Subroutine does not return */
    var_3();
  }
                    /* WARNING: Subroutine does not return */
  var_2("../../gold/token.h",0x2c,"~Task_list");
}


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

void MASKED(void)

{
  long unaff_RBX;
  
  thunk_FUN_00276d20();
  FUN_0016fa60();
  if ((*(long *)(unaff_RBX + 0x18) != 0) || (*(long *)(unaff_RBX + 0x20) != 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");
  }
  if ((*(long *)(unaff_RBX + 8) == 0) && (*(long *)(unaff_RBX + 0x10) == 0)) {
    FUN_0016f970();
                    /* WARNING: Subroutine does not return */
    FUN_00304990();
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/token.h",0x2c,"~Task_list");
}

