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

int fdutimens(int fd,char *file,timespec *timespec)

{
  int iVar1;
  bool bVar2;
  bool bVar3;
  _Bool _Var4;
  int iVar5;
  int iVar6;
  int *piVar7;
  utimbuf *__file_times;
  timeval *__tvp;
  int in_GS_OFFSET;
  bool bVar8;
  timespec *ts;
  utimbuf utimbuf;
  stat st;
  timespec adjusted_timespec [2];
  timeval timeval [2];
  timeval truncated_timeval [2];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (timespec == (timespec *)0x0) {
    ts = (timespec *)0x0;
    iVar5 = 0;
LAB_00023110:
    if ((fd < 0) && (file == (char *)0x0)) {
      piVar7 = __errno_location();
      *piVar7 = 9;
    }
    else {
      if (-1 < utimensat_works_really) {
        if (iVar5 == 2) {
          if (fd < 0) {
            iVar5 = __xstat64(3,file,(stat64 *)&st);
          }
          else {
            iVar5 = __fxstat64(3,fd,(stat64 *)&st);
          }
          if (iVar5 != 0) goto LAB_000233b8;
          if (ts->tv_nsec == 0x3ffffffe) {
            ts->tv_nsec = st.st_atim.tv_nsec;
            iVar5 = 3;
            ts->tv_sec = st.st_atim.tv_sec;
          }
          else {
            iVar5 = 3;
            if (ts[1].tv_nsec == 0x3ffffffe) {
              ts[1].tv_nsec = st.st_mtim.tv_nsec;
              ts[1].tv_sec = st.st_mtim.tv_sec;
            }
          }
        }
        if (fd < 0) {
          iVar6 = utimensat(-100,file,(timespec *)ts,0);
        }
        else {
          iVar6 = futimens(fd,(timespec *)ts);
        }
        if (iVar6 < 1) {
          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {
            utimensat_works_really = 1;
            goto LAB_00023294;
          }
        }
        else {
          piVar7 = __errno_location();
          *piVar7 = 0x26;
        }
      }
      utimensat_works_really = -1;
      lutimensat_works_really = -1;
      if (iVar5 == 0) {
LAB_000231d9:
        if (ts == (timespec *)0x0) goto LAB_000232b8;
        timeval[0].tv_sec = ts->tv_sec;
        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);
        timeval[1].tv_sec = ts[1].tv_sec;
        __tvp = (timeval *)timeval;
        timeval[1].tv_usec = ts[1].tv_nsec / 1000;
      }
      else {
        if (iVar5 != 3) {
          if (fd < 0) {
            iVar5 = __xstat64(3,file,(stat64 *)&st);
          }
          else {
            iVar5 = __fxstat64(3,fd,(stat64 *)&st);
          }
          if (iVar5 != 0) goto LAB_000233b8;
        }
        if (ts != (timespec *)0x0) {
          iVar6 = 0;
          _Var4 = update_timespec(&st,&ts);
          if (_Var4) goto LAB_00023294;
          goto LAB_000231d9;
        }
LAB_000232b8:
        __tvp = (timeval *)0x0;
      }
      if (fd < 0) {
        iVar6 = futimesat(-100,file,__tvp);
        goto LAB_00023294;
      }
      iVar5 = futimesat(fd,(char *)0x0,__tvp);
      if (iVar5 == 0) {
        iVar6 = 0;
        if (__tvp == (timeval *)0x0) goto LAB_00023294;
        bVar2 = __tvp->tv_usec < 500000;
        bVar3 = __tvp[1].tv_usec < 500000;
        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))
        goto LAB_00023294;
        truncated_timeval[0].tv_sec = __tvp->tv_sec;
        truncated_timeval[0].tv_usec = __tvp->tv_usec;
        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;
        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;
        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;
        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {
          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;
        }
        else {
          truncated_timeval[0].tv_usec = 0;
          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {
LAB_0002352c:
            truncated_timeval[1].tv_usec = 0;
          }
          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);
        }
        iVar6 = 0;
        goto LAB_00023294;
      }
      if (file != (char *)0x0) {
        __file_times = (utimbuf *)ts;
        if (ts != (timespec *)0x0) {
          utimbuf.actime = ts->tv_sec;
          utimbuf.modtime = ts[1].tv_sec;
          __file_times = (utimbuf *)&utimbuf;
        }
        iVar6 = utime(file,__file_times);
        goto LAB_00023294;
      }
    }
  }
  else {
    adjusted_timespec[0].tv_sec = timespec->tv_sec;
    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;
    ts = adjusted_timespec;
    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;
    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;
    iVar5 = validate_timespec(ts);
    if (-1 < iVar5) goto LAB_00023110;
  }
LAB_000233b8:
  iVar6 = -1;
LAB_00023294:
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return iVar6;
}



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

int FUN_00023090(int param_1,char *param_2,__time_t *param_3)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  timeval *__tvp;
  int in_GS_OFFSET;
  bool bVar7;
  utimbuf *local_bc;
  utimbuf local_b8;
  stat64 local_b0;
  utimbuf local_50;
  __time_t local_48;
  __time_t local_44;
  timeval local_40;
  __time_t local_38;
  int local_34;
  timeval local_30;
  __time_t local_28;
  __suseconds_t local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x23099;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_3 == (__time_t *)0x0) {
    local_bc = (utimbuf *)0x0;
    iVar4 = 0;
LAB_00023110:
    if ((param_1 < 0) && (param_2 == (char *)0x0)) {
      piVar6 = __errno_location();
      *piVar6 = 9;
    }
    else {
      if (-1 < DAT_0003d8fc) {
        if (iVar4 == 2) {
          if (param_1 < 0) {
            iVar4 = __xstat64(3,param_2,&local_b0);
          }
          else {
            iVar4 = __fxstat64(3,param_1,&local_b0);
          }
          if (iVar4 != 0) goto LAB_000233b8;
          if (local_bc->modtime == 0x3ffffffe) {
            local_bc->modtime = local_b0.st_atim.tv_nsec;
            iVar4 = 3;
            local_bc->actime = local_b0.st_atim.tv_sec;
          }
          else {
            iVar4 = 3;
            if (local_bc[1].modtime == 0x3ffffffe) {
              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;
              local_bc[1].actime = local_b0.st_mtim.tv_sec;
            }
          }
        }
        if (param_1 < 0) {
          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);
        }
        else {
          iVar5 = futimens(param_1,(timespec *)local_bc);
        }
        if (iVar5 < 1) {
          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {
            DAT_0003d8fc = 1;
            goto LAB_00023294;
          }
        }
        else {
          piVar6 = __errno_location();
          *piVar6 = 0x26;
        }
      }
      DAT_0003d8fc = -1;
      DAT_0003d8f8 = 0xffffffff;
      if (iVar4 == 0) {
LAB_000231d9:
        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;
        local_40.tv_sec = local_bc->actime;
        local_40.tv_usec =
             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);
        local_38 = local_bc[1].actime;
        __tvp = &local_40;
        local_34 = local_bc[1].modtime / 1000;
      }
      else {
        if (iVar4 != 3) {
          if (param_1 < 0) {
            iVar4 = __xstat64(3,param_2,&local_b0);
          }
          else {
            iVar4 = __fxstat64(3,param_1,&local_b0);
          }
          if (iVar4 != 0) goto LAB_000233b8;
        }
        if (local_bc != (utimbuf *)0x0) {
          iVar5 = 0;
          cVar3 = FUN_00022ee0();
          if (cVar3 != '\0') goto LAB_00023294;
          goto LAB_000231d9;
        }
LAB_000232b8:
        __tvp = (timeval *)0x0;
      }
      if (param_1 < 0) {
        iVar5 = futimesat(-100,param_2,__tvp);
        goto LAB_00023294;
      }
      iVar4 = futimesat(param_1,(char *)0x0,__tvp);
      if (iVar4 == 0) {
        iVar5 = 0;
        if (__tvp == (timeval *)0x0) goto LAB_00023294;
        bVar1 = __tvp->tv_usec < 500000;
        bVar2 = __tvp[1].tv_usec < 500000;
        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))
        goto LAB_00023294;
        local_30.tv_sec = __tvp->tv_sec;
        local_30.tv_usec = __tvp->tv_usec;
        local_28 = __tvp[1].tv_sec;
        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;
        local_24 = __tvp[1].tv_usec;
        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||
           (local_b0.st_atim.tv_nsec != 0)) {
          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;
        }
        else {
          local_30.tv_usec = 0;
          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {
LAB_0002352c:
            local_24 = 0;
          }
          futimesat(param_1,(char *)0x0,&local_30);
        }
        iVar5 = 0;
        goto LAB_00023294;
      }
      if (param_2 != (char *)0x0) {
        if (local_bc != (utimbuf *)0x0) {
          local_b8.actime = local_bc->actime;
          local_b8.modtime = local_bc[1].actime;
          local_bc = &local_b8;
        }
        iVar5 = utime(param_2,local_bc);
        goto LAB_00023294;
      }
    }
  }
  else {
    local_50.actime = *param_3;
    local_50.modtime = param_3[1];
    local_bc = &local_50;
    local_48 = param_3[2];
    local_44 = param_3[3];
    iVar4 = FUN_00022fb0();
    if (-1 < iVar4) goto LAB_00023110;
  }
LAB_000233b8:
  iVar5 = -1;
LAB_00023294:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002d970();
  }
  return iVar5;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013950
