
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void set_final_data_size(Mips_output_data_plt<32,_true> * this) */

void __thiscall
anon_unknown.dwarf_29466b::Mips_output_data_plt<32,_true>::set_final_data_size
          (Mips_output_data_plt<32,_true> *this)

{
  byte bVar1;
  
  if ((-1 < *(int *)&this->field_0x20 << 1) && (-1 < *(int *)&this->field_0x20 << 3)) {
    bVar1 = this->field_0x20;
    this->plt0_entry_o32[5] =
         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_;
    this->plt0_entry_o32[4] = 0;
    this->field_0x20 = bVar1 & 0xbf | 0x40;
    return;
  }
                    /* WARNING: Subroutine does not return */
  Mips_output_data_mips_stubs<64,_false>::set_final_data_size
            ((Mips_output_data_mips_stubs<64,_false> *)this);
}



void FUN_000d7dc4(int param_1)

{
  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {
    *(int *)(param_1 + 0x14) =
         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);
    *(undefined4 *)(param_1 + 0x10) = 0;
    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000d784c();
}


lui gp,0x3f
addiu gp,gp,0x147c
addu gp,gp,t9
lw a1,0x44(a0)
lw v0,0x4c(a0)
lw v1,0x20(a0)
lw a2,0x48(a0)
addu v0,v0,a1
ext a1,v1,0x1e,0x1
bne a1,zero,0x000d7e18
_addu v0,v0,a2
ext v1,v1,0x1c,0x1
bne v1,zero,0x000d7e1c
_lw t9,-0x77f4(gp)
lbu v1,0x20(a0)
sw v0,0x14(a0)
li v0,0x1
sw zero,0x10(a0)
ins v1,v0,0x6,0x1
jr ra
_sb v1,0x20(a0)
lw t9,-0x77f4(gp)
addiu sp,sp,-0x20
addiu t9,t9,0x784c
sw gp,0x10(sp)
sw ra,0x1c(sp)
bal 0x000d784c
_nop
(translation_unit "void FUN_000d7dc4(int param_1)\n\n{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000d784c();\n}\n\n" (function_definition "void FUN_000d7dc4(int param_1)\n\n{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000d784c();\n}" primitive_type (function_declarator "FUN_000d7dc4(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_000d784c();\n}" { (if_statement "if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" if (parenthesized_expression "((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3))" ( (binary_expression "(-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)" (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) && (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 3)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 3" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 3" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) ))) )) (compound_statement "{\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);" (assignment_expression "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) + (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;" (assignment_expression "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf | 0x40" (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_000d784c();" (call_expression "FUN_000d784c()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void set_final_data_size(Mips_output_data_plt<32,_true> * this) */\n\nvoid __thiscall\nanon_unknown.dwarf_29466b::Mips_output_data_plt<32,_true>::set_final_data_size\n          (Mips_output_data_plt<32,_true> *this)\n\n{\n  byte bVar1;\n  \n  if ((-1 < *(int *)&this->field_0x20 << 1) && (-1 < *(int *)&this->field_0x20 << 3)) {\n    bVar1 = this->field_0x20;\n    this->plt0_entry_o32[5] =\n         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_;\n    this->plt0_entry_o32[4] = 0;\n    this->field_0x20 = bVar1 & 0xbf | 0x40;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  Mips_output_data_mips_stubs<64,_false>::set_final_data_size\n            ((Mips_output_data_mips_stubs<64,_false> *)this);\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_29466b::Mips_output_data_plt<32,_true>::set_final_data_size\n          (Mips_output_data_plt<32,_true> *this)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_29466b::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::set_final_data_size\n          (Mips_output_data_plt<32,_true> *this)\n\n{\n  byte" identifier > : : (function_declarator "set_final_data_size\n          (Mips_output_data_plt<32,_true> *this)" identifier (parameter_list "(Mips_output_data_plt<32,_true> *this)" ( (parameter_declaration "Mips_output_data_plt" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) ))) { identifier) identifier ;) (if_statement "if ((-1 < *(int *)&this->field_0x20 << 1) && (-1 < *(int *)&this->field_0x20 << 3)) {\n    bVar1 = this->field_0x20;\n    this->plt0_entry_o32[5] =\n         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_;\n    this->plt0_entry_o32[4] = 0;\n    this->field_0x20 = bVar1 & 0xbf | 0x40;\n    return;\n  }" if (parenthesized_expression "((-1 < *(int *)&this->field_0x20 << 1) && (-1 < *(int *)&this->field_0x20 << 3))" ( (binary_expression "(-1 < *(int *)&this->field_0x20 << 1) && (-1 < *(int *)&this->field_0x20 << 3)" (parenthesized_expression "(-1 < *(int *)&this->field_0x20 << 1)" ( (binary_expression "-1 < *(int *)&this->field_0x20 << 1" number_literal < (binary_expression "*(int *)&this->field_0x20 << 1" (pointer_expression "*(int *)&this->field_0x20" * (cast_expression "(int *)&this->field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x20" & (field_expression "this->field_0x20" identifier -> field_identifier)))) << number_literal)) )) && (parenthesized_expression "(-1 < *(int *)&this->field_0x20 << 3)" ( (binary_expression "-1 < *(int *)&this->field_0x20 << 3" number_literal < (binary_expression "*(int *)&this->field_0x20 << 3" (pointer_expression "*(int *)&this->field_0x20" * (cast_expression "(int *)&this->field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x20" & (field_expression "this->field_0x20" identifier -> field_identifier)))) << number_literal)) ))) )) (compound_statement "{\n    bVar1 = this->field_0x20;\n    this->plt0_entry_o32[5] =\n         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_;\n    this->plt0_entry_o32[4] = 0;\n    this->field_0x20 = bVar1 & 0xbf | 0x40;\n    return;\n  }" { (expression_statement "bVar1 = this->field_0x20;" (assignment_expression "bVar1 = this->field_0x20" identifier = (field_expression "this->field_0x20" identifier -> field_identifier)) ;) (expression_statement "this->plt0_entry_o32[5] =\n         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_;" (assignment_expression "this->plt0_entry_o32[5] =\n         this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_" (subscript_expression "this->plt0_entry_o32[5]" (field_expression "this->plt0_entry_o32" identifier -> field_identifier) [ number_literal ]) = (binary_expression "this->plt_header_size_ + this->plt_mips_offset_ + this->plt_comp_offset_" (binary_expression "this->plt_header_size_ + this->plt_mips_offset_" (field_expression "this->plt_header_size_" identifier -> field_identifier) + (field_expression "this->plt_mips_offset_" identifier -> field_identifier)) + (field_expression "this->plt_comp_offset_" identifier -> field_identifier))) ;) (expression_statement "this->plt0_entry_o32[4] = 0;" (assignment_expression "this->plt0_entry_o32[4] = 0" (subscript_expression "this->plt0_entry_o32[4]" (field_expression "this->plt0_entry_o32" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "this->field_0x20 = bVar1 & 0xbf | 0x40;" (assignment_expression "this->field_0x20 = bVar1 & 0xbf | 0x40" (field_expression "this->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0xbf | 0x40" (binary_expression "bVar1 & 0xbf" identifier & number_literal) | number_literal)) ;) (return_statement "return;" return ;) })) comment (ERROR "Mips_output_data_mips_stubs<64,_false>::set_final_data_size\n            ((Mips_output_data_mips_stubs<64,_false> *)this);\n}" (binary_expression "Mips_output_data_mips_stubs<64" identifier < number_literal) (ERROR ",_false" , identifier) > (ERROR "::" : :) identifier ( (parenthesized_expression "(Mips_output_data_mips_stubs<64,_false> *)this)" ( (comma_expression "Mips_output_data_mips_stubs<64,_false> *)this" (binary_expression "Mips_output_data_mips_stubs<64" identifier < number_literal) , (binary_expression "_false> *)this" identifier > (pointer_expression "*)this" * (ERROR ")" )) identifier))) )) ; }))
(translation_unit "void FUN_000d7dc4(int param_1)\n\n{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    \n  FUN_000d784c();\n}\n\n" (function_definition "void FUN_000d7dc4(int param_1)\n\n{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    \n  FUN_000d784c();\n}" primitive_type (function_declarator "FUN_000d7dc4(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    \n  FUN_000d784c();\n}" { (if_statement "if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" if (parenthesized_expression "((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3))" ( (binary_expression "(-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)" (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) )) && (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 3)" ( (binary_expression "-1 < *(int *)(param_1 + 0x20) << 3" number_literal < (binary_expression "*(int *)(param_1 + 0x20) << 3" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) << number_literal)) ))) )) (compound_statement "{\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" { (expression_statement "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);" (assignment_expression "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x44)" * (cast_expression "(int *)(param_1 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) + (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;" (assignment_expression "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf | 0x40" (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_000d784c();" (call_expression "FUN_000d784c()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_000d7dc4(int param_1)\n\n{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    \n  FUN_000d784c();\n}" (primitive_type "void") (function_declarator "FUN_000d7dc4(int param_1)" (identifier "FUN_000d7dc4") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }\n                    \n  FUN_000d784c();\n}" ({ "{") (if_statement "if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" (if "if") (parenthesized_expression "((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3))" (( "(") (binary_expression "(-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)" (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 1)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x20) << 1" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x20) << 1" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "1"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < *(int *)(param_1 + 0x20) << 3)" (( "(") (binary_expression "-1 < *(int *)(param_1 + 0x20) << 3" (number_literal "-1") (< "<") (binary_expression "*(int *)(param_1 + 0x20) << 3" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "3"))) () ")"))) () ")")) (compound_statement "{\n    *(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);\n    *(undefined4 *)(param_1 + 0x10) = 0;\n    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;\n    return;\n  }" ({ "{") (expression_statement "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);" (assignment_expression "*(int *)(param_1 + 0x14) =\n         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48)" (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44)" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x44)" (* "*") (cast_expression "(int *)(param_1 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;" (assignment_expression "*(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf | 0x40" (binary_expression "*(byte *)(param_1 + 0x20) & 0xbf" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0xbf")) (| "|") (number_literal "0x40"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_000d784c();" (call_expression "FUN_000d784c()" (identifier "FUN_000d784c") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(int param_1)

{
  if ((-1 < *(int *)(param_1 + 0x20) << 1) && (-1 < *(int *)(param_1 + 0x20) << 3)) {
    *(int *)(param_1 + 0x14) =
         *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x44) + *(int *)(param_1 + 0x48);
    *(undefined4 *)(param_1 + 0x10) = 0;
    *(byte *)(param_1 + 0x20) = *(byte *)(param_1 + 0x20) & 0xbf | 0x40;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_000d784c();
}

