
/* DWARF original prototype: bool handle_split_stack_section(Object * this, char * name) */

bool __thiscall gold::Object::handle_split_stack_section(Object *this,char *name)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4);
  if (iVar1 == 0) {
    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;
    return true;
  }
  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc);
  if (iVar1 != 0) {
    return false;
  }
  this->field_0x2c = this->field_0x2c & 0xef | 0x10;
  return true;
}



/* gold::Object::handle_split_stack_section(char const*) */

undefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);
  if (iVar1 == 0) {
    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);
    return 1;
  }
  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);
  if (iVar1 != 0) {
    return 0;
  }
  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);
  return 1;
}


lui gp,0x30
addiu gp,gp,-0x2e3c
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x3b8c(gp)
sw s1,0x20(sp)
or s1,a0,zero
sw s0,0x1c(sp)
or a0,a1,zero
or s0,a1,zero
sw gp,0x10(sp)
sw ra,0x24(sp)
lw a1,-0x7e1c(gp)
jalr t9
_addiu a1,a1,-0xfd4
beq v0,zero,0x0013d0a4
_lw gp,0x10(sp)
lw a1,-0x7e1c(gp)
or a0,s0,zero
lw t9,-0x3b8c(gp)
jalr t9
_addiu a1,a1,-0xfbc
beq v0,zero,0x0013d080
_lw ra,0x24(sp)
or v0,zero,zero
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x28
lbu v1,0x2c(s1)
li a0,0x1
li v0,0x1
lw s0,0x1c(sp)
ins v1,a0,0x4,0x1
sb v1,0x2c(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
lbu v1,0x2c(s1)
li a0,0x1
lw ra,0x24(sp)
li v0,0x1
lw s0,0x1c(sp)
ins v1,a0,0x5,0x1
sb v1,0x2c(s1)
lw s1,0x20(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "/* gold::Object::handle_split_stack_section(char const*) */\n\nundefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}\n\n" comment (function_definition "undefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_split_stack_section(Object *this,char *param_1)" identifier (parameter_list "(Object *this,char *param_1)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfd4" identifier + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" { (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20)" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Object)((byte)this[0x2c] & 0xdf | 0x20)" (parenthesized_expression "(Object)" ( identifier )) (argument_list "((byte)this[0x2c] & 0xdf | 0x20)" ( (binary_expression "(byte)this[0x2c] & 0xdf | 0x20" (binary_expression "(byte)this[0x2c] & 0xdf" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfbc" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10)" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Object)((byte)this[0x2c] & 0xef | 0x10)" (parenthesized_expression "(Object)" ( identifier )) (argument_list "((byte)this[0x2c] & 0xef | 0x10)" ( (binary_expression "(byte)this[0x2c] & 0xef | 0x10" (binary_expression "(byte)this[0x2c] & 0xef" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* DWARF original prototype: bool handle_split_stack_section(Object * this, char * name) */\n\nbool __thiscall gold::Object::handle_split_stack_section(Object *this,char *name)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;\n    return true;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return false;\n  }\n  this->field_0x2c = this->field_0x2c & 0xef | 0x10;\n  return true;\n}\n\n" comment (function_definition "bool __thiscall gold::Object::handle_split_stack_section(Object *this,char *name)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;\n    return true;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return false;\n  }\n  this->field_0x2c = this->field_0x2c & 0xef | 0x10;\n  return true;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_split_stack_section(Object *this,char *name)" identifier (parameter_list "(Object *this,char *name)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;\n    return true;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return false;\n  }\n  this->field_0x2c = this->field_0x2c & 0xef | 0x10;\n  return true;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfd4)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(name,PTR_s_alize_xindex_004323b4 + -0xfd4)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfd4" identifier + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;\n    return true;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    this->field_0x2c = this->field_0x2c & 0xdf | 0x20;\n    return true;\n  }" { (expression_statement "this->field_0x2c = this->field_0x2c & 0xdf | 0x20;" (assignment_expression "this->field_0x2c = this->field_0x2c & 0xdf | 0x20" (field_expression "this->field_0x2c" identifier -> field_identifier) = (binary_expression "this->field_0x2c & 0xdf | 0x20" (binary_expression "this->field_0x2c & 0xdf" (field_expression "this->field_0x2c" identifier -> field_identifier) & number_literal) | number_literal)) ;) (return_statement "return true;" return true ;) })) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(name,PTR_s_alize_xindex_004323b4 + -0xfbc)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(name,PTR_s_alize_xindex_004323b4 + -0xfbc)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfbc" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "this->field_0x2c = this->field_0x2c & 0xef | 0x10;" (assignment_expression "this->field_0x2c = this->field_0x2c & 0xef | 0x10" (field_expression "this->field_0x2c" identifier -> field_identifier) = (binary_expression "this->field_0x2c & 0xef | 0x10" (binary_expression "this->field_0x2c & 0xef" (field_expression "this->field_0x2c" identifier -> field_identifier) & number_literal) | number_literal)) ;) (return_statement "return true;" return true ;) })))
(translation_unit "undefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}\n\n" (function_definition "undefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Object::" identifier : : identifier : :) (function_declarator "handle_split_stack_section(Object *this,char *param_1)" identifier (parameter_list "(Object *this,char *param_1)" ( (parameter_declaration "Object *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfd4" identifier + number_literal) )))) ;) (if_statement "if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" { (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20)" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Object)((byte)this[0x2c] & 0xdf | 0x20)" (parenthesized_expression "(Object)" ( identifier )) (argument_list "((byte)this[0x2c] & 0xdf | 0x20)" ( (binary_expression "(byte)this[0x2c] & 0xdf | 0x20" (binary_expression "(byte)this[0x2c] & 0xdf" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" identifier = (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" ( (pointer_expression "*(code *)PTR_strcmp_00436644" * (cast_expression "(code *)PTR_strcmp_00436644" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" ( identifier , (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfbc" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10)" (subscript_expression "this[0x2c]" identifier [ number_literal ]) = (call_expression "(Object)((byte)this[0x2c] & 0xef | 0x10)" (parenthesized_expression "(Object)" ( identifier )) (argument_list "((byte)this[0x2c] & 0xef | 0x10)" ( (binary_expression "(byte)this[0x2c] & 0xef | 0x10" (binary_expression "(byte)this[0x2c] & 0xef" (cast_expression "(byte)this[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "this[0x2c]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) | LIT) )))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) | LIT) )))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __thiscall gold::Object::handle_split_stack_section(Object *this,char *param_1)\n\n{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" (type_identifier "undefined4") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Object::" (identifier "gold") (: ":") (: ":") (identifier "Object") (: ":") (: ":")) (function_declarator "handle_split_stack_section(Object *this,char *param_1)" (identifier "handle_split_stack_section") (parameter_list "(Object *this,char *param_1)" (( "(") (parameter_declaration "Object *this" (type_identifier "Object") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);\n  if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }\n  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);\n  if (iVar1 != 0) {\n    return 0;\n  }\n  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00436644" (* "*") (cast_expression "(code *)PTR_strcmp_00436644" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00436644"))) () ")")) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfd4" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xfd4")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);\n    return 1;\n  }" ({ "{") (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20)" (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (call_expression "(Object)((byte)this[0x2c] & 0xdf | 0x20)" (parenthesized_expression "(Object)" (( "(") (identifier "Object") () ")")) (argument_list "((byte)this[0x2c] & 0xdf | 0x20)" (( "(") (binary_expression "(byte)this[0x2c] & 0xdf | 0x20" (binary_expression "(byte)this[0x2c] & 0xdf" (cast_expression "(byte)this[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "0xdf")) (| "|") (number_literal "0x20")) () ")")))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);" (assignment_expression "iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" (parenthesized_expression "(*(code *)PTR_strcmp_00436644)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00436644" (* "*") (cast_expression "(code *)PTR_strcmp_00436644" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00436644"))) () ")")) (argument_list "(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + -0xfbc" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0xfbc")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);" (assignment_expression "this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10)" (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (call_expression "(Object)((byte)this[0x2c] & 0xef | 0x10)" (parenthesized_expression "(Object)" (( "(") (identifier "Object") () ")")) (argument_list "((byte)this[0x2c] & 0xef | 0x10)" (( "(") (binary_expression "(byte)this[0x2c] & 0xef | 0x10" (binary_expression "(byte)this[0x2c] & 0xef" (cast_expression "(byte)this[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "this[0x2c]" (identifier "this") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "0xef")) (| "|") (number_literal "0x10")) () ")")))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal)))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal)))))) (return_statement (number_literal)))))

/* gold::Object::MASKED(char const*) */

undefined4 __thiscall gold::Object::MASKED(Object *this,char *param_1)

{
  int iVar1;
  
  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfd4);
  if (iVar1 == 0) {
    this[0x2c] = (Object)((byte)this[0x2c] & 0xdf | 0x20);
    return 1;
  }
  iVar1 = (*(code *)PTR_strcmp_00436644)(param_1,PTR_s_alize_xindex_004323b4 + -0xfbc);
  if (iVar1 != 0) {
    return 0;
  }
  this[0x2c] = (Object)((byte)this[0x2c] & 0xef | 0x10);
  return 1;
}