ADD EBX,0x17f67
SUB ESP,0xbc
MOV EAX,dword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0xd8]
MOV ESI,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xac],EAX
XOR EAX,EAX
TEST EDX,EDX
JZ 0x000232e0
MOV EDI,dword ptr [EDX]
MOV EBP,dword ptr [EDX + 0x4]
LEA EAX,[ESP + 0x7c]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x7c],EDI
MOV EDI,dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x80],EBP
MOV EBP,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0x84],EDI
MOV dword ptr [ESP + 0x88],EBP
CALL 0x00022fb0
MOV EDX,EAX
TEST EAX,EAX
JS 0x000233b8
TEST ESI,ESI
JNS 0x00023120
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x000233a8
MOV EAX,dword ptr [EBX + 0x28fc]
TEST EAX,EAX
JS 0x00023171
CMP EDX,0x2
JZ 0x000232f0
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x8],EDX
TEST ESI,ESI
JS 0x00023370
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00012800
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
MOV EBP,EAX
JLE 0x0002338f
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00012640
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],0x26
MOV dword ptr [EBX + 0x28fc],0xffffffff
MOV dword ptr [EBX + 0x28f8],0xffffffff
TEST EDX,EDX
JZ 0x000231d9
CMP EDX,0x3
JZ 0x000231b6
TEST ESI,ESI
JS 0x00023350
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ESI
PUSH 0x3
CALL 0x00012370
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JNZ 0x000233b8
MOV EBP,dword ptr [ESP + 0x10]
TEST EBP,EBP
JZ 0x000232b8
LEA EDX,[ESP + 0x10]
LEA EAX,[ESP + 0x1c]
XOR EBP,EBP
CALL 0x00022ee0
TEST AL,AL
JNZ 0x00023294
MOV EBP,dword ptr [ESP + 0x10]
TEST EBP,EBP
JZ 0x000232b8
MOV EAX,dword ptr [EBP]
MOV ECX,0x10624dd3
MOV dword ptr [ESP + 0x8c],EAX
MOV EAX,ECX
IMUL dword ptr [EBP + 0x4]
MOV EAX,dword ptr [EBP + 0x4]
SAR EDX,0x6
SAR EAX,0x1f
SUB EDX,EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EBP,dword ptr [EBP + 0xc]
MOV dword ptr [ESP + 0x90],EDX
MOV dword ptr [ESP + 0x94],EAX
MOV EAX,EBP
SAR EBP,0x1f
IMUL ECX
MOV ECX,EDX
LEA EDX,[ESP + 0x8c]
SAR ECX,0x6
SUB ECX,EBP
MOV dword ptr [ESP + 0x98],ECX
TEST ESI,ESI
JS 0x000232c2
SUB ESP,0x4
PUSH EDX
MOV dword ptr [ESP + 0x10],EDX
PUSH 0x0
PUSH ESI
CALL 0x000129e0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
MOV EBP,EAX
JZ 0x000233c8
MOV ECX,dword ptr [ESP + 0x4]
TEST ECX,ECX
JZ 0x000233b8
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00023282
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[ESP + 0x14]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x10]
CALL 0x000127c0
ADD ESP,0x10
MOV EBP,EAX
MOV EDI,dword ptr [ESP + 0xac]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,EBP
JNZ 0x0002353c
ADD ESP,0xbc
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EDX,EDX
TEST ESI,ESI
JNS 0x0002323c
SUB ESP,0x4
PUSH EDX
PUSH dword ptr [ESP + 0xc]
PUSH -0x64
CALL 0x000129e0
ADD ESP,0x10
MOV EBP,EAX
JMP 0x00023294
MOV dword ptr [ESP + 0x10],0x0
JMP 0x00023110
TEST ESI,ESI
JS 0x000234b8
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ESI
PUSH 0x3
CALL 0x00012370
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JNZ 0x000233b8
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x4],0x3ffffffe
JZ 0x000234e0
CMP dword ptr [EAX + 0xc],0x3ffffffe
MOV EDX,0x3
JNZ 0x00023137
MOV ECX,dword ptr [ESP + 0x68]
MOV EBP,dword ptr [ESP + 0x64]
MOV dword ptr [EAX + 0xc],ECX
MOV dword ptr [EAX + 0x8],EBP
JMP 0x00023137
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH 0x3
CALL 0x00012950
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
JMP 0x000231ae
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH -0x64
CALL 0x00012090
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
MOV EBP,EAX
JG 0x00023162
JNZ 0x00023500
MOV dword ptr [EBX + 0x28fc],0x1
JMP 0x00023294
CALL 0x00012640
MOV dword ptr [EAX],0x9
LEA ESI,[ESI]
NOP
MOV EBP,0xffffffff
JMP 0x00023294
TEST EDX,EDX
JZ 0x00023294
CMP dword ptr [EDX + 0x4],0x7a11f
SETG CL
CMP dword ptr [EDX + 0xc],0x7a11f
SETG AL
MOV byte ptr [ESP + 0x4],AL
TEST CL,CL
JNZ 0x000233f4
TEST AL,AL
JZ 0x00023294
MOV byte ptr [ESP + 0xf],CL
SUB ESP,0x4
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH ESI
PUSH 0x3
CALL 0x00012370
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023294
MOV EDX,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0x64]
MOV EAX,dword ptr [ESP + 0x5c]
MOV EDI,dword ptr [EDX]
MOV ECX,EBP
MOV EBP,dword ptr [EDX + 0x4]
SUB ECX,dword ptr [EDX + 0x8]
SUB EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x9c],EDI
MOV EDI,dword ptr [EDX + 0x8]
CMP ECX,0x1
MOV dword ptr [ESP + 0xa0],EBP
MOV EBP,dword ptr [EDX + 0xc]
SETZ DL
MOV dword ptr [ESP + 0xa4],EDI
AND DL,byte ptr [ESP + 0x4]
MOV dword ptr [ESP + 0xa8],EBP
CMP EAX,0x1
JNZ 0x00023520
MOVZX ECX,byte ptr [ESP + 0xf]
TEST CL,CL
JZ 0x00023520
MOV EDI,dword ptr [ESP + 0x60]
TEST EDI,EDI
JNZ 0x00023520
MOV dword ptr [ESP + 0xa0],0x0
TEST DL,DL
JZ 0x00023498
MOV EDX,dword ptr [ESP + 0x68]
TEST EDX,EDX
JZ 0x0002352c
SUB ESP,0x4
LEA EAX,[ESP + 0xa0]
PUSH EAX
PUSH 0x0
PUSH ESI
CALL 0x000129e0
ADD ESP,0x10
XOR EBP,EBP
JMP 0x00023294
SUB ESP,0x4
LEA EAX,[ESP + 0x20]
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH 0x3
CALL 0x00012950
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
JMP 0x00023310
MOV EDX,dword ptr [ESP + 0x60]
MOV ECX,dword ptr [ESP + 0x5c]
MOV dword ptr [EAX + 0x4],EDX
MOV EDX,0x3
MOV dword ptr [EAX],ECX
JMP 0x00023137
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00012640
MOV EDX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX],0x26
JNZ 0x00023395
JMP 0x00023171
TEST DL,DL
JZ 0x000234ae
MOV EAX,dword ptr [ESP + 0x68]
TEST EAX,EAX
JNZ 0x000234ae
MOV dword ptr [ESP + 0xa8],0x0
JMP 0x00023498
CALL 0x0002d970
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_00023090(int param_1,char *param_2,__time_t *param_3)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }\n  return iVar5;\n}\n\n" comment (function_definition "int FUN_00023090(int param_1,char *param_2,__time_t *param_3)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }\n  return iVar5;\n}" primitive_type (function_declarator "FUN_00023090(int param_1,char *param_2,__time_t *param_3)" identifier (parameter_list "(int param_1,char *param_2,__time_t *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "__time_t *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }\n  return iVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "timeval *__tvp;" type_identifier (pointer_declarator "*__tvp" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "utimbuf *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "utimbuf local_b8;" type_identifier identifier ;) (declaration "stat64 local_b0;" type_identifier identifier ;) (declaration "utimbuf local_50;" type_identifier identifier ;) (declaration "__time_t local_48;" type_identifier identifier ;) (declaration "__time_t local_44;" type_identifier identifier ;) (declaration "timeval local_40;" type_identifier identifier ;) (declaration "__time_t local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "timeval local_30;" type_identifier identifier ;) (declaration "__time_t local_28;" type_identifier identifier ;) (declaration "__suseconds_t local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x23099;" (assignment_expression "uStack_14 = 0x23099" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" if (parenthesized_expression "(param_3 == (__time_t *)0x0)" ( (binary_expression "param_3 == (__time_t *)0x0" identifier == (cast_expression "(__time_t *)0x0" ( (type_descriptor "__time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }" { (expression_statement "local_bc = (utimbuf *)0x0;" (assignment_expression "local_bc = (utimbuf *)0x0" identifier = (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" statement_identifier : (if_statement "if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" if (parenthesized_expression "((param_1 < 0) && (param_2 == (char *)0x0))" ( (binary_expression "(param_1 < 0) && (param_2 == (char *)0x0)" (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) && (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar6 = 9;" (assignment_expression "*piVar6 = 9" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }) (else_clause "else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" else (compound_statement "{\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" { (if_statement "if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" if (parenthesized_expression "(-1 < DAT_0003d8fc)" ( (binary_expression "-1 < DAT_0003d8fc" number_literal < identifier) )) (compound_statement "{\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" { (if_statement "if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" { (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" { (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" identifier = (call_expression "__xstat64(3,param_2,&local_b0)" identifier (argument_list "(3,param_2,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" else (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" { (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) (if_statement "if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" if (parenthesized_expression "(local_bc->modtime == 0x3ffffffe)" ( (binary_expression "local_bc->modtime == 0x3ffffffe" (field_expression "local_bc->modtime" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }" { (expression_statement "local_bc->modtime = local_b0.st_atim.tv_nsec;" (assignment_expression "local_bc->modtime = local_b0.st_atim.tv_nsec" (field_expression "local_bc->modtime" identifier -> field_identifier) = (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (expression_statement "local_bc->actime = local_b0.st_atim.tv_sec;" (assignment_expression "local_bc->actime = local_b0.st_atim.tv_sec" (field_expression "local_bc->actime" identifier -> field_identifier) = (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" else (compound_statement "{\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" { (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (if_statement "if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" if (parenthesized_expression "(local_bc[1].modtime == 0x3ffffffe)" ( (binary_expression "local_bc[1].modtime == 0x3ffffffe" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" { (expression_statement "local_bc[1].modtime = local_b0.st_mtim.tv_nsec;" (assignment_expression "local_bc[1].modtime = local_b0.st_mtim.tv_nsec" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_bc[1].actime = local_b0.st_mtim.tv_sec;" (assignment_expression "local_bc[1].actime = local_b0.st_mtim.tv_sec" (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) }))) })) (if_statement "if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }" { (expression_statement "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);" (assignment_expression "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0)" identifier = (call_expression "utimensat(-100,param_2,(timespec *)local_bc,0)" identifier (argument_list "(-100,param_2,(timespec *)local_bc,0)" ( number_literal , identifier , (cast_expression "(timespec *)local_bc" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" else (compound_statement "{\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" { (expression_statement "iVar5 = futimens(param_1,(timespec *)local_bc);" (assignment_expression "iVar5 = futimens(param_1,(timespec *)local_bc)" identifier = (call_expression "futimens(param_1,(timespec *)local_bc)" identifier (argument_list "(param_1,(timespec *)local_bc)" ( identifier , (cast_expression "(timespec *)local_bc" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (if_statement "if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }" { (if_statement "if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" if (parenthesized_expression "((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26))" ( (binary_expression "(iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar6 = __errno_location(), *piVar6 != 0x26)" ( (comma_expression "piVar6 = __errno_location(), *piVar6 != 0x26" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) , (binary_expression "*piVar6 != 0x26" (pointer_expression "*piVar6" * identifier) != number_literal)) ))) )) (compound_statement "{\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" { (expression_statement "DAT_0003d8fc = 1;" (assignment_expression "DAT_0003d8fc = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) }) (else_clause "else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" else (compound_statement "{\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar6 = 0x26;" (assignment_expression "*piVar6 = 0x26" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }))) })) (expression_statement "DAT_0003d8fc = -1;" (assignment_expression "DAT_0003d8fc = -1" identifier = number_literal) ;) (expression_statement "DAT_0003d8f8 = 0xffffffff;" (assignment_expression "DAT_0003d8f8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }" { (labeled_statement "LAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" statement_identifier : (if_statement "if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" if (parenthesized_expression "(local_bc == (utimbuf *)0x0)" ( (binary_expression "local_bc == (utimbuf *)0x0" identifier == (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000232b8;" goto statement_identifier ;))) (expression_statement "local_40.tv_sec = local_bc->actime;" (assignment_expression "local_40.tv_sec = local_bc->actime" (field_expression "local_40.tv_sec" identifier . field_identifier) = (field_expression "local_bc->actime" identifier -> field_identifier)) ;) (expression_statement "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);" (assignment_expression "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (field_expression "local_40.tv_usec" identifier . field_identifier) = (binary_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (parenthesized_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f))" ( (binary_expression "local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)" (binary_expression "local_bc->modtime / 1000" (field_expression "local_bc->modtime" identifier -> field_identifier) / number_literal) + (parenthesized_expression "(local_bc->modtime >> 0x1f)" ( (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" identifier -> field_identifier) >> number_literal) ))) )) - (parenthesized_expression "(local_bc->modtime >> 0x1f)" ( (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "local_38 = local_bc[1].actime;" (assignment_expression "local_38 = local_bc[1].actime" identifier = (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__tvp = &local_40;" (assignment_expression "__tvp = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "local_34 = local_bc[1].modtime / 1000;" (assignment_expression "local_34 = local_bc[1].modtime / 1000" identifier = (binary_expression "local_bc[1].modtime / 1000" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) / number_literal)) ;) }) (else_clause "else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" else (compound_statement "{\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" { (if_statement "if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" if (parenthesized_expression "(iVar4 != 3)" ( (binary_expression "iVar4 != 3" identifier != number_literal) )) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" { (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" { (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" identifier = (call_expression "__xstat64(3,param_2,&local_b0)" identifier (argument_list "(3,param_2,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" else (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" { (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) })) (if_statement "if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" if (parenthesized_expression "(local_bc != (utimbuf *)0x0)" ( (binary_expression "local_bc != (utimbuf *)0x0" identifier != (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "cVar3 = FUN_00022ee0();" (assignment_expression "cVar3 = FUN_00022ee0()" identifier = (call_expression "FUN_00022ee0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') goto LAB_00023294;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (goto_statement "goto LAB_000231d9;" goto statement_identifier ;) })) (labeled_statement "LAB_000232b8:\n        __tvp = (timeval *)0x0;" statement_identifier : (expression_statement "__tvp = (timeval *)0x0;" (assignment_expression "__tvp = (timeval *)0x0" identifier = (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (if_statement "if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" { (expression_statement "iVar5 = futimesat(-100,param_2,__tvp);" (assignment_expression "iVar5 = futimesat(-100,param_2,__tvp)" identifier = (call_expression "futimesat(-100,param_2,__tvp)" identifier (argument_list "(-100,param_2,__tvp)" ( number_literal , identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (expression_statement "iVar4 = futimesat(param_1,(char *)0x0,__tvp);" (assignment_expression "iVar4 = futimesat(param_1,(char *)0x0,__tvp)" identifier = (call_expression "futimesat(param_1,(char *)0x0,__tvp)" identifier (argument_list "(param_1,(char *)0x0,__tvp)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (__tvp == (timeval *)0x0) goto LAB_00023294;" if (parenthesized_expression "(__tvp == (timeval *)0x0)" ( (binary_expression "__tvp == (timeval *)0x0" identifier == (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "bVar1 = __tvp->tv_usec < 500000;" (assignment_expression "bVar1 = __tvp->tv_usec < 500000" identifier = (binary_expression "__tvp->tv_usec < 500000" (field_expression "__tvp->tv_usec" identifier -> field_identifier) < number_literal)) ;) (expression_statement "bVar2 = __tvp[1].tv_usec < 500000;" (assignment_expression "bVar2 = __tvp[1].tv_usec < 500000" identifier = (binary_expression "__tvp[1].tv_usec < 500000" (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) ;) (if_statement "if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;" if (parenthesized_expression "(((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))" ( (binary_expression "((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" (parenthesized_expression "((bVar1) && (bVar2))" ( (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) || (parenthesized_expression "(iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" ( (comma_expression "iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "local_30.tv_sec = __tvp->tv_sec;" (assignment_expression "local_30.tv_sec = __tvp->tv_sec" (field_expression "local_30.tv_sec" identifier . field_identifier) = (field_expression "__tvp->tv_sec" identifier -> field_identifier)) ;) (expression_statement "local_30.tv_usec = __tvp->tv_usec;" (assignment_expression "local_30.tv_usec = __tvp->tv_usec" (field_expression "local_30.tv_usec" identifier . field_identifier) = (field_expression "__tvp->tv_usec" identifier -> field_identifier)) ;) (expression_statement "local_28 = __tvp[1].tv_sec;" (assignment_expression "local_28 = __tvp[1].tv_sec" identifier = (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;" (assignment_expression "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" identifier = (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec" (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ;) (expression_statement "local_24 = __tvp[1].tv_usec;" (assignment_expression "local_24 = __tvp[1].tv_usec" identifier = (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" if (parenthesized_expression "(((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0))" ( (binary_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)" (parenthesized_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1))" ( (binary_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)" (parenthesized_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1)" ( (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec != 1" (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec" (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp->tv_sec" identifier -> field_identifier)) != number_literal) )) || (parenthesized_expression "(bVar1)" ( identifier ))) )) || (parenthesized_expression "(local_b0.st_atim.tv_nsec != 0)" ( (binary_expression "local_b0.st_atim.tv_nsec != 0" (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier) != number_literal) ))) )) (compound_statement "{\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }" { (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;" if (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" ( (binary_expression "bVar7 && !bVar2" identifier && (unary_expression "!bVar2" ! identifier)) )) && (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" ( (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (goto_statement "goto LAB_0002352c;" goto statement_identifier ;)) }) (else_clause "else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" else (compound_statement "{\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" { (expression_statement "local_30.tv_usec = 0;" (assignment_expression "local_30.tv_usec = 0" (field_expression "local_30.tv_usec" identifier . field_identifier) = number_literal) ;) (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }" if (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" ( (binary_expression "bVar7 && !bVar2" identifier && (unary_expression "!bVar2" ! identifier)) )) && (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" ( (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\nLAB_0002352c:\n            local_24 = 0;\n          }" { (labeled_statement "LAB_0002352c:\n            local_24 = 0;" statement_identifier : (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;)) })) (expression_statement "futimesat(param_1,(char *)0x0,&local_30);" (call_expression "futimesat(param_1,(char *)0x0,&local_30)" identifier (argument_list "(param_1,(char *)0x0,&local_30)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_30" & identifier) ))) ;) }))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (if_statement "if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" { (if_statement "if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" if (parenthesized_expression "(local_bc != (utimbuf *)0x0)" ( (binary_expression "local_bc != (utimbuf *)0x0" identifier != (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" { (expression_statement "local_b8.actime = local_bc->actime;" (assignment_expression "local_b8.actime = local_bc->actime" (field_expression "local_b8.actime" identifier . field_identifier) = (field_expression "local_bc->actime" identifier -> field_identifier)) ;) (expression_statement "local_b8.modtime = local_bc[1].actime;" (assignment_expression "local_b8.modtime = local_bc[1].actime" (field_expression "local_b8.modtime" identifier . field_identifier) = (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_bc = &local_b8;" (assignment_expression "local_bc = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) })) (expression_statement "iVar5 = utime(param_2,local_bc);" (assignment_expression "iVar5 = utime(param_2,local_bc)" identifier = (call_expression "utime(param_2,local_bc)" identifier (argument_list "(param_2,local_bc)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" else (compound_statement "{\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" { (expression_statement "local_50.actime = *param_3;" (assignment_expression "local_50.actime = *param_3" (field_expression "local_50.actime" identifier . field_identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_50.modtime = param_3[1];" (assignment_expression "local_50.modtime = param_3[1]" (field_expression "local_50.modtime" identifier . field_identifier) = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_bc = &local_50;" (assignment_expression "local_bc = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_44 = param_3[3];" (assignment_expression "local_44 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = FUN_00022fb0();" (assignment_expression "iVar4 = FUN_00022fb0()" identifier = (call_expression "FUN_00022fb0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) goto LAB_00023110;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_00023110;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000233b8:\n  iVar5 = -1;" statement_identifier : (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002d970();\n  }" { comment (expression_statement "FUN_0002d970();" (call_expression "FUN_0002d970()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint fdutimens(int fd,char *file,timespec *timespec)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  _Bool _Var4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  utimbuf *__file_times;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar8;\n  timespec *ts;\n  utimbuf utimbuf;\n  stat st;\n  timespec adjusted_timespec [2];\n  timeval timeval [2];\n  timeval truncated_timeval [2];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (timespec == (timespec *)0x0) {\n    ts = (timespec *)0x0;\n    iVar5 = 0;\nLAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar6 = -1;\nLAB_00023294:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar6;\n}\n\n" comment (function_definition "int fdutimens(int fd,char *file,timespec *timespec)\n\n{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  _Bool _Var4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  utimbuf *__file_times;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar8;\n  timespec *ts;\n  utimbuf utimbuf;\n  stat st;\n  timespec adjusted_timespec [2];\n  timeval timeval [2];\n  timeval truncated_timeval [2];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (timespec == (timespec *)0x0) {\n    ts = (timespec *)0x0;\n    iVar5 = 0;\nLAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar6 = -1;\nLAB_00023294:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar6;\n}" primitive_type (function_declarator "fdutimens(int fd,char *file,timespec *timespec)" identifier (parameter_list "(int fd,char *file,timespec *timespec)" ( (parameter_declaration "int fd" primitive_type identifier) , (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) , (parameter_declaration "timespec *timespec" type_identifier (pointer_declarator "*timespec" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  bool bVar2;\n  bool bVar3;\n  _Bool _Var4;\n  int iVar5;\n  int iVar6;\n  int *piVar7;\n  utimbuf *__file_times;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar8;\n  timespec *ts;\n  utimbuf utimbuf;\n  stat st;\n  timespec adjusted_timespec [2];\n  timeval timeval [2];\n  timeval truncated_timeval [2];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (timespec == (timespec *)0x0) {\n    ts = (timespec *)0x0;\n    iVar5 = 0;\nLAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar6 = -1;\nLAB_00023294:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return iVar6;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "_Bool _Var4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "utimbuf *__file_times;" type_identifier (pointer_declarator "*__file_times" * identifier) ;) (declaration "timeval *__tvp;" type_identifier (pointer_declarator "*__tvp" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "timespec *ts;" type_identifier (pointer_declarator "*ts" * identifier) ;) (declaration "utimbuf utimbuf;" type_identifier identifier ;) (declaration "stat st;" type_identifier identifier ;) (declaration "timespec adjusted_timespec [2];" type_identifier (array_declarator "adjusted_timespec [2]" identifier [ number_literal ]) ;) (declaration "timeval timeval [2];" type_identifier (array_declarator "timeval [2]" identifier [ number_literal ]) ;) (declaration "timeval truncated_timeval [2];" type_identifier (array_declarator "truncated_timeval [2]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (timespec == (timespec *)0x0) {\n    ts = (timespec *)0x0;\n    iVar5 = 0;\nLAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }" if (parenthesized_expression "(timespec == (timespec *)0x0)" ( (binary_expression "timespec == (timespec *)0x0" identifier == (cast_expression "(timespec *)0x0" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ts = (timespec *)0x0;\n    iVar5 = 0;\nLAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }\n  }" { (expression_statement "ts = (timespec *)0x0;" (assignment_expression "ts = (timespec *)0x0" identifier = (cast_expression "(timespec *)0x0" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023110:\n    if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }" statement_identifier : (if_statement "if ((fd < 0) && (file == (char *)0x0)) {\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }\n    else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }" if (parenthesized_expression "((fd < 0) && (file == (char *)0x0))" ( (binary_expression "(fd < 0) && (file == (char *)0x0)" (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) && (parenthesized_expression "(file == (char *)0x0)" ( (binary_expression "file == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      piVar7 = __errno_location();\n      *piVar7 = 9;\n    }" { (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar7 = 9;" (assignment_expression "*piVar7 = 9" (pointer_expression "*piVar7" * identifier) = number_literal) ;) }) (else_clause "else {\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }" else (compound_statement "{\n      if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }\n      utimensat_works_really = -1;\n      lutimensat_works_really = -1;\n      if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }\n      iVar5 = futimesat(fd,(char *)0x0,__tvp);\n      if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }\n      if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }\n    }" { (if_statement "if (-1 < utimensat_works_really) {\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }" if (parenthesized_expression "(-1 < utimensat_works_really)" ( (binary_expression "-1 < utimensat_works_really" number_literal < identifier) )) (compound_statement "{\n        if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }\n        if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }\n      }" { (if_statement "if (iVar5 == 2) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n          if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }\n        }" { (if_statement "if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (compound_statement "{\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }" { (expression_statement "iVar5 = __xstat64(3,file,(stat64 *)&st);" (assignment_expression "iVar5 = __xstat64(3,file,(stat64 *)&st)" identifier = (call_expression "__xstat64(3,file,(stat64 *)&st)" identifier (argument_list "(3,file,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) }) (else_clause "else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" else (compound_statement "{\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" { (expression_statement "iVar5 = __fxstat64(3,fd,(stat64 *)&st);" (assignment_expression "iVar5 = __fxstat64(3,fd,(stat64 *)&st)" identifier = (call_expression "__fxstat64(3,fd,(stat64 *)&st)" identifier (argument_list "(3,fd,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) }))) (if_statement "if (iVar5 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) (if_statement "if (ts->tv_nsec == 0x3ffffffe) {\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }\n          else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }" if (parenthesized_expression "(ts->tv_nsec == 0x3ffffffe)" ( (binary_expression "ts->tv_nsec == 0x3ffffffe" (field_expression "ts->tv_nsec" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            ts->tv_nsec = st.st_atim.tv_nsec;\n            iVar5 = 3;\n            ts->tv_sec = st.st_atim.tv_sec;\n          }" { (expression_statement "ts->tv_nsec = st.st_atim.tv_nsec;" (assignment_expression "ts->tv_nsec = st.st_atim.tv_nsec" (field_expression "ts->tv_nsec" identifier -> field_identifier) = (field_expression "st.st_atim.tv_nsec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (expression_statement "ts->tv_sec = st.st_atim.tv_sec;" (assignment_expression "ts->tv_sec = st.st_atim.tv_sec" (field_expression "ts->tv_sec" identifier -> field_identifier) = (field_expression "st.st_atim.tv_sec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }" else (compound_statement "{\n            iVar5 = 3;\n            if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }\n          }" { (expression_statement "iVar5 = 3;" (assignment_expression "iVar5 = 3" identifier = number_literal) ;) (if_statement "if (ts[1].tv_nsec == 0x3ffffffe) {\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }" if (parenthesized_expression "(ts[1].tv_nsec == 0x3ffffffe)" ( (binary_expression "ts[1].tv_nsec == 0x3ffffffe" (field_expression "ts[1].tv_nsec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\n              ts[1].tv_nsec = st.st_mtim.tv_nsec;\n              ts[1].tv_sec = st.st_mtim.tv_sec;\n            }" { (expression_statement "ts[1].tv_nsec = st.st_mtim.tv_nsec;" (assignment_expression "ts[1].tv_nsec = st.st_mtim.tv_nsec" (field_expression "ts[1].tv_nsec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "st.st_mtim.tv_nsec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "ts[1].tv_sec = st.st_mtim.tv_sec;" (assignment_expression "ts[1].tv_sec = st.st_mtim.tv_sec" (field_expression "ts[1].tv_sec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) }))) })) (if_statement "if (fd < 0) {\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }\n        else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (compound_statement "{\n          iVar6 = utimensat(-100,file,(timespec *)ts,0);\n        }" { (expression_statement "iVar6 = utimensat(-100,file,(timespec *)ts,0);" (assignment_expression "iVar6 = utimensat(-100,file,(timespec *)ts,0)" identifier = (call_expression "utimensat(-100,file,(timespec *)ts,0)" identifier (argument_list "(-100,file,(timespec *)ts,0)" ( number_literal , identifier , (cast_expression "(timespec *)ts" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar6 = futimens(fd,(timespec *)ts);\n        }" else (compound_statement "{\n          iVar6 = futimens(fd,(timespec *)ts);\n        }" { (expression_statement "iVar6 = futimens(fd,(timespec *)ts);" (assignment_expression "iVar6 = futimens(fd,(timespec *)ts)" identifier = (call_expression "futimens(fd,(timespec *)ts)" identifier (argument_list "(fd,(timespec *)ts)" ( identifier , (cast_expression "(timespec *)ts" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (if_statement "if (iVar6 < 1) {\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n          if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }\n        }" { (if_statement "if ((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)) {\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }" if (parenthesized_expression "((iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26))" ( (binary_expression "(iVar6 == 0) || (piVar7 = __errno_location(), *piVar7 != 0x26)" (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar7 = __errno_location(), *piVar7 != 0x26)" ( (comma_expression "piVar7 = __errno_location(), *piVar7 != 0x26" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) , (binary_expression "*piVar7 != 0x26" (pointer_expression "*piVar7" * identifier) != number_literal)) ))) )) (compound_statement "{\n            utimensat_works_really = 1;\n            goto LAB_00023294;\n          }" { (expression_statement "utimensat_works_really = 1;" (assignment_expression "utimensat_works_really = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) }) (else_clause "else {\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }" else (compound_statement "{\n          piVar7 = __errno_location();\n          *piVar7 = 0x26;\n        }" { (expression_statement "piVar7 = __errno_location();" (assignment_expression "piVar7 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar7 = 0x26;" (assignment_expression "*piVar7 = 0x26" (pointer_expression "*piVar7" * identifier) = number_literal) ;) }))) })) (expression_statement "utimensat_works_really = -1;" (assignment_expression "utimensat_works_really = -1" identifier = number_literal) ;) (expression_statement "lutimensat_works_really = -1;" (assignment_expression "lutimensat_works_really = -1" identifier = number_literal) ;) (if_statement "if (iVar5 == 0) {\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }\n      else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;\n        timeval[0].tv_sec = ts->tv_sec;\n        timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);\n        timeval[1].tv_sec = ts[1].tv_sec;\n        __tvp = (timeval *)timeval;\n        timeval[1].tv_usec = ts[1].tv_nsec / 1000;\n      }" { (labeled_statement "LAB_000231d9:\n        if (ts == (timespec *)0x0) goto LAB_000232b8;" statement_identifier : (if_statement "if (ts == (timespec *)0x0) goto LAB_000232b8;" if (parenthesized_expression "(ts == (timespec *)0x0)" ( (binary_expression "ts == (timespec *)0x0" identifier == (cast_expression "(timespec *)0x0" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000232b8;" goto statement_identifier ;))) (expression_statement "timeval[0].tv_sec = ts->tv_sec;" (assignment_expression "timeval[0].tv_sec = ts->tv_sec" (field_expression "timeval[0].tv_sec" (subscript_expression "timeval[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "ts->tv_sec" identifier -> field_identifier)) ;) (expression_statement "timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f);" (assignment_expression "timeval[0].tv_usec = (ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f)" (field_expression "timeval[0].tv_usec" (subscript_expression "timeval[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "(ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)) - (ts->tv_nsec >> 0x1f)" (parenthesized_expression "(ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f))" ( (binary_expression "ts->tv_nsec / 1000 + (ts->tv_nsec >> 0x1f)" (binary_expression "ts->tv_nsec / 1000" (field_expression "ts->tv_nsec" identifier -> field_identifier) / number_literal) + (parenthesized_expression "(ts->tv_nsec >> 0x1f)" ( (binary_expression "ts->tv_nsec >> 0x1f" (field_expression "ts->tv_nsec" identifier -> field_identifier) >> number_literal) ))) )) - (parenthesized_expression "(ts->tv_nsec >> 0x1f)" ( (binary_expression "ts->tv_nsec >> 0x1f" (field_expression "ts->tv_nsec" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "timeval[1].tv_sec = ts[1].tv_sec;" (assignment_expression "timeval[1].tv_sec = ts[1].tv_sec" (field_expression "timeval[1].tv_sec" (subscript_expression "timeval[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "ts[1].tv_sec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__tvp = (timeval *)timeval;" (assignment_expression "__tvp = (timeval *)timeval" identifier = (cast_expression "(timeval *)timeval" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "timeval[1].tv_usec = ts[1].tv_nsec / 1000;" (assignment_expression "timeval[1].tv_usec = ts[1].tv_nsec / 1000" (field_expression "timeval[1].tv_usec" (subscript_expression "timeval[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "ts[1].tv_nsec / 1000" (field_expression "ts[1].tv_nsec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier) / number_literal)) ;) }) (else_clause "else {\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" else (compound_statement "{\n        if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }\n        if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" { (if_statement "if (iVar5 != 3) {\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }" if (parenthesized_expression "(iVar5 != 3)" ( (binary_expression "iVar5 != 3" identifier != number_literal) )) (compound_statement "{\n          if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }\n          if (iVar5 != 0) goto LAB_000233b8;\n        }" { (if_statement "if (fd < 0) {\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }\n          else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (compound_statement "{\n            iVar5 = __xstat64(3,file,(stat64 *)&st);\n          }" { (expression_statement "iVar5 = __xstat64(3,file,(stat64 *)&st);" (assignment_expression "iVar5 = __xstat64(3,file,(stat64 *)&st)" identifier = (call_expression "__xstat64(3,file,(stat64 *)&st)" identifier (argument_list "(3,file,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) }) (else_clause "else {\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" else (compound_statement "{\n            iVar5 = __fxstat64(3,fd,(stat64 *)&st);\n          }" { (expression_statement "iVar5 = __fxstat64(3,fd,(stat64 *)&st);" (assignment_expression "iVar5 = __fxstat64(3,fd,(stat64 *)&st)" identifier = (call_expression "__fxstat64(3,fd,(stat64 *)&st)" identifier (argument_list "(3,fd,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) ;) }))) (if_statement "if (iVar5 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) })) (if_statement "if (ts != (timespec *)0x0) {\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }" if (parenthesized_expression "(ts != (timespec *)0x0)" ( (binary_expression "ts != (timespec *)0x0" identifier != (cast_expression "(timespec *)0x0" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar6 = 0;\n          _Var4 = update_timespec(&st,&ts);\n          if (_Var4) goto LAB_00023294;\n          goto LAB_000231d9;\n        }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "_Var4 = update_timespec(&st,&ts);" (assignment_expression "_Var4 = update_timespec(&st,&ts)" identifier = (call_expression "update_timespec(&st,&ts)" identifier (argument_list "(&st,&ts)" ( (pointer_expression "&st" & identifier) , (pointer_expression "&ts" & identifier) )))) ;) (if_statement "if (_Var4) goto LAB_00023294;" if (parenthesized_expression "(_Var4)" ( identifier )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (goto_statement "goto LAB_000231d9;" goto statement_identifier ;) })) (labeled_statement "LAB_000232b8:\n        __tvp = (timeval *)0x0;" statement_identifier : (expression_statement "__tvp = (timeval *)0x0;" (assignment_expression "__tvp = (timeval *)0x0" identifier = (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (if_statement "if (fd < 0) {\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(fd < 0)" ( (binary_expression "fd < 0" identifier < number_literal) )) (compound_statement "{\n        iVar6 = futimesat(-100,file,__tvp);\n        goto LAB_00023294;\n      }" { (expression_statement "iVar6 = futimesat(-100,file,__tvp);" (assignment_expression "iVar6 = futimesat(-100,file,__tvp)" identifier = (call_expression "futimesat(-100,file,__tvp)" identifier (argument_list "(-100,file,__tvp)" ( number_literal , identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (expression_statement "iVar5 = futimesat(fd,(char *)0x0,__tvp);" (assignment_expression "iVar5 = futimesat(fd,(char *)0x0,__tvp)" identifier = (call_expression "futimesat(fd,(char *)0x0,__tvp)" identifier (argument_list "(fd,(char *)0x0,__tvp)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar6 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar2 = __tvp->tv_usec < 500000;\n        bVar3 = __tvp[1].tv_usec < 500000;\n        if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;\n        truncated_timeval[0].tv_sec = __tvp->tv_sec;\n        truncated_timeval[0].tv_usec = __tvp->tv_usec;\n        truncated_timeval[1].tv_sec = __tvp[1].tv_sec;\n        bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        truncated_timeval[1].tv_usec = __tvp[1].tv_usec;\n        if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }\n        iVar6 = 0;\n        goto LAB_00023294;\n      }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (__tvp == (timeval *)0x0) goto LAB_00023294;" if (parenthesized_expression "(__tvp == (timeval *)0x0)" ( (binary_expression "__tvp == (timeval *)0x0" identifier == (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "bVar2 = __tvp->tv_usec < 500000;" (assignment_expression "bVar2 = __tvp->tv_usec < 500000" identifier = (binary_expression "__tvp->tv_usec < 500000" (field_expression "__tvp->tv_usec" identifier -> field_identifier) < number_literal)) ;) (expression_statement "bVar3 = __tvp[1].tv_usec < 500000;" (assignment_expression "bVar3 = __tvp[1].tv_usec < 500000" identifier = (binary_expression "__tvp[1].tv_usec < 500000" (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) ;) (if_statement "if (((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))\n        goto LAB_00023294;" if (parenthesized_expression "(((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0))" ( (binary_expression "((bVar2) && (bVar3)) || (iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0)" (parenthesized_expression "((bVar2) && (bVar3))" ( (binary_expression "(bVar2) && (bVar3)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(bVar3)" ( identifier ))) )) || (parenthesized_expression "(iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0)" ( (comma_expression "iVar5 = __fxstat64(3,fd,(stat64 *)&st), iVar5 != 0" (assignment_expression "iVar5 = __fxstat64(3,fd,(stat64 *)&st)" identifier = (call_expression "__fxstat64(3,fd,(stat64 *)&st)" identifier (argument_list "(3,fd,(stat64 *)&st)" ( number_literal , identifier , (cast_expression "(stat64 *)&st" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&st" & identifier)) )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "truncated_timeval[0].tv_sec = __tvp->tv_sec;" (assignment_expression "truncated_timeval[0].tv_sec = __tvp->tv_sec" (field_expression "truncated_timeval[0].tv_sec" (subscript_expression "truncated_timeval[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tvp->tv_sec" identifier -> field_identifier)) ;) (expression_statement "truncated_timeval[0].tv_usec = __tvp->tv_usec;" (assignment_expression "truncated_timeval[0].tv_usec = __tvp->tv_usec" (field_expression "truncated_timeval[0].tv_usec" (subscript_expression "truncated_timeval[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tvp->tv_usec" identifier -> field_identifier)) ;) (expression_statement "truncated_timeval[1].tv_sec = __tvp[1].tv_sec;" (assignment_expression "truncated_timeval[1].tv_sec = __tvp[1].tv_sec" (field_expression "truncated_timeval[1].tv_sec" (subscript_expression "truncated_timeval[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1;" (assignment_expression "bVar8 = st.st_mtim.tv_sec - __tvp[1].tv_sec == 1" identifier = (binary_expression "st.st_mtim.tv_sec - __tvp[1].tv_sec == 1" (binary_expression "st.st_mtim.tv_sec - __tvp[1].tv_sec" (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ;) (expression_statement "truncated_timeval[1].tv_usec = __tvp[1].tv_usec;" (assignment_expression "truncated_timeval[1].tv_usec = __tvp[1].tv_usec" (field_expression "truncated_timeval[1].tv_usec" (subscript_expression "truncated_timeval[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }" if (parenthesized_expression "(((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0))" ( (binary_expression "((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)" (parenthesized_expression "((st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2))" ( (binary_expression "(st.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar2)" (parenthesized_expression "(st.st_atim.tv_sec - __tvp->tv_sec != 1)" ( (binary_expression "st.st_atim.tv_sec - __tvp->tv_sec != 1" (binary_expression "st.st_atim.tv_sec - __tvp->tv_sec" (field_expression "st.st_atim.tv_sec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp->tv_sec" identifier -> field_identifier)) != number_literal) )) || (parenthesized_expression "(bVar2)" ( identifier ))) )) || (parenthesized_expression "(st.st_atim.tv_nsec != 0)" ( (binary_expression "st.st_atim.tv_nsec != 0" (field_expression "st.st_atim.tv_nsec" (field_expression "st.st_atim" identifier . field_identifier) . field_identifier) != number_literal) ))) )) (compound_statement "{\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }" { (if_statement "if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;" if (parenthesized_expression "((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar8 && !bVar3)" ( (binary_expression "bVar8 && !bVar3" identifier && (unary_expression "!bVar3" ! identifier)) )) && (parenthesized_expression "(st.st_mtim.tv_nsec == 0)" ( (binary_expression "st.st_mtim.tv_nsec == 0" (field_expression "st.st_mtim.tv_nsec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (goto_statement "goto LAB_0002352c;" goto statement_identifier ;)) }) (else_clause "else {\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }" else (compound_statement "{\n          truncated_timeval[0].tv_usec = 0;\n          if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }\n          futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);\n        }" { (expression_statement "truncated_timeval[0].tv_usec = 0;" (assignment_expression "truncated_timeval[0].tv_usec = 0" (field_expression "truncated_timeval[0].tv_usec" (subscript_expression "truncated_timeval[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (if_statement "if ((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }" if (parenthesized_expression "((bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar8 && !bVar3) && (st.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar8 && !bVar3)" ( (binary_expression "bVar8 && !bVar3" identifier && (unary_expression "!bVar3" ! identifier)) )) && (parenthesized_expression "(st.st_mtim.tv_nsec == 0)" ( (binary_expression "st.st_mtim.tv_nsec == 0" (field_expression "st.st_mtim.tv_nsec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\nLAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;\n          }" { (labeled_statement "LAB_0002352c:\n            truncated_timeval[1].tv_usec = 0;" statement_identifier : (expression_statement "truncated_timeval[1].tv_usec = 0;" (assignment_expression "truncated_timeval[1].tv_usec = 0" (field_expression "truncated_timeval[1].tv_usec" (subscript_expression "truncated_timeval[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;)) })) (expression_statement "futimesat(fd,(char *)0x0,(timeval *)truncated_timeval);" (call_expression "futimesat(fd,(char *)0x0,(timeval *)truncated_timeval)" identifier (argument_list "(fd,(char *)0x0,(timeval *)truncated_timeval)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(timeval *)truncated_timeval" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (if_statement "if (file != (char *)0x0) {\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(file != (char *)0x0)" ( (binary_expression "file != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __file_times = (utimbuf *)ts;\n        if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }\n        iVar6 = utime(file,__file_times);\n        goto LAB_00023294;\n      }" { (expression_statement "__file_times = (utimbuf *)ts;" (assignment_expression "__file_times = (utimbuf *)ts" identifier = (cast_expression "(utimbuf *)ts" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (ts != (timespec *)0x0) {\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }" if (parenthesized_expression "(ts != (timespec *)0x0)" ( (binary_expression "ts != (timespec *)0x0" identifier != (cast_expression "(timespec *)0x0" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          utimbuf.actime = ts->tv_sec;\n          utimbuf.modtime = ts[1].tv_sec;\n          __file_times = (utimbuf *)&utimbuf;\n        }" { (expression_statement "utimbuf.actime = ts->tv_sec;" (assignment_expression "utimbuf.actime = ts->tv_sec" (field_expression "utimbuf.actime" identifier . field_identifier) = (field_expression "ts->tv_sec" identifier -> field_identifier)) ;) (expression_statement "utimbuf.modtime = ts[1].tv_sec;" (assignment_expression "utimbuf.modtime = ts[1].tv_sec" (field_expression "utimbuf.modtime" identifier . field_identifier) = (field_expression "ts[1].tv_sec" (subscript_expression "ts[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__file_times = (utimbuf *)&utimbuf;" (assignment_expression "__file_times = (utimbuf *)&utimbuf" identifier = (cast_expression "(utimbuf *)&utimbuf" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&utimbuf" & identifier))) ;) })) (expression_statement "iVar6 = utime(file,__file_times);" (assignment_expression "iVar6 = utime(file,__file_times)" identifier = (call_expression "utime(file,__file_times)" identifier (argument_list "(file,__file_times)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }" else (compound_statement "{\n    adjusted_timespec[0].tv_sec = timespec->tv_sec;\n    adjusted_timespec[0].tv_nsec = timespec->tv_nsec;\n    ts = adjusted_timespec;\n    adjusted_timespec[1].tv_sec = timespec[1].tv_sec;\n    adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;\n    iVar5 = validate_timespec(ts);\n    if (-1 < iVar5) goto LAB_00023110;\n  }" { (expression_statement "adjusted_timespec[0].tv_sec = timespec->tv_sec;" (assignment_expression "adjusted_timespec[0].tv_sec = timespec->tv_sec" (field_expression "adjusted_timespec[0].tv_sec" (subscript_expression "adjusted_timespec[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "timespec->tv_sec" identifier -> field_identifier)) ;) (expression_statement "adjusted_timespec[0].tv_nsec = timespec->tv_nsec;" (assignment_expression "adjusted_timespec[0].tv_nsec = timespec->tv_nsec" (field_expression "adjusted_timespec[0].tv_nsec" (subscript_expression "adjusted_timespec[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "timespec->tv_nsec" identifier -> field_identifier)) ;) (expression_statement "ts = adjusted_timespec;" (assignment_expression "ts = adjusted_timespec" identifier = identifier) ;) (expression_statement "adjusted_timespec[1].tv_sec = timespec[1].tv_sec;" (assignment_expression "adjusted_timespec[1].tv_sec = timespec[1].tv_sec" (field_expression "adjusted_timespec[1].tv_sec" (subscript_expression "adjusted_timespec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "timespec[1].tv_sec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec;" (assignment_expression "adjusted_timespec[1].tv_nsec = timespec[1].tv_nsec" (field_expression "adjusted_timespec[1].tv_nsec" (subscript_expression "adjusted_timespec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "timespec[1].tv_nsec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar5 = validate_timespec(ts);" (assignment_expression "iVar5 = validate_timespec(ts)" identifier = (call_expression "validate_timespec(ts)" identifier (argument_list "(ts)" ( identifier )))) ;) (if_statement "if (-1 < iVar5) goto LAB_00023110;" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (goto_statement "goto LAB_00023110;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000233b8:\n  iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00023294:\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit "int FUN_00023090(int param_1,char *param_2,__time_t *param_3)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }\n  return iVar5;\n}\n\n" (function_definition "int FUN_00023090(int param_1,char *param_2,__time_t *param_3)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }\n  return iVar5;\n}" primitive_type (function_declarator "FUN_00023090(int param_1,char *param_2,__time_t *param_3)" identifier (parameter_list "(int param_1,char *param_2,__time_t *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "__time_t *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }\n  return iVar5;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "timeval *__tvp;" type_identifier (pointer_declarator "*__tvp" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "utimbuf *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "utimbuf local_b8;" type_identifier identifier ;) (declaration "stat64 local_b0;" type_identifier identifier ;) (declaration "utimbuf local_50;" type_identifier identifier ;) (declaration "__time_t local_48;" type_identifier identifier ;) (declaration "__time_t local_44;" type_identifier identifier ;) (declaration "timeval local_40;" type_identifier identifier ;) (declaration "__time_t local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "timeval local_30;" type_identifier identifier ;) (declaration "__time_t local_28;" type_identifier identifier ;) (declaration "__suseconds_t local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x23099;" (assignment_expression "uStack_14 = 0x23099" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" if (parenthesized_expression "(param_3 == (__time_t *)0x0)" ( (binary_expression "param_3 == (__time_t *)0x0" identifier == (cast_expression "(__time_t *)0x0" ( (type_descriptor "__time_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }" { (expression_statement "local_bc = (utimbuf *)0x0;" (assignment_expression "local_bc = (utimbuf *)0x0" identifier = (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" statement_identifier : (if_statement "if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" if (parenthesized_expression "((param_1 < 0) && (param_2 == (char *)0x0))" ( (binary_expression "(param_1 < 0) && (param_2 == (char *)0x0)" (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) && (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar6 = 9;" (assignment_expression "*piVar6 = 9" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }) (else_clause "else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" else (compound_statement "{\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" { (if_statement "if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" if (parenthesized_expression "(-1 < DAT_0003d8fc)" ( (binary_expression "-1 < DAT_0003d8fc" number_literal < identifier) )) (compound_statement "{\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" { (if_statement "if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" { (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" { (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" identifier = (call_expression "__xstat64(3,param_2,&local_b0)" identifier (argument_list "(3,param_2,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" else (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" { (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) (if_statement "if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" if (parenthesized_expression "(local_bc->modtime == 0x3ffffffe)" ( (binary_expression "local_bc->modtime == 0x3ffffffe" (field_expression "local_bc->modtime" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }" { (expression_statement "local_bc->modtime = local_b0.st_atim.tv_nsec;" (assignment_expression "local_bc->modtime = local_b0.st_atim.tv_nsec" (field_expression "local_bc->modtime" identifier -> field_identifier) = (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (expression_statement "local_bc->actime = local_b0.st_atim.tv_sec;" (assignment_expression "local_bc->actime = local_b0.st_atim.tv_sec" (field_expression "local_bc->actime" identifier -> field_identifier) = (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" else (compound_statement "{\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" { (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" identifier = number_literal) ;) (if_statement "if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" if (parenthesized_expression "(local_bc[1].modtime == 0x3ffffffe)" ( (binary_expression "local_bc[1].modtime == 0x3ffffffe" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) == number_literal) )) (compound_statement "{\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" { (expression_statement "local_bc[1].modtime = local_b0.st_mtim.tv_nsec;" (assignment_expression "local_bc[1].modtime = local_b0.st_mtim.tv_nsec" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_bc[1].actime = local_b0.st_mtim.tv_sec;" (assignment_expression "local_bc[1].actime = local_b0.st_mtim.tv_sec" (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) }))) })) (if_statement "if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }" { (expression_statement "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);" (assignment_expression "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0)" identifier = (call_expression "utimensat(-100,param_2,(timespec *)local_bc,0)" identifier (argument_list "(-100,param_2,(timespec *)local_bc,0)" ( number_literal , identifier , (cast_expression "(timespec *)local_bc" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) }) (else_clause "else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" else (compound_statement "{\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" { (expression_statement "iVar5 = futimens(param_1,(timespec *)local_bc);" (assignment_expression "iVar5 = futimens(param_1,(timespec *)local_bc)" identifier = (call_expression "futimens(param_1,(timespec *)local_bc)" identifier (argument_list "(param_1,(timespec *)local_bc)" ( identifier , (cast_expression "(timespec *)local_bc" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (if_statement "if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }" { (if_statement "if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" if (parenthesized_expression "((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26))" ( (binary_expression "(iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar6 = __errno_location(), *piVar6 != 0x26)" ( (comma_expression "piVar6 = __errno_location(), *piVar6 != 0x26" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) , (binary_expression "*piVar6 != 0x26" (pointer_expression "*piVar6" * identifier) != number_literal)) ))) )) (compound_statement "{\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" { (expression_statement "DAT_0003d8fc = 1;" (assignment_expression "DAT_0003d8fc = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) }) (else_clause "else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" else (compound_statement "{\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" { (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar6 = 0x26;" (assignment_expression "*piVar6 = 0x26" (pointer_expression "*piVar6" * identifier) = number_literal) ;) }))) })) (expression_statement "DAT_0003d8fc = -1;" (assignment_expression "DAT_0003d8fc = -1" identifier = number_literal) ;) (expression_statement "DAT_0003d8f8 = 0xffffffff;" (assignment_expression "DAT_0003d8f8 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }" { (labeled_statement "LAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" statement_identifier : (if_statement "if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" if (parenthesized_expression "(local_bc == (utimbuf *)0x0)" ( (binary_expression "local_bc == (utimbuf *)0x0" identifier == (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000232b8;" goto statement_identifier ;))) (expression_statement "local_40.tv_sec = local_bc->actime;" (assignment_expression "local_40.tv_sec = local_bc->actime" (field_expression "local_40.tv_sec" identifier . field_identifier) = (field_expression "local_bc->actime" identifier -> field_identifier)) ;) (expression_statement "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);" (assignment_expression "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (field_expression "local_40.tv_usec" identifier . field_identifier) = (binary_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (parenthesized_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f))" ( (binary_expression "local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)" (binary_expression "local_bc->modtime / 1000" (field_expression "local_bc->modtime" identifier -> field_identifier) / number_literal) + (parenthesized_expression "(local_bc->modtime >> 0x1f)" ( (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" identifier -> field_identifier) >> number_literal) ))) )) - (parenthesized_expression "(local_bc->modtime >> 0x1f)" ( (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "local_38 = local_bc[1].actime;" (assignment_expression "local_38 = local_bc[1].actime" identifier = (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "__tvp = &local_40;" (assignment_expression "__tvp = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "local_34 = local_bc[1].modtime / 1000;" (assignment_expression "local_34 = local_bc[1].modtime / 1000" identifier = (binary_expression "local_bc[1].modtime / 1000" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier) / number_literal)) ;) }) (else_clause "else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" else (compound_statement "{\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" { (if_statement "if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" if (parenthesized_expression "(iVar4 != 3)" ( (binary_expression "iVar4 != 3" identifier != number_literal) )) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" { (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" { (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" identifier = (call_expression "__xstat64(3,param_2,&local_b0)" identifier (argument_list "(3,param_2,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" else (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" { (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) ;) }))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000233b8;" goto statement_identifier ;)) })) (if_statement "if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" if (parenthesized_expression "(local_bc != (utimbuf *)0x0)" ( (binary_expression "local_bc != (utimbuf *)0x0" identifier != (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "cVar3 = FUN_00022ee0();" (assignment_expression "cVar3 = FUN_00022ee0()" identifier = (call_expression "FUN_00022ee0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 != '\0') goto LAB_00023294;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (goto_statement "goto LAB_000231d9;" goto statement_identifier ;) })) (labeled_statement "LAB_000232b8:\n        __tvp = (timeval *)0x0;" statement_identifier : (expression_statement "__tvp = (timeval *)0x0;" (assignment_expression "__tvp = (timeval *)0x0" identifier = (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (if_statement "if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(param_1 < 0)" ( (binary_expression "param_1 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" { (expression_statement "iVar5 = futimesat(-100,param_2,__tvp);" (assignment_expression "iVar5 = futimesat(-100,param_2,__tvp)" identifier = (call_expression "futimesat(-100,param_2,__tvp)" identifier (argument_list "(-100,param_2,__tvp)" ( number_literal , identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (expression_statement "iVar4 = futimesat(param_1,(char *)0x0,__tvp);" (assignment_expression "iVar4 = futimesat(param_1,(char *)0x0,__tvp)" identifier = (call_expression "futimesat(param_1,(char *)0x0,__tvp)" identifier (argument_list "(param_1,(char *)0x0,__tvp)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (__tvp == (timeval *)0x0) goto LAB_00023294;" if (parenthesized_expression "(__tvp == (timeval *)0x0)" ( (binary_expression "__tvp == (timeval *)0x0" identifier == (cast_expression "(timeval *)0x0" ( (type_descriptor "timeval *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "bVar1 = __tvp->tv_usec < 500000;" (assignment_expression "bVar1 = __tvp->tv_usec < 500000" identifier = (binary_expression "__tvp->tv_usec < 500000" (field_expression "__tvp->tv_usec" identifier -> field_identifier) < number_literal)) ;) (expression_statement "bVar2 = __tvp[1].tv_usec < 500000;" (assignment_expression "bVar2 = __tvp[1].tv_usec < 500000" identifier = (binary_expression "__tvp[1].tv_usec < 500000" (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier) < number_literal)) ;) (if_statement "if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;" if (parenthesized_expression "(((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))" ( (binary_expression "((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" (parenthesized_expression "((bVar1) && (bVar2))" ( (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) || (parenthesized_expression "(iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" ( (comma_expression "iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" identifier = (call_expression "__fxstat64(3,param_1,&local_b0)" identifier (argument_list "(3,param_1,&local_b0)" ( number_literal , identifier , (pointer_expression "&local_b0" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00023294;" goto statement_identifier ;)) (expression_statement "local_30.tv_sec = __tvp->tv_sec;" (assignment_expression "local_30.tv_sec = __tvp->tv_sec" (field_expression "local_30.tv_sec" identifier . field_identifier) = (field_expression "__tvp->tv_sec" identifier -> field_identifier)) ;) (expression_statement "local_30.tv_usec = __tvp->tv_usec;" (assignment_expression "local_30.tv_usec = __tvp->tv_usec" (field_expression "local_30.tv_usec" identifier . field_identifier) = (field_expression "__tvp->tv_usec" identifier -> field_identifier)) ;) (expression_statement "local_28 = __tvp[1].tv_sec;" (assignment_expression "local_28 = __tvp[1].tv_sec" identifier = (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;" (assignment_expression "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" identifier = (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec" (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) == number_literal)) ;) (expression_statement "local_24 = __tvp[1].tv_usec;" (assignment_expression "local_24 = __tvp[1].tv_usec" identifier = (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" if (parenthesized_expression "(((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0))" ( (binary_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)" (parenthesized_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1))" ( (binary_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)" (parenthesized_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1)" ( (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec != 1" (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec" (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier) - (field_expression "__tvp->tv_sec" identifier -> field_identifier)) != number_literal) )) || (parenthesized_expression "(bVar1)" ( identifier ))) )) || (parenthesized_expression "(local_b0.st_atim.tv_nsec != 0)" ( (binary_expression "local_b0.st_atim.tv_nsec != 0" (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" identifier . field_identifier) . field_identifier) != number_literal) ))) )) (compound_statement "{\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }" { (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;" if (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" ( (binary_expression "bVar7 && !bVar2" identifier && (unary_expression "!bVar2" ! identifier)) )) && (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" ( (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (goto_statement "goto LAB_0002352c;" goto statement_identifier ;)) }) (else_clause "else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" else (compound_statement "{\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" { (expression_statement "local_30.tv_usec = 0;" (assignment_expression "local_30.tv_usec = 0" (field_expression "local_30.tv_usec" identifier . field_identifier) = number_literal) ;) (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }" if (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" ( (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" ( (binary_expression "bVar7 && !bVar2" identifier && (unary_expression "!bVar2" ! identifier)) )) && (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" ( (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" identifier . field_identifier) . field_identifier) == number_literal) ))) )) (compound_statement "{\nLAB_0002352c:\n            local_24 = 0;\n          }" { (labeled_statement "LAB_0002352c:\n            local_24 = 0;" statement_identifier : (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;)) })) (expression_statement "futimesat(param_1,(char *)0x0,&local_30);" (call_expression "futimesat(param_1,(char *)0x0,&local_30)" identifier (argument_list "(param_1,(char *)0x0,&local_30)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&local_30" & identifier) ))) ;) }))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) (if_statement "if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" { (if_statement "if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" if (parenthesized_expression "(local_bc != (utimbuf *)0x0)" ( (binary_expression "local_bc != (utimbuf *)0x0" identifier != (cast_expression "(utimbuf *)0x0" ( (type_descriptor "utimbuf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" { (expression_statement "local_b8.actime = local_bc->actime;" (assignment_expression "local_b8.actime = local_bc->actime" (field_expression "local_b8.actime" identifier . field_identifier) = (field_expression "local_bc->actime" identifier -> field_identifier)) ;) (expression_statement "local_b8.modtime = local_bc[1].actime;" (assignment_expression "local_b8.modtime = local_bc[1].actime" (field_expression "local_b8.modtime" identifier . field_identifier) = (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_bc = &local_b8;" (assignment_expression "local_bc = &local_b8" identifier = (pointer_expression "&local_b8" & identifier)) ;) })) (expression_statement "iVar5 = utime(param_2,local_bc);" (assignment_expression "iVar5 = utime(param_2,local_bc)" identifier = (call_expression "utime(param_2,local_bc)" identifier (argument_list "(param_2,local_bc)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_00023294;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" else (compound_statement "{\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" { (expression_statement "local_50.actime = *param_3;" (assignment_expression "local_50.actime = *param_3" (field_expression "local_50.actime" identifier . field_identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_50.modtime = param_3[1];" (assignment_expression "local_50.modtime = param_3[1]" (field_expression "local_50.modtime" identifier . field_identifier) = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_bc = &local_50;" (assignment_expression "local_bc = &local_50" identifier = (pointer_expression "&local_50" & identifier)) ;) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "local_44 = param_3[3];" (assignment_expression "local_44 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = FUN_00022fb0();" (assignment_expression "iVar4 = FUN_00022fb0()" identifier = (call_expression "FUN_00022fb0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar4) goto LAB_00023110;" if (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) (goto_statement "goto LAB_00023110;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000233b8:\n  iVar5 = -1;" statement_identifier : (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0002d970();\n  }" { (expression_statement "FUN_0002d970();" (call_expression "FUN_0002d970()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) == LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (expression_statement (assignment_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression (pointer_expression * IDENT) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (parenthesized_expression ( (binary_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) )))) ;) (expression_statement (assignment_expression IDENT = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) / LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT -> field_identifier) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) < LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( IDENT ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) - (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) == LIT)) ;) (expression_statement (assignment_expression IDENT = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) - (field_expression IDENT -> field_identifier)) != LIT) )) || (parenthesized_expression ( IDENT ))) )) || (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT && (unary_expression ! IDENT)) )) && (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) == LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT && (unary_expression ! IDENT)) )) && (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (pointer_expression & IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_00023090(int param_1,char *param_2,__time_t *param_3)\n\n{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }\n  return iVar5;\n}" (primitive_type "int") (function_declarator "FUN_00023090(int param_1,char *param_2,__time_t *param_3)" (identifier "FUN_00023090") (parameter_list "(int param_1,char *param_2,__time_t *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "__time_t *param_3" (type_identifier "__time_t") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  char cVar3;\n  int iVar4;\n  int iVar5;\n  int *piVar6;\n  timeval *__tvp;\n  int in_GS_OFFSET;\n  bool bVar7;\n  utimbuf *local_bc;\n  utimbuf local_b8;\n  stat64 local_b0;\n  utimbuf local_50;\n  __time_t local_48;\n  __time_t local_44;\n  timeval local_40;\n  __time_t local_38;\n  int local_34;\n  timeval local_30;\n  __time_t local_28;\n  __suseconds_t local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x23099;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }\nLAB_000233b8:\n  iVar5 = -1;\nLAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }\n  return iVar5;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "timeval *__tvp;" (type_identifier "timeval") (pointer_declarator "*__tvp" (* "*") (identifier "__tvp")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "utimbuf *local_bc;" (type_identifier "utimbuf") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "utimbuf local_b8;" (type_identifier "utimbuf") (identifier "local_b8") (; ";")) (declaration "stat64 local_b0;" (type_identifier "stat64") (identifier "local_b0") (; ";")) (declaration "utimbuf local_50;" (type_identifier "utimbuf") (identifier "local_50") (; ";")) (declaration "__time_t local_48;" (type_identifier "__time_t") (identifier "local_48") (; ";")) (declaration "__time_t local_44;" (type_identifier "__time_t") (identifier "local_44") (; ";")) (declaration "timeval local_40;" (type_identifier "timeval") (identifier "local_40") (; ";")) (declaration "__time_t local_38;" (type_identifier "__time_t") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "timeval local_30;" (type_identifier "timeval") (identifier "local_30") (; ";")) (declaration "__time_t local_28;" (type_identifier "__time_t") (identifier "local_28") (; ";")) (declaration "__suseconds_t local_24;" (type_identifier "__suseconds_t") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x23099;" (assignment_expression "uStack_14 = 0x23099" (identifier "uStack_14") (= "=") (number_literal "0x23099")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (param_3 == (__time_t *)0x0) {\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }\n  else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" (if "if") (parenthesized_expression "(param_3 == (__time_t *)0x0)" (( "(") (binary_expression "param_3 == (__time_t *)0x0" (identifier "param_3") (== "==") (cast_expression "(__time_t *)0x0" (( "(") (type_descriptor "__time_t *" (type_identifier "__time_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_bc = (utimbuf *)0x0;\n    iVar4 = 0;\nLAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }\n  }" ({ "{") (expression_statement "local_bc = (utimbuf *)0x0;" (assignment_expression "local_bc = (utimbuf *)0x0" (identifier "local_bc") (= "=") (cast_expression "(utimbuf *)0x0" (( "(") (type_descriptor "utimbuf *" (type_identifier "utimbuf") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00023110:\n    if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" (statement_identifier "LAB_00023110") (: ":") (if_statement "if ((param_1 < 0) && (param_2 == (char *)0x0)) {\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }\n    else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" (if "if") (parenthesized_expression "((param_1 < 0) && (param_2 == (char *)0x0))" (( "(") (binary_expression "(param_1 < 0) && (param_2 == (char *)0x0)" (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      piVar6 = __errno_location();\n      *piVar6 = 9;\n    }" ({ "{") (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar6 = 9;" (assignment_expression "*piVar6 = 9" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "9")) (; ";")) (} "}")) (else_clause "else {\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" (else "else") (compound_statement "{\n      if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }\n      DAT_0003d8fc = -1;\n      DAT_0003d8f8 = 0xffffffff;\n      if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }\n      if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }\n      iVar4 = futimesat(param_1,(char *)0x0,__tvp);\n      if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }\n      if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }\n    }" ({ "{") (if_statement "if (-1 < DAT_0003d8fc) {\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" (if "if") (parenthesized_expression "(-1 < DAT_0003d8fc)" (( "(") (binary_expression "-1 < DAT_0003d8fc" (number_literal "-1") (< "<") (identifier "DAT_0003d8fc")) () ")")) (compound_statement "{\n        if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }\n        if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }\n        if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }\n      }" ({ "{") (if_statement "if (iVar4 == 2) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n          if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }\n        }" ({ "{") (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" ({ "{") (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" (identifier "iVar4") (= "=") (call_expression "__xstat64(3,param_2,&local_b0)" (identifier "__xstat64") (argument_list "(3,param_2,&local_b0)" (( "(") (number_literal "3") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" (else "else") (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" ({ "{") (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" (identifier "iVar4") (= "=") (call_expression "__fxstat64(3,param_1,&local_b0)" (identifier "__fxstat64") (argument_list "(3,param_1,&local_b0)" (( "(") (number_literal "3") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000233b8;" (goto "goto") (statement_identifier "LAB_000233b8") (; ";"))) (if_statement "if (local_bc->modtime == 0x3ffffffe) {\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }\n          else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" (if "if") (parenthesized_expression "(local_bc->modtime == 0x3ffffffe)" (( "(") (binary_expression "local_bc->modtime == 0x3ffffffe" (field_expression "local_bc->modtime" (identifier "local_bc") (-> "->") (field_identifier "modtime")) (== "==") (number_literal "0x3ffffffe")) () ")")) (compound_statement "{\n            local_bc->modtime = local_b0.st_atim.tv_nsec;\n            iVar4 = 3;\n            local_bc->actime = local_b0.st_atim.tv_sec;\n          }" ({ "{") (expression_statement "local_bc->modtime = local_b0.st_atim.tv_nsec;" (assignment_expression "local_bc->modtime = local_b0.st_atim.tv_nsec" (field_expression "local_bc->modtime" (identifier "local_bc") (-> "->") (field_identifier "modtime")) (= "=") (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" (identifier "local_b0") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_nsec"))) (; ";")) (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_bc->actime = local_b0.st_atim.tv_sec;" (assignment_expression "local_bc->actime = local_b0.st_atim.tv_sec" (field_expression "local_bc->actime" (identifier "local_bc") (-> "->") (field_identifier "actime")) (= "=") (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" (identifier "local_b0") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" (else "else") (compound_statement "{\n            iVar4 = 3;\n            if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }\n          }" ({ "{") (expression_statement "iVar4 = 3;" (assignment_expression "iVar4 = 3" (identifier "iVar4") (= "=") (number_literal "3")) (; ";")) (if_statement "if (local_bc[1].modtime == 0x3ffffffe) {\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" (if "if") (parenthesized_expression "(local_bc[1].modtime == 0x3ffffffe)" (( "(") (binary_expression "local_bc[1].modtime == 0x3ffffffe" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "modtime")) (== "==") (number_literal "0x3ffffffe")) () ")")) (compound_statement "{\n              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;\n              local_bc[1].actime = local_b0.st_mtim.tv_sec;\n            }" ({ "{") (expression_statement "local_bc[1].modtime = local_b0.st_mtim.tv_nsec;" (assignment_expression "local_bc[1].modtime = local_b0.st_mtim.tv_nsec" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "modtime")) (= "=") (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" (identifier "local_b0") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec"))) (; ";")) (expression_statement "local_bc[1].actime = local_b0.st_mtim.tv_sec;" (assignment_expression "local_bc[1].actime = local_b0.st_mtim.tv_sec" (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "actime")) (= "=") (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" (identifier "local_b0") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if (param_1 < 0) {\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }\n        else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);\n        }" ({ "{") (expression_statement "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);" (assignment_expression "iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0)" (identifier "iVar5") (= "=") (call_expression "utimensat(-100,param_2,(timespec *)local_bc,0)" (identifier "utimensat") (argument_list "(-100,param_2,(timespec *)local_bc,0)" (( "(") (number_literal "-100") (, ",") (identifier "param_2") (, ",") (cast_expression "(timespec *)local_bc" (( "(") (type_descriptor "timespec *" (type_identifier "timespec") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_bc")) (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" (else "else") (compound_statement "{\n          iVar5 = futimens(param_1,(timespec *)local_bc);\n        }" ({ "{") (expression_statement "iVar5 = futimens(param_1,(timespec *)local_bc);" (assignment_expression "iVar5 = futimens(param_1,(timespec *)local_bc)" (identifier "iVar5") (= "=") (call_expression "futimens(param_1,(timespec *)local_bc)" (identifier "futimens") (argument_list "(param_1,(timespec *)local_bc)" (( "(") (identifier "param_1") (, ",") (cast_expression "(timespec *)local_bc" (( "(") (type_descriptor "timespec *" (type_identifier "timespec") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_bc")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar5 < 1) {\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }\n        else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }\n        }" ({ "{") (if_statement "if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" (if "if") (parenthesized_expression "((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26))" (( "(") (binary_expression "(iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar6 = __errno_location(), *piVar6 != 0x26)" (( "(") (comma_expression "piVar6 = __errno_location(), *piVar6 != 0x26" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "*piVar6 != 0x26" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (!= "!=") (number_literal "0x26"))) () ")"))) () ")")) (compound_statement "{\n            DAT_0003d8fc = 1;\n            goto LAB_00023294;\n          }" ({ "{") (expression_statement "DAT_0003d8fc = 1;" (assignment_expression "DAT_0003d8fc = 1" (identifier "DAT_0003d8fc") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" (else "else") (compound_statement "{\n          piVar6 = __errno_location();\n          *piVar6 = 0x26;\n        }" ({ "{") (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" (identifier "piVar6") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar6 = 0x26;" (assignment_expression "*piVar6 = 0x26" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0x26")) (; ";")) (} "}")))) (} "}"))) (expression_statement "DAT_0003d8fc = -1;" (assignment_expression "DAT_0003d8fc = -1" (identifier "DAT_0003d8fc") (= "=") (number_literal "-1")) (; ";")) (expression_statement "DAT_0003d8f8 = 0xffffffff;" (assignment_expression "DAT_0003d8f8 = 0xffffffff" (identifier "DAT_0003d8f8") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar4 == 0) {\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }\n      else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;\n        local_40.tv_sec = local_bc->actime;\n        local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);\n        local_38 = local_bc[1].actime;\n        __tvp = &local_40;\n        local_34 = local_bc[1].modtime / 1000;\n      }" ({ "{") (labeled_statement "LAB_000231d9:\n        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" (statement_identifier "LAB_000231d9") (: ":") (if_statement "if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;" (if "if") (parenthesized_expression "(local_bc == (utimbuf *)0x0)" (( "(") (binary_expression "local_bc == (utimbuf *)0x0" (identifier "local_bc") (== "==") (cast_expression "(utimbuf *)0x0" (( "(") (type_descriptor "utimbuf *" (type_identifier "utimbuf") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000232b8;" (goto "goto") (statement_identifier "LAB_000232b8") (; ";")))) (expression_statement "local_40.tv_sec = local_bc->actime;" (assignment_expression "local_40.tv_sec = local_bc->actime" (field_expression "local_40.tv_sec" (identifier "local_40") (. ".") (field_identifier "tv_sec")) (= "=") (field_expression "local_bc->actime" (identifier "local_bc") (-> "->") (field_identifier "actime"))) (; ";")) (expression_statement "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);" (assignment_expression "local_40.tv_usec =\n             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (field_expression "local_40.tv_usec" (identifier "local_40") (. ".") (field_identifier "tv_usec")) (= "=") (binary_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f)" (parenthesized_expression "(local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f))" (( "(") (binary_expression "local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)" (binary_expression "local_bc->modtime / 1000" (field_expression "local_bc->modtime" (identifier "local_bc") (-> "->") (field_identifier "modtime")) (/ "/") (number_literal "1000")) (+ "+") (parenthesized_expression "(local_bc->modtime >> 0x1f)" (( "(") (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" (identifier "local_bc") (-> "->") (field_identifier "modtime")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (parenthesized_expression "(local_bc->modtime >> 0x1f)" (( "(") (binary_expression "local_bc->modtime >> 0x1f" (field_expression "local_bc->modtime" (identifier "local_bc") (-> "->") (field_identifier "modtime")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "local_38 = local_bc[1].actime;" (assignment_expression "local_38 = local_bc[1].actime" (identifier "local_38") (= "=") (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "actime"))) (; ";")) (expression_statement "__tvp = &local_40;" (assignment_expression "__tvp = &local_40" (identifier "__tvp") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "local_34 = local_bc[1].modtime / 1000;" (assignment_expression "local_34 = local_bc[1].modtime / 1000" (identifier "local_34") (= "=") (binary_expression "local_bc[1].modtime / 1000" (field_expression "local_bc[1].modtime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "modtime")) (/ "/") (number_literal "1000"))) (; ";")) (} "}")) (else_clause "else {\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" (else "else") (compound_statement "{\n        if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }\n        if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }\nLAB_000232b8:\n        __tvp = (timeval *)0x0;\n      }" ({ "{") (if_statement "if (iVar4 != 3) {\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" (if "if") (parenthesized_expression "(iVar4 != 3)" (( "(") (binary_expression "iVar4 != 3" (identifier "iVar4") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n          if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }\n          if (iVar4 != 0) goto LAB_000233b8;\n        }" ({ "{") (if_statement "if (param_1 < 0) {\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }\n          else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar4 = __xstat64(3,param_2,&local_b0);\n          }" ({ "{") (expression_statement "iVar4 = __xstat64(3,param_2,&local_b0);" (assignment_expression "iVar4 = __xstat64(3,param_2,&local_b0)" (identifier "iVar4") (= "=") (call_expression "__xstat64(3,param_2,&local_b0)" (identifier "__xstat64") (argument_list "(3,param_2,&local_b0)" (( "(") (number_literal "3") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" (else "else") (compound_statement "{\n            iVar4 = __fxstat64(3,param_1,&local_b0);\n          }" ({ "{") (expression_statement "iVar4 = __fxstat64(3,param_1,&local_b0);" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" (identifier "iVar4") (= "=") (call_expression "__fxstat64(3,param_1,&local_b0)" (identifier "__fxstat64") (argument_list "(3,param_1,&local_b0)" (( "(") (number_literal "3") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar4 != 0) goto LAB_000233b8;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000233b8;" (goto "goto") (statement_identifier "LAB_000233b8") (; ";"))) (} "}"))) (if_statement "if (local_bc != (utimbuf *)0x0) {\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" (if "if") (parenthesized_expression "(local_bc != (utimbuf *)0x0)" (( "(") (binary_expression "local_bc != (utimbuf *)0x0" (identifier "local_bc") (!= "!=") (cast_expression "(utimbuf *)0x0" (( "(") (type_descriptor "utimbuf *" (type_identifier "utimbuf") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar5 = 0;\n          cVar3 = FUN_00022ee0();\n          if (cVar3 != '\0') goto LAB_00023294;\n          goto LAB_000231d9;\n        }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar3 = FUN_00022ee0();" (assignment_expression "cVar3 = FUN_00022ee0()" (identifier "cVar3") (= "=") (call_expression "FUN_00022ee0()" (identifier "FUN_00022ee0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 != '\0') goto LAB_00023294;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";"))) (goto_statement "goto LAB_000231d9;" (goto "goto") (statement_identifier "LAB_000231d9") (; ";")) (} "}"))) (labeled_statement "LAB_000232b8:\n        __tvp = (timeval *)0x0;" (statement_identifier "LAB_000232b8") (: ":") (expression_statement "__tvp = (timeval *)0x0;" (assignment_expression "__tvp = (timeval *)0x0" (identifier "__tvp") (= "=") (cast_expression "(timeval *)0x0" (( "(") (type_descriptor "timeval *" (type_identifier "timeval") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")))) (if_statement "if (param_1 < 0) {\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" (if "if") (parenthesized_expression "(param_1 < 0)" (( "(") (binary_expression "param_1 < 0" (identifier "param_1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = futimesat(-100,param_2,__tvp);\n        goto LAB_00023294;\n      }" ({ "{") (expression_statement "iVar5 = futimesat(-100,param_2,__tvp);" (assignment_expression "iVar5 = futimesat(-100,param_2,__tvp)" (identifier "iVar5") (= "=") (call_expression "futimesat(-100,param_2,__tvp)" (identifier "futimesat") (argument_list "(-100,param_2,__tvp)" (( "(") (number_literal "-100") (, ",") (identifier "param_2") (, ",") (identifier "__tvp") () ")")))) (; ";")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";")) (} "}"))) (expression_statement "iVar4 = futimesat(param_1,(char *)0x0,__tvp);" (assignment_expression "iVar4 = futimesat(param_1,(char *)0x0,__tvp)" (identifier "iVar4") (= "=") (call_expression "futimesat(param_1,(char *)0x0,__tvp)" (identifier "futimesat") (argument_list "(param_1,(char *)0x0,__tvp)" (( "(") (identifier "param_1") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (identifier "__tvp") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = 0;\n        if (__tvp == (timeval *)0x0) goto LAB_00023294;\n        bVar1 = __tvp->tv_usec < 500000;\n        bVar2 = __tvp[1].tv_usec < 500000;\n        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;\n        local_30.tv_sec = __tvp->tv_sec;\n        local_30.tv_usec = __tvp->tv_usec;\n        local_28 = __tvp[1].tv_sec;\n        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;\n        local_24 = __tvp[1].tv_usec;\n        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }\n        iVar5 = 0;\n        goto LAB_00023294;\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (__tvp == (timeval *)0x0) goto LAB_00023294;" (if "if") (parenthesized_expression "(__tvp == (timeval *)0x0)" (( "(") (binary_expression "__tvp == (timeval *)0x0" (identifier "__tvp") (== "==") (cast_expression "(timeval *)0x0" (( "(") (type_descriptor "timeval *" (type_identifier "timeval") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";"))) (expression_statement "bVar1 = __tvp->tv_usec < 500000;" (assignment_expression "bVar1 = __tvp->tv_usec < 500000" (identifier "bVar1") (= "=") (binary_expression "__tvp->tv_usec < 500000" (field_expression "__tvp->tv_usec" (identifier "__tvp") (-> "->") (field_identifier "tv_usec")) (< "<") (number_literal "500000"))) (; ";")) (expression_statement "bVar2 = __tvp[1].tv_usec < 500000;" (assignment_expression "bVar2 = __tvp[1].tv_usec < 500000" (identifier "bVar2") (= "=") (binary_expression "__tvp[1].tv_usec < 500000" (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" (identifier "__tvp") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "tv_usec")) (< "<") (number_literal "500000"))) (; ";")) (if_statement "if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))\n        goto LAB_00023294;" (if "if") (parenthesized_expression "(((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))" (( "(") (binary_expression "((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" (parenthesized_expression "((bVar1) && (bVar2))" (( "(") (binary_expression "(bVar1) && (bVar2)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0)" (( "(") (comma_expression "iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0" (assignment_expression "iVar4 = __fxstat64(3,param_1,&local_b0)" (identifier "iVar4") (= "=") (call_expression "__fxstat64(3,param_1,&local_b0)" (identifier "__fxstat64") (argument_list "(3,param_1,&local_b0)" (( "(") (number_literal "3") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";"))) (expression_statement "local_30.tv_sec = __tvp->tv_sec;" (assignment_expression "local_30.tv_sec = __tvp->tv_sec" (field_expression "local_30.tv_sec" (identifier "local_30") (. ".") (field_identifier "tv_sec")) (= "=") (field_expression "__tvp->tv_sec" (identifier "__tvp") (-> "->") (field_identifier "tv_sec"))) (; ";")) (expression_statement "local_30.tv_usec = __tvp->tv_usec;" (assignment_expression "local_30.tv_usec = __tvp->tv_usec" (field_expression "local_30.tv_usec" (identifier "local_30") (. ".") (field_identifier "tv_usec")) (= "=") (field_expression "__tvp->tv_usec" (identifier "__tvp") (-> "->") (field_identifier "tv_usec"))) (; ";")) (expression_statement "local_28 = __tvp[1].tv_sec;" (assignment_expression "local_28 = __tvp[1].tv_sec" (identifier "local_28") (= "=") (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" (identifier "__tvp") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "tv_sec"))) (; ";")) (expression_statement "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;" (assignment_expression "bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" (identifier "bVar7") (= "=") (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1" (binary_expression "local_b0.st_mtim.tv_sec - __tvp[1].tv_sec" (field_expression "local_b0.st_mtim.tv_sec" (field_expression "local_b0.st_mtim" (identifier "local_b0") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec")) (- "-") (field_expression "__tvp[1].tv_sec" (subscript_expression "__tvp[1]" (identifier "__tvp") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "tv_sec"))) (== "==") (number_literal "1"))) (; ";")) (expression_statement "local_24 = __tvp[1].tv_usec;" (assignment_expression "local_24 = __tvp[1].tv_usec" (identifier "local_24") (= "=") (field_expression "__tvp[1].tv_usec" (subscript_expression "__tvp[1]" (identifier "__tvp") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "tv_usec"))) (; ";")) (if_statement "if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)) {\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }\n        else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" (if "if") (parenthesized_expression "(((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0))" (( "(") (binary_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||\n           (local_b0.st_atim.tv_nsec != 0)" (parenthesized_expression "((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1))" (( "(") (binary_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)" (parenthesized_expression "(local_b0.st_atim.tv_sec - __tvp->tv_sec != 1)" (( "(") (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec != 1" (binary_expression "local_b0.st_atim.tv_sec - __tvp->tv_sec" (field_expression "local_b0.st_atim.tv_sec" (field_expression "local_b0.st_atim" (identifier "local_b0") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_sec")) (- "-") (field_expression "__tvp->tv_sec" (identifier "__tvp") (-> "->") (field_identifier "tv_sec"))) (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_b0.st_atim.tv_nsec != 0)" (( "(") (binary_expression "local_b0.st_atim.tv_nsec != 0" (field_expression "local_b0.st_atim.tv_nsec" (field_expression "local_b0.st_atim" (identifier "local_b0") (. ".") (field_identifier "st_atim")) (. ".") (field_identifier "tv_nsec")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;\n        }" ({ "{") (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;" (if "if") (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" (( "(") (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" (( "(") (binary_expression "bVar7 && !bVar2" (identifier "bVar7") (&& "&&") (unary_expression "!bVar2" (! "!") (identifier "bVar2"))) () ")")) (&& "&&") (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" (( "(") (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" (identifier "local_b0") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0002352c;" (goto "goto") (statement_identifier "LAB_0002352c") (; ";"))) (} "}")) (else_clause "else {\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" (else "else") (compound_statement "{\n          local_30.tv_usec = 0;\n          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }\n          futimesat(param_1,(char *)0x0,&local_30);\n        }" ({ "{") (expression_statement "local_30.tv_usec = 0;" (assignment_expression "local_30.tv_usec = 0" (field_expression "local_30.tv_usec" (identifier "local_30") (. ".") (field_identifier "tv_usec")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {\nLAB_0002352c:\n            local_24 = 0;\n          }" (if "if") (parenthesized_expression "((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0))" (( "(") (binary_expression "(bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)" (parenthesized_expression "(bVar7 && !bVar2)" (( "(") (binary_expression "bVar7 && !bVar2" (identifier "bVar7") (&& "&&") (unary_expression "!bVar2" (! "!") (identifier "bVar2"))) () ")")) (&& "&&") (parenthesized_expression "(local_b0.st_mtim.tv_nsec == 0)" (( "(") (binary_expression "local_b0.st_mtim.tv_nsec == 0" (field_expression "local_b0.st_mtim.tv_nsec" (field_expression "local_b0.st_mtim" (identifier "local_b0") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0002352c:\n            local_24 = 0;\n          }" ({ "{") (labeled_statement "LAB_0002352c:\n            local_24 = 0;" (statement_identifier "LAB_0002352c") (: ":") (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (expression_statement "futimesat(param_1,(char *)0x0,&local_30);" (call_expression "futimesat(param_1,(char *)0x0,&local_30)" (identifier "futimesat") (argument_list "(param_1,(char *)0x0,&local_30)" (( "(") (identifier "param_1") (, ",") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";")) (} "}"))) (if_statement "if (param_2 != (char *)0x0) {\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" (if "if") (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }\n        iVar5 = utime(param_2,local_bc);\n        goto LAB_00023294;\n      }" ({ "{") (if_statement "if (local_bc != (utimbuf *)0x0) {\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" (if "if") (parenthesized_expression "(local_bc != (utimbuf *)0x0)" (( "(") (binary_expression "local_bc != (utimbuf *)0x0" (identifier "local_bc") (!= "!=") (cast_expression "(utimbuf *)0x0" (( "(") (type_descriptor "utimbuf *" (type_identifier "utimbuf") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_b8.actime = local_bc->actime;\n          local_b8.modtime = local_bc[1].actime;\n          local_bc = &local_b8;\n        }" ({ "{") (expression_statement "local_b8.actime = local_bc->actime;" (assignment_expression "local_b8.actime = local_bc->actime" (field_expression "local_b8.actime" (identifier "local_b8") (. ".") (field_identifier "actime")) (= "=") (field_expression "local_bc->actime" (identifier "local_bc") (-> "->") (field_identifier "actime"))) (; ";")) (expression_statement "local_b8.modtime = local_bc[1].actime;" (assignment_expression "local_b8.modtime = local_bc[1].actime" (field_expression "local_b8.modtime" (identifier "local_b8") (. ".") (field_identifier "modtime")) (= "=") (field_expression "local_bc[1].actime" (subscript_expression "local_bc[1]" (identifier "local_bc") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "actime"))) (; ";")) (expression_statement "local_bc = &local_b8;" (assignment_expression "local_bc = &local_b8" (identifier "local_bc") (= "=") (pointer_expression "&local_b8" (& "&") (identifier "local_b8"))) (; ";")) (} "}"))) (expression_statement "iVar5 = utime(param_2,local_bc);" (assignment_expression "iVar5 = utime(param_2,local_bc)" (identifier "iVar5") (= "=") (call_expression "utime(param_2,local_bc)" (identifier "utime") (argument_list "(param_2,local_bc)" (( "(") (identifier "param_2") (, ",") (identifier "local_bc") () ")")))) (; ";")) (goto_statement "goto LAB_00023294;" (goto "goto") (statement_identifier "LAB_00023294") (; ";")) (} "}"))) (} "}"))))) (} "}")) (else_clause "else {\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" (else "else") (compound_statement "{\n    local_50.actime = *param_3;\n    local_50.modtime = param_3[1];\n    local_bc = &local_50;\n    local_48 = param_3[2];\n    local_44 = param_3[3];\n    iVar4 = FUN_00022fb0();\n    if (-1 < iVar4) goto LAB_00023110;\n  }" ({ "{") (expression_statement "local_50.actime = *param_3;" (assignment_expression "local_50.actime = *param_3" (field_expression "local_50.actime" (identifier "local_50") (. ".") (field_identifier "actime")) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_50.modtime = param_3[1];" (assignment_expression "local_50.modtime = param_3[1]" (field_expression "local_50.modtime" (identifier "local_50") (. ".") (field_identifier "modtime")) (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_bc = &local_50;" (assignment_expression "local_bc = &local_50" (identifier "local_bc") (= "=") (pointer_expression "&local_50" (& "&") (identifier "local_50"))) (; ";")) (expression_statement "local_48 = param_3[2];" (assignment_expression "local_48 = param_3[2]" (identifier "local_48") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_44 = param_3[3];" (assignment_expression "local_44 = param_3[3]" (identifier "local_44") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar4 = FUN_00022fb0();" (assignment_expression "iVar4 = FUN_00022fb0()" (identifier "iVar4") (= "=") (call_expression "FUN_00022fb0()" (identifier "FUN_00022fb0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (-1 < iVar4) goto LAB_00023110;" (if "if") (parenthesized_expression "(-1 < iVar4)" (( "(") (binary_expression "-1 < iVar4" (number_literal "-1") (< "<") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_00023110;" (goto "goto") (statement_identifier "LAB_00023110") (; ";"))) (} "}")))) (labeled_statement "LAB_000233b8:\n  iVar5 = -1;" (statement_identifier "LAB_000233b8") (: ":") (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "LAB_00023294:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }" (statement_identifier "LAB_00023294") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002d970();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0002d970();\n  }" ({ "{") (expression_statement "FUN_0002d970();" (call_expression "FUN_0002d970()" (identifier "FUN_0002d970") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar5;" (return "return") (identifier "iVar5") (; ";")) (} "}")))

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

int function_1(int var_2,char *var_3,type_1 *type_1)

{
  int var_19;
  bool bVar2;
  bool bVar3;
  type_2 _Var4;
  int var_6;
  int var_11;
  int *piVar7;
  type_3 *__file_times;
  type_4 *var_15;
  int var_1;
  bool var_16;
  type_1 *var_12;
  type_3 type_3;
  type_5 st;
  type_1 adjusted_timespec [2];
  type_4 type_4 [2];
  type_4 truncated_timeval [2];
  
  var_19 = *(int *)(var_1 + 0x14);
  if (type_1 == (type_1 *)0x0) {
    var_12 = (type_1 *)0x0;
    var_6 = 0;
LAB_00023110:
    if ((var_2 < 0) && (var_3 == (char *)0x0)) {
      piVar7 = var_4();
      *piVar7 = 9;
    }
    else {
      if (-1 < var_5) {
        if (var_6 == 2) {
          if (var_2 < 0) {
            var_6 = var_7(3,var_3,(type_6 *)&st);
          }
          else {
            var_6 = var_8(3,var_2,(type_6 *)&st);
          }
          if (var_6 != 0) goto LAB_000233b8;
          if (var_12->tv_nsec == 0x3ffffffe) {
            var_12->tv_nsec = st.st_atim.tv_nsec;
            var_6 = 3;
            var_12->tv_sec = st.st_atim.tv_sec;
          }
          else {
            var_6 = 3;
            if (var_12[1].tv_nsec == 0x3ffffffe) {
              var_12[1].tv_nsec = st.st_mtim.tv_nsec;
              var_12[1].tv_sec = st.st_mtim.tv_sec;
            }
          }
        }
        if (var_2 < 0) {
          var_11 = var_9(-100,var_3,(type_1 *)var_12,0);
        }
        else {
          var_11 = var_10(var_2,(type_1 *)var_12);
        }
        if (var_11 < 1) {
          if ((var_11 == 0) || (piVar7 = var_4(), *piVar7 != 0x26)) {
            var_5 = 1;
            goto LAB_00023294;
          }
        }
        else {
          piVar7 = var_4();
          *piVar7 = 0x26;
        }
      }
      var_5 = -1;
      lutimensat_works_really = -1;
      if (var_6 == 0) {
LAB_000231d9:
        if (var_12 == (type_1 *)0x0) goto LAB_000232b8;
        type_4[0].tv_sec = var_12->tv_sec;
        type_4[0].tv_usec = (var_12->tv_nsec / 1000 + (var_12->tv_nsec >> 0x1f)) - (var_12->tv_nsec >> 0x1f);
        type_4[1].tv_sec = var_12[1].tv_sec;
        var_15 = (type_4 *)type_4;
        type_4[1].tv_usec = var_12[1].tv_nsec / 1000;
      }
      else {
        if (var_6 != 3) {
          if (var_2 < 0) {
            var_6 = var_7(3,var_3,(type_6 *)&st);
          }
          else {
            var_6 = var_8(3,var_2,(type_6 *)&st);
          }
          if (var_6 != 0) goto LAB_000233b8;
        }
        if (var_12 != (type_1 *)0x0) {
          var_11 = 0;
          _Var4 = var_13(&st,&var_12);
          if (_Var4) goto LAB_00023294;
          goto LAB_000231d9;
        }
LAB_000232b8:
        var_15 = (type_4 *)0x0;
      }
      if (var_2 < 0) {
        var_11 = var_14(-100,var_3,var_15);
        goto LAB_00023294;
      }
      var_6 = var_14(var_2,(char *)0x0,var_15);
      if (var_6 == 0) {
        var_11 = 0;
        if (var_15 == (type_4 *)0x0) goto LAB_00023294;
        bVar2 = var_15->tv_usec < 500000;
        bVar3 = var_15[1].tv_usec < 500000;
        if (((bVar2) && (bVar3)) || (var_6 = var_8(3,var_2,(type_6 *)&st), var_6 != 0))
        goto LAB_00023294;
        truncated_timeval[0].tv_sec = var_15->tv_sec;
        truncated_timeval[0].tv_usec = var_15->tv_usec;
        truncated_timeval[1].tv_sec = var_15[1].tv_sec;
        var_16 = st.st_mtim.tv_sec - var_15[1].tv_sec == 1;
        truncated_timeval[1].tv_usec = var_15[1].tv_usec;
        if (((st.st_atim.tv_sec - var_15->tv_sec != 1) || (bVar2)) || (st.st_atim.tv_nsec != 0)) {
          if ((var_16 && !bVar3) && (st.st_mtim.tv_nsec == 0)) goto LAB_0002352c;
        }
        else {
          truncated_timeval[0].tv_usec = 0;
          if ((var_16 && !bVar3) && (st.st_mtim.tv_nsec == 0)) {
LAB_0002352c:
            truncated_timeval[1].tv_usec = 0;
          }
          var_14(var_2,(char *)0x0,(type_4 *)truncated_timeval);
        }
        var_11 = 0;
        goto LAB_00023294;
      }
      if (var_3 != (char *)0x0) {
        __file_times = (type_3 *)var_12;
        if (var_12 != (type_1 *)0x0) {
          type_3.actime = var_12->tv_sec;
          type_3.modtime = var_12[1].tv_sec;
          __file_times = (type_3 *)&type_3;
        }
        var_11 = var_17(var_3,__file_times);
        goto LAB_00023294;
      }
    }
  }
  else {
    adjusted_timespec[0].tv_sec = type_1->tv_sec;
    adjusted_timespec[0].tv_nsec = type_1->tv_nsec;
    var_12 = adjusted_timespec;
    adjusted_timespec[1].tv_sec = type_1[1].tv_sec;
    adjusted_timespec[1].tv_nsec = type_1[1].tv_nsec;
    var_6 = var_18(var_12);
    if (-1 < var_6) goto LAB_00023110;
  }
LAB_000233b8:
  var_11 = -1;
LAB_00023294:
  if (var_19 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_20();
  }
  return var_11;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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 (number_literal) (identifier) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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 (number_literal) (identifier) (pointer_expression argument: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (number_literal) (identifier) (identifier))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (identifier)) right: (parenthesized_expression (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (pointer_expression argument: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier))) right: (number_literal))) right: (parenthesized_expression (identifier)))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (unary_expression argument: (identifier)))) right: (parenthesized_expression (binary_expression left: (field_expression argument: (field_expression argument: (identifier) field: (field_identifier)) field: (field_identifier)) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

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

int MASKED(int param_1,char *param_2,__time_t *param_3)

{
  bool bVar1;
  bool bVar2;
  char cVar3;
  int iVar4;
  int iVar5;
  int *piVar6;
  timeval *__tvp;
  int in_GS_OFFSET;
  bool bVar7;
  utimbuf *local_bc;
  utimbuf local_b8;
  stat64 local_b0;
  utimbuf local_50;
  __time_t local_48;
  __time_t local_44;
  timeval local_40;
  __time_t local_38;
  int local_34;
  timeval local_30;
  __time_t local_28;
  __suseconds_t local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x23099;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_3 == (__time_t *)0x0) {
    local_bc = (utimbuf *)0x0;
    iVar4 = 0;
LAB_00023110:
    if ((param_1 < 0) && (param_2 == (char *)0x0)) {
      piVar6 = __errno_location();
      *piVar6 = 9;
    }
    else {
      if (-1 < DAT_0003d8fc) {
        if (iVar4 == 2) {
          if (param_1 < 0) {
            iVar4 = __xstat64(3,param_2,&local_b0);
          }
          else {
            iVar4 = __fxstat64(3,param_1,&local_b0);
          }
          if (iVar4 != 0) goto LAB_000233b8;
          if (local_bc->modtime == 0x3ffffffe) {
            local_bc->modtime = local_b0.st_atim.tv_nsec;
            iVar4 = 3;
            local_bc->actime = local_b0.st_atim.tv_sec;
          }
          else {
            iVar4 = 3;
            if (local_bc[1].modtime == 0x3ffffffe) {
              local_bc[1].modtime = local_b0.st_mtim.tv_nsec;
              local_bc[1].actime = local_b0.st_mtim.tv_sec;
            }
          }
        }
        if (param_1 < 0) {
          iVar5 = utimensat(-100,param_2,(timespec *)local_bc,0);
        }
        else {
          iVar5 = futimens(param_1,(timespec *)local_bc);
        }
        if (iVar5 < 1) {
          if ((iVar5 == 0) || (piVar6 = __errno_location(), *piVar6 != 0x26)) {
            DAT_0003d8fc = 1;
            goto LAB_00023294;
          }
        }
        else {
          piVar6 = __errno_location();
          *piVar6 = 0x26;
        }
      }
      DAT_0003d8fc = -1;
      DAT_0003d8f8 = 0xffffffff;
      if (iVar4 == 0) {
LAB_000231d9:
        if (local_bc == (utimbuf *)0x0) goto LAB_000232b8;
        local_40.tv_sec = local_bc->actime;
        local_40.tv_usec =
             (local_bc->modtime / 1000 + (local_bc->modtime >> 0x1f)) - (local_bc->modtime >> 0x1f);
        local_38 = local_bc[1].actime;
        __tvp = &local_40;
        local_34 = local_bc[1].modtime / 1000;
      }
      else {
        if (iVar4 != 3) {
          if (param_1 < 0) {
            iVar4 = __xstat64(3,param_2,&local_b0);
          }
          else {
            iVar4 = __fxstat64(3,param_1,&local_b0);
          }
          if (iVar4 != 0) goto LAB_000233b8;
        }
        if (local_bc != (utimbuf *)0x0) {
          iVar5 = 0;
          cVar3 = FUN_00022ee0();
          if (cVar3 != '\0') goto LAB_00023294;
          goto LAB_000231d9;
        }
LAB_000232b8:
        __tvp = (timeval *)0x0;
      }
      if (param_1 < 0) {
        iVar5 = futimesat(-100,param_2,__tvp);
        goto LAB_00023294;
      }
      iVar4 = futimesat(param_1,(char *)0x0,__tvp);
      if (iVar4 == 0) {
        iVar5 = 0;
        if (__tvp == (timeval *)0x0) goto LAB_00023294;
        bVar1 = __tvp->tv_usec < 500000;
        bVar2 = __tvp[1].tv_usec < 500000;
        if (((bVar1) && (bVar2)) || (iVar4 = __fxstat64(3,param_1,&local_b0), iVar4 != 0))
        goto LAB_00023294;
        local_30.tv_sec = __tvp->tv_sec;
        local_30.tv_usec = __tvp->tv_usec;
        local_28 = __tvp[1].tv_sec;
        bVar7 = local_b0.st_mtim.tv_sec - __tvp[1].tv_sec == 1;
        local_24 = __tvp[1].tv_usec;
        if (((local_b0.st_atim.tv_sec - __tvp->tv_sec != 1) || (bVar1)) ||
           (local_b0.st_atim.tv_nsec != 0)) {
          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) goto LAB_0002352c;
        }
        else {
          local_30.tv_usec = 0;
          if ((bVar7 && !bVar2) && (local_b0.st_mtim.tv_nsec == 0)) {
LAB_0002352c:
            local_24 = 0;
          }
          futimesat(param_1,(char *)0x0,&local_30);
        }
        iVar5 = 0;
        goto LAB_00023294;
      }
      if (param_2 != (char *)0x0) {
        if (local_bc != (utimbuf *)0x0) {
          local_b8.actime = local_bc->actime;
          local_b8.modtime = local_bc[1].actime;
          local_bc = &local_b8;
        }
        iVar5 = utime(param_2,local_bc);
        goto LAB_00023294;
      }
    }
  }
  else {
    local_50.actime = *param_3;
    local_50.modtime = param_3[1];
    local_bc = &local_50;
    local_48 = param_3[2];
    local_44 = param_3[3];
    iVar4 = FUN_00022fb0();
    if (-1 < iVar4) goto LAB_00023110;
  }
LAB_000233b8:
  iVar5 = -1;
LAB_00023294:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002d970();
  }
  return iVar5;
}

