
/* WARNING: Unknown calling convention */

int compare_relocs(void *ap,void *bp)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
                    /* WARNING: Load size is inaccurate */
  uVar1 = *ap;
                    /* WARNING: Load size is inaccurate */
  uVar2 = *bp;
  uVar3 = *(uint *)(uVar1 + 8);
  uVar4 = *(uint *)(uVar2 + 8);
  iVar5 = 1;
  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&
      (iVar5 = -1,
      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&
     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {
    iVar5 = 1;
  }
  return iVar5;
}



int FUN_00015510(uint *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  uVar1 = *param_1;
  uVar2 = *param_2;
  uVar3 = *(uint *)(uVar1 + 8);
  uVar4 = *(uint *)(uVar2 + 8);
  iVar5 = 1;
  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&
      (iVar5 = -1,
      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&
     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {
    iVar5 = 1;
  }
  return iVar5;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
MOV EAX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EAX]
MOV EBP,dword ptr [ECX + 0x4]
MOV ESI,dword ptr [ECX + 0x8]
MOV EDI,dword ptr [EDX + 0x4]
MOV EBX,dword ptr [EDX + 0x8]
CMP EDI,EBP
MOV EAX,EBX
SBB EAX,ESI
MOV EAX,0x1
JC 0x00015552
CMP EBP,EDI
MOV EAX,0xffffffff
SBB ESI,EBX
JC 0x00015552
CMP ECX,EDX
SBB EAX,EAX
CMP ECX,EDX
MOV EDX,0x1
CMOVA EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "int FUN_00015510(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}\n\n" (function_definition "int FUN_00015510(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" primitive_type (function_declarator "FUN_00015510(uint *param_1,uint *param_2)" identifier (parameter_list "(uint *param_1,uint *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = *param_2;" (assignment_expression "uVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar3 = *(uint *)(uVar1 + 8);" (assignment_expression "uVar3 = *(uint *)(uVar1 + 8)" identifier = (pointer_expression "*(uint *)(uVar1 + 8)" * (cast_expression "(uint *)(uVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 8)" ( (binary_expression "uVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(uVar2 + 8);" (assignment_expression "uVar4 = *(uint *)(uVar2 + 8)" identifier = (pointer_expression "*(uint *)(uVar2 + 8)" * (cast_expression "(uint *)(uVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 8)" ( (binary_expression "uVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }" if (parenthesized_expression "(((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1))" ( (binary_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" (parenthesized_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4))" ( (binary_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" (parenthesized_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3)" ( (binary_expression "uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (binary_expression "uVar3 <= uVar4" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (call_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" ( (binary_expression "*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)" (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar4 - uVar3" identifier - identifier))) )) && (parenthesized_expression "(iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" ( (comma_expression "iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (assignment_expression "iVar5 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (binary_expression "uVar4 <= uVar3" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (call_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" ( (binary_expression "*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)" (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar3 - uVar4" identifier - identifier)))) ))) )) && (parenthesized_expression "(iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" ( (comma_expression "iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1" (assignment_expression "iVar5 = -(uint)(uVar1 < uVar2)" identifier = (unary_expression "-(uint)(uVar1 < uVar2)" - (call_expression "(uint)(uVar1 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) ))))) , (binary_expression "uVar2 < uVar1" identifier < identifier)) ))) )) (compound_statement "{\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint compare_relocs(void *ap,void *bp)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n                    /* WARNING: Load size is inaccurate */\n  uVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  uVar2 = *bp;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}\n\n" comment (function_definition "int compare_relocs(void *ap,void *bp)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n                    /* WARNING: Load size is inaccurate */\n  uVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  uVar2 = *bp;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" primitive_type (function_declarator "compare_relocs(void *ap,void *bp)" identifier (parameter_list "(void *ap,void *bp)" ( (parameter_declaration "void *ap" primitive_type (pointer_declarator "*ap" * identifier)) , (parameter_declaration "void *bp" primitive_type (pointer_declarator "*bp" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n                    /* WARNING: Load size is inaccurate */\n  uVar1 = *ap;\n                    /* WARNING: Load size is inaccurate */\n  uVar2 = *bp;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) comment (expression_statement "uVar1 = *ap;" (assignment_expression "uVar1 = *ap" identifier = (pointer_expression "*ap" * identifier)) ;) comment (expression_statement "uVar2 = *bp;" (assignment_expression "uVar2 = *bp" identifier = (pointer_expression "*bp" * identifier)) ;) (expression_statement "uVar3 = *(uint *)(uVar1 + 8);" (assignment_expression "uVar3 = *(uint *)(uVar1 + 8)" identifier = (pointer_expression "*(uint *)(uVar1 + 8)" * (cast_expression "(uint *)(uVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 8)" ( (binary_expression "uVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(uVar2 + 8);" (assignment_expression "uVar4 = *(uint *)(uVar2 + 8)" identifier = (pointer_expression "*(uint *)(uVar2 + 8)" * (cast_expression "(uint *)(uVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 8)" ( (binary_expression "uVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }" if (parenthesized_expression "(((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1))" ( (binary_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" (parenthesized_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4))" ( (binary_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" (parenthesized_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3)" ( (binary_expression "uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (binary_expression "uVar3 <= uVar4" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (call_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" ( (binary_expression "*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)" (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar4 - uVar3" identifier - identifier))) )) && (parenthesized_expression "(iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" ( (comma_expression "iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (assignment_expression "iVar5 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (binary_expression "uVar4 <= uVar3" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (call_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" ( (binary_expression "*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)" (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar3 - uVar4" identifier - identifier)))) ))) )) && (parenthesized_expression "(iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" ( (comma_expression "iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1" (assignment_expression "iVar5 = -(uint)(uVar1 < uVar2)" identifier = (unary_expression "-(uint)(uVar1 < uVar2)" - (call_expression "(uint)(uVar1 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) ))))) , (binary_expression "uVar2 < uVar1" identifier < identifier)) ))) )) (compound_statement "{\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "int FUN_00015510(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}\n\n" (function_definition "int FUN_00015510(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" primitive_type (function_declarator "FUN_00015510(uint *param_1,uint *param_2)" identifier (parameter_list "(uint *param_1,uint *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = *param_2;" (assignment_expression "uVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar3 = *(uint *)(uVar1 + 8);" (assignment_expression "uVar3 = *(uint *)(uVar1 + 8)" identifier = (pointer_expression "*(uint *)(uVar1 + 8)" * (cast_expression "(uint *)(uVar1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 8)" ( (binary_expression "uVar1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(uVar2 + 8);" (assignment_expression "uVar4 = *(uint *)(uVar2 + 8)" identifier = (pointer_expression "*(uint *)(uVar2 + 8)" * (cast_expression "(uint *)(uVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 8)" ( (binary_expression "uVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (if_statement "if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }" if (parenthesized_expression "(((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1))" ( (binary_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" (parenthesized_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4))" ( (binary_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" (parenthesized_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3)" ( (binary_expression "uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (binary_expression "uVar3 <= uVar4" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (call_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" ( (binary_expression "*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)" (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar4 - uVar3" identifier - identifier))) )) && (parenthesized_expression "(iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" ( (comma_expression "iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (assignment_expression "iVar5 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (binary_expression "uVar4 <= uVar3" identifier <= identifier) && (binary_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (call_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" ( (binary_expression "*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)" (pointer_expression "*(uint *)(uVar1 + 4)" * (cast_expression "(uint *)(uVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 + 4)" ( (binary_expression "uVar1 + 4" identifier + number_literal) )))) < (pointer_expression "*(uint *)(uVar2 + 4)" * (cast_expression "(uint *)(uVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 + 4)" ( (binary_expression "uVar2 + 4" identifier + number_literal) ))))) ))) <= (binary_expression "uVar3 - uVar4" identifier - identifier)))) ))) )) && (parenthesized_expression "(iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" ( (comma_expression "iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1" (assignment_expression "iVar5 = -(uint)(uVar1 < uVar2)" identifier = (unary_expression "-(uint)(uVar1 < uVar2)" - (call_expression "(uint)(uVar1 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar2)" ( (binary_expression "uVar1 < uVar2" identifier < identifier) ))))) , (binary_expression "uVar2 < uVar1" identifier < identifier)) ))) )) (compound_statement "{\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * 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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) ))))) ))) <= (binary_expression IDENT - IDENT))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) ))))) ))) <= (binary_expression IDENT - IDENT)))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00015510(uint *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" (primitive_type "int") (function_declarator "FUN_00015510(uint *param_1,uint *param_2)" (identifier "FUN_00015510") (parameter_list "(uint *param_1,uint *param_2)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  \n  uVar1 = *param_1;\n  uVar2 = *param_2;\n  uVar3 = *(uint *)(uVar1 + 8);\n  uVar4 = *(uint *)(uVar2 + 8);\n  iVar5 = 1;\n  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }\n  return iVar5;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar2 = *param_2;" (assignment_expression "uVar2 = *param_2" (identifier "uVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar3 = *(uint *)(uVar1 + 8);" (assignment_expression "uVar3 = *(uint *)(uVar1 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(uVar1 + 8)" (* "*") (cast_expression "(uint *)(uVar1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 + 8)" (( "(") (binary_expression "uVar1 + 8" (identifier "uVar1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(uVar2 + 8);" (assignment_expression "uVar4 = *(uint *)(uVar2 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(uVar2 + 8)" (* "*") (cast_expression "(uint *)(uVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 + 8)" (( "(") (binary_expression "uVar2 + 8" (identifier "uVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {\n    iVar5 = 1;\n  }" (if "if") (parenthesized_expression "(((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1))" (( "(") (binary_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&\n     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" (parenthesized_expression "((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4))" (( "(") (binary_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&\n      (iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" (parenthesized_expression "(uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3)" (( "(") (binary_expression "uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (binary_expression "uVar3 <= uVar4" (identifier "uVar3") (<= "<=") (identifier "uVar4")) (&& "&&") (binary_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3" (call_expression "(uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4))" (( "(") (binary_expression "*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)" (pointer_expression "*(uint *)(uVar2 + 4)" (* "*") (cast_expression "(uint *)(uVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 + 4)" (( "(") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4")) () ")")))) (< "<") (pointer_expression "*(uint *)(uVar1 + 4)" (* "*") (cast_expression "(uint *)(uVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 + 4)" (( "(") (binary_expression "uVar1 + 4" (identifier "uVar1") (+ "+") (number_literal "4")) () ")"))))) () ")"))) (<= "<=") (binary_expression "uVar4 - uVar3" (identifier "uVar4") (- "-") (identifier "uVar3")))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)" (( "(") (comma_expression "iVar5 = -1,\n      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (, ",") (binary_expression "uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (binary_expression "uVar4 <= uVar3" (identifier "uVar4") (<= "<=") (identifier "uVar3")) (&& "&&") (binary_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4" (call_expression "(uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4))" (( "(") (binary_expression "*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)" (pointer_expression "*(uint *)(uVar1 + 4)" (* "*") (cast_expression "(uint *)(uVar1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 + 4)" (( "(") (binary_expression "uVar1 + 4" (identifier "uVar1") (+ "+") (number_literal "4")) () ")")))) (< "<") (pointer_expression "*(uint *)(uVar2 + 4)" (* "*") (cast_expression "(uint *)(uVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 + 4)" (( "(") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4")) () ")"))))) () ")"))) (<= "<=") (binary_expression "uVar3 - uVar4" (identifier "uVar3") (- "-") (identifier "uVar4"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)" (( "(") (comma_expression "iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1" (assignment_expression "iVar5 = -(uint)(uVar1 < uVar2)" (identifier "iVar5") (= "=") (unary_expression "-(uint)(uVar1 < uVar2)" (- "-") (call_expression "(uint)(uVar1 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 < uVar2)" (( "(") (binary_expression "uVar1 < uVar2" (identifier "uVar1") (< "<") (identifier "uVar2")) () ")"))))) (, ",") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1"))) () ")"))) () ")")) (compound_statement "{\n    iVar5 = 1;\n  }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(void *ap,void *bp)

{
  type_1 var_1;
  type_1 var_2;
  type_1 var_3;
  type_1 var_4;
  int iVar5;
  
                    /* WARNING: Load size is inaccurate */
  var_1 = *ap;
                    /* WARNING: Load size is inaccurate */
  var_2 = *bp;
  var_3 = *(type_1 *)(var_1 + 8);
  var_4 = *(type_1 *)(var_2 + 8);
  iVar5 = 1;
  if (((var_3 <= var_4 && (type_1)(*(type_1 *)(var_2 + 4) < *(type_1 *)(var_1 + 4)) <= var_4 - var_3) &&
      (iVar5 = -1,
      var_4 <= var_3 && (type_1)(*(type_1 *)(var_1 + 4) < *(type_1 *)(var_2 + 4)) <= var_3 - var_4)) &&
     (iVar5 = -(type_1)(var_1 < var_2), var_2 < var_1)) {
    iVar5 = 1;
  }
  return iVar5;
}


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

int MASKED(uint *param_1,uint *param_2)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  
  uVar1 = *param_1;
  uVar2 = *param_2;
  uVar3 = *(uint *)(uVar1 + 8);
  uVar4 = *(uint *)(uVar2 + 8);
  iVar5 = 1;
  if (((uVar3 <= uVar4 && (uint)(*(uint *)(uVar2 + 4) < *(uint *)(uVar1 + 4)) <= uVar4 - uVar3) &&
      (iVar5 = -1,
      uVar4 <= uVar3 && (uint)(*(uint *)(uVar1 + 4) < *(uint *)(uVar2 + 4)) <= uVar3 - uVar4)) &&
     (iVar5 = -(uint)(uVar1 < uVar2), uVar2 < uVar1)) {
    iVar5 = 1;
  }
  return iVar5;
}

