Mono_Posix_Syscall_utime (const char * filename, struct Mono_Posix_Utimbuf * buf, int use_buf)
{
  _Bool D.6543;
  _Bool D.6544;
  _Bool D.6545;
  long int D.6548;
  long int D.6549;
  int D.6550;
  struct utimbuf _buf;
  struct utimbuf * pbuf;

  try
    {
      pbuf = 0B;
      D.6543 = buf != 0B;
      D.6544 = use_buf != 0;
      D.6545 = D.6543 & D.6544;
      if (D.6545 != 0) goto <D.6546>; else goto <D.6547>;
      <D.6546>:
      D.6548 = buf->actime;
      _buf.actime = D.6548;
      D.6549 = buf->modtime;
      _buf.modtime = D.6549;
      pbuf = &_buf;
      <D.6547>:
      D.6550 = utime (filename, pbuf);
      return D.6550;
    }
  finally
    {
      _buf = {CLOBBER};
    }
}


