
/* WARNING: Unknown calling convention */

void __gmpn_iorn_n(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)

{
  int iVar1;
  
  iVar1 = -n;
  do {
    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];
    iVar1 = iVar1 + 1;
  } while (iVar1 != 0);
  return;
}



void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  
  iVar1 = param_4 * 4;
  param_4 = -param_4;
  do {
    *(uint *)(iVar1 + param_1 + param_4 * 4) =
         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);
    param_4 = param_4 + 1;
  } while (param_4 != 0);
  return;
}


PUSH ESI
PUSH EBX
MOV ECX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x14]
MOV EAX,ECX
SHL ECX,0x2
ADD ESI,ECX
ADD EBX,ECX
NEG EAX
ADD ECX,dword ptr [ESP + 0xc]
LEA ESI,[ESI]
MOV EDX,dword ptr [EBX + EAX*0x4]
NOT EDX
OR EDX,dword ptr [ESI + EAX*0x4]
MOV dword ptr [ECX + EAX*0x4],EDX
ADD EAX,0x1
JNZ 0x0007a520
POP EBX
POP ESI
RET
(translation_unit "void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}\n\n" (function_definition "void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" primitive_type (function_declarator "__gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = param_4 * 4;" (assignment_expression "iVar1 = param_4 * 4" identifier = (binary_expression "param_4 * 4" identifier * number_literal)) ;) (expression_statement "param_4 = -param_4;" (assignment_expression "param_4 = -param_4" identifier = (unary_expression "-param_4" - identifier)) ;) (do_statement "do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);" do (compound_statement "{\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  }" { (expression_statement "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);" (assignment_expression "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (pointer_expression "*(uint *)(iVar1 + param_1 + param_4 * 4)" * (cast_expression "(uint *)(iVar1 + param_1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + param_1 + param_4 * 4)" ( (binary_expression "iVar1 + param_1 + param_4 * 4" (binary_expression "iVar1 + param_1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) )))) = (binary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (unary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4)" ~ (pointer_expression "*(uint *)(param_3 + iVar1 + param_4 * 4)" * (cast_expression "(uint *)(param_3 + iVar1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + iVar1 + param_4 * 4)" ( (binary_expression "param_3 + iVar1 + param_4 * 4" (binary_expression "param_3 + iVar1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) ))))) | (pointer_expression "*(uint *)(param_2 + iVar1 + param_4 * 4)" * (cast_expression "(uint *)(param_2 + iVar1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar1 + param_4 * 4)" ( (binary_expression "param_2 + iVar1 + param_4 * 4" (binary_expression "param_2 + iVar1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) )))))) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid __gmpn_iorn_n(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)\n\n{\n  int iVar1;\n  \n  iVar1 = -n;\n  do {\n    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];\n    iVar1 = iVar1 + 1;\n  } while (iVar1 != 0);\n  return;\n}\n\n" comment (function_definition "void __gmpn_iorn_n(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)\n\n{\n  int iVar1;\n  \n  iVar1 = -n;\n  do {\n    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];\n    iVar1 = iVar1 + 1;\n  } while (iVar1 != 0);\n  return;\n}" primitive_type (function_declarator "__gmpn_iorn_n(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)" identifier (parameter_list "(mp_ptr rp,mp_srcptr up,mp_srcptr vp,mp_size_t n)" ( (parameter_declaration "mp_ptr rp" type_identifier identifier) , (parameter_declaration "mp_srcptr up" type_identifier identifier) , (parameter_declaration "mp_srcptr vp" type_identifier identifier) , (parameter_declaration "mp_size_t n" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = -n;\n  do {\n    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];\n    iVar1 = iVar1 + 1;\n  } while (iVar1 != 0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = -n;" (assignment_expression "iVar1 = -n" identifier = (unary_expression "-n" - identifier)) ;) (do_statement "do {\n    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];\n    iVar1 = iVar1 + 1;\n  } while (iVar1 != 0);" do (compound_statement "{\n    rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];\n    iVar1 = iVar1 + 1;\n  }" { (expression_statement "rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1];" (assignment_expression "rp[n + iVar1] = ~vp[n + iVar1] | up[n + iVar1]" (subscript_expression "rp[n + iVar1]" identifier [ (binary_expression "n + iVar1" identifier + identifier) ]) = (binary_expression "~vp[n + iVar1] | up[n + iVar1]" (unary_expression "~vp[n + iVar1]" ~ (subscript_expression "vp[n + iVar1]" identifier [ (binary_expression "n + iVar1" identifier + identifier) ])) | (subscript_expression "up[n + iVar1]" identifier [ (binary_expression "n + iVar1" identifier + identifier) ]))) ;) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (return_statement "return;" return ;) })))
(translation_unit "void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}\n\n" (function_definition "void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" primitive_type (function_declarator "__gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "iVar1 = param_4 * 4;" (assignment_expression "iVar1 = param_4 * 4" identifier = (binary_expression "param_4 * 4" identifier * number_literal)) ;) (expression_statement "param_4 = -param_4;" (assignment_expression "param_4 = -param_4" identifier = (unary_expression "-param_4" - identifier)) ;) (do_statement "do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);" do (compound_statement "{\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  }" { (expression_statement "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);" (assignment_expression "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (pointer_expression "*(uint *)(iVar1 + param_1 + param_4 * 4)" * (cast_expression "(uint *)(iVar1 + param_1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + param_1 + param_4 * 4)" ( (binary_expression "iVar1 + param_1 + param_4 * 4" (binary_expression "iVar1 + param_1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) )))) = (binary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (unary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4)" ~ (pointer_expression "*(uint *)(param_3 + iVar1 + param_4 * 4)" * (cast_expression "(uint *)(param_3 + iVar1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + iVar1 + param_4 * 4)" ( (binary_expression "param_3 + iVar1 + param_4 * 4" (binary_expression "param_3 + iVar1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) ))))) | (pointer_expression "*(uint *)(param_2 + iVar1 + param_4 * 4)" * (cast_expression "(uint *)(param_2 + iVar1 + param_4 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + iVar1 + param_4 * 4)" ( (binary_expression "param_2 + iVar1 + param_4 * 4" (binary_expression "param_2 + iVar1" identifier + identifier) + (binary_expression "param_4 * 4" identifier * number_literal)) )))))) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != 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) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) ))))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + (binary_expression IDENT * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (return_statement return ;) })))
(function_definition "void __gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" (primitive_type "void") (function_declarator "__gmpn_iorn_n(int param_1,int param_2,int param_3,int param_4)" (identifier "__gmpn_iorn_n") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  iVar1 = param_4 * 4;\n  param_4 = -param_4;\n  do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "iVar1 = param_4 * 4;" (assignment_expression "iVar1 = param_4 * 4" (identifier "iVar1") (= "=") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) (; ";")) (expression_statement "param_4 = -param_4;" (assignment_expression "param_4 = -param_4" (identifier "param_4") (= "=") (unary_expression "-param_4" (- "-") (identifier "param_4"))) (; ";")) (do_statement "do {\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  } while (param_4 != 0);" (do "do") (compound_statement "{\n    *(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);\n    param_4 = param_4 + 1;\n  }" ({ "{") (expression_statement "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);" (assignment_expression "*(uint *)(iVar1 + param_1 + param_4 * 4) =\n         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (pointer_expression "*(uint *)(iVar1 + param_1 + param_4 * 4)" (* "*") (cast_expression "(uint *)(iVar1 + param_1 + param_4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + param_1 + param_4 * 4)" (( "(") (binary_expression "iVar1 + param_1 + param_4 * 4" (binary_expression "iVar1 + param_1" (identifier "iVar1") (+ "+") (identifier "param_1")) (+ "+") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4)" (unary_expression "~*(uint *)(param_3 + iVar1 + param_4 * 4)" (~ "~") (pointer_expression "*(uint *)(param_3 + iVar1 + param_4 * 4)" (* "*") (cast_expression "(uint *)(param_3 + iVar1 + param_4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + iVar1 + param_4 * 4)" (( "(") (binary_expression "param_3 + iVar1 + param_4 * 4" (binary_expression "param_3 + iVar1" (identifier "param_3") (+ "+") (identifier "iVar1")) (+ "+") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) () ")"))))) (| "|") (pointer_expression "*(uint *)(param_2 + iVar1 + param_4 * 4)" (* "*") (cast_expression "(uint *)(param_2 + iVar1 + param_4 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + iVar1 + param_4 * 4)" (( "(") (binary_expression "param_2 + iVar1 + param_4 * 4" (binary_expression "param_2 + iVar1" (identifier "param_2") (+ "+") (identifier "iVar1")) (+ "+") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" (identifier "param_4") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void function_1(type_1 rp,type_2 up,type_2 vp,type_3 var_1)

{
  int var_2;
  
  var_2 = -var_1;
  do {
    rp[var_1 + var_2] = ~vp[var_1 + var_2] | up[var_1 + var_2];
    var_2 = var_2 + 1;
  } while (var_2 != 0);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))) (do_statement body: (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: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (return_statement))))

void MASKED(int param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  
  iVar1 = param_4 * 4;
  param_4 = -param_4;
  do {
    *(uint *)(iVar1 + param_1 + param_4 * 4) =
         ~*(uint *)(param_3 + iVar1 + param_4 * 4) | *(uint *)(param_2 + iVar1 + param_4 * 4);
    param_4 = param_4 + 1;
  } while (param_4 != 0);
  return;
}

