
int CompareStringInfo(StringInfo *target,StringInfo *source)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (target == (StringInfo *)0x0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (target->signature != 0xabacadab) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (source == (StringInfo *)0x0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (source->signature != 0xabacadab) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,
                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  uVar4 = source->length;
  uVar3 = target->length;
  uVar2 = uVar3;
  if (uVar4 <= uVar3) {
    uVar2 = uVar4;
  }
  iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2);
  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {
    iVar1 = 1;
  }
  return iVar1;
}



int CompareStringInfo(int param_1,int param_2)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (param_1 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (*(int *)(param_1 + 0xc) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (param_2 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (*(int *)(param_2 + 0xc) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,
                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  uVar4 = *(uint *)(param_2 + 8);
  uVar3 = *(uint *)(param_1 + 8);
  uVar2 = uVar3;
  if (uVar4 <= uVar3) {
    uVar2 = uVar4;
  }
  iVar1 = (*(code *)PTR_memcmp_003a98f4)
                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);
  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {
    iVar1 = 1;
  }
  return iVar1;
}


lui gp,0x1f
addiu gp,gp,0x4afc
addu gp,gp,t9
addiu sp,sp,-0x28
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
beq a0,zero,0x001bbeb0
_sw s0,0x18(sp)
lui v0,0xabac
lw v1,0xc(a0)
ori v0,v0,0xadab
bne v1,v0,0x001bbe90
_lw a3,-0x7fc4(gp)
beq a1,zero,0x001bbe74
_li a2,0x160
lw v0,0xc(a1)
bne v0,v1,0x001bbe54
_lw t9,-0x6fbc(gp)
lw s1,0x8(a1)
lw s0,0x8(a0)
lw a1,0x4(a1)
sltu s2,s0,s1
lw a0,0x4(a0)
or a2,s0,zero
jalr t9
_movz a2,s1,s2
bne v0,zero,0x001bbe40
_lw ra,0x24(sp)
beq s1,s0,0x001bbe3c
_li v1,0x1
li v0,-0x1
movz v0,v1,s2
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
li a2,0x161
lw a1,-0x7fc4(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x2c54
addiu a1,a1,-0x32f0
jalr t9
_addiu a0,a0,0x3930
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x2c54
addiu a1,a1,-0x32f0
jalr t9
_addiu a0,a0,-0x3290
li a2,0x15f
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x2c54
addiu a1,a1,-0x32f0
jalr t9
_addiu a0,a0,-0x32bc
lw a3,-0x7fc4(gp)
li a2,0x15e
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x2c54
addiu a1,a1,-0x32f0
jalr t9
_addiu a0,a0,-0x32dc
(translation_unit "int CompareStringInfo(int param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int CompareStringInfo(int param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "CompareStringInfo(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 identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32dc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32bc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x3290" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0xc) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "uVar4 = *(uint *)(param_2 + 8);" (assignment_expression "uVar4 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 8);" (assignment_expression "uVar3 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" identifier = identifier) ;) (if_statement "if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }" if (parenthesized_expression "(uVar4 <= uVar3)" ( (binary_expression "uVar4 <= uVar3" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar4;\n  }" { (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) })) (expression_statement "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);" (assignment_expression "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" identifier = (call_expression "(*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" (parenthesized_expression "(*(code *)PTR_memcmp_003a98f4)" ( (pointer_expression "*(code *)PTR_memcmp_003a98f4" * (cast_expression "(code *)PTR_memcmp_003a98f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" ( (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }" if (parenthesized_expression "(((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3))" ( (binary_expression "((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)" (parenthesized_expression "((iVar1 == 0) && (uVar4 != uVar3))" ( (binary_expression "(iVar1 == 0) && (uVar4 != uVar3)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar4 != uVar3)" ( (binary_expression "uVar4 != uVar3" identifier != identifier) ))) )) && (parenthesized_expression "(iVar1 = -1, uVar4 <= uVar3)" ( (comma_expression "iVar1 = -1, uVar4 <= uVar3" (assignment_expression "iVar1 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3" identifier <= identifier)) ))) )) (compound_statement "{\n    iVar1 = 1;\n  }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "int CompareStringInfo(StringInfo *target,StringInfo *source)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (target == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (target->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = source->length;\n  uVar3 = target->length;\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int CompareStringInfo(StringInfo *target,StringInfo *source)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (target == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (target->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = source->length;\n  uVar3 = target->length;\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "CompareStringInfo(StringInfo *target,StringInfo *source)" identifier (parameter_list "(StringInfo *target,StringInfo *source)" ( (parameter_declaration "StringInfo *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "StringInfo *source" type_identifier (pointer_declarator "*source" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (target == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (target->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (source->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = source->length;\n  uVar3 = target->length;\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (target == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(target == (StringInfo *)0x0)" ( (binary_expression "target == (StringInfo *)0x0" identifier == (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32dc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (target->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(target->signature != 0xabacadab)" ( (binary_expression "target->signature != 0xabacadab" (field_expression "target->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32bc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (source == (StringInfo *)0x0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(source == (StringInfo *)0x0)" ( (binary_expression "source == (StringInfo *)0x0" identifier == (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x3290" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (source->signature != 0xabacadab) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(source->signature != 0xabacadab)" ( (binary_expression "source->signature != 0xabacadab" (field_expression "source->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "uVar4 = source->length;" (assignment_expression "uVar4 = source->length" identifier = (field_expression "source->length" identifier -> field_identifier)) ;) (expression_statement "uVar3 = target->length;" (assignment_expression "uVar3 = target->length" identifier = (field_expression "target->length" identifier -> field_identifier)) ;) (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" identifier = identifier) ;) (if_statement "if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }" if (parenthesized_expression "(uVar4 <= uVar3)" ( (binary_expression "uVar4 <= uVar3" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar4;\n  }" { (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) })) (expression_statement "iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2);" (assignment_expression "iVar1 = (*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2)" identifier = (call_expression "(*(code *)PTR_memcmp_003a98f4)(target->datum,source->datum,uVar2)" (parenthesized_expression "(*(code *)PTR_memcmp_003a98f4)" ( (pointer_expression "*(code *)PTR_memcmp_003a98f4" * (cast_expression "(code *)PTR_memcmp_003a98f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(target->datum,source->datum,uVar2)" ( (field_expression "target->datum" identifier -> field_identifier) , (field_expression "source->datum" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }" if (parenthesized_expression "(((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3))" ( (binary_expression "((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)" (parenthesized_expression "((iVar1 == 0) && (uVar4 != uVar3))" ( (binary_expression "(iVar1 == 0) && (uVar4 != uVar3)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar4 != uVar3)" ( (binary_expression "uVar4 != uVar3" identifier != identifier) ))) )) && (parenthesized_expression "(iVar1 = -1, uVar4 <= uVar3)" ( (comma_expression "iVar1 = -1, uVar4 <= uVar3" (assignment_expression "iVar1 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3" identifier <= identifier)) ))) )) (compound_statement "{\n    iVar1 = 1;\n  }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "int CompareStringInfo(int param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int CompareStringInfo(int param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "CompareStringInfo(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 identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32dc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x32bc" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_courses_003a88ec + -0x3290" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (if_statement "if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0xc) != -0x54535255)" ( (binary_expression "*(int *)(param_2 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" { (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" identifier = (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930" identifier + number_literal) , (binary_expression "PTR_s_courses_003a88ec + -0x32f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_courses_003a88ec + -0x2c54" identifier + number_literal) )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "uVar4 = *(uint *)(param_2 + 8);" (assignment_expression "uVar4 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 8);" (assignment_expression "uVar3 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" identifier = identifier) ;) (if_statement "if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }" if (parenthesized_expression "(uVar4 <= uVar3)" ( (binary_expression "uVar4 <= uVar3" identifier <= identifier) )) (compound_statement "{\n    uVar2 = uVar4;\n  }" { (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) })) (expression_statement "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);" (assignment_expression "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" identifier = (call_expression "(*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" (parenthesized_expression "(*(code *)PTR_memcmp_003a98f4)" ( (pointer_expression "*(code *)PTR_memcmp_003a98f4" * (cast_expression "(code *)PTR_memcmp_003a98f4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" ( (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) , identifier )))) ;) (if_statement "if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }" if (parenthesized_expression "(((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3))" ( (binary_expression "((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)" (parenthesized_expression "((iVar1 == 0) && (uVar4 != uVar3))" ( (binary_expression "(iVar1 == 0) && (uVar4 != uVar3)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar4 != uVar3)" ( (binary_expression "uVar4 != uVar3" identifier != identifier) ))) )) && (parenthesized_expression "(iVar1 = -1, uVar4 <= uVar3)" ( (comma_expression "iVar1 = -1, uVar4 <= uVar3" (assignment_expression "iVar1 = -1" identifier = number_literal) , (binary_expression "uVar4 <= uVar3" identifier <= identifier)) ))) )) (compound_statement "{\n    iVar1 = 1;\n  }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (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) )))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int CompareStringInfo(int param_1,int param_2)\n\n{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" (primitive_type "int") (function_declarator "CompareStringInfo(int param_1,int param_2)" (identifier "CompareStringInfo") (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") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  \n  if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }\n  uVar4 = *(uint *)(param_2 + 8);\n  uVar3 = *(uint *)(param_1 + 8);\n  uVar2 = uVar3;\n  if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }\n  iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);\n  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (if_statement "if (param_1 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,\n                       PTR_s_courses_003a88ec + -0x2c54)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x32dc" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32dc")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x32f0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32f0")) (, ",") (number_literal "0x15e") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2c54" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2c54")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,\n                       PTR_s_courses_003a88ec + -0x2c54)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x32bc" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32bc")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x32f0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32f0")) (, ",") (number_literal "0x15f") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2c54" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2c54")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,\n                       PTR_s_courses_003a88ec + -0x2c54)" (( "(") (binary_expression "PTR_s_courses_003a88ec + -0x3290" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x3290")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x32f0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32f0")) (, ",") (number_literal "0x160") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2c54" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2c54")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0xc) != -0x54535255) {\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0xc) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) != -0x54535255" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);\n    return iVar1;\n  }" ({ "{") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,\n                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x3930")) (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x32f0" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x32f0")) (, ",") (number_literal "0x161") (, ",") (binary_expression "PTR_s_courses_003a88ec + -0x2c54" (identifier "PTR_s_courses_003a88ec") (+ "+") (number_literal "-0x2c54")) () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (expression_statement "uVar4 = *(uint *)(param_2 + 8);" (assignment_expression "uVar4 = *(uint *)(param_2 + 8)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_1 + 8);" (assignment_expression "uVar3 = *(uint *)(param_1 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = uVar3;" (assignment_expression "uVar2 = uVar3" (identifier "uVar2") (= "=") (identifier "uVar3")) (; ";")) (if_statement "if (uVar4 <= uVar3) {\n    uVar2 = uVar4;\n  }" (if "if") (parenthesized_expression "(uVar4 <= uVar3)" (( "(") (binary_expression "uVar4 <= uVar3" (identifier "uVar4") (<= "<=") (identifier "uVar3")) () ")")) (compound_statement "{\n    uVar2 = uVar4;\n  }" ({ "{") (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" (identifier "uVar2") (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);" (assignment_expression "iVar1 = (*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_memcmp_003a98f4)\n                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" (parenthesized_expression "(*(code *)PTR_memcmp_003a98f4)" (( "(") (pointer_expression "*(code *)PTR_memcmp_003a98f4" (* "*") (cast_expression "(code *)PTR_memcmp_003a98f4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_003a98f4"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_2 + 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {\n    iVar1 = 1;\n  }" (if "if") (parenthesized_expression "(((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3))" (( "(") (binary_expression "((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)" (parenthesized_expression "((iVar1 == 0) && (uVar4 != uVar3))" (( "(") (binary_expression "(iVar1 == 0) && (uVar4 != uVar3)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar4 != uVar3)" (( "(") (binary_expression "uVar4 != uVar3" (identifier "uVar4") (!= "!=") (identifier "uVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = -1, uVar4 <= uVar3)" (( "(") (comma_expression "iVar1 = -1, uVar4 <= uVar3" (assignment_expression "iVar1 = -1" (identifier "iVar1") (= "=") (number_literal "-1")) (, ",") (binary_expression "uVar4 <= uVar3" (identifier "uVar4") (<= "<=") (identifier "uVar3"))) () ")"))) () ")")) (compound_statement "{\n    iVar1 = 1;\n  }" ({ "{") (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

int function_1(type_1 *var_1,type_1 *var_3)

{
  int var_7;
  type_2 uVar2;
  type_2 var_6;
  type_2 var_5;
  
  if (var_1 == (type_1 *)0x0) {
    var_7 = (*(type_3 *)PTR___assert_fail_003a9608)
                      (var_2 + -0x32dc,var_2 + -0x32f0,0x15e,
                       var_2 + -0x2c54);
    return var_7;
  }
  if (var_1->signature != 0xabacadab) {
    var_7 = (*(type_3 *)PTR___assert_fail_003a9608)
                      (var_2 + -0x32bc,var_2 + -0x32f0,0x15f,
                       var_2 + -0x2c54);
    return var_7;
  }
  if (var_3 == (type_1 *)0x0) {
    var_7 = (*(type_3 *)PTR___assert_fail_003a9608)
                      (var_2 + -0x3290,var_2 + -0x32f0,0x160,
                       var_2 + -0x2c54);
    return var_7;
  }
  if (var_3->signature != 0xabacadab) {
    var_7 = (*(type_3 *)PTR___assert_fail_003a9608)
                      (var_4 + 0x3930,
                       var_2 + -0x32f0,0x161,var_2 + -0x2c54);
    return var_7;
  }
  var_5 = var_3->length;
  var_6 = var_1->length;
  uVar2 = var_6;
  if (var_5 <= var_6) {
    uVar2 = var_5;
  }
  var_7 = (*(type_3 *)PTR_memcmp_003a98f4)(var_1->datum,var_3->datum,uVar2);
  if (((var_7 == 0) && (var_5 != var_6)) && (var_7 = -1, var_5 <= var_6)) {
    var_7 = 1;
  }
  return var_7;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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 (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))))) (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))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (return_statement (identifier)))))

int MASKED(int param_1,int param_2)

{
  int iVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  
  if (param_1 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32dc,PTR_s_courses_003a88ec + -0x32f0,0x15e,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (*(int *)(param_1 + 0xc) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x32bc,PTR_s_courses_003a88ec + -0x32f0,0x15f,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (param_2 == 0) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_courses_003a88ec + -0x3290,PTR_s_courses_003a88ec + -0x32f0,0x160,
                       PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  if (*(int *)(param_2 + 0xc) != -0x54535255) {
    iVar1 = (*(code *)PTR___assert_fail_003a9608)
                      (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x3930,
                       PTR_s_courses_003a88ec + -0x32f0,0x161,PTR_s_courses_003a88ec + -0x2c54);
    return iVar1;
  }
  uVar4 = *(uint *)(param_2 + 8);
  uVar3 = *(uint *)(param_1 + 8);
  uVar2 = uVar3;
  if (uVar4 <= uVar3) {
    uVar2 = uVar4;
  }
  iVar1 = (*(code *)PTR_memcmp_003a98f4)
                    (*(undefined4 *)(param_1 + 4),*(undefined4 *)(param_2 + 4),uVar2);
  if (((iVar1 == 0) && (uVar4 != uVar3)) && (iVar1 = -1, uVar4 <= uVar3)) {
    iVar1 = 1;
  }
  return iVar1;
}

