
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

_Bool pred_newerXY(char *pathname,stat *stat_buf,predicate *pred_ptr)

{
  size_t __time0;
  size_t sVar1;
  bool bVar2;
  char *pcVar3;
  undefined4 uVar4;
  size_t __time1;
  size_t sVar5;
  double dVar6;
  
  if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {
    switch((pred_ptr->args).numinfo.kind) {
    case COMP_GT:
      __time1 = (stat_buf->st_atim).tv_sec;
      sVar5 = (stat_buf->st_atim).tv_nsec;
      break;
    case COMP_LT:
      pcVar3 = safely_quote_err_filename(0,pathname);
      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,0,uVar4,pcVar3);
    case COMP_EQ:
      __time1 = (stat_buf->st_ctim).tv_sec;
      sVar5 = (stat_buf->st_ctim).tv_nsec;
      break;
    case COMP_EQ|COMP_LT:
      __time1 = (stat_buf->st_mtim).tv_sec;
      sVar5 = (stat_buf->st_mtim).tv_nsec;
      break;
    case 4:
                    /* WARNING: Subroutine does not return */
      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");
    default:
                    /* WARNING: Subroutine does not return */
      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");
    }
    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;
    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;
    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {
      dVar6 = difftime(__time1,__time0);
      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;
    }
    return bVar2;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool FUN_000172d0(undefined4 param_1,int param_2,int param_3)

{
  int iVar1;
  bool bVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int __time1;
  int iVar5;
  double dVar6;
  
  if (*(int *)(param_3 + 0x2c) == 0) {
    switch(*(undefined4 *)(param_3 + 0x28)) {
    case 0:
      __time1 = *(int *)(param_2 + 0x40);
      iVar5 = *(int *)(param_2 + 0x44);
      break;
    case 1:
      uVar3 = FUN_000211f0(0,param_1);
      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,0,uVar4,uVar3);
    case 2:
      __time1 = *(int *)(param_2 + 0x50);
      iVar5 = *(int *)(param_2 + 0x54);
      break;
    case 3:
      __time1 = *(int *)(param_2 + 0x48);
      iVar5 = *(int *)(param_2 + 0x4c);
      break;
    case 4:
                    /* WARNING: Subroutine does not return */
      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");
    default:
                    /* WARNING: Subroutine does not return */
      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");
    }
    iVar1 = *(int *)(param_3 + 0x34);
    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {
      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));
      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;
    }
    return bVar2;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014da0
