
size_t GetBytesPerRow(size_t columns,size_t samples_per_pixel,size_t bits_per_pixel,
                     MagickBooleanType pad)

{
  if (bits_per_pixel == 0xc) {
    return columns * 0x10 * samples_per_pixel >> 3;
  }
  if (bits_per_pixel < 0xd) {
    if (bits_per_pixel == 1) {
      return (samples_per_pixel * columns + 0x1f >> 5) << 2;
    }
    if (bits_per_pixel == 10) {
      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)
             >> 5) << 2;
    }
  }
  else {
    if (bits_per_pixel == 0x20) {
      return columns * 0x20 * samples_per_pixel >> 3;
    }
    if (bits_per_pixel == 0x40) {
      return columns * 0x40 * samples_per_pixel >> 3;
    }
    if (bits_per_pixel == 0x10) {
      return columns * 0x10 * samples_per_pixel >> 3;
    }
  }
  return (samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2;
}



uint FUN_00200e80(int param_1,int param_2,uint param_3)

{
  if (param_3 == 0xc) {
    return (uint)(param_1 * 0x10 * param_2) >> 3;
  }
  if (param_3 < 0xd) {
    if (param_3 == 1) {
      return (param_2 * param_1 + 0x1fU >> 5) << 2;
    }
    if (param_3 == 10) {
      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2
      ;
    }
  }
  else {
    if (param_3 == 0x20) {
      return (uint)(param_1 * 0x20 * param_2) >> 3;
    }
    if (param_3 == 0x40) {
      return (uint)(param_1 * 0x40 * param_2) >> 3;
    }
    if (param_3 == 0x10) {
      return (uint)(param_1 * 0x10 * param_2) >> 3;
    }
  }
  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;
}


