Mono_Posix_Syscall_gettimeofday (struct Mono_Posix_Timeval * tv, void * tz)
{
  long int D.6620;
  long int D.6621;
  int D.6624;
  int D.6625;
  struct timeval _tv;
  struct timezone _tz;
  int r;

  try
    {
      r = gettimeofday (&_tv, &_tz);
      if (r == 0) goto <D.6616>; else goto <D.6617>;
      <D.6616>:
      if (tv != 0B) goto <D.6618>; else goto <D.6619>;
      <D.6618>:
      D.6620 = _tv.tv_sec;
      tv->tv_sec = D.6620;
      D.6621 = _tv.tv_usec;
      tv->tv_usec = D.6621;
      <D.6619>:
      if (tz != 0B) goto <D.6622>; else goto <D.6623>;
      <D.6622>:
      {
        struct Mono_Posix_Timezone * tz_;

        tz_ = tz;
        D.6624 = _tz.tz_minuteswest;
        tz_->tz_minuteswest = D.6624;
        tz_->tz_dsttime = 0;
      }
      <D.6623>:
      <D.6617>:
      D.6625 = r;
      return D.6625;
    }
  finally
    {
      _tv = {CLOBBER};
      _tz = {CLOBBER};
    }
}


Mono_Posix_Syscall_settimeofday (struct Mono_Posix_Timeval * tv, struct Mono_Posix_Timezone * tz)
{
  long int D.6630;
  long int D.6631;
  int D.6634;
  int D.6635;
  struct timeval _tv;
  struct timeval * ptv;
  struct timezone _tz;
  struct timezone * ptz;
  int r;

  try
    {
      _tv = {};
      ptv = 0B;
      _tz = {};
      ptz = 0B;
      if (tv != 0B) goto <D.6628>; else goto <D.6629>;
      <D.6628>:
      D.6630 = tv->tv_sec;
      _tv.tv_sec = D.6630;
      D.6631 = tv->tv_usec;
      _tv.tv_usec = D.6631;
      ptv = &_tv;
      <D.6629>:
      if (tz != 0B) goto <D.6632>; else goto <D.6633>;
      <D.6632>:
      D.6634 = tz->tz_minuteswest;
      _tz.tz_minuteswest = D.6634;
      _tz.tz_dsttime = 0;
      ptz = &_tz;
      <D.6633>:
      r = settimeofday (ptv, ptz);
      D.6635 = r;
      return D.6635;
    }
  finally
    {
      _tv = {CLOBBER};
      _tz = {CLOBBER};
    }
}


Mono_Posix_Syscall_utimes_bad (const char * filename, struct Mono_Posix_Timeval * tv)
{
  long int D.6640;
  long int D.6641;
  gint32 D.6642;
  struct timeval _tv;
  struct timeval * ptv;

  try
    {
      ptv = 0B;
      if (tv != 0B) goto <D.6638>; else goto <D.6639>;
      <D.6638>:
      D.6640 = tv->tv_sec;
      _tv.tv_sec = D.6640;
      D.6641 = tv->tv_usec;
      _tv.tv_usec = D.6641;
      ptv = &_tv;
      <D.6639>:
      D.6642 = utimes (filename, ptv);
      return D.6642;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


Mono_Posix_Syscall_utimes (const char * filename, struct Mono_Posix_Timeval * tv)
{
  int D.6645;
  struct timeval _tv[2];
  struct timeval * ptv;

  try
    {
      ptv = copy_utimes (&_tv, tv);
      D.6645 = utimes (filename, ptv);
      return D.6645;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


copy_utimes (struct timeval * to, struct Mono_Posix_Timeval * from)
{
  long int D.6650;
  long int D.6651;
  struct timeval * D.6652;
  struct Mono_Posix_Timeval * D.6653;
  long int D.6654;
  long int D.6655;
  struct timeval * D.6656;

  if (from != 0B) goto <D.6648>; else goto <D.6649>;
  <D.6648>:
  D.6650 = from->tv_sec;
  to->tv_sec = D.6650;
  D.6651 = from->tv_usec;
  to->tv_usec = D.6651;
  D.6652 = to + 16;
  D.6653 = from + 16;
  D.6654 = D.6653->tv_sec;
  D.6652->tv_sec = D.6654;
  D.6652 = to + 16;
  D.6653 = from + 16;
  D.6655 = D.6653->tv_usec;
  D.6652->tv_usec = D.6655;
  D.6656 = to;
  return D.6656;
  <D.6649>:
  D.6656 = 0B;
  return D.6656;
}


Mono_Posix_Syscall_lutimes (const char * filename, struct Mono_Posix_Timeval * tv)
{
  int D.6658;
  struct timeval _tv[2];
  struct timeval * ptv;

  try
    {
      ptv = copy_utimes (&_tv, tv);
      D.6658 = lutimes (filename, ptv);
      return D.6658;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


Mono_Posix_Syscall_futimes (int fd, struct Mono_Posix_Timeval * tv)
{
  int D.6661;
  struct timeval _tv[2];
  struct timeval * ptv;

  try
    {
      ptv = copy_utimes (&_tv, tv);
      D.6661 = futimes (fd, ptv);
      return D.6661;
    }
  finally
    {
      _tv = {CLOBBER};
    }
}


