__attribute__((visibility ("hidden")))
mono_msec_ticks ()
{
  long int boot_time.0;
  long int boot_time.1;
  guint32 D.5339;
  long int D.5340;
  long int D.5341;
  static gint64 boot_time = 0;
  gint64 now;

  boot_time.0 = boot_time;
  if (boot_time.0 == 0) goto <D.5336>; else goto <D.5337>;
  <D.5336>:
  boot_time.1 = get_boot_time ();
  boot_time = boot_time.1;
  <D.5337>:
  now = mono_100ns_ticks ();
  boot_time.0 = boot_time;
  D.5340 = now - boot_time.0;
  D.5341 = D.5340 / 10000;
  D.5339 = (guint32) D.5341;
  return D.5339;
}


get_boot_time ()
{
  int D.5345;
  gint64 D.5348;
  double upt.2;
  double D.5350;
  long int D.5351;
  struct FILE * uptime;

  uptime = fopen ("/proc/uptime", "r");
  if (uptime != 0B) goto <D.5343>; else goto <D.5344>;
  <D.5343>:
  {
    double upt;

    try
      {
        D.5345 = fscanf (uptime, "%lf", &upt);
        if (D.5345 == 1) goto <D.5346>; else goto <D.5347>;
        <D.5346>:
        {
          gint64 now;

          now = mono_100ns_ticks ();
          fclose (uptime);
          upt.2 = upt;
          D.5350 = upt.2 * 1.0e+7;
          D.5351 = (long int) D.5350;
          D.5348 = now - D.5351;
          return D.5348;
        }
        <D.5347>:
        fclose (uptime);
      }
    finally
      {
        upt = {CLOBBER};
      }
  }
  <D.5344>:
  D.5348 = 3000000000;
  return D.5348;
}


__attribute__((visibility ("hidden")))
mono_100ns_ticks ()
{
  long int D.5355;
  int D.5358;
  _Bool D.5359;
  int can_use_clock.3;
  int can_use_clock.4;
  int D.5364;
  gint64 D.5367;
  long int D.5368;
  long int D.5369;
  long int D.5370;
  long int D.5371;
  int D.5372;
  long int D.5375;
  long int D.5376;
  long int D.5377;
  long int D.5378;
  struct timeval tv;
  struct timespec tspec;
  static struct timespec tspec_freq = {.tv_sec=0};
  static int can_use_clock = 0;

  try
    {
      D.5355 = tspec_freq.tv_nsec;
      if (D.5355 == 0) goto <D.5356>; else goto <D.5357>;
      <D.5356>:
      D.5358 = clock_getres (1, &tspec_freq);
      D.5359 = D.5358 == 0;
      can_use_clock.3 = (int) D.5359;
      can_use_clock = can_use_clock.3;
      <D.5357>:
      can_use_clock.4 = can_use_clock;
      if (can_use_clock.4 != 0) goto <D.5362>; else goto <D.5363>;
      <D.5362>:
      D.5364 = clock_gettime (1, &tspec);
      if (D.5364 == 0) goto <D.5365>; else goto <D.5366>;
      <D.5365>:
      D.5368 = tspec.tv_sec;
      D.5369 = D.5368 * 10000000;
      D.5370 = tspec.tv_nsec;
      D.5371 = D.5370 / 100;
      D.5367 = D.5369 + D.5371;
      return D.5367;
      <D.5366>:
      <D.5363>:
      D.5372 = gettimeofday (&tv, 0B);
      if (D.5372 == 0) goto <D.5373>; else goto <D.5374>;
      <D.5373>:
      D.5375 = tv.tv_sec;
      D.5376 = D.5375 * 1000000;
      D.5377 = tv.tv_usec;
      D.5378 = D.5376 + D.5377;
      D.5367 = D.5378 * 10;
      return D.5367;
      <D.5374>:
      D.5367 = 0;
      return D.5367;
    }
  finally
    {
      tv = {CLOBBER};
      tspec = {CLOBBER};
    }
}


__attribute__((visibility ("hidden")))
mono_100ns_datetime ()
{
  int D.5381;
  gint64 D.5384;
  long int D.5385;
  long unsigned int D.5386;
  long unsigned int D.5387;
  long int D.5388;
  long unsigned int D.5389;
  long unsigned int D.5390;
  long unsigned int D.5391;
  long unsigned int D.5392;
  struct timeval tv;

  try
    {
      D.5381 = gettimeofday (&tv, 0B);
      if (D.5381 == 0) goto <D.5382>; else goto <D.5383>;
      <D.5382>:
      D.5385 = tv.tv_sec;
      D.5386 = (long unsigned int) D.5385;
      D.5387 = D.5386 * 1000000;
      D.5388 = tv.tv_usec;
      D.5389 = (long unsigned int) D.5388;
      D.5390 = D.5387 + D.5389;
      D.5391 = D.5390 * 10;
      D.5392 = D.5391 + 621355968000000000;
      D.5384 = (gint64) D.5392;
      return D.5384;
      <D.5383>:
      D.5384 = 0;
      return D.5384;
    }
  finally
    {
      tv = {CLOBBER};
    }
}