li v0,0xc
beq a2,v0,0x00200f44
_sll v1,a0,0x4
sltiu v0,a2,0xd
bne v0,zero,0x00200ed0
_li v0,0x20
beq a2,v0,0x00200f0c
_sll v0,a0,0x5
li v0,0x40
beq a2,v0,0x00200f38
_sll v0,a0,0x6
li v0,0x10
beq a2,v0,0x00200f18
_nop
mul v0,a1,a0
mul v0,v0,a2
addiu v0,v0,0x1f
srl v0,v0,0x5
jr ra
_sll v0,v0,0x2
li v0,0x1
beq a2,v0,0x00200f28
_mul v0,a1,a0
li v0,0xa
bne a2,v0,0x00200eb8
_nop
mul v0,a1,a0
lui a0,0xaaaa
ori a0,a0,0xaaab
addiu v0,v0,0x2
multu v0,a0
mfhi v0
ext v0,v0,0x1,0x1b
jr ra
_sll v0,v0,0x2
mul v0,v0,a1
jr ra
_srl v0,v0,0x3
sll v0,a0,0x4
mul v0,v0,a1
jr ra
_srl v0,v0,0x3
addiu v0,v0,0x1f
srl v0,v0,0x5
jr ra
_sll v0,v0,0x2
mul v0,v0,a1
jr ra
_srl v0,v0,0x3
mul v0,v1,a1
jr ra
_srl v0,v0,0x3
(translation_unit "uint FUN_00200e80(int param_1,int param_2,uint param_3)\n\n{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}\n\n" (function_definition "uint FUN_00200e80(int param_1,int param_2,uint param_3)\n\n{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" type_identifier (function_declarator "FUN_00200e80(int param_1,int param_2,uint param_3)" identifier (parameter_list "(int param_1,int param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" { (if_statement "if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" if (parenthesized_expression "(param_3 == 0xc)" ( (binary_expression "param_3 == 0xc" identifier == number_literal) )) (compound_statement "{\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" { (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x10 * param_2)" ( (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" if (parenthesized_expression "(param_3 < 0xd)" ( (binary_expression "param_3 < 0xd" identifier < number_literal) )) (compound_statement "{\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }" { (if_statement "if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" if (parenthesized_expression "(param_3 == 1)" ( (binary_expression "param_3 == 1" identifier == number_literal) )) (compound_statement "{\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" { (return_statement "return (param_2 * param_1 + 0x1fU >> 5) << 2;" return (binary_expression "(param_2 * param_1 + 0x1fU >> 5) << 2" (parenthesized_expression "(param_2 * param_1 + 0x1fU >> 5)" ( (binary_expression "param_2 * param_1 + 0x1fU >> 5" (binary_expression "param_2 * param_1 + 0x1fU" (binary_expression "param_2 * param_1" identifier * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })) (if_statement "if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" if (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) (compound_statement "{\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" { (return_statement "return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;" return (binary_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2" (parenthesized_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5)" ( (binary_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5" (call_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" ( (binary_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4" (cast_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab" (call_expression "(ulonglong)(param_2 * param_1 + 2)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 * param_1 + 2)" ( (binary_expression "param_2 * param_1 + 2" (binary_expression "param_2 * param_1" identifier * identifier) + number_literal) ))) * number_literal) >> number_literal) ))) << number_literal) ))) >> number_literal) )) << number_literal) ;) })) }) (else_clause "else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" else (compound_statement "{\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" { (if_statement "if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x20)" ( (binary_expression "param_3 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x20 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x20 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x20 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x20 * param_2)" ( (binary_expression "param_1 * 0x20 * param_2" (binary_expression "param_1 * 0x20" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x40)" ( (binary_expression "param_3 == 0x40" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x40 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x40 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x40 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x40 * param_2)" ( (binary_expression "param_1 * 0x40 * param_2" (binary_expression "param_1 * 0x40" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x10)" ( (binary_expression "param_3 == 0x10" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x10 * param_2)" ( (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) }))) (return_statement "return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;" return (binary_expression "(param_2 * param_1 * param_3 + 0x1f >> 5) << 2" (parenthesized_expression "(param_2 * param_1 * param_3 + 0x1f >> 5)" ( (binary_expression "param_2 * param_1 * param_3 + 0x1f >> 5" (binary_expression "param_2 * param_1 * param_3 + 0x1f" (binary_expression "param_2 * param_1 * param_3" (binary_expression "param_2 * param_1" identifier * identifier) * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })))
(translation_unit "size_t GetBytesPerRow(size_t columns,size_t samples_per_pixel,size_t bits_per_pixel,\n                     MagickBooleanType pad)\n\n{\n  if (bits_per_pixel == 0xc) {\n    return columns * 0x10 * samples_per_pixel >> 3;\n  }\n  if (bits_per_pixel < 0xd) {\n    if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }\n    if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }\n  }\n  else {\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }\n  return (samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2;\n}\n\n" (function_definition "size_t GetBytesPerRow(size_t columns,size_t samples_per_pixel,size_t bits_per_pixel,\n                     MagickBooleanType pad)\n\n{\n  if (bits_per_pixel == 0xc) {\n    return columns * 0x10 * samples_per_pixel >> 3;\n  }\n  if (bits_per_pixel < 0xd) {\n    if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }\n    if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }\n  }\n  else {\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }\n  return (samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2;\n}" primitive_type (function_declarator "GetBytesPerRow(size_t columns,size_t samples_per_pixel,size_t bits_per_pixel,\n                     MagickBooleanType pad)" identifier (parameter_list "(size_t columns,size_t samples_per_pixel,size_t bits_per_pixel,\n                     MagickBooleanType pad)" ( (parameter_declaration "size_t columns" primitive_type identifier) , (parameter_declaration "size_t samples_per_pixel" primitive_type identifier) , (parameter_declaration "size_t bits_per_pixel" primitive_type identifier) , (parameter_declaration "MagickBooleanType pad" type_identifier identifier) ))) (compound_statement "{\n  if (bits_per_pixel == 0xc) {\n    return columns * 0x10 * samples_per_pixel >> 3;\n  }\n  if (bits_per_pixel < 0xd) {\n    if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }\n    if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }\n  }\n  else {\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }\n  return (samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2;\n}" { (if_statement "if (bits_per_pixel == 0xc) {\n    return columns * 0x10 * samples_per_pixel >> 3;\n  }" if (parenthesized_expression "(bits_per_pixel == 0xc)" ( (binary_expression "bits_per_pixel == 0xc" identifier == number_literal) )) (compound_statement "{\n    return columns * 0x10 * samples_per_pixel >> 3;\n  }" { (return_statement "return columns * 0x10 * samples_per_pixel >> 3;" return (binary_expression "columns * 0x10 * samples_per_pixel >> 3" (binary_expression "columns * 0x10 * samples_per_pixel" (binary_expression "columns * 0x10" identifier * number_literal) * identifier) >> number_literal) ;) })) (if_statement "if (bits_per_pixel < 0xd) {\n    if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }\n    if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }\n  }\n  else {\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }" if (parenthesized_expression "(bits_per_pixel < 0xd)" ( (binary_expression "bits_per_pixel < 0xd" identifier < number_literal) )) (compound_statement "{\n    if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }\n    if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }\n  }" { (if_statement "if (bits_per_pixel == 1) {\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }" if (parenthesized_expression "(bits_per_pixel == 1)" ( (binary_expression "bits_per_pixel == 1" identifier == number_literal) )) (compound_statement "{\n      return (samples_per_pixel * columns + 0x1f >> 5) << 2;\n    }" { (return_statement "return (samples_per_pixel * columns + 0x1f >> 5) << 2;" return (binary_expression "(samples_per_pixel * columns + 0x1f >> 5) << 2" (parenthesized_expression "(samples_per_pixel * columns + 0x1f >> 5)" ( (binary_expression "samples_per_pixel * columns + 0x1f >> 5" (binary_expression "samples_per_pixel * columns + 0x1f" (binary_expression "samples_per_pixel * columns" identifier * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })) (if_statement "if (bits_per_pixel == 10) {\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }" if (parenthesized_expression "(bits_per_pixel == 10)" ( (binary_expression "bits_per_pixel == 10" identifier == number_literal) )) (compound_statement "{\n      return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;\n    }" { (return_statement "return ((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2;" return (binary_expression "((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5) << 2" (parenthesized_expression "((uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5)" ( (binary_expression "(uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)\n             >> 5" (call_expression "(uint)((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4)" ( (binary_expression "(int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20) << 4" (cast_expression "(int)((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)(samples_per_pixel * columns + 2) * 0xaaaaaaab" (call_expression "(ulonglong)(samples_per_pixel * columns + 2)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(samples_per_pixel * columns + 2)" ( (binary_expression "samples_per_pixel * columns + 2" (binary_expression "samples_per_pixel * columns" identifier * identifier) + number_literal) ))) * number_literal) >> number_literal) ))) << number_literal) ))) >> number_literal) )) << number_literal) ;) })) }) (else_clause "else {\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }" else (compound_statement "{\n    if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }\n    if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }\n  }" { (if_statement "if (bits_per_pixel == 0x20) {\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }" if (parenthesized_expression "(bits_per_pixel == 0x20)" ( (binary_expression "bits_per_pixel == 0x20" identifier == number_literal) )) (compound_statement "{\n      return columns * 0x20 * samples_per_pixel >> 3;\n    }" { (return_statement "return columns * 0x20 * samples_per_pixel >> 3;" return (binary_expression "columns * 0x20 * samples_per_pixel >> 3" (binary_expression "columns * 0x20 * samples_per_pixel" (binary_expression "columns * 0x20" identifier * number_literal) * identifier) >> number_literal) ;) })) (if_statement "if (bits_per_pixel == 0x40) {\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }" if (parenthesized_expression "(bits_per_pixel == 0x40)" ( (binary_expression "bits_per_pixel == 0x40" identifier == number_literal) )) (compound_statement "{\n      return columns * 0x40 * samples_per_pixel >> 3;\n    }" { (return_statement "return columns * 0x40 * samples_per_pixel >> 3;" return (binary_expression "columns * 0x40 * samples_per_pixel >> 3" (binary_expression "columns * 0x40 * samples_per_pixel" (binary_expression "columns * 0x40" identifier * number_literal) * identifier) >> number_literal) ;) })) (if_statement "if (bits_per_pixel == 0x10) {\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }" if (parenthesized_expression "(bits_per_pixel == 0x10)" ( (binary_expression "bits_per_pixel == 0x10" identifier == number_literal) )) (compound_statement "{\n      return columns * 0x10 * samples_per_pixel >> 3;\n    }" { (return_statement "return columns * 0x10 * samples_per_pixel >> 3;" return (binary_expression "columns * 0x10 * samples_per_pixel >> 3" (binary_expression "columns * 0x10 * samples_per_pixel" (binary_expression "columns * 0x10" identifier * number_literal) * identifier) >> number_literal) ;) })) }))) (return_statement "return (samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2;" return (binary_expression "(samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5) << 2" (parenthesized_expression "(samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5)" ( (binary_expression "samples_per_pixel * columns * bits_per_pixel + 0x1f >> 5" (binary_expression "samples_per_pixel * columns * bits_per_pixel + 0x1f" (binary_expression "samples_per_pixel * columns * bits_per_pixel" (binary_expression "samples_per_pixel * columns" identifier * identifier) * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })))
(translation_unit "uint FUN_00200e80(int param_1,int param_2,uint param_3)\n\n{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}\n\n" (function_definition "uint FUN_00200e80(int param_1,int param_2,uint param_3)\n\n{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" type_identifier (function_declarator "FUN_00200e80(int param_1,int param_2,uint param_3)" identifier (parameter_list "(int param_1,int param_2,uint param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" { (if_statement "if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" if (parenthesized_expression "(param_3 == 0xc)" ( (binary_expression "param_3 == 0xc" identifier == number_literal) )) (compound_statement "{\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" { (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x10 * param_2)" ( (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" if (parenthesized_expression "(param_3 < 0xd)" ( (binary_expression "param_3 < 0xd" identifier < number_literal) )) (compound_statement "{\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }" { (if_statement "if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" if (parenthesized_expression "(param_3 == 1)" ( (binary_expression "param_3 == 1" identifier == number_literal) )) (compound_statement "{\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" { (return_statement "return (param_2 * param_1 + 0x1fU >> 5) << 2;" return (binary_expression "(param_2 * param_1 + 0x1fU >> 5) << 2" (parenthesized_expression "(param_2 * param_1 + 0x1fU >> 5)" ( (binary_expression "param_2 * param_1 + 0x1fU >> 5" (binary_expression "param_2 * param_1 + 0x1fU" (binary_expression "param_2 * param_1" identifier * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })) (if_statement "if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" if (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) (compound_statement "{\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" { (return_statement "return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;" return (binary_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2" (parenthesized_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5)" ( (binary_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5" (call_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" ( (binary_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4" (cast_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab" (call_expression "(ulonglong)(param_2 * param_1 + 2)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(param_2 * param_1 + 2)" ( (binary_expression "param_2 * param_1 + 2" (binary_expression "param_2 * param_1" identifier * identifier) + number_literal) ))) * number_literal) >> number_literal) ))) << number_literal) ))) >> number_literal) )) << number_literal) ;) })) }) (else_clause "else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" else (compound_statement "{\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" { (if_statement "if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x20)" ( (binary_expression "param_3 == 0x20" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x20 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x20 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x20 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x20 * param_2)" ( (binary_expression "param_1 * 0x20 * param_2" (binary_expression "param_1 * 0x20" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x40)" ( (binary_expression "param_3 == 0x40" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x40 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x40 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x40 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x40 * param_2)" ( (binary_expression "param_1 * 0x40 * param_2" (binary_expression "param_1 * 0x40" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) (if_statement "if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" if (parenthesized_expression "(param_3 == 0x10)" ( (binary_expression "param_3 == 0x10" identifier == number_literal) )) (compound_statement "{\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" { (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" return (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 * 0x10 * param_2)" ( (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" identifier * number_literal) * identifier) ))) >> number_literal) ;) })) }))) (return_statement "return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;" return (binary_expression "(param_2 * param_1 * param_3 + 0x1f >> 5) << 2" (parenthesized_expression "(param_2 * param_1 * param_3 + 0x1f >> 5)" ( (binary_expression "param_2 * param_1 * param_3 + 0x1f >> 5" (binary_expression "param_2 * param_1 * param_3 + 0x1f" (binary_expression "param_2 * param_1 * param_3" (binary_expression "param_2 * param_1" identifier * identifier) * identifier) + number_literal) >> number_literal) )) << number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) * IDENT) ))) >> LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) + LIT) >> LIT) )) << LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * IDENT) + LIT) ))) * LIT) >> LIT) ))) << LIT) ))) >> LIT) )) << LIT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) * IDENT) ))) >> LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) * IDENT) ))) >> LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT * LIT) * IDENT) ))) >> LIT) ;) })) }))) (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT * IDENT) * IDENT) + LIT) >> LIT) )) << LIT) ;) })))
(function_definition "uint FUN_00200e80(int param_1,int param_2,uint param_3)\n\n{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" (type_identifier "uint") (function_declarator "FUN_00200e80(int param_1,int param_2,uint param_3)" (identifier "FUN_00200e80") (parameter_list "(int param_1,int param_2,uint param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }\n  if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }\n  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;\n}" ({ "{") (if_statement "if (param_3 == 0xc) {\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" (if "if") (parenthesized_expression "(param_3 == 0xc)" (( "(") (binary_expression "param_3 == 0xc" (identifier "param_3") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n    return (uint)(param_1 * 0x10 * param_2) >> 3;\n  }" ({ "{") (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" (return "return") (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 * 0x10 * param_2)" (( "(") (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (* "*") (identifier "param_2")) () ")"))) (>> ">>") (number_literal "3")) (; ";")) (} "}"))) (if_statement "if (param_3 < 0xd) {\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }\n  else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 < 0xd)" (( "(") (binary_expression "param_3 < 0xd" (identifier "param_3") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n    if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }\n    if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }\n  }" ({ "{") (if_statement "if (param_3 == 1) {\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" (if "if") (parenthesized_expression "(param_3 == 1)" (( "(") (binary_expression "param_3 == 1" (identifier "param_3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      return (param_2 * param_1 + 0x1fU >> 5) << 2;\n    }" ({ "{") (return_statement "return (param_2 * param_1 + 0x1fU >> 5) << 2;" (return "return") (binary_expression "(param_2 * param_1 + 0x1fU >> 5) << 2" (parenthesized_expression "(param_2 * param_1 + 0x1fU >> 5)" (( "(") (binary_expression "param_2 * param_1 + 0x1fU >> 5" (binary_expression "param_2 * param_1 + 0x1fU" (binary_expression "param_2 * param_1" (identifier "param_2") (* "*") (identifier "param_1")) (+ "+") (number_literal "0x1fU")) (>> ">>") (number_literal "5")) () ")")) (<< "<<") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (param_3 == 10) {\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" (if "if") (parenthesized_expression "(param_3 == 10)" (( "(") (binary_expression "param_3 == 10" (identifier "param_3") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;\n    }" ({ "{") (return_statement "return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2\n      ;" (return "return") (binary_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2" (parenthesized_expression "((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5)" (( "(") (binary_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5" (call_expression "(uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4)" (( "(") (binary_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4" (cast_expression "(int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20)" (( "(") (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab" (call_expression "(ulonglong)(param_2 * param_1 + 2)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(param_2 * param_1 + 2)" (( "(") (binary_expression "param_2 * param_1 + 2" (binary_expression "param_2 * param_1" (identifier "param_2") (* "*") (identifier "param_1")) (+ "+") (number_literal "2")) () ")"))) (* "*") (number_literal "0xaaaaaaab")) (>> ">>") (number_literal "0x20")) () ")"))) (<< "<<") (number_literal "4")) () ")"))) (>> ">>") (number_literal "5")) () ")")) (<< "<<") (number_literal "2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" (else "else") (compound_statement "{\n    if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }\n    if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }\n    if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }\n  }" ({ "{") (if_statement "if (param_3 == 0x20) {\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" (if "if") (parenthesized_expression "(param_3 == 0x20)" (( "(") (binary_expression "param_3 == 0x20" (identifier "param_3") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n      return (uint)(param_1 * 0x20 * param_2) >> 3;\n    }" ({ "{") (return_statement "return (uint)(param_1 * 0x20 * param_2) >> 3;" (return "return") (binary_expression "(uint)(param_1 * 0x20 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x20 * param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 * 0x20 * param_2)" (( "(") (binary_expression "param_1 * 0x20 * param_2" (binary_expression "param_1 * 0x20" (identifier "param_1") (* "*") (number_literal "0x20")) (* "*") (identifier "param_2")) () ")"))) (>> ">>") (number_literal "3")) (; ";")) (} "}"))) (if_statement "if (param_3 == 0x40) {\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" (if "if") (parenthesized_expression "(param_3 == 0x40)" (( "(") (binary_expression "param_3 == 0x40" (identifier "param_3") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n      return (uint)(param_1 * 0x40 * param_2) >> 3;\n    }" ({ "{") (return_statement "return (uint)(param_1 * 0x40 * param_2) >> 3;" (return "return") (binary_expression "(uint)(param_1 * 0x40 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x40 * param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 * 0x40 * param_2)" (( "(") (binary_expression "param_1 * 0x40 * param_2" (binary_expression "param_1 * 0x40" (identifier "param_1") (* "*") (number_literal "0x40")) (* "*") (identifier "param_2")) () ")"))) (>> ">>") (number_literal "3")) (; ";")) (} "}"))) (if_statement "if (param_3 == 0x10) {\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" (if "if") (parenthesized_expression "(param_3 == 0x10)" (( "(") (binary_expression "param_3 == 0x10" (identifier "param_3") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n      return (uint)(param_1 * 0x10 * param_2) >> 3;\n    }" ({ "{") (return_statement "return (uint)(param_1 * 0x10 * param_2) >> 3;" (return "return") (binary_expression "(uint)(param_1 * 0x10 * param_2) >> 3" (call_expression "(uint)(param_1 * 0x10 * param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 * 0x10 * param_2)" (( "(") (binary_expression "param_1 * 0x10 * param_2" (binary_expression "param_1 * 0x10" (identifier "param_1") (* "*") (number_literal "0x10")) (* "*") (identifier "param_2")) () ")"))) (>> ">>") (number_literal "3")) (; ";")) (} "}"))) (} "}")))) (return_statement "return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;" (return "return") (binary_expression "(param_2 * param_1 * param_3 + 0x1f >> 5) << 2" (parenthesized_expression "(param_2 * param_1 * param_3 + 0x1f >> 5)" (( "(") (binary_expression "param_2 * param_1 * param_3 + 0x1f >> 5" (binary_expression "param_2 * param_1 * param_3 + 0x1f" (binary_expression "param_2 * param_1 * param_3" (binary_expression "param_2 * param_1" (identifier "param_2") (* "*") (identifier "param_1")) (* "*") (identifier "param_3")) (+ "+") (number_literal "0x1f")) (>> ">>") (number_literal "5")) () ")")) (<< "<<") (number_literal "2")) (; ";")) (} "}")))

size_t function_1(size_t var_2,size_t var_3,size_t var_1,
                     type_1 pad)

{
  if (var_1 == 0xc) {
    return var_2 * 0x10 * var_3 >> 3;
  }
  if (var_1 < 0xd) {
    if (var_1 == 1) {
      return (var_3 * var_2 + 0x1f >> 5) << 2;
    }
    if (var_1 == 10) {
      return ((uint)((int)((ulonglong)(var_3 * var_2 + 2) * 0xaaaaaaab >> 0x20) << 4)
             >> 5) << 2;
    }
  }
  else {
    if (var_1 == 0x20) {
      return var_2 * 0x20 * var_3 >> 3;
    }
    if (var_1 == 0x40) {
      return var_2 * 0x40 * var_3 >> 3;
    }
    if (var_1 == 0x10) {
      return var_2 * 0x10 * var_3 >> 3;
    }
  }
  return (var_3 * var_2 * var_1 + 0x1f >> 5) << 2;
}


(translation_unit (function_definition type: (type_identifier) 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: (type_identifier) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) right: (number_literal)) right: (number_literal)))) right: (number_literal)))) right: (number_literal))) right: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (number_literal)))))))) (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))))))

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

{
  if (param_3 == 0xc) {
    return (uint)(param_1 * 0x10 * param_2) >> 3;
  }
  if (param_3 < 0xd) {
    if (param_3 == 1) {
      return (param_2 * param_1 + 0x1fU >> 5) << 2;
    }
    if (param_3 == 10) {
      return ((uint)((int)((ulonglong)(param_2 * param_1 + 2) * 0xaaaaaaab >> 0x20) << 4) >> 5) << 2
      ;
    }
  }
  else {
    if (param_3 == 0x20) {
      return (uint)(param_1 * 0x20 * param_2) >> 3;
    }
    if (param_3 == 0x40) {
      return (uint)(param_1 * 0x40 * param_2) >> 3;
    }
    if (param_3 == 0x10) {
      return (uint)(param_1 * 0x10 * param_2) >> 3;
    }
  }
  return (param_2 * param_1 * param_3 + 0x1f >> 5) << 2;
}

