
/* gold::General_options::add_plugin(char const*) [clone .cold.538] */

void gold::General_options::add_plugin(char *param_1)

{
  undefined8 *puVar1;
  undefined8 *unaff_RBX;
  undefined8 *puVar2;
  void *unaff_R13;
  
  if (unaff_R13 != (void *)unaff_RBX[0x20]) {
    operator_delete((void *)unaff_RBX[0x20]);
  }
  if ((void *)unaff_RBX[0x13] != (void *)0x0) {
    operator_delete((void *)unaff_RBX[0x13]);
  }
  if ((void *)unaff_RBX[0x10] != (void *)0x0) {
    operator_delete((void *)unaff_RBX[0x10]);
  }
  if ((void *)unaff_RBX[7] != (void *)0x0) {
    operator_delete((void *)unaff_RBX[7]);
  }
  if ((void *)unaff_RBX[4] != (void *)0x0) {
    operator_delete((void *)unaff_RBX[4]);
  }
  puVar2 = (undefined8 *)*unaff_RBX;
  while (unaff_RBX != puVar2) {
    puVar1 = (undefined8 *)*puVar2;
    operator_delete(puVar2);
    puVar2 = puVar1;
  }
  operator_delete(unaff_RBX,0x188);
                    /* WARNING: Subroutine does not return */
  _Unwind_Resume();
}



void FUN_00148f90(void)

{
  undefined8 *unaff_RBX;
  undefined8 *puVar1;
  long unaff_R13;
  
  if (unaff_R13 != unaff_RBX[0x20]) {
    FUN_002dac70();
  }
  if (unaff_RBX[0x13] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[0x10] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[7] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[4] != 0) {
    FUN_002dac70();
  }
  puVar1 = (undefined8 *)*unaff_RBX;
  while (unaff_RBX != puVar1) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_002dac70();
  }
  thunk_FUN_002dac70();
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}