ADD EBX,0x63a10
SUB ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [EAX + 0x2c]
TEST ECX,ECX
JNZ 0x000173e9
CMP dword ptr [EAX + 0x28],0x4
JA 0x000173ca
MOV ECX,dword ptr [EAX + 0x28]
MOV EDI,dword ptr [EBX + ECX*0x4 + 0xfffe3c08]
ADD EDI,EBX
JMP EDI
LEA EAX,[EBX + 0xfffe3c48]
PUSH EAX
LEA EAX,[EBX + 0xfffe376c]
PUSH 0x2e1
PUSH EAX
LEA EAX,[EBX + 0xfffe37c0]
PUSH EAX
CALL 0x00014990
LEA EAX,[EBX + 0xfffe3c48]
PUSH EAX
LEA EAX,[EBX + 0xfffe376c]
PUSH 0x2bd
PUSH EAX
LEA EAX,[EBX + 0xfffe3ad8]
PUSH EAX
CALL 0x00014990
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool FUN_000172d0(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}\n\n" comment (function_definition "bool FUN_000172d0(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" primitive_type (function_declarator "FUN_000172d0(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int __time1;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (if_statement "if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) == 0)" ( (binary_expression "*(int *)(param_3 + 0x2c) == 0" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" { (switch_statement "switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" switch (parenthesized_expression "(*(undefined4 *)(param_3 + 0x28))" ( (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )) (compound_statement "{\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" { (case_statement "case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x40);" (assignment_expression "__time1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x44)" identifier = (pointer_expression "*(int *)(param_2 + 0x44)" * (cast_expression "(int *)(param_2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,uVar3);" case number_literal : (expression_statement "uVar3 = FUN_000211f0(0,param_1);" (assignment_expression "uVar3 = FUN_000211f0(0,param_1)" identifier = (call_expression "FUN_000211f0(0,param_1)" identifier (argument_list "(0,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);" (assignment_expression "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier = (call_expression "dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier (argument_list "(0,"WARNING: cannot determine birth time of file %s",5)" ( number_literal , (string_literal ""WARNING: cannot determine birth time of file %s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(0,0,uVar4,uVar3);" (call_expression "error(0,0,uVar4,uVar3)" identifier (argument_list "(0,0,uVar4,uVar3)" ( number_literal , number_literal , identifier , identifier ))) ;)) (case_statement "case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x50);" (assignment_expression "__time1 = *(int *)(param_2 + 0x50)" identifier = (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x54)" identifier = (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x48);" (assignment_expression "__time1 = *(int *)(param_2 + 0x48)" identifier = (pointer_expression "*(int *)(param_2 + 0x48)" * (cast_expression "(int *)(param_2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x4c)" identifier = (pointer_expression "*(int *)(param_2 + 0x4c)" * (cast_expression "(int *)(param_2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" case number_literal : comment (expression_statement "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" (call_expression "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" identifier (argument_list "("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" ( (string_literal ""pred_ptr->args.reftime.xval != XVAL_TIME"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" default : comment (expression_statement "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" (call_expression "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY")" identifier (argument_list "("collected","pred.c",0x2e1,"pred_newerXY")" ( (string_literal ""collected"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) })) (expression_statement "iVar1 = *(int *)(param_3 + 0x34);" (assignment_expression "iVar1 = *(int *)(param_3 + 0x34)" identifier = (pointer_expression "*(int *)(param_3 + 0x34)" * (cast_expression "(int *)(param_3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" if (parenthesized_expression "((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1))" ( (binary_expression "(__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)" (parenthesized_expression "(__time1 != *(int *)(param_3 + 0x30))" ( (binary_expression "__time1 != *(int *)(param_3 + 0x30)" identifier != (pointer_expression "*(int *)(param_3 + 0x30)" * (cast_expression "(int *)(param_3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) ))))) )) || (parenthesized_expression "(bVar2 = false, iVar5 != iVar1)" ( (comma_expression "bVar2 = false, iVar5 != iVar1" (assignment_expression "bVar2 = false" identifier = false) , (binary_expression "iVar5 != iVar1" identifier != identifier)) ))) )) (compound_statement "{\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" { (expression_statement "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));" (assignment_expression "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30))" identifier = (call_expression "difftime(__time1,*(int *)(param_3 + 0x30))" identifier (argument_list "(__time1,*(int *)(param_3 + 0x30))" ( identifier , (pointer_expression "*(int *)(param_3 + 0x30)" * (cast_expression "(int *)(param_3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;" (assignment_expression "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" identifier = (binary_expression "0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" number_literal <= (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980" (cast_expression "(double)(iVar5 - iVar1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(iVar5 - iVar1)" ( (binary_expression "iVar5 - iVar1" identifier - identifier) ))) * identifier) + identifier))) ;) })) (return_statement "return bVar2;" return identifier ;) })) comment (expression_statement "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");" (call_expression "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" identifier (argument_list "("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" ( (string_literal ""COMP_GT == pred_ptr->args.reftime.kind"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool pred_newerXY(char *pathname,stat *stat_buf,predicate *pred_ptr)\n\n{\n  size_t __time0;\n  size_t sVar1;\n  bool bVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t __time1;\n  size_t sVar5;\n  double dVar6;\n  \n  if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {\n    switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;\n    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;\n    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}\n\n" comment comment (function_definition "_Bool pred_newerXY(char *pathname,stat *stat_buf,predicate *pred_ptr)\n\n{\n  size_t __time0;\n  size_t sVar1;\n  bool bVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t __time1;\n  size_t sVar5;\n  double dVar6;\n  \n  if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {\n    switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;\n    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;\n    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" type_identifier (function_declarator "pred_newerXY(char *pathname,stat *stat_buf,predicate *pred_ptr)" identifier (parameter_list "(char *pathname,stat *stat_buf,predicate *pred_ptr)" ( (parameter_declaration "char *pathname" primitive_type (pointer_declarator "*pathname" * identifier)) , (parameter_declaration "stat *stat_buf" type_identifier (pointer_declarator "*stat_buf" * identifier)) , (parameter_declaration "predicate *pred_ptr" type_identifier (pointer_declarator "*pred_ptr" * identifier)) ))) (compound_statement "{\n  size_t __time0;\n  size_t sVar1;\n  bool bVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  size_t __time1;\n  size_t sVar5;\n  double dVar6;\n  \n  if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {\n    switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;\n    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;\n    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" { (declaration "size_t __time0;" primitive_type identifier ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "size_t __time1;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (if_statement "if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {\n    switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;\n    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;\n    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" if (parenthesized_expression "((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0)" ( (binary_expression "(pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0" (field_expression "(pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded" (field_expression "(pred_ptr->args).exec_vec.ctl" (field_expression "(pred_ptr->args).exec_vec" (parenthesized_expression "(pred_ptr->args)" ( (field_expression "pred_ptr->args" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n    switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    __time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;\n    sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;\n    if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" { (switch_statement "switch((pred_ptr->args).numinfo.kind) {\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" switch (parenthesized_expression "((pred_ptr->args).numinfo.kind)" ( (field_expression "(pred_ptr->args).numinfo.kind" (field_expression "(pred_ptr->args).numinfo" (parenthesized_expression "(pred_ptr->args)" ( (field_expression "pred_ptr->args" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) (compound_statement "{\n    case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;\n    case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);\n    case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;\n    case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;\n    case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" { (case_statement "case COMP_GT:\n      __time1 = (stat_buf->st_atim).tv_sec;\n      sVar5 = (stat_buf->st_atim).tv_nsec;\n      break;" case identifier : (expression_statement "__time1 = (stat_buf->st_atim).tv_sec;" (assignment_expression "__time1 = (stat_buf->st_atim).tv_sec" identifier = (field_expression "(stat_buf->st_atim).tv_sec" (parenthesized_expression "(stat_buf->st_atim)" ( (field_expression "stat_buf->st_atim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = (stat_buf->st_atim).tv_nsec;" (assignment_expression "sVar5 = (stat_buf->st_atim).tv_nsec" identifier = (field_expression "(stat_buf->st_atim).tv_nsec" (parenthesized_expression "(stat_buf->st_atim)" ( (field_expression "stat_buf->st_atim" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case COMP_LT:\n      pcVar3 = safely_quote_err_filename(0,pathname);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    /* WARNING: Subroutine does not return */\n      error(0,0,uVar4,pcVar3);" case identifier : (expression_statement "pcVar3 = safely_quote_err_filename(0,pathname);" (assignment_expression "pcVar3 = safely_quote_err_filename(0,pathname)" identifier = (call_expression "safely_quote_err_filename(0,pathname)" identifier (argument_list "(0,pathname)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);" (assignment_expression "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier = (call_expression "dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier (argument_list "(0,"WARNING: cannot determine birth time of file %s",5)" ( number_literal , (string_literal ""WARNING: cannot determine birth time of file %s"" " string_content ") , number_literal )))) ;) comment (expression_statement "error(0,0,uVar4,pcVar3);" (call_expression "error(0,0,uVar4,pcVar3)" identifier (argument_list "(0,0,uVar4,pcVar3)" ( number_literal , number_literal , identifier , identifier ))) ;)) (case_statement "case COMP_EQ:\n      __time1 = (stat_buf->st_ctim).tv_sec;\n      sVar5 = (stat_buf->st_ctim).tv_nsec;\n      break;" case identifier : (expression_statement "__time1 = (stat_buf->st_ctim).tv_sec;" (assignment_expression "__time1 = (stat_buf->st_ctim).tv_sec" identifier = (field_expression "(stat_buf->st_ctim).tv_sec" (parenthesized_expression "(stat_buf->st_ctim)" ( (field_expression "stat_buf->st_ctim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = (stat_buf->st_ctim).tv_nsec;" (assignment_expression "sVar5 = (stat_buf->st_ctim).tv_nsec" identifier = (field_expression "(stat_buf->st_ctim).tv_nsec" (parenthesized_expression "(stat_buf->st_ctim)" ( (field_expression "stat_buf->st_ctim" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case COMP_EQ|COMP_LT:\n      __time1 = (stat_buf->st_mtim).tv_sec;\n      sVar5 = (stat_buf->st_mtim).tv_nsec;\n      break;" case (binary_expression "COMP_EQ|COMP_LT" identifier | identifier) : (expression_statement "__time1 = (stat_buf->st_mtim).tv_sec;" (assignment_expression "__time1 = (stat_buf->st_mtim).tv_sec" identifier = (field_expression "(stat_buf->st_mtim).tv_sec" (parenthesized_expression "(stat_buf->st_mtim)" ( (field_expression "stat_buf->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "sVar5 = (stat_buf->st_mtim).tv_nsec;" (assignment_expression "sVar5 = (stat_buf->st_mtim).tv_nsec" identifier = (field_expression "(stat_buf->st_mtim).tv_nsec" (parenthesized_expression "(stat_buf->st_mtim)" ( (field_expression "stat_buf->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" case number_literal : comment (expression_statement "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" (call_expression "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" identifier (argument_list "("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" ( (string_literal ""pred_ptr->args.reftime.xval != XVAL_TIME"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" default : comment (expression_statement "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" (call_expression "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY")" identifier (argument_list "("collected","pred.c",0x2e1,"pred_newerXY")" ( (string_literal ""collected"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) })) (expression_statement "__time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;" (assignment_expression "__time0 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max" identifier = (field_expression "(pred_ptr->args).exec_vec.ctl.posix_arg_size_max" (field_expression "(pred_ptr->args).exec_vec.ctl" (field_expression "(pred_ptr->args).exec_vec" (parenthesized_expression "(pred_ptr->args)" ( (field_expression "pred_ptr->args" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;" (assignment_expression "sVar1 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min" identifier = (field_expression "(pred_ptr->args).exec_vec.ctl.posix_arg_size_min" (field_expression "(pred_ptr->args).exec_vec.ctl" (field_expression "(pred_ptr->args).exec_vec" (parenthesized_expression "(pred_ptr->args)" ( (field_expression "pred_ptr->args" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)) {\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }" if (parenthesized_expression "((__time1 != __time0) || (bVar2 = false, sVar5 != sVar1))" ( (binary_expression "(__time1 != __time0) || (bVar2 = false, sVar5 != sVar1)" (parenthesized_expression "(__time1 != __time0)" ( (binary_expression "__time1 != __time0" identifier != identifier) )) || (parenthesized_expression "(bVar2 = false, sVar5 != sVar1)" ( (comma_expression "bVar2 = false, sVar5 != sVar1" (assignment_expression "bVar2 = false" identifier = false) , (binary_expression "sVar5 != sVar1" identifier != identifier)) ))) )) (compound_statement "{\n      dVar6 = difftime(__time1,__time0);\n      bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;\n    }" { (expression_statement "dVar6 = difftime(__time1,__time0);" (assignment_expression "dVar6 = difftime(__time1,__time0)" identifier = (call_expression "difftime(__time1,__time0)" identifier (argument_list "(__time1,__time0)" ( identifier , identifier )))) ;) (expression_statement "bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6;" (assignment_expression "bVar2 = 0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6" identifier = (binary_expression "0.0 <= (double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6" number_literal <= (binary_expression "(double)(int)(sVar5 - sVar1) * DAT_0005e980 + dVar6" (binary_expression "(double)(int)(sVar5 - sVar1) * DAT_0005e980" (cast_expression "(double)(int)(sVar5 - sVar1)" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)(sVar5 - sVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar5 - sVar1)" ( (binary_expression "sVar5 - sVar1" identifier - identifier) )))) * identifier) + identifier))) ;) })) (return_statement "return bVar2;" return identifier ;) })) comment (expression_statement "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");" (call_expression "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" identifier (argument_list "("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" ( (string_literal ""COMP_GT == pred_ptr->args.reftime.kind"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;) })))
(translation_unit "bool FUN_000172d0(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    \n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}\n\n" (function_definition "bool FUN_000172d0(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    \n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" primitive_type (function_declarator "FUN_000172d0(undefined4 param_1,int param_2,int param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,int param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    \n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int __time1;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (if_statement "if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" if (parenthesized_expression "(*(int *)(param_3 + 0x2c) == 0)" ( (binary_expression "*(int *)(param_3 + 0x2c) == 0" (pointer_expression "*(int *)(param_3 + 0x2c)" * (cast_expression "(int *)(param_3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c)" ( (binary_expression "param_3 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" { (switch_statement "switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" switch (parenthesized_expression "(*(undefined4 *)(param_3 + 0x28))" ( (pointer_expression "*(undefined4 *)(param_3 + 0x28)" * (cast_expression "(undefined4 *)(param_3 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) )) (compound_statement "{\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" { (case_statement "case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x40);" (assignment_expression "__time1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x44)" identifier = (pointer_expression "*(int *)(param_2 + 0x44)" * (cast_expression "(int *)(param_2 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x44)" ( (binary_expression "param_2 + 0x44" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);" case number_literal : (expression_statement "uVar3 = FUN_000211f0(0,param_1);" (assignment_expression "uVar3 = FUN_000211f0(0,param_1)" identifier = (call_expression "FUN_000211f0(0,param_1)" identifier (argument_list "(0,param_1)" ( number_literal , identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);" (assignment_expression "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier = (call_expression "dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" identifier (argument_list "(0,"WARNING: cannot determine birth time of file %s",5)" ( number_literal , (string_literal ""WARNING: cannot determine birth time of file %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(0,0,uVar4,uVar3);" (call_expression "error(0,0,uVar4,uVar3)" identifier (argument_list "(0,0,uVar4,uVar3)" ( number_literal , number_literal , identifier , identifier ))) ;)) (case_statement "case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x50);" (assignment_expression "__time1 = *(int *)(param_2 + 0x50)" identifier = (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x54)" identifier = (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;" case number_literal : (expression_statement "__time1 = *(int *)(param_2 + 0x48);" (assignment_expression "__time1 = *(int *)(param_2 + 0x48)" identifier = (pointer_expression "*(int *)(param_2 + 0x48)" * (cast_expression "(int *)(param_2 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x4c)" identifier = (pointer_expression "*(int *)(param_2 + 0x4c)" * (cast_expression "(int *)(param_2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" case number_literal : (expression_statement "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" (call_expression "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" identifier (argument_list "("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" ( (string_literal ""pred_ptr->args.reftime.xval != XVAL_TIME"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) (case_statement "default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" default : (expression_statement "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" (call_expression "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY")" identifier (argument_list "("collected","pred.c",0x2e1,"pred_newerXY")" ( (string_literal ""collected"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;)) })) (expression_statement "iVar1 = *(int *)(param_3 + 0x34);" (assignment_expression "iVar1 = *(int *)(param_3 + 0x34)" identifier = (pointer_expression "*(int *)(param_3 + 0x34)" * (cast_expression "(int *)(param_3 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x34)" ( (binary_expression "param_3 + 0x34" identifier + number_literal) ))))) ;) (if_statement "if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" if (parenthesized_expression "((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1))" ( (binary_expression "(__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)" (parenthesized_expression "(__time1 != *(int *)(param_3 + 0x30))" ( (binary_expression "__time1 != *(int *)(param_3 + 0x30)" identifier != (pointer_expression "*(int *)(param_3 + 0x30)" * (cast_expression "(int *)(param_3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) ))))) )) || (parenthesized_expression "(bVar2 = false, iVar5 != iVar1)" ( (comma_expression "bVar2 = false, iVar5 != iVar1" (assignment_expression "bVar2 = false" identifier = false) , (binary_expression "iVar5 != iVar1" identifier != identifier)) ))) )) (compound_statement "{\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" { (expression_statement "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));" (assignment_expression "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30))" identifier = (call_expression "difftime(__time1,*(int *)(param_3 + 0x30))" identifier (argument_list "(__time1,*(int *)(param_3 + 0x30))" ( identifier , (pointer_expression "*(int *)(param_3 + 0x30)" * (cast_expression "(int *)(param_3 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x30)" ( (binary_expression "param_3 + 0x30" identifier + number_literal) )))) )))) ;) (expression_statement "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;" (assignment_expression "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" identifier = (binary_expression "0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" number_literal <= (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980" (cast_expression "(double)(iVar5 - iVar1)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(iVar5 - iVar1)" ( (binary_expression "iVar5 - iVar1" identifier - identifier) ))) * identifier) + identifier))) ;) })) (return_statement "return bVar2;" return identifier ;) })) (expression_statement "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");" (call_expression "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" identifier (argument_list "("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" ( (string_literal ""COMP_GT == pred_ptr->args.reftime.kind"" " string_content ") , (string_literal ""pred.c"" " string_content ") , number_literal , (string_literal ""pred_newerXY"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 { (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;)) (case_statement case 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = BOOL) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT <= (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) * IDENT) + IDENT))) ;) })) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "bool FUN_000172d0(undefined4 param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    \n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" (primitive_type "bool") (function_declarator "FUN_000172d0(undefined4 param_1,int param_2,int param_3)" (identifier "FUN_000172d0") (parameter_list "(undefined4 param_1,int param_2,int param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int __time1;\n  int iVar5;\n  double dVar6;\n  \n  if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }\n                    \n  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int __time1;" (primitive_type "int") (identifier "__time1") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (if_statement "if (*(int *)(param_3 + 0x2c) == 0) {\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(param_3 + 0x2c) == 0" (pointer_expression "*(int *)(param_3 + 0x2c)" (* "*") (cast_expression "(int *)(param_3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c)" (( "(") (binary_expression "param_3 + 0x2c" (identifier "param_3") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }\n    iVar1 = *(int *)(param_3 + 0x34);\n    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }\n    return bVar2;\n  }" ({ "{") (switch_statement "switch(*(undefined4 *)(param_3 + 0x28)) {\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" (switch "switch") (parenthesized_expression "(*(undefined4 *)(param_3 + 0x28))" (( "(") (pointer_expression "*(undefined4 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")")))) () ")")) (compound_statement "{\n    case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;\n    case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);\n    case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;\n    case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;\n    case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");\n    default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");\n    }" ({ "{") (case_statement "case 0:\n      __time1 = *(int *)(param_2 + 0x40);\n      iVar5 = *(int *)(param_2 + 0x44);\n      break;" (case "case") (number_literal "0") (: ":") (expression_statement "__time1 = *(int *)(param_2 + 0x40);" (assignment_expression "__time1 = *(int *)(param_2 + 0x40)" (identifier "__time1") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(param_2 + 0x44);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x44)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x44)" (* "*") (cast_expression "(int *)(param_2 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x44)" (( "(") (binary_expression "param_2 + 0x44" (identifier "param_2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n      uVar3 = FUN_000211f0(0,param_1);\n      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);\n                    \n      error(0,0,uVar4,uVar3);" (case "case") (number_literal "1") (: ":") (expression_statement "uVar3 = FUN_000211f0(0,param_1);" (assignment_expression "uVar3 = FUN_000211f0(0,param_1)" (identifier "uVar3") (= "=") (call_expression "FUN_000211f0(0,param_1)" (identifier "FUN_000211f0") (argument_list "(0,param_1)" (( "(") (number_literal "0") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);" (assignment_expression "uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"WARNING: cannot determine birth time of file %s",5)" (identifier "dcgettext") (argument_list "(0,"WARNING: cannot determine birth time of file %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""WARNING: cannot determine birth time of file %s"" (" """) (string_content "WARNING: cannot determine birth time of file %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(0,0,uVar4,uVar3);" (call_expression "error(0,0,uVar4,uVar3)" (identifier "error") (argument_list "(0,0,uVar4,uVar3)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar4") (, ",") (identifier "uVar3") () ")"))) (; ";"))) (case_statement "case 2:\n      __time1 = *(int *)(param_2 + 0x50);\n      iVar5 = *(int *)(param_2 + 0x54);\n      break;" (case "case") (number_literal "2") (: ":") (expression_statement "__time1 = *(int *)(param_2 + 0x50);" (assignment_expression "__time1 = *(int *)(param_2 + 0x50)" (identifier "__time1") (= "=") (pointer_expression "*(int *)(param_2 + 0x50)" (* "*") (cast_expression "(int *)(param_2 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(param_2 + 0x54);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x54)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n      __time1 = *(int *)(param_2 + 0x48);\n      iVar5 = *(int *)(param_2 + 0x4c);\n      break;" (case "case") (number_literal "3") (: ":") (expression_statement "__time1 = *(int *)(param_2 + 0x48);" (assignment_expression "__time1 = *(int *)(param_2 + 0x48)" (identifier "__time1") (= "=") (pointer_expression "*(int *)(param_2 + 0x48)" (* "*") (cast_expression "(int *)(param_2 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar5 = *(int *)(param_2 + 0x4c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + 0x4c)" (* "*") (cast_expression "(int *)(param_2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x4c)" (( "(") (binary_expression "param_2 + 0x4c" (identifier "param_2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n                    \n      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" (case "case") (number_literal "4") (: ":") (expression_statement "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");" (call_expression "__assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" (identifier "__assert_fail") (argument_list "("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY")" (( "(") (string_literal ""pred_ptr->args.reftime.xval != XVAL_TIME"" (" """) (string_content "pred_ptr->args.reftime.xval != XVAL_TIME") (" """)) (, ",") (string_literal ""pred.c"" (" """) (string_content "pred.c") (" """)) (, ",") (number_literal "0x2c2") (, ",") (string_literal ""pred_newerXY"" (" """) (string_content "pred_newerXY") (" """)) () ")"))) (; ";"))) (case_statement "default:\n                    \n      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" (default "default") (: ":") (expression_statement "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY");" (call_expression "__assert_fail("collected","pred.c",0x2e1,"pred_newerXY")" (identifier "__assert_fail") (argument_list "("collected","pred.c",0x2e1,"pred_newerXY")" (( "(") (string_literal ""collected"" (" """) (string_content "collected") (" """)) (, ",") (string_literal ""pred.c"" (" """) (string_content "pred.c") (" """)) (, ",") (number_literal "0x2e1") (, ",") (string_literal ""pred_newerXY"" (" """) (string_content "pred_newerXY") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar1 = *(int *)(param_3 + 0x34);" (assignment_expression "iVar1 = *(int *)(param_3 + 0x34)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_3 + 0x34)" (* "*") (cast_expression "(int *)(param_3 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x34)" (( "(") (binary_expression "param_3 + 0x34" (identifier "param_3") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (if_statement "if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" (if "if") (parenthesized_expression "((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1))" (( "(") (binary_expression "(__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)" (parenthesized_expression "(__time1 != *(int *)(param_3 + 0x30))" (( "(") (binary_expression "__time1 != *(int *)(param_3 + 0x30)" (identifier "__time1") (!= "!=") (pointer_expression "*(int *)(param_3 + 0x30)" (* "*") (cast_expression "(int *)(param_3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x30)" (( "(") (binary_expression "param_3 + 0x30" (identifier "param_3") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(bVar2 = false, iVar5 != iVar1)" (( "(") (comma_expression "bVar2 = false, iVar5 != iVar1" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (, ",") (binary_expression "iVar5 != iVar1" (identifier "iVar5") (!= "!=") (identifier "iVar1"))) () ")"))) () ")")) (compound_statement "{\n      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));\n      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;\n    }" ({ "{") (expression_statement "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));" (assignment_expression "dVar6 = difftime(__time1,*(int *)(param_3 + 0x30))" (identifier "dVar6") (= "=") (call_expression "difftime(__time1,*(int *)(param_3 + 0x30))" (identifier "difftime") (argument_list "(__time1,*(int *)(param_3 + 0x30))" (( "(") (identifier "__time1") (, ",") (pointer_expression "*(int *)(param_3 + 0x30)" (* "*") (cast_expression "(int *)(param_3 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x30)" (( "(") (binary_expression "param_3 + 0x30" (identifier "param_3") (+ "+") (number_literal "0x30")) () ")")))) () ")")))) (; ";")) (expression_statement "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;" (assignment_expression "bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" (identifier "bVar2") (= "=") (binary_expression "0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" (number_literal "0.0") (<= "<=") (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980 + dVar6" (binary_expression "(double)(iVar5 - iVar1) * DAT_0005e980" (cast_expression "(double)(iVar5 - iVar1)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(iVar5 - iVar1)" (( "(") (binary_expression "iVar5 - iVar1" (identifier "iVar5") (- "-") (identifier "iVar1")) () ")"))) (* "*") (identifier "DAT_0005e980")) (+ "+") (identifier "dVar6")))) (; ";")) (} "}"))) (return_statement "return bVar2;" (return "return") (identifier "bVar2") (; ";")) (} "}"))) (expression_statement "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");" (call_expression "__assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" (identifier "__assert_fail") (argument_list "("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY")" (( "(") (string_literal ""COMP_GT == pred_ptr->args.reftime.kind"" (" """) (string_content "COMP_GT == pred_ptr->args.reftime.kind") (" """)) (, ",") (string_literal ""pred.c"" (" """) (string_content "pred.c") (" """)) (, ",") (number_literal "0x2bd") (, ",") (string_literal ""pred_newerXY"" (" """) (string_content "pred_newerXY") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

type_1 function_1(char *pathname,type_2 *stat_buf,type_3 *pred_ptr)

{
  size_t var_8;
  size_t var_10;
  bool bVar2;
  char *pcVar3;
  type_4 uVar4;
  size_t var_7;
  size_t var_9;
  double var_13;
  
  if ((pred_ptr->args).exec_vec.ctl.exit_if_size_exceeded == 0) {
    switch((pred_ptr->args).numinfo.kind) {
    case COMP_GT:
      var_7 = (stat_buf->st_atim).tv_sec;
      var_9 = (stat_buf->st_atim).tv_nsec;
      break;
    case var_5:
      pcVar3 = var_1(0,pathname);
      uVar4 = var_2(0,"WARNING: cannot determine birth time of file %s",5);
                    /* WARNING: Subroutine does not return */
      var_3(0,0,uVar4,pcVar3);
    case var_4:
      var_7 = (stat_buf->st_ctim).tv_sec;
      var_9 = (stat_buf->st_ctim).tv_nsec;
      break;
    case var_4|var_5:
      var_7 = (stat_buf->st_mtim).tv_sec;
      var_9 = (stat_buf->st_mtim).tv_nsec;
      break;
    case 4:
                    /* WARNING: Subroutine does not return */
      var_6("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");
    default:
                    /* WARNING: Subroutine does not return */
      var_6("collected","pred.c",0x2e1,"pred_newerXY");
    }
    var_8 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_max;
    var_10 = (pred_ptr->args).exec_vec.ctl.posix_arg_size_min;
    if ((var_7 != var_8) || (bVar2 = false, var_9 != var_10)) {
      var_13 = var_11(var_7,var_8);
      bVar2 = 0.0 <= (double)(int)(var_9 - var_10) * var_12 + var_13;
    }
    return bVar2;
  }
                    /* WARNING: Subroutine does not return */
  var_6("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

bool MASKED(undefined4 param_1,int param_2,int param_3)

{
  int iVar1;
  bool bVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int __time1;
  int iVar5;
  double dVar6;
  
  if (*(int *)(param_3 + 0x2c) == 0) {
    switch(*(undefined4 *)(param_3 + 0x28)) {
    case 0:
      __time1 = *(int *)(param_2 + 0x40);
      iVar5 = *(int *)(param_2 + 0x44);
      break;
    case 1:
      uVar3 = FUN_000211f0(0,param_1);
      uVar4 = dcgettext(0,"WARNING: cannot determine birth time of file %s",5);
                    /* WARNING: Subroutine does not return */
      error(0,0,uVar4,uVar3);
    case 2:
      __time1 = *(int *)(param_2 + 0x50);
      iVar5 = *(int *)(param_2 + 0x54);
      break;
    case 3:
      __time1 = *(int *)(param_2 + 0x48);
      iVar5 = *(int *)(param_2 + 0x4c);
      break;
    case 4:
                    /* WARNING: Subroutine does not return */
      __assert_fail("pred_ptr->args.reftime.xval != XVAL_TIME","pred.c",0x2c2,"pred_newerXY");
    default:
                    /* WARNING: Subroutine does not return */
      __assert_fail("collected","pred.c",0x2e1,"pred_newerXY");
    }
    iVar1 = *(int *)(param_3 + 0x34);
    if ((__time1 != *(int *)(param_3 + 0x30)) || (bVar2 = false, iVar5 != iVar1)) {
      dVar6 = difftime(__time1,*(int *)(param_3 + 0x30));
      bVar2 = 0.0 <= (double)(iVar5 - iVar1) * DAT_0005e980 + dVar6;
    }
    return bVar2;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("COMP_GT == pred_ptr->args.reftime.kind","pred.c",0x2bd,"pred_newerXY");
}

