
/* WARNING: Unknown calling convention */

void check_section_callback
               (lang_wild_statement_type *ptr,wildcard_list *sec,asection *section,
               flag_info *sflag_info,lang_input_statement_type *file,void *output)

{
  bfd_boolean bVar1;
  
  bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output);
  if (((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&
     ((section->flags & 8) == 0)) {
    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;
  }
  return;
}



void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,
                 undefined4 param_5,int param_6)

{
  int iVar1;
  
  iVar1 = FUN_00023310();
  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {
    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;
  }
  return;
}


PUSH ESI
PUSH EBX
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x24]
MOV EAX,EBX
MOV EDX,ESI
CALL 0x00023310
TEST EAX,EAX
JNZ 0x000233e1
MOV EAX,dword ptr [EBX + 0x54]
TEST EAX,EAX
JZ 0x000233f0
ADD ESP,0x4
POP EBX
POP ESI
RET
TEST byte ptr [EBX + 0x14],0x8
JNZ 0x000233e1
AND byte ptr [ESI + 0x54],0xfb
JMP 0x000233e1
(translation_unit "void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)\n\n{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}\n\n" (function_definition "void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)\n\n{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = FUN_00023310();" (assignment_expression "iVar1 = FUN_00023310()" identifier = (call_expression "FUN_00023310()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" if (parenthesized_expression "(((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0))" ( (binary_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)" (parenthesized_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0))" ( (binary_expression "(iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_3 + 0x54) == 0)" ( (binary_expression "*(int *)(param_3 + 0x54) == 0" (pointer_expression "*(int *)(param_3 + 0x54)" * (cast_expression "(int *)(param_3 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(param_3 + 0x14) & 8) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x14) & 8) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x14) & 8)" ( (binary_expression "*(byte *)(param_3 + 0x14) & 8" (pointer_expression "*(byte *)(param_3 + 0x14)" * (cast_expression "(byte *)(param_3 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" { (expression_statement "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;" (assignment_expression "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" * (cast_expression "(byte *)(param_6 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x54)" ( (binary_expression "param_6 + 0x54" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" * (cast_expression "(byte *)(param_6 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x54)" ( (binary_expression "param_6 + 0x54" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid check_section_callback\n               (lang_wild_statement_type *ptr,wildcard_list *sec,asection *section,\n               flag_info *sflag_info,lang_input_statement_type *file,void *output)\n\n{\n  bfd_boolean bVar1;\n  \n  bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output);\n  if (((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0)) {\n    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;\n  }\n  return;\n}\n\n" comment (function_definition "void check_section_callback\n               (lang_wild_statement_type *ptr,wildcard_list *sec,asection *section,\n               flag_info *sflag_info,lang_input_statement_type *file,void *output)\n\n{\n  bfd_boolean bVar1;\n  \n  bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output);\n  if (((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0)) {\n    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;\n  }\n  return;\n}" primitive_type (function_declarator "check_section_callback\n               (lang_wild_statement_type *ptr,wildcard_list *sec,asection *section,\n               flag_info *sflag_info,lang_input_statement_type *file,void *output)" identifier (parameter_list "(lang_wild_statement_type *ptr,wildcard_list *sec,asection *section,\n               flag_info *sflag_info,lang_input_statement_type *file,void *output)" ( (parameter_declaration "lang_wild_statement_type *ptr" type_identifier (pointer_declarator "*ptr" * identifier)) , (parameter_declaration "wildcard_list *sec" type_identifier (pointer_declarator "*sec" * identifier)) , (parameter_declaration "asection *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "flag_info *sflag_info" type_identifier (pointer_declarator "*sflag_info" * identifier)) , (parameter_declaration "lang_input_statement_type *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "void *output" primitive_type (pointer_declarator "*output" * identifier)) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  \n  bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output);\n  if (((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0)) {\n    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;\n  }\n  return;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (expression_statement "bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output);" (assignment_expression "bVar1 = unique_section_p(section,(lang_output_section_statement_type *)output)" identifier = (call_expression "unique_section_p(section,(lang_output_section_statement_type *)output)" identifier (argument_list "(section,(lang_output_section_statement_type *)output)" ( identifier , (cast_expression "(lang_output_section_statement_type *)output" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0)) {\n    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;\n  }" if (parenthesized_expression "(((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0))" ( (binary_expression "((bVar1 == 0) && (section->output_section == (bfd_section *)0x0)) &&\n     ((section->flags & 8) == 0)" (parenthesized_expression "((bVar1 == 0) && (section->output_section == (bfd_section *)0x0))" ( (binary_expression "(bVar1 == 0) && (section->output_section == (bfd_section *)0x0)" (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(section->output_section == (bfd_section *)0x0)" ( (binary_expression "section->output_section == (bfd_section *)0x0" (field_expression "section->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((section->flags & 8) == 0)" ( (binary_expression "(section->flags & 8) == 0" (parenthesized_expression "(section->flags & 8)" ( (binary_expression "section->flags & 8" (field_expression "section->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;\n  }" { (expression_statement "*(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb;" (assignment_expression "*(byte *)((int)output + 0x54) = *(byte *)((int)output + 0x54) & 0xfb" (pointer_expression "*(byte *)((int)output + 0x54)" * (cast_expression "(byte *)((int)output + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)output + 0x54)" ( (binary_expression "(int)output + 0x54" (cast_expression "(int)output" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)output + 0x54) & 0xfb" (pointer_expression "*(byte *)((int)output + 0x54)" * (cast_expression "(byte *)((int)output + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)output + 0x54)" ( (binary_expression "(int)output + 0x54" (cast_expression "(int)output" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)\n\n{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}\n\n" (function_definition "void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)\n\n{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = FUN_00023310();" (assignment_expression "iVar1 = FUN_00023310()" identifier = (call_expression "FUN_00023310()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" if (parenthesized_expression "(((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0))" ( (binary_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)" (parenthesized_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0))" ( (binary_expression "(iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(*(int *)(param_3 + 0x54) == 0)" ( (binary_expression "*(int *)(param_3 + 0x54) == 0" (pointer_expression "*(int *)(param_3 + 0x54)" * (cast_expression "(int *)(param_3 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(byte *)(param_3 + 0x14) & 8) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x14) & 8) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x14) & 8)" ( (binary_expression "*(byte *)(param_3 + 0x14) & 8" (pointer_expression "*(byte *)(param_3 + 0x14)" * (cast_expression "(byte *)(param_3 + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x14)" ( (binary_expression "param_3 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" { (expression_statement "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;" (assignment_expression "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" * (cast_expression "(byte *)(param_6 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x54)" ( (binary_expression "param_6 + 0x54" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" * (cast_expression "(byte *)(param_6 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x54)" ( (binary_expression "param_6 + 0x54" identifier + number_literal) )))) & number_literal)) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)\n\n{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000233c0(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" (identifier "FUN_000233c0") (parameter_list "(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = FUN_00023310();\n  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "iVar1 = FUN_00023310();" (assignment_expression "iVar1 = FUN_00023310()" (identifier "iVar1") (= "=") (call_expression "FUN_00023310()" (identifier "FUN_00023310") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" (if "if") (parenthesized_expression "(((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0))" (( "(") (binary_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)" (parenthesized_expression "((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0))" (( "(") (binary_expression "(iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_3 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_3 + 0x54) == 0" (pointer_expression "*(int *)(param_3 + 0x54)" (* "*") (cast_expression "(int *)(param_3 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x54)" (( "(") (binary_expression "param_3 + 0x54" (identifier "param_3") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(param_3 + 0x14) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(param_3 + 0x14) & 8) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x14) & 8)" (( "(") (binary_expression "*(byte *)(param_3 + 0x14) & 8" (pointer_expression "*(byte *)(param_3 + 0x14)" (* "*") (cast_expression "(byte *)(param_3 + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x14)" (( "(") (binary_expression "param_3 + 0x14" (identifier "param_3") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;\n  }" ({ "{") (expression_statement "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;" (assignment_expression "*(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" (* "*") (cast_expression "(byte *)(param_6 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x54)" (( "(") (binary_expression "param_6 + 0x54" (identifier "param_6") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "*(byte *)(param_6 + 0x54) & 0xfb" (pointer_expression "*(byte *)(param_6 + 0x54)" (* "*") (cast_expression "(byte *)(param_6 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x54)" (( "(") (binary_expression "param_6 + 0x54" (identifier "param_6") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "0xfb"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1
               (type_1 *ptr,type_2 *sec,type_3 *section,
               type_4 *sflag_info,type_5 *file,void *output)

{
  type_6 var_2;
  
  var_2 = var_1(section,(type_7 *)output);
  if (((var_2 == 0) && (section->output_section == (type_8 *)0x0)) &&
     ((section->flags & 8) == 0)) {
    *(type_9 *)((int)output + 0x54) = *(type_9 *)((int)output + 0x54) & 0xfb;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (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: (parenthesized_expression (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))))) consequence: (compound_statement (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: (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)))))) (return_statement))))

void MASKED(undefined4 param_1,undefined4 param_2,int param_3,undefined4 param_4,
                 undefined4 param_5,int param_6)

{
  int iVar1;
  
  iVar1 = FUN_00023310();
  if (((iVar1 == 0) && (*(int *)(param_3 + 0x54) == 0)) && ((*(byte *)(param_3 + 0x14) & 8) == 0)) {
    *(byte *)(param_6 + 0x54) = *(byte *)(param_6 + 0x54) & 0xfb;
  }
  return;
}