MOV RDI,qword ptr [RBX + 0x100]
CMP R13,RDI
JZ 0x00148fa1
CALL 0x002dac70
MOV RDI,qword ptr [RBX + 0x98]
TEST RDI,RDI
JZ 0x00148fb2
CALL 0x002dac70
MOV RDI,qword ptr [RBX + 0x80]
TEST RDI,RDI
JZ 0x00148fc3
CALL 0x002dac70
MOV RDI,qword ptr [RBX + 0x38]
TEST RDI,RDI
JZ 0x00148fd1
CALL 0x002dac70
MOV RDI,qword ptr [RBX + 0x20]
TEST RDI,RDI
JZ 0x00148fdf
CALL 0x002dac70
MOV RDI,qword ptr [RBX]
CMP RBX,RDI
JNZ 0x00149011
MOV RDI,RBX
MOV ESI,0x188
CALL 0x002dac60
MOV RDI,RBP
CALL 0x003688e0
MOV R12,qword ptr [RDI]
CALL 0x002dac70
MOV RDI,R12
JMP 0x00148fe2
(translation_unit "void FUN_00148f90(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148f90(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148f90(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    /* WARNING: Subroutine does not return */\n  FUN_003688e0();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long unaff_R13;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_R13 != unaff_RBX[0x20])" ( (binary_expression "unaff_R13 != unaff_RBX[0x20]" identifier != (subscript_expression "unaff_RBX[0x20]" identifier [ number_literal ])) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x13] != 0)" ( (binary_expression "unaff_RBX[0x13] != 0" (subscript_expression "unaff_RBX[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x10] != 0)" ( (binary_expression "unaff_RBX[0x10] != 0" (subscript_expression "unaff_RBX[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[7] != 0)" ( (binary_expression "unaff_RBX[7] != 0" (subscript_expression "unaff_RBX[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[4] != 0)" ( (binary_expression "unaff_RBX[4] != 0" (subscript_expression "unaff_RBX[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = (undefined8 *)*unaff_RBX;" (assignment_expression "puVar1 = (undefined8 *)*unaff_RBX" identifier = (cast_expression "(undefined8 *)*unaff_RBX" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_RBX" * identifier))) ;) (while_statement "while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" while (parenthesized_expression "(unaff_RBX != puVar1)" ( (binary_expression "unaff_RBX != puVar1" identifier != identifier) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* gold::General_options::add_plugin(char const*) [clone .cold.538] */\n\nvoid gold::General_options::add_plugin(char *param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 *unaff_RBX;\n  undefined8 *puVar2;\n  void *unaff_R13;\n  \n  if (unaff_R13 != (void *)unaff_RBX[0x20]) {\n    operator_delete((void *)unaff_RBX[0x20]);\n  }\n  if ((void *)unaff_RBX[0x13] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x13]);\n  }\n  if ((void *)unaff_RBX[0x10] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x10]);\n  }\n  if ((void *)unaff_RBX[7] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[7]);\n  }\n  if ((void *)unaff_RBX[4] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[4]);\n  }\n  puVar2 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar2) {\n    puVar1 = (undefined8 *)*puVar2;\n    operator_delete(puVar2);\n    puVar2 = puVar1;\n  }\n  operator_delete(unaff_RBX,0x188);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}\n\n" comment (function_definition "void gold::General_options::add_plugin(char *param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 *unaff_RBX;\n  undefined8 *puVar2;\n  void *unaff_R13;\n  \n  if (unaff_R13 != (void *)unaff_RBX[0x20]) {\n    operator_delete((void *)unaff_RBX[0x20]);\n  }\n  if ((void *)unaff_RBX[0x13] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x13]);\n  }\n  if ((void *)unaff_RBX[0x10] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x10]);\n  }\n  if ((void *)unaff_RBX[7] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[7]);\n  }\n  if ((void *)unaff_RBX[4] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[4]);\n  }\n  puVar2 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar2) {\n    puVar1 = (undefined8 *)*puVar2;\n    operator_delete(puVar2);\n    puVar2 = puVar1;\n  }\n  operator_delete(unaff_RBX,0x188);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" primitive_type (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "add_plugin(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 *unaff_RBX;\n  undefined8 *puVar2;\n  void *unaff_R13;\n  \n  if (unaff_R13 != (void *)unaff_RBX[0x20]) {\n    operator_delete((void *)unaff_RBX[0x20]);\n  }\n  if ((void *)unaff_RBX[0x13] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x13]);\n  }\n  if ((void *)unaff_RBX[0x10] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x10]);\n  }\n  if ((void *)unaff_RBX[7] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[7]);\n  }\n  if ((void *)unaff_RBX[4] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[4]);\n  }\n  puVar2 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar2) {\n    puVar1 = (undefined8 *)*puVar2;\n    operator_delete(puVar2);\n    puVar2 = puVar1;\n  }\n  operator_delete(unaff_RBX,0x188);\n                    /* WARNING: Subroutine does not return */\n  _Unwind_Resume();\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "void *unaff_R13;" primitive_type (pointer_declarator "*unaff_R13" * identifier) ;) (if_statement "if (unaff_R13 != (void *)unaff_RBX[0x20]) {\n    operator_delete((void *)unaff_RBX[0x20]);\n  }" if (parenthesized_expression "(unaff_R13 != (void *)unaff_RBX[0x20])" ( (binary_expression "unaff_R13 != (void *)unaff_RBX[0x20]" identifier != (cast_expression "(void *)unaff_RBX[0x20]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x20]" identifier [ number_literal ]))) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[0x20]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[0x20]);" (call_expression "operator_delete((void *)unaff_RBX[0x20])" identifier (argument_list "((void *)unaff_RBX[0x20])" ( (cast_expression "(void *)unaff_RBX[0x20]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x20]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)unaff_RBX[0x13] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x13]);\n  }" if (parenthesized_expression "((void *)unaff_RBX[0x13] != (void *)0x0)" ( (binary_expression "(void *)unaff_RBX[0x13] != (void *)0x0" (cast_expression "(void *)unaff_RBX[0x13]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x13]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[0x13]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[0x13]);" (call_expression "operator_delete((void *)unaff_RBX[0x13])" identifier (argument_list "((void *)unaff_RBX[0x13])" ( (cast_expression "(void *)unaff_RBX[0x13]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x13]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)unaff_RBX[0x10] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[0x10]);\n  }" if (parenthesized_expression "((void *)unaff_RBX[0x10] != (void *)0x0)" ( (binary_expression "(void *)unaff_RBX[0x10] != (void *)0x0" (cast_expression "(void *)unaff_RBX[0x10]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x10]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[0x10]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[0x10]);" (call_expression "operator_delete((void *)unaff_RBX[0x10])" identifier (argument_list "((void *)unaff_RBX[0x10])" ( (cast_expression "(void *)unaff_RBX[0x10]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[0x10]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)unaff_RBX[7] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[7]);\n  }" if (parenthesized_expression "((void *)unaff_RBX[7] != (void *)0x0)" ( (binary_expression "(void *)unaff_RBX[7] != (void *)0x0" (cast_expression "(void *)unaff_RBX[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[7]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[7]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[7]);" (call_expression "operator_delete((void *)unaff_RBX[7])" identifier (argument_list "((void *)unaff_RBX[7])" ( (cast_expression "(void *)unaff_RBX[7]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[7]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)unaff_RBX[4] != (void *)0x0) {\n    operator_delete((void *)unaff_RBX[4]);\n  }" if (parenthesized_expression "((void *)unaff_RBX[4] != (void *)0x0)" ( (binary_expression "(void *)unaff_RBX[4] != (void *)0x0" (cast_expression "(void *)unaff_RBX[4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[4]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    operator_delete((void *)unaff_RBX[4]);\n  }" { (expression_statement "operator_delete((void *)unaff_RBX[4]);" (call_expression "operator_delete((void *)unaff_RBX[4])" identifier (argument_list "((void *)unaff_RBX[4])" ( (cast_expression "(void *)unaff_RBX[4]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_RBX[4]" identifier [ number_literal ])) ))) ;) })) (expression_statement "puVar2 = (undefined8 *)*unaff_RBX;" (assignment_expression "puVar2 = (undefined8 *)*unaff_RBX" identifier = (cast_expression "(undefined8 *)*unaff_RBX" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_RBX" * identifier))) ;) (while_statement "while (unaff_RBX != puVar2) {\n    puVar1 = (undefined8 *)*puVar2;\n    operator_delete(puVar2);\n    puVar2 = puVar1;\n  }" while (parenthesized_expression "(unaff_RBX != puVar2)" ( (binary_expression "unaff_RBX != puVar2" identifier != identifier) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar2;\n    operator_delete(puVar2);\n    puVar2 = puVar1;\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar2;" (assignment_expression "puVar1 = (undefined8 *)*puVar2" identifier = (cast_expression "(undefined8 *)*puVar2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "operator_delete(puVar2);" (call_expression "operator_delete(puVar2)" identifier (argument_list "(puVar2)" ( identifier ))) ;) (expression_statement "puVar2 = puVar1;" (assignment_expression "puVar2 = puVar1" identifier = identifier) ;) })) (expression_statement "operator_delete(unaff_RBX,0x188);" (call_expression "operator_delete(unaff_RBX,0x188)" identifier (argument_list "(unaff_RBX,0x188)" ( identifier , number_literal ))) ;) comment (expression_statement "_Unwind_Resume();" (call_expression "_Unwind_Resume()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00148f90(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}\n\n" (function_definition "void FUN_00148f90(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" primitive_type (function_declarator "FUN_00148f90(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" { (declaration "undefined8 *unaff_RBX;" type_identifier (pointer_declarator "*unaff_RBX" * identifier) ;) (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long unaff_R13;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_R13 != unaff_RBX[0x20])" ( (binary_expression "unaff_R13 != unaff_RBX[0x20]" identifier != (subscript_expression "unaff_RBX[0x20]" identifier [ number_literal ])) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x13] != 0)" ( (binary_expression "unaff_RBX[0x13] != 0" (subscript_expression "unaff_RBX[0x13]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[0x10] != 0)" ( (binary_expression "unaff_RBX[0x10] != 0" (subscript_expression "unaff_RBX[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[7] != 0)" ( (binary_expression "unaff_RBX[7] != 0" (subscript_expression "unaff_RBX[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(unaff_RBX[4] != 0)" ( (binary_expression "unaff_RBX[4] != 0" (subscript_expression "unaff_RBX[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar1 = (undefined8 *)*unaff_RBX;" (assignment_expression "puVar1 = (undefined8 *)*unaff_RBX" identifier = (cast_expression "(undefined8 *)*unaff_RBX" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*unaff_RBX" * identifier))) ;) (while_statement "while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" while (parenthesized_expression "(unaff_RBX != puVar1)" ( (binary_expression "unaff_RBX != puVar1" identifier != identifier) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00148f90(void)\n\n{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" (primitive_type "void") (function_declarator "FUN_00148f90(void)" (identifier "FUN_00148f90") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined8 *unaff_RBX;\n  undefined8 *puVar1;\n  long unaff_R13;\n  \n  if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }\n  if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }\n  puVar1 = (undefined8 *)*unaff_RBX;\n  while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70();\n                    \n  FUN_003688e0();\n}" ({ "{") (declaration "undefined8 *unaff_RBX;" (type_identifier "undefined8") (pointer_declarator "*unaff_RBX" (* "*") (identifier "unaff_RBX")) (; ";")) (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "long unaff_R13;" (sized_type_specifier "long" (long "long")) (identifier "unaff_R13") (; ";")) (if_statement "if (unaff_R13 != unaff_RBX[0x20]) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_R13 != unaff_RBX[0x20])" (( "(") (binary_expression "unaff_R13 != unaff_RBX[0x20]" (identifier "unaff_R13") (!= "!=") (subscript_expression "unaff_RBX[0x20]" (identifier "unaff_RBX") ([ "[") (number_literal "0x20") (] "]"))) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_RBX[0x13] != 0) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_RBX[0x13] != 0)" (( "(") (binary_expression "unaff_RBX[0x13] != 0" (subscript_expression "unaff_RBX[0x13]" (identifier "unaff_RBX") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_RBX[0x10] != 0) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_RBX[0x10] != 0)" (( "(") (binary_expression "unaff_RBX[0x10] != 0" (subscript_expression "unaff_RBX[0x10]" (identifier "unaff_RBX") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_RBX[7] != 0) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_RBX[7] != 0)" (( "(") (binary_expression "unaff_RBX[7] != 0" (subscript_expression "unaff_RBX[7]" (identifier "unaff_RBX") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_RBX[4] != 0) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(unaff_RBX[4] != 0)" (( "(") (binary_expression "unaff_RBX[4] != 0" (subscript_expression "unaff_RBX[4]" (identifier "unaff_RBX") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined8 *)*unaff_RBX;" (assignment_expression "puVar1 = (undefined8 *)*unaff_RBX" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)*unaff_RBX" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*unaff_RBX" (* "*") (identifier "unaff_RBX")))) (; ";")) (while_statement "while (unaff_RBX != puVar1) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" (while "while") (parenthesized_expression "(unaff_RBX != puVar1)" (( "(") (binary_expression "unaff_RBX != puVar1" (identifier "unaff_RBX") (!= "!=") (identifier "puVar1")) () ")")) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)*puVar1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" (identifier "thunk_FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_003688e0();" (call_expression "FUN_003688e0()" (identifier "FUN_003688e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* gold::General_options::add_plugin(char const*) [clone .cold.538] */

void gold::General_options::function_1(char *param_1)

{
  type_1 *puVar1;
  type_1 *var_3;
  type_1 *var_4;
  void *var_1;
  
  if (var_1 != (void *)var_3[0x20]) {
    var_2((void *)var_3[0x20]);
  }
  if ((void *)var_3[0x13] != (void *)0x0) {
    var_2((void *)var_3[0x13]);
  }
  if ((void *)var_3[0x10] != (void *)0x0) {
    var_2((void *)var_3[0x10]);
  }
  if ((void *)var_3[7] != (void *)0x0) {
    var_2((void *)var_3[7]);
  }
  if ((void *)var_3[4] != (void *)0x0) {
    var_2((void *)var_3[4]);
  }
  var_4 = (type_1 *)*var_3;
  while (var_3 != var_4) {
    puVar1 = (type_1 *)*var_4;
    var_2(var_4);
    var_4 = puVar1;
  }
  var_2(var_3,0x188);
                    /* WARNING: Subroutine does not return */
  var_5();
}


(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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))))))

void MASKED(void)

{
  undefined8 *unaff_RBX;
  undefined8 *puVar1;
  long unaff_R13;
  
  if (unaff_R13 != unaff_RBX[0x20]) {
    FUN_002dac70();
  }
  if (unaff_RBX[0x13] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[0x10] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[7] != 0) {
    FUN_002dac70();
  }
  if (unaff_RBX[4] != 0) {
    FUN_002dac70();
  }
  puVar1 = (undefined8 *)*unaff_RBX;
  while (unaff_RBX != puVar1) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_002dac70();
  }
  thunk_FUN_002dac70();
                    /* WARNING: Subroutine does not return */
  FUN_003688e0();
}

