
uchar * __regparm3 PushLongPixel(EndianType endian,uchar *pixels,uint *pixel)

{
  uint uVar1;
  
  uVar1 = *(uint *)pixels;
  if (endian != LSBEndian) {
    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
  }
  *pixel = uVar1;
  return pixels + 4;
}



uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)

{
  uint uVar1;
  
  uVar1 = *param_2;
  if (param_1 != 1) {
    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
  }
  *param_3 = uVar1;
  return param_2 + 1;
}


PUSH EBX
LEA EBX,[EDX + 0x4]
MOV EDX,dword ptr [EDX]
CMP EAX,0x1
JZ 0x001773ad
BSWAP EDX
MOV EAX,EBX
MOV dword ptr [ECX],EDX
POP EBX
RET
(translation_unit "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *param_2;\n  if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *param_3 = uVar1;\n  return param_2 + 1;\n}\n\n" (ERROR "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" (binary_expression "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_001773a0(int param_1,uint *param_2,uint *param_3)" identifier (argument_list "(int param_1,uint *param_2,uint *param_3)" ( (ERROR "int" identifier) identifier , (binary_expression "uint *param_2" identifier * identifier) , (binary_expression "uint *param_3" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *param_2;\n  if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *param_3 = uVar1;\n  return param_2 + 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" if (parenthesized_expression "(param_1 != 1)" ( (binary_expression "param_1 != 1" identifier != number_literal) )) (compound_statement "{\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" { (expression_statement "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;) }))
(translation_unit "uchar * __regparm3 PushLongPixel(EndianType endian,uchar *pixels,uint *pixel)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)pixels;\n  if (endian != LSBEndian) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *pixel = uVar1;\n  return pixels + 4;\n}\n\n" (ERROR "uchar * __regparm3 PushLongPixel(EndianType endian,uchar *pixels,uint *pixel)" (binary_expression "uchar * __regparm3 PushLongPixel(EndianType endian,uchar *pixels,uint *pixel)" identifier * (ERROR "__regparm3" identifier) (call_expression "PushLongPixel(EndianType endian,uchar *pixels,uint *pixel)" identifier (argument_list "(EndianType endian,uchar *pixels,uint *pixel)" ( identifier (ERROR "endian" identifier) , (binary_expression "uchar *pixels" identifier * identifier) , (binary_expression "uint *pixel" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)pixels;\n  if (endian != LSBEndian) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *pixel = uVar1;\n  return pixels + 4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)pixels;" (assignment_expression "uVar1 = *(uint *)pixels" identifier = (pointer_expression "*(uint *)pixels" * (cast_expression "(uint *)pixels" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (endian != LSBEndian) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" if (parenthesized_expression "(endian != LSBEndian)" ( (binary_expression "endian != LSBEndian" identifier != identifier) )) (compound_statement "{\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" { (expression_statement "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*pixel = uVar1;" (assignment_expression "*pixel = uVar1" (pointer_expression "*pixel" * identifier) = identifier) ;) (return_statement "return pixels + 4;" return (binary_expression "pixels + 4" identifier + number_literal) ;) }))
(translation_unit "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *param_2;\n  if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *param_3 = uVar1;\n  return param_2 + 1;\n}\n\n" (ERROR "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" (binary_expression "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_001773a0(int param_1,uint *param_2,uint *param_3)" identifier (argument_list "(int param_1,uint *param_2,uint *param_3)" ( (ERROR "int" identifier) identifier , (binary_expression "uint *param_2" identifier * identifier) , (binary_expression "uint *param_3" identifier * identifier) ))))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *param_2;\n  if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *param_3 = uVar1;\n  return param_2 + 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" if (parenthesized_expression "(param_1 != 1)" ( (binary_expression "param_1 != 1" identifier != number_literal) )) (compound_statement "{\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" { (expression_statement "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" identifier = (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal))) ;) })) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( (ERROR IDENT) IDENT , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return (binary_expression IDENT + LIT) ;) }))
(ERROR "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" (binary_expression "uint * __regparm3 FUN_001773a0(int param_1,uint *param_2,uint *param_3)" (identifier "uint") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_001773a0(int param_1,uint *param_2,uint *param_3)" (identifier "FUN_001773a0") (argument_list "(int param_1,uint *param_2,uint *param_3)" (( "(") (ERROR "int" (identifier "int")) (identifier "param_1") (, ",") (binary_expression "uint *param_2" (identifier "uint") (* "*") (identifier "param_2")) (, ",") (binary_expression "uint *param_3" (identifier "uint") (* "*") (identifier "param_3")) () ")"))))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *param_2;\n  if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }\n  *param_3 = uVar1;\n  return param_2 + 1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" (identifier "uVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (param_1 != 1) {\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" (if "if") (parenthesized_expression "(param_1 != 1)" (( "(") (binary_expression "param_1 != 1" (identifier "param_1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;\n  }" ({ "{") (expression_statement "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;" (assignment_expression "uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (identifier "uVar1") (= "=") (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18")))) (; ";")) (} "}"))) (expression_statement "*param_3 = uVar1;" (assignment_expression "*param_3 = uVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar1")) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";")) (} "}"))

uchar * __regparm3 PushLongPixel(EndianType var_1,uchar *var_4,type_1 *pixel)

{
  type_1 var_3;
  
  var_3 = *(type_1 *)var_4;
  if (var_1 != var_2) {
    var_3 = var_3 >> 0x18 | (var_3 & 0xff0000) >> 8 | (var_3 & 0xff00) << 8 | var_3 << 0x18;
  }
  *pixel = var_3;
  return var_4 + 4;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (ERROR (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)))))) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (binary_expression left: (identifier) right: (number_literal)))))

uint * __regparm3 MASKED(int param_1,uint *param_2,uint *param_3)

{
  uint uVar1;
  
  uVar1 = *param_2;
  if (param_1 != 1) {
    uVar1 = uVar1 >> 0x18 | (uVar1 & 0xff0000) >> 8 | (uVar1 & 0xff00) << 8 | uVar1 << 0x18;
  }
  *param_3 = uVar1;
  return param_2 + 1;
}

