
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

_Bool fill_temp(xz_dec *s,xz_buf *b)

{
  bool bVar1;
  uint uVar2;
  size_t sVar3;
  uint uVar4;
  size_t sVar5;
  
  sVar3 = (s->temp).pos;
  uVar4 = (s->temp).size - sVar3;
  uVar2 = b->in_size - b->in_pos;
  if (uVar4 <= uVar2) {
    uVar2 = uVar4;
  }
  (*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2);
  sVar3 = (s->temp).size;
  sVar5 = uVar2 + (s->temp).pos;
  b->in_pos = b->in_pos + uVar2;
  bVar1 = sVar5 == sVar3;
  (s->temp).pos = sVar5;
  if (bVar1) {
    (s->temp).pos = 0;
  }
  return bVar1;
}



bool FUN_000aae74(int param_1,int *param_2)

{
  bool bVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  
  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);
  uVar2 = param_2[2] - param_2[1];
  if (uVar3 <= uVar2) {
    uVar2 = uVar3;
  }
  (*(code *)PTR_memcpy_0012b150)
            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);
  iVar4 = *(int *)(param_1 + 0xa4);
  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);
  param_2[1] = param_2[1] + uVar2;
  bVar1 = iVar5 == iVar4;
  *(int *)(param_1 + 0xa0) = iVar5;
  if (bVar1) {
    *(undefined4 *)(param_1 + 0xa0) = 0;
  }
  return bVar1;
}


