
time_t mktime_z(timezone_t tz,tm *tm)

{
  long lVar1;
  _Bool _Var2;
  timezone_t tz_00;
  time_t tVar3;
  tm *ptVar4;
  long in_FS_OFFSET;
  time_t t;
  tm tm_1;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  if (tz == (timezone_t)0x0) {
    tVar3 = timegm((tm *)tm);
  }
  else {
    tz_00 = set_tz(tz);
    if (tz_00 == (timezone_t)0x0) {
      tVar3 = -1;
    }
    else {
      t = mktime((tm *)tm);
      if (((t != -1) ||
          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&
            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||
             (tm_1.tm_isdst < 0)))) &&
           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&
              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&
            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&
         (_Var2 = save_abbr(tz,tm), !_Var2)) {
        t = -1;
      }
      _Var2 = revert_tz(tz_00);
      tVar3 = t;
      if (!_Var2) {
        tVar3 = -1;
      }
    }
  }
  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return tVar3;
}



time_t FUN_0010ae93(long param_1,tm *param_2)

{
  char cVar1;
  long lVar2;
  time_t tVar3;
  tm *ptVar4;
  long in_FS_OFFSET;
  time_t local_60;
  tm local_58;
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
    tVar3 = timegm(param_2);
  }
  else {
    lVar2 = FUN_0010acf9();
    if (lVar2 == 0) {
      tVar3 = -1;
    }
    else {
      local_60 = mktime(param_2);
      if (((local_60 != -1) ||
          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&
            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||
             (local_58.tm_isdst < 0)))) &&
           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&
              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&
            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&
         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {
        local_60 = -1;
      }
      cVar1 = FUN_0010ad9d(lVar2);
      tVar3 = local_60;
      if (cVar1 == '\0') {
        tVar3 = -1;
      }
    }
  }
  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return tVar3;
}


PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x50
MOV RBX,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x48],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x0010af24
MOV RBP,RDI
CALL 0x0010acf9
MOV R12,RAX
TEST RAX,RAX
JZ 0x0010afab
MOV RDI,RBX
CALL 0x00102420
MOV qword ptr [RSP + 0x8],RAX
CMP RAX,-0x1
JZ 0x0010af2e
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0010ab70
TEST AL,AL
JNZ 0x0010aef2
MOV qword ptr [RSP + 0x8],-0x1
MOV RDI,R12
CALL 0x0010ad9d
TEST AL,AL
JZ 0x0010af9f
MOV RAX,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x48]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0010afb7
ADD RSP,0x50
POP RBX
POP RBP
POP R12
RET
MOV RDI,RSI
CALL 0x00102480
JMP 0x0010af07
LEA RSI,[RSP + 0x10]
LEA RDI,[RSP + 0x8]
CALL 0x001020c0
TEST RAX,RAX
JZ 0x0010aef2
MOV EDX,dword ptr [RSP + 0x30]
MOV EAX,dword ptr [RBX + 0x20]
TEST EAX,EAX
SETZ SIL
TEST EDX,EDX
SETZ CL
CMP SIL,CL
JZ 0x0010af61
TEST EAX,EAX
JS 0x0010af61
TEST EDX,EDX
JNS 0x0010aef2
MOV EAX,dword ptr [RBX + 0x10]
XOR EAX,dword ptr [RSP + 0x20]
MOV EDX,dword ptr [RBX + 0x14]
XOR EDX,dword ptr [RSP + 0x24]
OR EAX,EDX
MOV EDX,dword ptr [RBX + 0xc]
XOR EDX,dword ptr [RSP + 0x1c]
OR EAX,EDX
MOV EDX,dword ptr [RBX + 0x8]
XOR EDX,dword ptr [RSP + 0x18]
OR EAX,EDX
MOV EDX,dword ptr [RBX + 0x4]
XOR EDX,dword ptr [RSP + 0x14]
OR EAX,EDX
MOV EDX,dword ptr [RBX]
XOR EDX,dword ptr [RSP + 0x10]
OR EAX,EDX
JZ 0x0010aeda
JMP 0x0010aef2
MOV RAX,-0x1
JMP 0x0010af07
MOV RAX,-0x1
JMP 0x0010af07
CALL 0x001021d0
(translation_unit "time_t FUN_0010ae93(long param_1,tm *param_2)\n\n{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}\n\n" (function_definition "time_t FUN_0010ae93(long param_1,tm *param_2)\n\n{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}" type_identifier (function_declarator "FUN_0010ae93(long param_1,tm *param_2)" identifier (parameter_list "(long param_1,tm *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "tm *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar3;" type_identifier identifier ;) (declaration "tm *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t local_60;" type_identifier identifier ;) (declaration "tm local_58;" type_identifier identifier ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    tVar3 = timegm(param_2);\n  }" { (expression_statement "tVar3 = timegm(param_2);" (assignment_expression "tVar3 = timegm(param_2)" identifier = (call_expression "timegm(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" else (compound_statement "{\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" { (expression_statement "lVar2 = FUN_0010acf9();" (assignment_expression "lVar2 = FUN_0010acf9()" identifier = (call_expression "FUN_0010acf9()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      tVar3 = -1;\n    }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" else (compound_statement "{\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" { (expression_statement "local_60 = mktime(param_2);" (assignment_expression "local_60 = mktime(param_2)" identifier = (call_expression "mktime(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }" if (parenthesized_expression "(((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'))" ( (binary_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" (parenthesized_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))))" ( (binary_expression "(local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" (parenthesized_expression "(local_60 != -1)" ( (binary_expression "local_60 != -1" identifier != number_literal) )) || (parenthesized_expression "(((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" ( (parenthesized_expression "((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))" ( (binary_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" (parenthesized_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))))" ( (comma_expression "ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (assignment_expression "ptVar4 = localtime_r(&local_60,&local_58)" identifier = (call_expression "localtime_r(&local_60,&local_58)" identifier (argument_list "(&local_60,&local_58)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) )))) , (binary_expression "ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (binary_expression "ptVar4 != (tm *)0x0" identifier != (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" ( (parenthesized_expression "(((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))" ( (binary_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)" (parenthesized_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0))" ( (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)" (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0)" (parenthesized_expression "(param_2->tm_isdst == 0)" ( (binary_expression "param_2->tm_isdst == 0" (field_expression "param_2->tm_isdst" identifier -> field_identifier) == number_literal) )) == (parenthesized_expression "(local_58.tm_isdst == 0)" ( (binary_expression "local_58.tm_isdst == 0" (field_expression "local_58.tm_isdst" identifier . field_identifier) == number_literal) ))) || (parenthesized_expression "(param_2->tm_isdst < 0)" ( (binary_expression "param_2->tm_isdst < 0" (field_expression "param_2->tm_isdst" identifier -> field_identifier) < number_literal) ))) )) || (parenthesized_expression "(local_58.tm_isdst < 0)" ( (binary_expression "local_58.tm_isdst < 0" (field_expression "local_58.tm_isdst" identifier . field_identifier) < number_literal) ))) )) )))) )) && (parenthesized_expression "(((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" ( (binary_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec" (parenthesized_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min)" ( (binary_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min" (parenthesized_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour)" ( (binary_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour" (parenthesized_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday)" ( (binary_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday" (parenthesized_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year)" ( (binary_expression "param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year" (binary_expression "param_2->tm_mon == local_58.tm_mon" (field_expression "param_2->tm_mon" identifier -> field_identifier) == (field_expression "local_58.tm_mon" identifier . field_identifier)) && (binary_expression "param_2->tm_year == local_58.tm_year" (field_expression "param_2->tm_year" identifier -> field_identifier) == (field_expression "local_58.tm_year" identifier . field_identifier))) )) && (binary_expression "param_2->tm_mday == local_58.tm_mday" (field_expression "param_2->tm_mday" identifier -> field_identifier) == (field_expression "local_58.tm_mday" identifier . field_identifier))) )) && (binary_expression "param_2->tm_hour == local_58.tm_hour" (field_expression "param_2->tm_hour" identifier -> field_identifier) == (field_expression "local_58.tm_hour" identifier . field_identifier))) )) && (binary_expression "param_2->tm_min == local_58.tm_min" (field_expression "param_2->tm_min" identifier -> field_identifier) == (field_expression "local_58.tm_min" identifier . field_identifier))) )) && (binary_expression "param_2->tm_sec == local_58.tm_sec" (field_expression "param_2->tm_sec" identifier -> field_identifier) == (field_expression "local_58.tm_sec" identifier . field_identifier))) ))) )) ))) )) && (parenthesized_expression "(cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" ( (comma_expression "cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0010ab70(param_1,param_2)" identifier = (call_expression "FUN_0010ab70(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        local_60 = -1;\n      }" { (expression_statement "local_60 = -1;" (assignment_expression "local_60 = -1" identifier = number_literal) ;) })) (expression_statement "cVar1 = FUN_0010ad9d(lVar2);" (assignment_expression "cVar1 = FUN_0010ad9d(lVar2)" identifier = (call_expression "FUN_0010ad9d(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;) (expression_statement "tVar3 = local_60;" (assignment_expression "tVar3 = local_60" identifier = identifier) ;) (if_statement "if (cVar1 == '\0') {\n        tVar3 = -1;\n      }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        tVar3 = -1;\n      }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) })) }))) }))) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return tVar3;" return identifier ;) })))
(translation_unit "time_t mktime_z(timezone_t tz,tm *tm)\n\n{\n  long lVar1;\n  _Bool _Var2;\n  timezone_t tz_00;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t t;\n  tm tm_1;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (tz == (timezone_t)0x0) {\n    tVar3 = timegm((tm *)tm);\n  }\n  else {\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}\n\n" (function_definition "time_t mktime_z(timezone_t tz,tm *tm)\n\n{\n  long lVar1;\n  _Bool _Var2;\n  timezone_t tz_00;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t t;\n  tm tm_1;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (tz == (timezone_t)0x0) {\n    tVar3 = timegm((tm *)tm);\n  }\n  else {\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}" type_identifier (function_declarator "mktime_z(timezone_t tz,tm *tm)" identifier (parameter_list "(timezone_t tz,tm *tm)" ( (parameter_declaration "timezone_t tz" type_identifier identifier) , (parameter_declaration "tm *tm" type_identifier (pointer_declarator "*tm" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  _Bool _Var2;\n  timezone_t tz_00;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t t;\n  tm tm_1;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (tz == (timezone_t)0x0) {\n    tVar3 = timegm((tm *)tm);\n  }\n  else {\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return tVar3;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "timezone_t tz_00;" type_identifier identifier ;) (declaration "time_t tVar3;" type_identifier identifier ;) (declaration "tm *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t t;" type_identifier identifier ;) (declaration "tm tm_1;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (tz == (timezone_t)0x0) {\n    tVar3 = timegm((tm *)tm);\n  }\n  else {\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(tz == (timezone_t)0x0)" ( (binary_expression "tz == (timezone_t)0x0" identifier == (cast_expression "(timezone_t)0x0" ( (type_descriptor "timezone_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    tVar3 = timegm((tm *)tm);\n  }" { (expression_statement "tVar3 = timegm((tm *)tm);" (assignment_expression "tVar3 = timegm((tm *)tm)" identifier = (call_expression "timegm((tm *)tm)" identifier (argument_list "((tm *)tm)" ( (cast_expression "(tm *)tm" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }) (else_clause "else {\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }" else (compound_statement "{\n    tz_00 = set_tz(tz);\n    if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }\n  }" { (expression_statement "tz_00 = set_tz(tz);" (assignment_expression "tz_00 = set_tz(tz)" identifier = (call_expression "set_tz(tz)" identifier (argument_list "(tz)" ( identifier )))) ;) (if_statement "if (tz_00 == (timezone_t)0x0) {\n      tVar3 = -1;\n    }\n    else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }" if (parenthesized_expression "(tz_00 == (timezone_t)0x0)" ( (binary_expression "tz_00 == (timezone_t)0x0" identifier == (cast_expression "(timezone_t)0x0" ( (type_descriptor "timezone_t" type_identifier) ) number_literal)) )) (compound_statement "{\n      tVar3 = -1;\n    }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }" else (compound_statement "{\n      t = mktime((tm *)tm);\n      if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }\n      _Var2 = revert_tz(tz_00);\n      tVar3 = t;\n      if (!_Var2) {\n        tVar3 = -1;\n      }\n    }" { (expression_statement "t = mktime((tm *)tm);" (assignment_expression "t = mktime((tm *)tm)" identifier = (call_expression "mktime((tm *)tm)" identifier (argument_list "((tm *)tm)" ( (cast_expression "(tm *)tm" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)) {\n        t = -1;\n      }" if (parenthesized_expression "(((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2))" ( (binary_expression "((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))) &&\n         (_Var2 = save_abbr(tz,tm), !_Var2)" (parenthesized_expression "((t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec))))" ( (binary_expression "(t != -1) ||\n          (((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))" (parenthesized_expression "(t != -1)" ( (binary_expression "t != -1" identifier != number_literal) )) || (parenthesized_expression "(((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)))" ( (parenthesized_expression "((ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec))" ( (binary_expression "(ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))) &&\n           (((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)" (parenthesized_expression "(ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0))))" ( (comma_expression "ptVar4 = localtime_r(&t,(tm *)&tm_1), ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))" (assignment_expression "ptVar4 = localtime_r(&t,(tm *)&tm_1)" identifier = (call_expression "localtime_r(&t,(tm *)&tm_1)" identifier (argument_list "(&t,(tm *)&tm_1)" ( (pointer_expression "&t" & identifier) , (cast_expression "(tm *)&tm_1" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tm_1" & identifier)) )))) , (binary_expression "ptVar4 != (tm *)0x0 &&\n            ((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))" (binary_expression "ptVar4 != (tm *)0x0" identifier != (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)))" ( (parenthesized_expression "(((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0))" ( (binary_expression "((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)) ||\n             (tm_1.tm_isdst < 0)" (parenthesized_expression "((tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0))" ( (binary_expression "(tm->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (tm->tm_isdst < 0)" (binary_expression "(tm->tm_isdst == 0) == (tm_1.tm_isdst == 0)" (parenthesized_expression "(tm->tm_isdst == 0)" ( (binary_expression "tm->tm_isdst == 0" (field_expression "tm->tm_isdst" identifier -> field_identifier) == number_literal) )) == (parenthesized_expression "(tm_1.tm_isdst == 0)" ( (binary_expression "tm_1.tm_isdst == 0" (field_expression "tm_1.tm_isdst" identifier . field_identifier) == number_literal) ))) || (parenthesized_expression "(tm->tm_isdst < 0)" ( (binary_expression "tm->tm_isdst < 0" (field_expression "tm->tm_isdst" identifier -> field_identifier) < number_literal) ))) )) || (parenthesized_expression "(tm_1.tm_isdst < 0)" ( (binary_expression "tm_1.tm_isdst < 0" (field_expression "tm_1.tm_isdst" identifier . field_identifier) < number_literal) ))) )) )))) )) && (parenthesized_expression "(((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec)" ( (binary_expression "((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min) && tm->tm_sec == tm_1.tm_sec" (parenthesized_expression "((((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min)" ( (binary_expression "(((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour) &&\n            tm->tm_min == tm_1.tm_min" (parenthesized_expression "(((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour)" ( (binary_expression "((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday) && tm->tm_hour == tm_1.tm_hour" (parenthesized_expression "((tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday)" ( (binary_expression "(tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year) &&\n              tm->tm_mday == tm_1.tm_mday" (parenthesized_expression "(tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year)" ( (binary_expression "tm->tm_mon == tm_1.tm_mon && tm->tm_year == tm_1.tm_year" (binary_expression "tm->tm_mon == tm_1.tm_mon" (field_expression "tm->tm_mon" identifier -> field_identifier) == (field_expression "tm_1.tm_mon" identifier . field_identifier)) && (binary_expression "tm->tm_year == tm_1.tm_year" (field_expression "tm->tm_year" identifier -> field_identifier) == (field_expression "tm_1.tm_year" identifier . field_identifier))) )) && (binary_expression "tm->tm_mday == tm_1.tm_mday" (field_expression "tm->tm_mday" identifier -> field_identifier) == (field_expression "tm_1.tm_mday" identifier . field_identifier))) )) && (binary_expression "tm->tm_hour == tm_1.tm_hour" (field_expression "tm->tm_hour" identifier -> field_identifier) == (field_expression "tm_1.tm_hour" identifier . field_identifier))) )) && (binary_expression "tm->tm_min == tm_1.tm_min" (field_expression "tm->tm_min" identifier -> field_identifier) == (field_expression "tm_1.tm_min" identifier . field_identifier))) )) && (binary_expression "tm->tm_sec == tm_1.tm_sec" (field_expression "tm->tm_sec" identifier -> field_identifier) == (field_expression "tm_1.tm_sec" identifier . field_identifier))) ))) )) ))) )) && (parenthesized_expression "(_Var2 = save_abbr(tz,tm), !_Var2)" ( (comma_expression "_Var2 = save_abbr(tz,tm), !_Var2" (assignment_expression "_Var2 = save_abbr(tz,tm)" identifier = (call_expression "save_abbr(tz,tm)" identifier (argument_list "(tz,tm)" ( identifier , identifier )))) , (unary_expression "!_Var2" ! identifier)) ))) )) (compound_statement "{\n        t = -1;\n      }" { (expression_statement "t = -1;" (assignment_expression "t = -1" identifier = number_literal) ;) })) (expression_statement "_Var2 = revert_tz(tz_00);" (assignment_expression "_Var2 = revert_tz(tz_00)" identifier = (call_expression "revert_tz(tz_00)" identifier (argument_list "(tz_00)" ( identifier )))) ;) (expression_statement "tVar3 = t;" (assignment_expression "tVar3 = t" identifier = identifier) ;) (if_statement "if (!_Var2) {\n        tVar3 = -1;\n      }" if (parenthesized_expression "(!_Var2)" ( (unary_expression "!_Var2" ! identifier) )) (compound_statement "{\n        tVar3 = -1;\n      }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) })) }))) }))) (if_statement "if (lVar1 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar1 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return tVar3;" return identifier ;) })))
(translation_unit "time_t FUN_0010ae93(long param_1,tm *param_2)\n\n{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return tVar3;\n}\n\n" (function_definition "time_t FUN_0010ae93(long param_1,tm *param_2)\n\n{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return tVar3;\n}" type_identifier (function_declarator "FUN_0010ae93(long param_1,tm *param_2)" identifier (parameter_list "(long param_1,tm *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "tm *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return tVar3;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t tVar3;" type_identifier identifier ;) (declaration "tm *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "time_t local_60;" type_identifier identifier ;) (declaration "tm local_58;" type_identifier identifier ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    tVar3 = timegm(param_2);\n  }" { (expression_statement "tVar3 = timegm(param_2);" (assignment_expression "tVar3 = timegm(param_2)" identifier = (call_expression "timegm(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" else (compound_statement "{\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" { (expression_statement "lVar2 = FUN_0010acf9();" (assignment_expression "lVar2 = FUN_0010acf9()" identifier = (call_expression "FUN_0010acf9()" identifier (argument_list "()" ( )))) ;) (if_statement "if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      tVar3 = -1;\n    }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" else (compound_statement "{\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" { (expression_statement "local_60 = mktime(param_2);" (assignment_expression "local_60 = mktime(param_2)" identifier = (call_expression "mktime(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }" if (parenthesized_expression "(((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'))" ( (binary_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" (parenthesized_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))))" ( (binary_expression "(local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" (parenthesized_expression "(local_60 != -1)" ( (binary_expression "local_60 != -1" identifier != number_literal) )) || (parenthesized_expression "(((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" ( (parenthesized_expression "((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))" ( (binary_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" (parenthesized_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))))" ( (comma_expression "ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (assignment_expression "ptVar4 = localtime_r(&local_60,&local_58)" identifier = (call_expression "localtime_r(&local_60,&local_58)" identifier (argument_list "(&local_60,&local_58)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) )))) , (binary_expression "ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (binary_expression "ptVar4 != (tm *)0x0" identifier != (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" ( (parenthesized_expression "(((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))" ( (binary_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)" (parenthesized_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0))" ( (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)" (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0)" (parenthesized_expression "(param_2->tm_isdst == 0)" ( (binary_expression "param_2->tm_isdst == 0" (field_expression "param_2->tm_isdst" identifier -> field_identifier) == number_literal) )) == (parenthesized_expression "(local_58.tm_isdst == 0)" ( (binary_expression "local_58.tm_isdst == 0" (field_expression "local_58.tm_isdst" identifier . field_identifier) == number_literal) ))) || (parenthesized_expression "(param_2->tm_isdst < 0)" ( (binary_expression "param_2->tm_isdst < 0" (field_expression "param_2->tm_isdst" identifier -> field_identifier) < number_literal) ))) )) || (parenthesized_expression "(local_58.tm_isdst < 0)" ( (binary_expression "local_58.tm_isdst < 0" (field_expression "local_58.tm_isdst" identifier . field_identifier) < number_literal) ))) )) )))) )) && (parenthesized_expression "(((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" ( (binary_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec" (parenthesized_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min)" ( (binary_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min" (parenthesized_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour)" ( (binary_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour" (parenthesized_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday)" ( (binary_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday" (parenthesized_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year)" ( (binary_expression "param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year" (binary_expression "param_2->tm_mon == local_58.tm_mon" (field_expression "param_2->tm_mon" identifier -> field_identifier) == (field_expression "local_58.tm_mon" identifier . field_identifier)) && (binary_expression "param_2->tm_year == local_58.tm_year" (field_expression "param_2->tm_year" identifier -> field_identifier) == (field_expression "local_58.tm_year" identifier . field_identifier))) )) && (binary_expression "param_2->tm_mday == local_58.tm_mday" (field_expression "param_2->tm_mday" identifier -> field_identifier) == (field_expression "local_58.tm_mday" identifier . field_identifier))) )) && (binary_expression "param_2->tm_hour == local_58.tm_hour" (field_expression "param_2->tm_hour" identifier -> field_identifier) == (field_expression "local_58.tm_hour" identifier . field_identifier))) )) && (binary_expression "param_2->tm_min == local_58.tm_min" (field_expression "param_2->tm_min" identifier -> field_identifier) == (field_expression "local_58.tm_min" identifier . field_identifier))) )) && (binary_expression "param_2->tm_sec == local_58.tm_sec" (field_expression "param_2->tm_sec" identifier -> field_identifier) == (field_expression "local_58.tm_sec" identifier . field_identifier))) ))) )) ))) )) && (parenthesized_expression "(cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" ( (comma_expression "cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0010ab70(param_1,param_2)" identifier = (call_expression "FUN_0010ab70(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        local_60 = -1;\n      }" { (expression_statement "local_60 = -1;" (assignment_expression "local_60 = -1" identifier = number_literal) ;) })) (expression_statement "cVar1 = FUN_0010ad9d(lVar2);" (assignment_expression "cVar1 = FUN_0010ad9d(lVar2)" identifier = (call_expression "FUN_0010ad9d(lVar2)" identifier (argument_list "(lVar2)" ( identifier )))) ;) (expression_statement "tVar3 = local_60;" (assignment_expression "tVar3 = local_60" identifier = identifier) ;) (if_statement "if (cVar1 == '\0') {\n        tVar3 = -1;\n      }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        tVar3 = -1;\n      }" { (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" identifier = number_literal) ;) })) }))) }))) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return tVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) == LIT) )) == (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == LIT) ))) || (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) < LIT) ))) )) || (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) < LIT) ))) )) )))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier)) && (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier))) )) && (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier))) )) && (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier))) )) && (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier))) )) && (binary_expression (field_expression IDENT -> field_identifier) == (field_expression IDENT . field_identifier))) ))) )) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "time_t FUN_0010ae93(long param_1,tm *param_2)\n\n{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return tVar3;\n}" (type_identifier "time_t") (function_declarator "FUN_0010ae93(long param_1,tm *param_2)" (identifier "FUN_0010ae93") (parameter_list "(long param_1,tm *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "tm *param_2" (type_identifier "tm") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  time_t tVar3;\n  tm *ptVar4;\n  long in_FS_OFFSET;\n  time_t local_60;\n  tm local_58;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }\n  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return tVar3;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "time_t tVar3;" (type_identifier "time_t") (identifier "tVar3") (; ";")) (declaration "tm *ptVar4;" (type_identifier "tm") (pointer_declarator "*ptVar4" (* "*") (identifier "ptVar4")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "time_t local_60;" (type_identifier "time_t") (identifier "local_60") (; ";")) (declaration "tm local_58;" (type_identifier "tm") (identifier "local_58") (; ";")) (declaration "long local_20;" (sized_type_specifier "long" (long "long")) (identifier "local_20") (; ";")) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n    tVar3 = timegm(param_2);\n  }\n  else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    tVar3 = timegm(param_2);\n  }" ({ "{") (expression_statement "tVar3 = timegm(param_2);" (assignment_expression "tVar3 = timegm(param_2)" (identifier "tVar3") (= "=") (call_expression "timegm(param_2)" (identifier "timegm") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    lVar2 = FUN_0010acf9();\n    if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }\n  }" ({ "{") (expression_statement "lVar2 = FUN_0010acf9();" (assignment_expression "lVar2 = FUN_0010acf9()" (identifier "lVar2") (= "=") (call_expression "FUN_0010acf9()" (identifier "FUN_0010acf9") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar2 == 0) {\n      tVar3 = -1;\n    }\n    else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" (if "if") (parenthesized_expression "(lVar2 == 0)" (( "(") (binary_expression "lVar2 == 0" (identifier "lVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      tVar3 = -1;\n    }" ({ "{") (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" (identifier "tVar3") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" (else "else") (compound_statement "{\n      local_60 = mktime(param_2);\n      if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }\n      cVar1 = FUN_0010ad9d(lVar2);\n      tVar3 = local_60;\n      if (cVar1 == '\0') {\n        tVar3 = -1;\n      }\n    }" ({ "{") (expression_statement "local_60 = mktime(param_2);" (assignment_expression "local_60 = mktime(param_2)" (identifier "local_60") (= "=") (call_expression "mktime(param_2)" (identifier "mktime") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {\n        local_60 = -1;\n      }" (if "if") (parenthesized_expression "(((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'))" (( "(") (binary_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&\n         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" (parenthesized_expression "((local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))))" (( "(") (binary_expression "(local_60 != -1) ||\n          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" (parenthesized_expression "(local_60 != -1)" (( "(") (binary_expression "local_60 != -1" (identifier "local_60") (!= "!=") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))" (( "(") (parenthesized_expression "((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec))" (( "(") (binary_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))) &&\n           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" (parenthesized_expression "(ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))))" (( "(") (comma_expression "ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (assignment_expression "ptVar4 = localtime_r(&local_60,&local_58)" (identifier "ptVar4") (= "=") (call_expression "localtime_r(&local_60,&local_58)" (identifier "localtime_r") (argument_list "(&local_60,&local_58)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (, ",") (binary_expression "ptVar4 != (tm *)0x0 &&\n            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (binary_expression "ptVar4 != (tm *)0x0" (identifier "ptVar4") (!= "!=") (cast_expression "(tm *)0x0" (( "(") (type_descriptor "tm *" (type_identifier "tm") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)))" (( "(") (parenthesized_expression "(((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0))" (( "(") (binary_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||\n             (local_58.tm_isdst < 0)" (parenthesized_expression "((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0))" (( "(") (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)" (binary_expression "(param_2->tm_isdst == 0) == (local_58.tm_isdst == 0)" (parenthesized_expression "(param_2->tm_isdst == 0)" (( "(") (binary_expression "param_2->tm_isdst == 0" (field_expression "param_2->tm_isdst" (identifier "param_2") (-> "->") (field_identifier "tm_isdst")) (== "==") (number_literal "0")) () ")")) (== "==") (parenthesized_expression "(local_58.tm_isdst == 0)" (( "(") (binary_expression "local_58.tm_isdst == 0" (field_expression "local_58.tm_isdst" (identifier "local_58") (. ".") (field_identifier "tm_isdst")) (== "==") (number_literal "0")) () ")"))) (|| "||") (parenthesized_expression "(param_2->tm_isdst < 0)" (( "(") (binary_expression "param_2->tm_isdst < 0" (field_expression "param_2->tm_isdst" (identifier "param_2") (-> "->") (field_identifier "tm_isdst")) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_58.tm_isdst < 0)" (( "(") (binary_expression "local_58.tm_isdst < 0" (field_expression "local_58.tm_isdst" (identifier "local_58") (. ".") (field_identifier "tm_isdst")) (< "<") (number_literal "0")) () ")"))) () ")")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)" (( "(") (binary_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec" (parenthesized_expression "((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min)" (( "(") (binary_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&\n            param_2->tm_min == local_58.tm_min" (parenthesized_expression "(((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour)" (( "(") (binary_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour" (parenthesized_expression "((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday)" (( "(") (binary_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&\n              param_2->tm_mday == local_58.tm_mday" (parenthesized_expression "(param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year)" (( "(") (binary_expression "param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year" (binary_expression "param_2->tm_mon == local_58.tm_mon" (field_expression "param_2->tm_mon" (identifier "param_2") (-> "->") (field_identifier "tm_mon")) (== "==") (field_expression "local_58.tm_mon" (identifier "local_58") (. ".") (field_identifier "tm_mon"))) (&& "&&") (binary_expression "param_2->tm_year == local_58.tm_year" (field_expression "param_2->tm_year" (identifier "param_2") (-> "->") (field_identifier "tm_year")) (== "==") (field_expression "local_58.tm_year" (identifier "local_58") (. ".") (field_identifier "tm_year")))) () ")")) (&& "&&") (binary_expression "param_2->tm_mday == local_58.tm_mday" (field_expression "param_2->tm_mday" (identifier "param_2") (-> "->") (field_identifier "tm_mday")) (== "==") (field_expression "local_58.tm_mday" (identifier "local_58") (. ".") (field_identifier "tm_mday")))) () ")")) (&& "&&") (binary_expression "param_2->tm_hour == local_58.tm_hour" (field_expression "param_2->tm_hour" (identifier "param_2") (-> "->") (field_identifier "tm_hour")) (== "==") (field_expression "local_58.tm_hour" (identifier "local_58") (. ".") (field_identifier "tm_hour")))) () ")")) (&& "&&") (binary_expression "param_2->tm_min == local_58.tm_min" (field_expression "param_2->tm_min" (identifier "param_2") (-> "->") (field_identifier "tm_min")) (== "==") (field_expression "local_58.tm_min" (identifier "local_58") (. ".") (field_identifier "tm_min")))) () ")")) (&& "&&") (binary_expression "param_2->tm_sec == local_58.tm_sec" (field_expression "param_2->tm_sec" (identifier "param_2") (-> "->") (field_identifier "tm_sec")) (== "==") (field_expression "local_58.tm_sec" (identifier "local_58") (. ".") (field_identifier "tm_sec")))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')" (( "(") (comma_expression "cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0010ab70(param_1,param_2)" (identifier "cVar1") (= "=") (call_expression "FUN_0010ab70(param_1,param_2)" (identifier "FUN_0010ab70") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        local_60 = -1;\n      }" ({ "{") (expression_statement "local_60 = -1;" (assignment_expression "local_60 = -1" (identifier "local_60") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "cVar1 = FUN_0010ad9d(lVar2);" (assignment_expression "cVar1 = FUN_0010ad9d(lVar2)" (identifier "cVar1") (= "=") (call_expression "FUN_0010ad9d(lVar2)" (identifier "FUN_0010ad9d") (argument_list "(lVar2)" (( "(") (identifier "lVar2") () ")")))) (; ";")) (expression_statement "tVar3 = local_60;" (assignment_expression "tVar3 = local_60" (identifier "tVar3") (= "=") (identifier "local_60")) (; ";")) (if_statement "if (cVar1 == '\0') {\n        tVar3 = -1;\n      }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        tVar3 = -1;\n      }" ({ "{") (expression_statement "tVar3 = -1;" (assignment_expression "tVar3 = -1" (identifier "tVar3") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (if_statement "if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_20 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_20 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return tVar3;" (return "return") (identifier "tVar3") (; ";")) (} "}")))

type_1 function_1(type_2 var_2,type_3 *type_3)

{
  long var_12;
  type_4 _Var2;
  type_2 var_5;
  type_1 tVar3;
  type_3 *var_9;
  long var_1;
  type_1 var_7;
  type_3 tm_1;
  
  var_12 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2)0x0) {
    tVar3 = var_3((type_3 *)type_3);
  }
  else {
    var_5 = var_4(var_2);
    if (var_5 == (type_2)0x0) {
      tVar3 = -1;
    }
    else {
      var_7 = var_6((type_3 *)type_3);
      if (((var_7 != -1) ||
          (((var_9 = var_8(&var_7,(type_3 *)&tm_1), var_9 != (type_3 *)0x0 &&
            ((((type_3->tm_isdst == 0) == (tm_1.tm_isdst == 0) || (type_3->tm_isdst < 0)) ||
             (tm_1.tm_isdst < 0)))) &&
           (((((type_3->tm_mon == tm_1.tm_mon && type_3->tm_year == tm_1.tm_year) &&
              type_3->tm_mday == tm_1.tm_mday) && type_3->tm_hour == tm_1.tm_hour) &&
            type_3->tm_min == tm_1.tm_min) && type_3->tm_sec == tm_1.tm_sec)))) &&
         (_Var2 = var_10(var_2,type_3), !_Var2)) {
        var_7 = -1;
      }
      _Var2 = var_11(var_5);
      tVar3 = var_7;
      if (!_Var2) {
        tVar3 = -1;
      }
    }
  }
  if (var_12 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_13();
  }
  return tVar3;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

time_t MASKED(long param_1,tm *param_2)

{
  char cVar1;
  long lVar2;
  time_t tVar3;
  tm *ptVar4;
  long in_FS_OFFSET;
  time_t local_60;
  tm local_58;
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
    tVar3 = timegm(param_2);
  }
  else {
    lVar2 = FUN_0010acf9();
    if (lVar2 == 0) {
      tVar3 = -1;
    }
    else {
      local_60 = mktime(param_2);
      if (((local_60 != -1) ||
          (((ptVar4 = localtime_r(&local_60,&local_58), ptVar4 != (tm *)0x0 &&
            ((((param_2->tm_isdst == 0) == (local_58.tm_isdst == 0) || (param_2->tm_isdst < 0)) ||
             (local_58.tm_isdst < 0)))) &&
           (((((param_2->tm_mon == local_58.tm_mon && param_2->tm_year == local_58.tm_year) &&
              param_2->tm_mday == local_58.tm_mday) && param_2->tm_hour == local_58.tm_hour) &&
            param_2->tm_min == local_58.tm_min) && param_2->tm_sec == local_58.tm_sec)))) &&
         (cVar1 = FUN_0010ab70(param_1,param_2), cVar1 == '\0')) {
        local_60 = -1;
      }
      cVar1 = FUN_0010ad9d(lVar2);
      tVar3 = local_60;
      if (cVar1 == '\0') {
        tVar3 = -1;
      }
    }
  }
  if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return tVar3;
}