lui gp,0x8
addiu gp,gp,0x72dc
addu gp,gp,t9
addiu sp,sp,-0x28
lw v1,0xa0(a0)
lw t9,-0x7000(gp)
sw s2,0x20(sp)
or s2,a1,zero
sw s1,0x1c(sp)
or s1,a0,zero
sw s0,0x18(sp)
addiu a0,a0,0xa8
lw a1,0x4(a1)
lw s0,0xa4(s1)
addu a0,a0,v1
lw v0,0x8(s2)
lw a2,0x0(s2)
subu v1,s0,v1
sw gp,0x10(sp)
subu v0,v0,a1
sw ra,0x24(sp)
addu a1,a2,a1
sltu s0,v0,v1
movz v0,v1,s0
or a2,v0,zero
jalr t9
_or s0,v0,zero
lw v1,0x4(s2)
or v0,zero,zero
lw a1,0xa0(s1)
lw a0,0xa4(s1)
addu v1,v1,s0
addu s0,s0,a1
sw v1,0x4(s2)
bne s0,a0,0x000aaf0c
_sw s0,0xa0(s1)
li v0,0x1
sw zero,0xa0(s1)
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "bool FUN_000aae74(int param_1,int *param_2)\n\n{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}\n\n" (function_definition "bool FUN_000aae74(int param_1,int *param_2)\n\n{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" primitive_type (function_declarator "FUN_000aae74(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);" (assignment_expression "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" identifier = (binary_expression "*(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = param_2[2] - param_2[1];" (assignment_expression "uVar2 = param_2[2] - param_2[1]" identifier = (binary_expression "param_2[2] - param_2[1]" (subscript_expression "param_2[2]" identifier [ number_literal ]) - (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }" if (parenthesized_expression "(uVar3 <= uVar2)" ( (binary_expression "uVar3 <= uVar2" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar3;\n  }" { (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);" (call_expression "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" (parenthesized_expression "(*(code *)PTR_memcpy_0012b150)" ( (pointer_expression "*(code *)PTR_memcpy_0012b150" * (cast_expression "(code *)PTR_memcpy_0012b150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" ( (binary_expression "param_1 + 0xa8 + *(int *)(param_1 + 0xa0)" (binary_expression "param_1 + 0xa8" identifier + number_literal) + (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0xa4);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xa4)" identifier = (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = uVar2 + *(int *)(param_1 + 0xa0);" (assignment_expression "iVar5 = uVar2 + *(int *)(param_1 + 0xa0)" identifier = (binary_expression "uVar2 + *(int *)(param_1 + 0xa0)" identifier + (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))))) ;) (expression_statement "param_2[1] = param_2[1] + uVar2;" (assignment_expression "param_2[1] = param_2[1] + uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "param_2[1] + uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = iVar5 == iVar4;" (assignment_expression "bVar1 = iVar5 == iVar4" identifier = (binary_expression "iVar5 == iVar4" identifier == identifier)) ;) (expression_statement "*(int *)(param_1 + 0xa0) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xa0) = iVar5" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xa0)" * (cast_expression "(undefined4 *)(param_1 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\n_Bool fill_temp(xz_dec *s,xz_buf *b)\n\n{\n  bool bVar1;\n  uint uVar2;\n  size_t sVar3;\n  uint uVar4;\n  size_t sVar5;\n  \n  sVar3 = (s->temp).pos;\n  uVar4 = (s->temp).size - sVar3;\n  uVar2 = b->in_size - b->in_pos;\n  if (uVar4 <= uVar2) {\n    uVar2 = uVar4;\n  }\n  (*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2);\n  sVar3 = (s->temp).size;\n  sVar5 = uVar2 + (s->temp).pos;\n  b->in_pos = b->in_pos + uVar2;\n  bVar1 = sVar5 == sVar3;\n  (s->temp).pos = sVar5;\n  if (bVar1) {\n    (s->temp).pos = 0;\n  }\n  return bVar1;\n}\n\n" comment (function_definition "_Bool fill_temp(xz_dec *s,xz_buf *b)\n\n{\n  bool bVar1;\n  uint uVar2;\n  size_t sVar3;\n  uint uVar4;\n  size_t sVar5;\n  \n  sVar3 = (s->temp).pos;\n  uVar4 = (s->temp).size - sVar3;\n  uVar2 = b->in_size - b->in_pos;\n  if (uVar4 <= uVar2) {\n    uVar2 = uVar4;\n  }\n  (*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2);\n  sVar3 = (s->temp).size;\n  sVar5 = uVar2 + (s->temp).pos;\n  b->in_pos = b->in_pos + uVar2;\n  bVar1 = sVar5 == sVar3;\n  (s->temp).pos = sVar5;\n  if (bVar1) {\n    (s->temp).pos = 0;\n  }\n  return bVar1;\n}" type_identifier (function_declarator "fill_temp(xz_dec *s,xz_buf *b)" identifier (parameter_list "(xz_dec *s,xz_buf *b)" ( (parameter_declaration "xz_dec *s" type_identifier (pointer_declarator "*s" * identifier)) , (parameter_declaration "xz_buf *b" type_identifier (pointer_declarator "*b" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  size_t sVar3;\n  uint uVar4;\n  size_t sVar5;\n  \n  sVar3 = (s->temp).pos;\n  uVar4 = (s->temp).size - sVar3;\n  uVar2 = b->in_size - b->in_pos;\n  if (uVar4 <= uVar2) {\n    uVar2 = uVar4;\n  }\n  (*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2);\n  sVar3 = (s->temp).size;\n  sVar5 = uVar2 + (s->temp).pos;\n  b->in_pos = b->in_pos + uVar2;\n  bVar1 = sVar5 == sVar3;\n  (s->temp).pos = sVar5;\n  if (bVar1) {\n    (s->temp).pos = 0;\n  }\n  return bVar1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (expression_statement "sVar3 = (s->temp).pos;" (assignment_expression "sVar3 = (s->temp).pos" identifier = (field_expression "(s->temp).pos" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar4 = (s->temp).size - sVar3;" (assignment_expression "uVar4 = (s->temp).size - sVar3" identifier = (binary_expression "(s->temp).size - sVar3" (field_expression "(s->temp).size" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier) - identifier)) ;) (expression_statement "uVar2 = b->in_size - b->in_pos;" (assignment_expression "uVar2 = b->in_size - b->in_pos" identifier = (binary_expression "b->in_size - b->in_pos" (field_expression "b->in_size" identifier -> field_identifier) - (field_expression "b->in_pos" identifier -> field_identifier))) ;) (if_statement "if (uVar4 <= uVar2) {\n    uVar2 = uVar4;\n  }" if (parenthesized_expression "(uVar4 <= uVar2)" ( (binary_expression "uVar4 <= uVar2" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar4;\n  }" { (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2);" (call_expression "(*(code *)PTR_memcpy_0012b150)((s->temp).buf + sVar3,b->in + b->in_pos,uVar2)" (parenthesized_expression "(*(code *)PTR_memcpy_0012b150)" ( (pointer_expression "*(code *)PTR_memcpy_0012b150" * (cast_expression "(code *)PTR_memcpy_0012b150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((s->temp).buf + sVar3,b->in + b->in_pos,uVar2)" ( (binary_expression "(s->temp).buf + sVar3" (field_expression "(s->temp).buf" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier) + identifier) , (binary_expression "b->in + b->in_pos" (field_expression "b->in" identifier -> field_identifier) + (field_expression "b->in_pos" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "sVar3 = (s->temp).size;" (assignment_expression "sVar3 = (s->temp).size" identifier = (field_expression "(s->temp).size" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = uVar2 + (s->temp).pos;" (assignment_expression "sVar5 = uVar2 + (s->temp).pos" identifier = (binary_expression "uVar2 + (s->temp).pos" identifier + (field_expression "(s->temp).pos" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "b->in_pos = b->in_pos + uVar2;" (assignment_expression "b->in_pos = b->in_pos + uVar2" (field_expression "b->in_pos" identifier -> field_identifier) = (binary_expression "b->in_pos + uVar2" (field_expression "b->in_pos" identifier -> field_identifier) + identifier)) ;) (expression_statement "bVar1 = sVar5 == sVar3;" (assignment_expression "bVar1 = sVar5 == sVar3" identifier = (binary_expression "sVar5 == sVar3" identifier == identifier)) ;) (expression_statement "(s->temp).pos = sVar5;" (assignment_expression "(s->temp).pos = sVar5" (field_expression "(s->temp).pos" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (bVar1) {\n    (s->temp).pos = 0;\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    (s->temp).pos = 0;\n  }" { (expression_statement "(s->temp).pos = 0;" (assignment_expression "(s->temp).pos = 0" (field_expression "(s->temp).pos" (parenthesized_expression "(s->temp)" ( (field_expression "s->temp" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "bool FUN_000aae74(int param_1,int *param_2)\n\n{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}\n\n" (function_definition "bool FUN_000aae74(int param_1,int *param_2)\n\n{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" primitive_type (function_declarator "FUN_000aae74(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);" (assignment_expression "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" identifier = (binary_expression "*(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))))) ;) (expression_statement "uVar2 = param_2[2] - param_2[1];" (assignment_expression "uVar2 = param_2[2] - param_2[1]" identifier = (binary_expression "param_2[2] - param_2[1]" (subscript_expression "param_2[2]" identifier [ number_literal ]) - (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }" if (parenthesized_expression "(uVar3 <= uVar2)" ( (binary_expression "uVar3 <= uVar2" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar3;\n  }" { (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);" (call_expression "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" (parenthesized_expression "(*(code *)PTR_memcpy_0012b150)" ( (pointer_expression "*(code *)PTR_memcpy_0012b150" * (cast_expression "(code *)PTR_memcpy_0012b150" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" ( (binary_expression "param_1 + 0xa8 + *(int *)(param_1 + 0xa0)" (binary_expression "param_1 + 0xa8" identifier + number_literal) + (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) ))))) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0xa4);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xa4)" identifier = (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = uVar2 + *(int *)(param_1 + 0xa0);" (assignment_expression "iVar5 = uVar2 + *(int *)(param_1 + 0xa0)" identifier = (binary_expression "uVar2 + *(int *)(param_1 + 0xa0)" identifier + (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))))) ;) (expression_statement "param_2[1] = param_2[1] + uVar2;" (assignment_expression "param_2[1] = param_2[1] + uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) = (binary_expression "param_2[1] + uVar2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar1 = iVar5 == iVar4;" (assignment_expression "bVar1 = iVar5 == iVar4" identifier = (binary_expression "iVar5 == iVar4" identifier == identifier)) ;) (expression_statement "*(int *)(param_1 + 0xa0) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xa0) = iVar5" (pointer_expression "*(int *)(param_1 + 0xa0)" * (cast_expression "(int *)(param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xa0)" * (cast_expression "(undefined4 *)(param_1 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa0)" ( (binary_expression "param_1 + 0xa0" identifier + number_literal) )))) = number_literal) ;) })) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ])) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "bool FUN_000aae74(int param_1,int *param_2)\n\n{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" (primitive_type "bool") (function_declarator "FUN_000aae74(int param_1,int *param_2)" (identifier "FUN_000aae74") (parameter_list "(int param_1,int *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  \n  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);\n  uVar2 = param_2[2] - param_2[1];\n  if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }\n  (*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);\n  iVar4 = *(int *)(param_1 + 0xa4);\n  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);\n  param_2[1] = param_2[1] + uVar2;\n  bVar1 = iVar5 == iVar4;\n  *(int *)(param_1 + 0xa0) = iVar5;\n  if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }\n  return bVar1;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);" (assignment_expression "uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" (identifier "uVar3") (= "=") (binary_expression "*(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0)" (pointer_expression "*(int *)(param_1 + 0xa4)" (* "*") (cast_expression "(int *)(param_1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa4)" (( "(") (binary_expression "param_1 + 0xa4" (identifier "param_1") (+ "+") (number_literal "0xa4")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))))) (; ";")) (expression_statement "uVar2 = param_2[2] - param_2[1];" (assignment_expression "uVar2 = param_2[2] - param_2[1]" (identifier "uVar2") (= "=") (binary_expression "param_2[2] - param_2[1]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (- "-") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (uVar3 <= uVar2) {\n    uVar2 = uVar3;\n  }" (if "if") (parenthesized_expression "(uVar3 <= uVar2)" (( "(") (binary_expression "uVar3 <= uVar2" (identifier "uVar3") (<= "<=") (identifier "uVar2")) () ")")) (compound_statement "{\n    uVar2 = uVar3;\n  }" ({ "{") (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" (identifier "uVar2") (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);" (call_expression "(*(code *)PTR_memcpy_0012b150)\n            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" (parenthesized_expression "(*(code *)PTR_memcpy_0012b150)" (( "(") (pointer_expression "*(code *)PTR_memcpy_0012b150" (* "*") (cast_expression "(code *)PTR_memcpy_0012b150" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_0012b150"))) () ")")) (argument_list "(param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2)" (( "(") (binary_expression "param_1 + 0xa8 + *(int *)(param_1 + 0xa0)" (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) (+ "+") (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")"))))) (, ",") (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 0xa4);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xa4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0xa4)" (* "*") (cast_expression "(int *)(param_1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa4)" (( "(") (binary_expression "param_1 + 0xa4" (identifier "param_1") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "iVar5 = uVar2 + *(int *)(param_1 + 0xa0);" (assignment_expression "iVar5 = uVar2 + *(int *)(param_1 + 0xa0)" (identifier "iVar5") (= "=") (binary_expression "uVar2 + *(int *)(param_1 + 0xa0)" (identifier "uVar2") (+ "+") (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))))) (; ";")) (expression_statement "param_2[1] = param_2[1] + uVar2;" (assignment_expression "param_2[1] = param_2[1] + uVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "param_2[1] + uVar2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "bVar1 = iVar5 == iVar4;" (assignment_expression "bVar1 = iVar5 == iVar4" (identifier "bVar1") (= "=") (binary_expression "iVar5 == iVar4" (identifier "iVar5") (== "==") (identifier "iVar4"))) (; ";")) (expression_statement "*(int *)(param_1 + 0xa0) = iVar5;" (assignment_expression "*(int *)(param_1 + 0xa0) = iVar5" (pointer_expression "*(int *)(param_1 + 0xa0)" (* "*") (cast_expression "(int *)(param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (bVar1) {\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xa0) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa0)" (( "(") (binary_expression "param_1 + 0xa0" (identifier "param_1") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (return_statement "return bVar1;" (return "return") (identifier "bVar1") (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1(type_2 *s,type_3 *b)

{
  bool bVar1;
  type_4 var_3;
  size_t var_1;
  type_4 var_2;
  size_t var_4;
  
  var_1 = (s->temp).pos;
  var_2 = (s->temp).size - var_1;
  var_3 = b->in_size - b->in_pos;
  if (var_2 <= var_3) {
    var_3 = var_2;
  }
  (*(type_5 *)PTR_memcpy_0012b150)((s->temp).buf + var_1,b->in + b->in_pos,var_3);
  var_1 = (s->temp).size;
  var_4 = var_3 + (s->temp).pos;
  b->in_pos = b->in_pos + var_3;
  bVar1 = var_4 == var_1;
  (s->temp).pos = var_4;
  if (bVar1) {
    (s->temp).pos = 0;
  }
  return bVar1;
}


(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: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) 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: (number_literal))))) (return_statement (identifier)))))

bool MASKED(int param_1,int *param_2)

{
  bool bVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  
  uVar3 = *(int *)(param_1 + 0xa4) - *(int *)(param_1 + 0xa0);
  uVar2 = param_2[2] - param_2[1];
  if (uVar3 <= uVar2) {
    uVar2 = uVar3;
  }
  (*(code *)PTR_memcpy_0012b150)
            (param_1 + 0xa8 + *(int *)(param_1 + 0xa0),*param_2 + param_2[1],uVar2);
  iVar4 = *(int *)(param_1 + 0xa4);
  iVar5 = uVar2 + *(int *)(param_1 + 0xa0);
  param_2[1] = param_2[1] + uVar2;
  bVar1 = iVar5 == iVar4;
  *(int *)(param_1 + 0xa0) = iVar5;
  if (bVar1) {
    *(undefined4 *)(param_1 + 0xa0) = 0;
  }
  return bVar1;
}

