mono_parse_default_optimizations (const char * p)
{
  int D.23874;
  guint32 opt;

  opt = parse_optimizations (p);
  D.23874 = (int) opt;
  return D.23874;
}


parse_optimizations (const char * p)
{
  unsigned int D.23876;
  unsigned int exclude.0;
  unsigned int D.23878;
  guint32 D.23881;
  char D.23882;
  short int D.23886;
  sizetype D.23887;
  unsigned int D.23888;
  unsigned int len.1;
  int D.23890;
  int D.23895;
  int D.23896;
  unsigned int D.23897;
  unsigned int D.23899;
  sizetype len.2;
  void (*<T3c11>) (const char *) D.23905;
  const char * p.3;
  char D.23910;
  unsigned int i.4;
  const char * D.23913;
  int D.23917;
  unsigned int D.23923;
  struct _IO_FILE * stderr.5;
  guint32 opt;
  guint32 exclude;
  const char * n;
  int i;
  int invert;
  int len;

  try
    {
      opt = 370223615;
      exclude = 0;
      mono_hwcap_init ();
      D.23876 = mono_arch_cpu_optimizations (&exclude);
      opt = D.23876 | opt;
      exclude.0 = exclude;
      D.23878 = ~exclude.0;
      opt = D.23878 & opt;
      if (p == 0B) goto <D.23879>; else goto <D.23880>;
      <D.23879>:
      D.23881 = opt;
      return D.23881;
      <D.23880>:
      goto <D.22777>;
      <D.22776>:
      D.23882 = *p;
      if (D.23882 == 45) goto <D.23883>; else goto <D.23884>;
      <D.23883>:
      p = p + 1;
      invert = 1;
      goto <D.23885>;
      <D.23884>:
      invert = 0;
      <D.23885>:
      i = 0;
      goto <D.22766>;
      <D.22765>:
      D.23886 = opt_names[i];
      D.23887 = (sizetype) D.23886;
      n = &opstr + D.23887;
      D.23888 = strlen (n);
      len = (int) D.23888;
      len.1 = (unsigned int) len;
      D.23890 = strncmp (p, n, len.1);
      if (D.23890 == 0) goto <D.23891>; else goto <D.23892>;
      <D.23891>:
      if (invert != 0) goto <D.23893>; else goto <D.23894>;
      <D.23893>:
      D.23895 = 1 << i;
      D.23896 = ~D.23895;
      D.23897 = (unsigned int) D.23896;
      opt = D.23897 & opt;
      goto <D.23898>;
      <D.23894>:
      D.23895 = 1 << i;
      D.23899 = (unsigned int) D.23895;
      opt = D.23899 | opt;
      <D.23898>:
      len.2 = (sizetype) len;
      p = p + len.2;
      D.23882 = *p;
      if (D.23882 == 44) goto <D.23901>; else goto <D.23902>;
      <D.23901>:
      p = p + 1;
      goto <D.22761>;
      <D.23902>:
      D.23882 = *p;
      if (D.23882 == 61) goto <D.23903>; else goto <D.23904>;
      <D.23903>:
      p = p + 1;
      D.23905 = opt_funcs[i];
      if (D.23905 != 0B) goto <D.23906>; else goto <D.23907>;
      <D.23906>:
      D.23905 = opt_funcs[i];
      D.23905 (p);
      <D.23907>:
      goto <D.22763>;
      <D.22762>:
      <D.22763>:
      D.23882 = *p;
      if (D.23882 != 0) goto <D.23908>; else goto <D.22764>;
      <D.23908>:
      p.3 = p;
      p = p.3 + 1;
      D.23910 = *p.3;
      if (D.23910 != 44) goto <D.22762>; else goto <D.22764>;
      <D.22764>:
      goto <D.22761>;
      <D.23904>:
      goto <D.22761>;
      <D.23892>:
      i = i + 1;
      <D.22766>:
      i.4 = (unsigned int) i;
      if (i.4 <= 28) goto <D.23912>; else goto <D.22761>;
      <D.23912>:
      D.23886 = opt_names[i];
      D.23887 = (sizetype) D.23886;
      D.23913 = &opstr + D.23887;
      if (D.23913 != 0B) goto <D.22765>; else goto <D.22761>;
      <D.22761>:
      if (i == 29) goto <D.23914>; else goto <D.23916>;
      <D.23916>:
      D.23886 = opt_names[i];
      D.23887 = (sizetype) D.23886;
      D.23913 = &opstr + D.23887;
      if (D.23913 == 0B) goto <D.23914>; else goto <D.23915>;
      <D.23914>:
      D.23917 = strncmp (p, "all", 3);
      if (D.23917 == 0) goto <D.23918>; else goto <D.23919>;
      <D.23918>:
      if (invert != 0) goto <D.23920>; else goto <D.23921>;
      <D.23920>:
      opt = 0;
      goto <D.23922>;
      <D.23921>:
      exclude.0 = exclude;
      D.23923 = exclude.0 | 151126528;
      opt = ~D.23923;
      <D.23922>:
      p = p + 3;
      D.23882 = *p;
      if (D.23882 == 44) goto <D.23924>; else goto <D.23925>;
      <D.23924>:
      p = p + 1;
      <D.23925>:
      goto <D.23926>;
      <D.23919>:
      stderr.5 = stderr;
      fprintf (stderr.5, "Invalid optimization name `%s\'\n", p);
      exit (1);
      <D.23926>:
      <D.23915>:
      <D.22777>:
      D.23882 = *p;
      if (D.23882 != 0) goto <D.22776>; else goto <D.22778>;
      <D.22778>:
      D.23881 = opt;
      return D.23881;
    }
  finally
    {
      exclude = {CLOBBER};
    }
}


fprintf (struct FILE * restrict __stream, const char * restrict __fmt)
{
  int D.23930;

  D.23930 = __fprintf_chk (__stream, 1, __fmt, __builtin_va_arg_pack ());
  return D.23930;
}


mono_jit_exec (struct MonoDomain * domain, struct MonoAssembly * assembly, int argc, char * * argv)
{
  const char * D.23934;
  int D.23935;
  struct MonoImage * image;
  struct MonoMethod * method;
  guint32 entry;

  image = mono_assembly_get_image (assembly);
  entry = mono_image_get_entry_point (image);
  if (entry == 0) goto <D.23932>; else goto <D.23933>;
  <D.23932>:
  D.23934 = mono_image_get_filename (image);
  monoeg_g_print ("Assembly \'%s\' doesn\'t have an entry point.\n", D.23934);
  mono_environment_exitcode_set (1);
  D.23935 = 1;
  return D.23935;
  <D.23933>:
  method = mono_get_method (image, entry, 0B);
  if (method == 0B) goto <D.23936>; else goto <D.23937>;
  <D.23936>:
  monoeg_g_print ("The entry point method could not be loaded\n");
  mono_environment_exitcode_set (1);
  D.23935 = 1;
  return D.23935;
  <D.23937>:
  D.23935 = mono_runtime_run_main (method, argc, argv, 0B);
  return D.23935;
}


mono_jit_parse_options (int argc, char * * argv)
{
  unsigned int i.6;
  unsigned int D.23940;
  char * * D.23941;
  char * D.23942;
  char D.23943;
  int D.23945;
  char * D.23948;
  int D.23091;
  int iftmp.7;
  int D.23090;
  const char[19] * D.23953;
  unsigned char D.23954;
  int D.23955;
  unsigned char D.23956;
  int D.23957;
  const unsigned char * D.23962;
  unsigned char D.23963;
  int D.23964;
  const unsigned char * D.23965;
  unsigned char D.23966;
  int D.23967;
  const unsigned char * D.23972;
  unsigned char D.23973;
  int D.23974;
  const unsigned char * D.23975;
  unsigned char D.23976;
  int D.23977;
  const unsigned char * D.23982;
  unsigned char D.23983;
  int D.23984;
  const unsigned char * D.23985;
  unsigned char D.23986;
  int D.23987;
  int D.23992;
  const char * D.23995;
  int D.23997;
  const char * D.24000;
  int D.23121;
  int iftmp.8;
  int D.23120;
  const char[8] * D.24005;
  unsigned char D.24006;
  int D.24007;
  unsigned char D.24008;
  int D.24009;
  const unsigned char * D.24014;
  unsigned char D.24015;
  int D.24016;
  const unsigned char * D.24017;
  unsigned char D.24018;
  int D.24019;
  const unsigned char * D.24024;
  unsigned char D.24025;
  int D.24026;
  const unsigned char * D.24027;
  unsigned char D.24028;
  int D.24029;
  const unsigned char * D.24034;
  unsigned char D.24035;
  int D.24036;
  const unsigned char * D.24037;
  unsigned char D.24038;
  int D.24039;
  int D.24044;
  int D.23139;
  int iftmp.9;
  int D.23138;
  const char[10] * D.24054;
  unsigned char D.24055;
  int D.24056;
  unsigned char D.24057;
  int D.24058;
  const unsigned char * D.24063;
  unsigned char D.24064;
  int D.24065;
  const unsigned char * D.24066;
  unsigned char D.24067;
  int D.24068;
  const unsigned char * D.24073;
  unsigned char D.24074;
  int D.24075;
  const unsigned char * D.24076;
  unsigned char D.24077;
  int D.24078;
  const unsigned char * D.24083;
  unsigned char D.24084;
  int D.24085;
  const unsigned char * D.24086;
  unsigned char D.24087;
  int D.24088;
  int D.23148;
  int iftmp.10;
  int D.23147;
  const char[3] * D.24094;
  unsigned char D.24095;
  int D.24096;
  unsigned char D.24097;
  int D.24098;
  const unsigned char * D.24103;
  unsigned char D.24104;
  int D.24105;
  const unsigned char * D.24106;
  unsigned char D.24107;
  int D.24108;
  const unsigned char * D.24113;
  unsigned char D.24114;
  int D.24115;
  const unsigned char * D.24116;
  unsigned char D.24117;
  int D.24118;
  const unsigned char * D.24123;
  unsigned char D.24124;
  int D.24125;
  const unsigned char * D.24126;
  unsigned char D.24127;
  int D.24128;
  int D.23157;
  int iftmp.11;
  int D.23156;
  const char[12] * D.24133;
  unsigned char D.24134;
  int D.24135;
  unsigned char D.24136;
  int D.24137;
  const unsigned char * D.24142;
  unsigned char D.24143;
  int D.24144;
  const unsigned char * D.24145;
  unsigned char D.24146;
  int D.24147;
  const unsigned char * D.24152;
  unsigned char D.24153;
  int D.24154;
  const unsigned char * D.24155;
  unsigned char D.24156;
  int D.24157;
  const unsigned char * D.24162;
  unsigned char D.24163;
  int D.24164;
  const unsigned char * D.24165;
  unsigned char D.24166;
  int D.24167;
  int D.23167;
  int iftmp.12;
  int D.23166;
  const char[8] * D.24175;
  unsigned char D.24176;
  int D.24177;
  unsigned char D.24178;
  int D.24179;
  const unsigned char * D.24184;
  unsigned char D.24185;
  int D.24186;
  const unsigned char * D.24187;
  unsigned char D.24188;
  int D.24189;
  const unsigned char * D.24194;
  unsigned char D.24195;
  int D.24196;
  const unsigned char * D.24197;
  unsigned char D.24198;
  int D.24199;
  const unsigned char * D.24204;
  unsigned char D.24205;
  int D.24206;
  const unsigned char * D.24207;
  unsigned char D.24208;
  int D.24209;
  int D.23176;
  int iftmp.13;
  int D.23175;
  const char[8] * D.24217;
  unsigned char D.24218;
  int D.24219;
  unsigned char D.24220;
  int D.24221;
  const unsigned char * D.24226;
  unsigned char D.24227;
  int D.24228;
  const unsigned char * D.24229;
  unsigned char D.24230;
  int D.24231;
  const unsigned char * D.24236;
  unsigned char D.24237;
  int D.24238;
  const unsigned char * D.24239;
  unsigned char D.24240;
  int D.24241;
  const unsigned char * D.24246;
  unsigned char D.24247;
  int D.24248;
  const unsigned char * D.24249;
  unsigned char D.24250;
  int D.24251;
  int D.24255;
  struct _IO_FILE * stderr.14;
  int D.24259;
  int D.23185;
  int iftmp.15;
  int D.23184;
  const char[7] * D.24266;
  unsigned char D.24267;
  int D.24268;
  unsigned char D.24269;
  int D.24270;
  const unsigned char * D.24275;
  unsigned char D.24276;
  int D.24277;
  const unsigned char * D.24278;
  unsigned char D.24279;
  int D.24280;
  const unsigned char * D.24285;
  unsigned char D.24286;
  int D.24287;
  const unsigned char * D.24288;
  unsigned char D.24289;
  int D.24290;
  const unsigned char * D.24295;
  unsigned char D.24296;
  int D.24297;
  const unsigned char * D.24298;
  unsigned char D.24299;
  int D.24300;
  struct MonoTraceSpec * mono_jit_trace_calls.16;
  struct MonoTraceSpec * mono_jit_trace_calls.17;
  unsigned int mini_verbose.18;
  int i;
  char * trace_options;
  int mini_verbose;

  trace_options = 0B;
  mini_verbose = 0;
  i = 0;
  goto <D.23187>;
  <D.23186>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.23943 = *D.23942;
  if (D.23943 != 45) goto <D.23072>; else goto <D.23944>;
  <D.23944>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.23945 = strncmp (D.23942, "--debugger-agent=", 17);
  if (D.23945 == 0) goto <D.23946>; else goto <D.23947>;
  <D.23946>:
  {
    struct MonoDebugOptions * opt;

    opt = mini_get_debug_options ();
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    D.23948 = D.23942 + 17;
    mono_debugger_agent_parse_options (D.23948);
    opt->mdb_optimizations = 1;
    enable_debugging = 1;
  }
  goto <D.23949>;
  <D.23947>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 18;
    if (__s2_len <= 3) goto <D.23951>; else goto <D.23952>;
    <D.23951>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.23953 = "--soft-breakpoints";
      D.23954 = MEM[(const unsigned char *)D.23953];
      D.23955 = (int) D.23954;
      D.23956 = *__s2;
      D.23957 = (int) D.23956;
      __result = D.23955 - D.23957;
      {
        if (__s2_len != 0) goto <D.23958>; else goto <D.23959>;
        <D.23958>:
        if (__result == 0) goto <D.23960>; else goto <D.23961>;
        <D.23960>:
        D.23962 = &MEM[(void *)"--soft-breakpoints" + 1B];
        D.23963 = *D.23962;
        D.23964 = (int) D.23963;
        D.23965 = __s2 + 1;
        D.23966 = *D.23965;
        D.23967 = (int) D.23966;
        __result = D.23964 - D.23967;
        if (__s2_len > 1) goto <D.23968>; else goto <D.23969>;
        <D.23968>:
        if (__result == 0) goto <D.23970>; else goto <D.23971>;
        <D.23970>:
        D.23972 = &MEM[(void *)"--soft-breakpoints" + 2B];
        D.23973 = *D.23972;
        D.23974 = (int) D.23973;
        D.23975 = __s2 + 2;
        D.23976 = *D.23975;
        D.23977 = (int) D.23976;
        __result = D.23974 - D.23977;
        if (__s2_len > 2) goto <D.23978>; else goto <D.23979>;
        <D.23978>:
        if (__result == 0) goto <D.23980>; else goto <D.23981>;
        <D.23980>:
        D.23982 = &MEM[(void *)"--soft-breakpoints" + 3B];
        D.23983 = *D.23982;
        D.23984 = (int) D.23983;
        D.23985 = __s2 + 3;
        D.23986 = *D.23985;
        D.23987 = (int) D.23986;
        __result = D.23984 - D.23987;
        <D.23981>:
        <D.23979>:
        <D.23971>:
        <D.23969>:
        <D.23961>:
        <D.23959>:
      }
      D.23090 = __result;
    }
    iftmp.7 = -D.23090;
    goto <D.23988>;
    <D.23952>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.7 = __builtin_strcmp (D.23942, "--soft-breakpoints");
    <D.23988>:
    D.23091 = iftmp.7;
  }
  if (D.23091 == 0) goto <D.23989>; else goto <D.23990>;
  <D.23989>:
  {
    struct MonoDebugOptions * opt;

    opt = mini_get_debug_options ();
    opt->soft_breakpoints = 1;
    opt->explicit_null_checks = 1;
  }
  goto <D.23991>;
  <D.23990>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.23992 = strncmp (D.23942, "--optimize=", 11);
  if (D.23992 == 0) goto <D.23993>; else goto <D.23994>;
  <D.23993>:
  {
    guint32 opt;

    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    D.23995 = D.23942 + 11;
    opt = parse_optimizations (D.23995);
    mono_set_optimizations (opt);
  }
  goto <D.23996>;
  <D.23994>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.23997 = strncmp (D.23942, "-O=", 3);
  if (D.23997 == 0) goto <D.23998>; else goto <D.23999>;
  <D.23998>:
  {
    guint32 opt;

    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    D.24000 = D.23942 + 3;
    opt = parse_optimizations (D.24000);
    mono_set_optimizations (opt);
  }
  goto <D.24001>;
  <D.23999>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 7;
    if (__s2_len <= 3) goto <D.24003>; else goto <D.24004>;
    <D.24003>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24005 = "--trace";
      D.24006 = MEM[(const unsigned char *)D.24005];
      D.24007 = (int) D.24006;
      D.24008 = *__s2;
      D.24009 = (int) D.24008;
      __result = D.24007 - D.24009;
      {
        if (__s2_len != 0) goto <D.24010>; else goto <D.24011>;
        <D.24010>:
        if (__result == 0) goto <D.24012>; else goto <D.24013>;
        <D.24012>:
        D.24014 = &MEM[(void *)"--trace" + 1B];
        D.24015 = *D.24014;
        D.24016 = (int) D.24015;
        D.24017 = __s2 + 1;
        D.24018 = *D.24017;
        D.24019 = (int) D.24018;
        __result = D.24016 - D.24019;
        if (__s2_len > 1) goto <D.24020>; else goto <D.24021>;
        <D.24020>:
        if (__result == 0) goto <D.24022>; else goto <D.24023>;
        <D.24022>:
        D.24024 = &MEM[(void *)"--trace" + 2B];
        D.24025 = *D.24024;
        D.24026 = (int) D.24025;
        D.24027 = __s2 + 2;
        D.24028 = *D.24027;
        D.24029 = (int) D.24028;
        __result = D.24026 - D.24029;
        if (__s2_len > 2) goto <D.24030>; else goto <D.24031>;
        <D.24030>:
        if (__result == 0) goto <D.24032>; else goto <D.24033>;
        <D.24032>:
        D.24034 = &MEM[(void *)"--trace" + 3B];
        D.24035 = *D.24034;
        D.24036 = (int) D.24035;
        D.24037 = __s2 + 3;
        D.24038 = *D.24037;
        D.24039 = (int) D.24038;
        __result = D.24036 - D.24039;
        <D.24033>:
        <D.24031>:
        <D.24023>:
        <D.24021>:
        <D.24013>:
        <D.24011>:
      }
      D.23120 = __result;
    }
    iftmp.8 = -D.23120;
    goto <D.24040>;
    <D.24004>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.8 = __builtin_strcmp (D.23942, "--trace");
    <D.24040>:
    D.23121 = iftmp.8;
  }
  if (D.23121 == 0) goto <D.24041>; else goto <D.24042>;
  <D.24041>:
  trace_options = "";
  goto <D.24043>;
  <D.24042>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.24044 = strncmp (D.23942, "--trace=", 8);
  if (D.24044 == 0) goto <D.24045>; else goto <D.24046>;
  <D.24045>:
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  trace_options = D.23942 + 8;
  goto <D.24047>;
  <D.24046>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 9;
    if (__s2_len <= 3) goto <D.24052>; else goto <D.24053>;
    <D.24052>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24054 = "--verbose";
      D.24055 = MEM[(const unsigned char *)D.24054];
      D.24056 = (int) D.24055;
      D.24057 = *__s2;
      D.24058 = (int) D.24057;
      __result = D.24056 - D.24058;
      {
        if (__s2_len != 0) goto <D.24059>; else goto <D.24060>;
        <D.24059>:
        if (__result == 0) goto <D.24061>; else goto <D.24062>;
        <D.24061>:
        D.24063 = &MEM[(void *)"--verbose" + 1B];
        D.24064 = *D.24063;
        D.24065 = (int) D.24064;
        D.24066 = __s2 + 1;
        D.24067 = *D.24066;
        D.24068 = (int) D.24067;
        __result = D.24065 - D.24068;
        if (__s2_len > 1) goto <D.24069>; else goto <D.24070>;
        <D.24069>:
        if (__result == 0) goto <D.24071>; else goto <D.24072>;
        <D.24071>:
        D.24073 = &MEM[(void *)"--verbose" + 2B];
        D.24074 = *D.24073;
        D.24075 = (int) D.24074;
        D.24076 = __s2 + 2;
        D.24077 = *D.24076;
        D.24078 = (int) D.24077;
        __result = D.24075 - D.24078;
        if (__s2_len > 2) goto <D.24079>; else goto <D.24080>;
        <D.24079>:
        if (__result == 0) goto <D.24081>; else goto <D.24082>;
        <D.24081>:
        D.24083 = &MEM[(void *)"--verbose" + 3B];
        D.24084 = *D.24083;
        D.24085 = (int) D.24084;
        D.24086 = __s2 + 3;
        D.24087 = *D.24086;
        D.24088 = (int) D.24087;
        __result = D.24085 - D.24088;
        <D.24082>:
        <D.24080>:
        <D.24072>:
        <D.24070>:
        <D.24062>:
        <D.24060>:
      }
      D.23138 = __result;
    }
    iftmp.9 = -D.23138;
    goto <D.24089>;
    <D.24053>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.9 = __builtin_strcmp (D.23942, "--verbose");
    <D.24089>:
    D.23139 = iftmp.9;
  }
  if (D.23139 == 0) goto <D.24048>; else goto <D.24090>;
  <D.24090>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 2;
    if (__s2_len <= 3) goto <D.24092>; else goto <D.24093>;
    <D.24092>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24094 = "-v";
      D.24095 = MEM[(const unsigned char *)D.24094];
      D.24096 = (int) D.24095;
      D.24097 = *__s2;
      D.24098 = (int) D.24097;
      __result = D.24096 - D.24098;
      {
        if (__s2_len != 0) goto <D.24099>; else goto <D.24100>;
        <D.24099>:
        if (__result == 0) goto <D.24101>; else goto <D.24102>;
        <D.24101>:
        D.24103 = &MEM[(void *)"-v" + 1B];
        D.24104 = *D.24103;
        D.24105 = (int) D.24104;
        D.24106 = __s2 + 1;
        D.24107 = *D.24106;
        D.24108 = (int) D.24107;
        __result = D.24105 - D.24108;
        if (__s2_len > 1) goto <D.24109>; else goto <D.24110>;
        <D.24109>:
        if (__result == 0) goto <D.24111>; else goto <D.24112>;
        <D.24111>:
        D.24113 = &MEM[(void *)"-v" + 2B];
        D.24114 = *D.24113;
        D.24115 = (int) D.24114;
        D.24116 = __s2 + 2;
        D.24117 = *D.24116;
        D.24118 = (int) D.24117;
        __result = D.24115 - D.24118;
        if (__s2_len > 2) goto <D.24119>; else goto <D.24120>;
        <D.24119>:
        if (__result == 0) goto <D.24121>; else goto <D.24122>;
        <D.24121>:
        D.24123 = &MEM[(void *)"-v" + 3B];
        D.24124 = *D.24123;
        D.24125 = (int) D.24124;
        D.24126 = __s2 + 3;
        D.24127 = *D.24126;
        D.24128 = (int) D.24127;
        __result = D.24125 - D.24128;
        <D.24122>:
        <D.24120>:
        <D.24112>:
        <D.24110>:
        <D.24102>:
        <D.24100>:
      }
      D.23147 = __result;
    }
    iftmp.10 = -D.23147;
    goto <D.24129>;
    <D.24093>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.10 = __builtin_strcmp (D.23942, "-v");
    <D.24129>:
    D.23148 = iftmp.10;
  }
  if (D.23148 == 0) goto <D.24048>; else goto <D.24049>;
  <D.24048>:
  mini_verbose = mini_verbose + 1;
  goto <D.24050>;
  <D.24049>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 11;
    if (__s2_len <= 3) goto <D.24131>; else goto <D.24132>;
    <D.24131>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24133 = "--breakonex";
      D.24134 = MEM[(const unsigned char *)D.24133];
      D.24135 = (int) D.24134;
      D.24136 = *__s2;
      D.24137 = (int) D.24136;
      __result = D.24135 - D.24137;
      {
        if (__s2_len != 0) goto <D.24138>; else goto <D.24139>;
        <D.24138>:
        if (__result == 0) goto <D.24140>; else goto <D.24141>;
        <D.24140>:
        D.24142 = &MEM[(void *)"--breakonex" + 1B];
        D.24143 = *D.24142;
        D.24144 = (int) D.24143;
        D.24145 = __s2 + 1;
        D.24146 = *D.24145;
        D.24147 = (int) D.24146;
        __result = D.24144 - D.24147;
        if (__s2_len > 1) goto <D.24148>; else goto <D.24149>;
        <D.24148>:
        if (__result == 0) goto <D.24150>; else goto <D.24151>;
        <D.24150>:
        D.24152 = &MEM[(void *)"--breakonex" + 2B];
        D.24153 = *D.24152;
        D.24154 = (int) D.24153;
        D.24155 = __s2 + 2;
        D.24156 = *D.24155;
        D.24157 = (int) D.24156;
        __result = D.24154 - D.24157;
        if (__s2_len > 2) goto <D.24158>; else goto <D.24159>;
        <D.24158>:
        if (__result == 0) goto <D.24160>; else goto <D.24161>;
        <D.24160>:
        D.24162 = &MEM[(void *)"--breakonex" + 3B];
        D.24163 = *D.24162;
        D.24164 = (int) D.24163;
        D.24165 = __s2 + 3;
        D.24166 = *D.24165;
        D.24167 = (int) D.24166;
        __result = D.24164 - D.24167;
        <D.24161>:
        <D.24159>:
        <D.24151>:
        <D.24149>:
        <D.24141>:
        <D.24139>:
      }
      D.23156 = __result;
    }
    iftmp.11 = -D.23156;
    goto <D.24168>;
    <D.24132>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.11 = __builtin_strcmp (D.23942, "--breakonex");
    <D.24168>:
    D.23157 = iftmp.11;
  }
  if (D.23157 == 0) goto <D.24169>; else goto <D.24170>;
  <D.24169>:
  {
    struct MonoDebugOptions * opt;

    opt = mini_get_debug_options ();
    opt->break_on_exc = 1;
  }
  goto <D.24171>;
  <D.24170>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 7;
    if (__s2_len <= 3) goto <D.24173>; else goto <D.24174>;
    <D.24173>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24175 = "--stats";
      D.24176 = MEM[(const unsigned char *)D.24175];
      D.24177 = (int) D.24176;
      D.24178 = *__s2;
      D.24179 = (int) D.24178;
      __result = D.24177 - D.24179;
      {
        if (__s2_len != 0) goto <D.24180>; else goto <D.24181>;
        <D.24180>:
        if (__result == 0) goto <D.24182>; else goto <D.24183>;
        <D.24182>:
        D.24184 = &MEM[(void *)"--stats" + 1B];
        D.24185 = *D.24184;
        D.24186 = (int) D.24185;
        D.24187 = __s2 + 1;
        D.24188 = *D.24187;
        D.24189 = (int) D.24188;
        __result = D.24186 - D.24189;
        if (__s2_len > 1) goto <D.24190>; else goto <D.24191>;
        <D.24190>:
        if (__result == 0) goto <D.24192>; else goto <D.24193>;
        <D.24192>:
        D.24194 = &MEM[(void *)"--stats" + 2B];
        D.24195 = *D.24194;
        D.24196 = (int) D.24195;
        D.24197 = __s2 + 2;
        D.24198 = *D.24197;
        D.24199 = (int) D.24198;
        __result = D.24196 - D.24199;
        if (__s2_len > 2) goto <D.24200>; else goto <D.24201>;
        <D.24200>:
        if (__result == 0) goto <D.24202>; else goto <D.24203>;
        <D.24202>:
        D.24204 = &MEM[(void *)"--stats" + 3B];
        D.24205 = *D.24204;
        D.24206 = (int) D.24205;
        D.24207 = __s2 + 3;
        D.24208 = *D.24207;
        D.24209 = (int) D.24208;
        __result = D.24206 - D.24209;
        <D.24203>:
        <D.24201>:
        <D.24193>:
        <D.24191>:
        <D.24183>:
        <D.24181>:
      }
      D.23166 = __result;
    }
    iftmp.12 = -D.23166;
    goto <D.24210>;
    <D.24174>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.12 = __builtin_strcmp (D.23942, "--stats");
    <D.24210>:
    D.23167 = iftmp.12;
  }
  if (D.23167 == 0) goto <D.24211>; else goto <D.24212>;
  <D.24211>:
  mono_counters_enable (-1);
  mono_stats.enabled = 1;
  mono_jit_stats.enabled = 1;
  goto <D.24213>;
  <D.24212>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 7;
    if (__s2_len <= 3) goto <D.24215>; else goto <D.24216>;
    <D.24215>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24217 = "--break";
      D.24218 = MEM[(const unsigned char *)D.24217];
      D.24219 = (int) D.24218;
      D.24220 = *__s2;
      D.24221 = (int) D.24220;
      __result = D.24219 - D.24221;
      {
        if (__s2_len != 0) goto <D.24222>; else goto <D.24223>;
        <D.24222>:
        if (__result == 0) goto <D.24224>; else goto <D.24225>;
        <D.24224>:
        D.24226 = &MEM[(void *)"--break" + 1B];
        D.24227 = *D.24226;
        D.24228 = (int) D.24227;
        D.24229 = __s2 + 1;
        D.24230 = *D.24229;
        D.24231 = (int) D.24230;
        __result = D.24228 - D.24231;
        if (__s2_len > 1) goto <D.24232>; else goto <D.24233>;
        <D.24232>:
        if (__result == 0) goto <D.24234>; else goto <D.24235>;
        <D.24234>:
        D.24236 = &MEM[(void *)"--break" + 2B];
        D.24237 = *D.24236;
        D.24238 = (int) D.24237;
        D.24239 = __s2 + 2;
        D.24240 = *D.24239;
        D.24241 = (int) D.24240;
        __result = D.24238 - D.24241;
        if (__s2_len > 2) goto <D.24242>; else goto <D.24243>;
        <D.24242>:
        if (__result == 0) goto <D.24244>; else goto <D.24245>;
        <D.24244>:
        D.24246 = &MEM[(void *)"--break" + 3B];
        D.24247 = *D.24246;
        D.24248 = (int) D.24247;
        D.24249 = __s2 + 3;
        D.24250 = *D.24249;
        D.24251 = (int) D.24250;
        __result = D.24248 - D.24251;
        <D.24245>:
        <D.24243>:
        <D.24235>:
        <D.24233>:
        <D.24225>:
        <D.24223>:
      }
      D.23175 = __result;
    }
    iftmp.13 = -D.23175;
    goto <D.24252>;
    <D.24216>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.13 = __builtin_strcmp (D.23942, "--break");
    <D.24252>:
    D.23176 = iftmp.13;
  }
  if (D.23176 == 0) goto <D.24253>; else goto <D.24254>;
  <D.24253>:
  D.24255 = i + 1;
  if (D.24255 >= argc) goto <D.24256>; else goto <D.24257>;
  <D.24256>:
  stderr.14 = stderr;
  fprintf (stderr.14, "Missing method name in --break command line option\n");
  exit (1);
  <D.24257>:
  i = i + 1;
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  D.24259 = mono_debugger_insert_breakpoint (D.23942, 0);
  if (D.24259 == 0) goto <D.24260>; else goto <D.24261>;
  <D.24260>:
  stderr.14 = stderr;
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  fprintf (stderr.14, "Error: invalid method name \'%s\'\n", D.23942);
  <D.24261>:
  goto <D.24262>;
  <D.24254>:
  {
    size_t __s1_len;
    size_t __s2_len;

    __s2_len = 6;
    if (__s2_len <= 3) goto <D.24264>; else goto <D.24265>;
    <D.24264>:
    {
      const unsigned char * __s2;
      int __result;

      i.6 = (unsigned int) i;
      D.23940 = i.6 * 4;
      D.23941 = argv + D.23940;
      __s2 = *D.23941;
      D.24266 = "--llvm";
      D.24267 = MEM[(const unsigned char *)D.24266];
      D.24268 = (int) D.24267;
      D.24269 = *__s2;
      D.24270 = (int) D.24269;
      __result = D.24268 - D.24270;
      {
        if (__s2_len != 0) goto <D.24271>; else goto <D.24272>;
        <D.24271>:
        if (__result == 0) goto <D.24273>; else goto <D.24274>;
        <D.24273>:
        D.24275 = &MEM[(void *)"--llvm" + 1B];
        D.24276 = *D.24275;
        D.24277 = (int) D.24276;
        D.24278 = __s2 + 1;
        D.24279 = *D.24278;
        D.24280 = (int) D.24279;
        __result = D.24277 - D.24280;
        if (__s2_len > 1) goto <D.24281>; else goto <D.24282>;
        <D.24281>:
        if (__result == 0) goto <D.24283>; else goto <D.24284>;
        <D.24283>:
        D.24285 = &MEM[(void *)"--llvm" + 2B];
        D.24286 = *D.24285;
        D.24287 = (int) D.24286;
        D.24288 = __s2 + 2;
        D.24289 = *D.24288;
        D.24290 = (int) D.24289;
        __result = D.24287 - D.24290;
        if (__s2_len > 2) goto <D.24291>; else goto <D.24292>;
        <D.24291>:
        if (__result == 0) goto <D.24293>; else goto <D.24294>;
        <D.24293>:
        D.24295 = &MEM[(void *)"--llvm" + 3B];
        D.24296 = *D.24295;
        D.24297 = (int) D.24296;
        D.24298 = __s2 + 3;
        D.24299 = *D.24298;
        D.24300 = (int) D.24299;
        __result = D.24297 - D.24300;
        <D.24294>:
        <D.24292>:
        <D.24284>:
        <D.24282>:
        <D.24274>:
        <D.24272>:
      }
      D.23184 = __result;
    }
    iftmp.15 = -D.23184;
    goto <D.24301>;
    <D.24265>:
    i.6 = (unsigned int) i;
    D.23940 = i.6 * 4;
    D.23941 = argv + D.23940;
    D.23942 = *D.23941;
    iftmp.15 = __builtin_strcmp (D.23942, "--llvm");
    <D.24301>:
    D.23185 = iftmp.15;
  }
  if (D.23185 == 0) goto <D.24302>; else goto <D.24303>;
  <D.24302>:
  stderr.14 = stderr;
  fprintf (stderr.14, "Mono Warning: --llvm not supported on this platform.\n");
  goto <D.24304>;
  <D.24303>:
  stderr.14 = stderr;
  i.6 = (unsigned int) i;
  D.23940 = i.6 * 4;
  D.23941 = argv + D.23940;
  D.23942 = *D.23941;
  fprintf (stderr.14, "Unsupported command line option: \'%s\'\n", D.23942);
  exit (1);
  <D.24304>:
  <D.24262>:
  <D.24213>:
  <D.24171>:
  <D.24050>:
  <D.24047>:
  <D.24043>:
  <D.24001>:
  <D.23996>:
  <D.23991>:
  <D.23949>:
  i = i + 1;
  <D.23187>:
  if (i < argc) goto <D.23186>; else goto <D.23072>;
  <D.23072>:
  if (trace_options != 0B) goto <D.24305>; else goto <D.24306>;
  <D.24305>:
  mono_jit_trace_calls.16 = mono_trace_parse_options (trace_options);
  mono_jit_trace_calls = mono_jit_trace_calls.16;
  mono_jit_trace_calls.17 = mono_jit_trace_calls;
  if (mono_jit_trace_calls.17 == 0B) goto <D.24309>; else goto <D.24310>;
  <D.24309>:
  exit (1);
  <D.24310>:
  <D.24306>:
  if (mini_verbose != 0) goto <D.24311>; else goto <D.24312>;
  <D.24311>:
  mini_verbose.18 = (unsigned int) mini_verbose;
  mono_set_verbose_level (mini_verbose.18);
  <D.24312>:
}


mono_main (int argc, char * * argv)
{
  const gchar * D.24314;
  unsigned int i.19;
  unsigned int D.24322;
  char * * D.24323;
  char * D.24324;
  char D.24325;
  int D.23244;
  int iftmp.20;
  int D.23243;
  const char[13] * D.24330;
  unsigned char D.24331;
  int D.24332;
  unsigned char D.24333;
  int D.24334;
  const unsigned char * D.24339;
  unsigned char D.24340;
  int D.24341;
  const unsigned char * D.24342;
  unsigned char D.24343;
  int D.24344;
  const unsigned char * D.24349;
  unsigned char D.24350;
  int D.24351;
  const unsigned char * D.24352;
  unsigned char D.24353;
  int D.24354;
  const unsigned char * D.24359;
  unsigned char D.24360;
  int D.24361;
  const unsigned char * D.24362;
  unsigned char D.24363;
  int D.24364;
  int D.24369;
  char * D.24372;
  unsigned int mono_single_method_regression_opt.21;
  int D.23263;
  int iftmp.22;
  int D.23262;
  const char[10] * D.24381;
  unsigned char D.24382;
  int D.24383;
  unsigned char D.24384;
  int D.24385;
  const unsigned char * D.24390;
  unsigned char D.24391;
  int D.24392;
  const unsigned char * D.24393;
  unsigned char D.24394;
  int D.24395;
  const unsigned char * D.24400;
  unsigned char D.24401;
  int D.24402;
  const unsigned char * D.24403;
  unsigned char D.24404;
  int D.24405;
  const unsigned char * D.24410;
  unsigned char D.24411;
  int D.24412;
  const unsigned char * D.24413;
  unsigned char D.24414;
  int D.24415;
  int D.23272;
  int iftmp.23;
  int D.23271;
  const char[3] * D.24421;
  unsigned char D.24422;
  int D.24423;
  unsigned char D.24424;
  int D.24425;
  const unsigned char * D.24430;
  unsigned char D.24431;
  int D.24432;
  const unsigned char * D.24433;
  unsigned char D.24434;
  int D.24435;
  const unsigned char * D.24440;
  unsigned char D.24441;
  int D.24442;
  const unsigned char * D.24443;
  unsigned char D.24444;
  int D.24445;
  const unsigned char * D.24450;
  unsigned char D.24451;
  int D.24452;
  const unsigned char * D.24453;
  unsigned char D.24454;
  int D.24455;
  int D.23281;
  int iftmp.24;
  int D.23280;
  const char[10] * D.24462;
  unsigned char D.24463;
  int D.24464;
  unsigned char D.24465;
  int D.24466;
  const unsigned char * D.24471;
  unsigned char D.24472;
  int D.24473;
  const unsigned char * D.24474;
  unsigned char D.24475;
  int D.24476;
  const unsigned char * D.24481;
  unsigned char D.24482;
  int D.24483;
  const unsigned char * D.24484;
  unsigned char D.24485;
  int D.24486;
  const unsigned char * D.24491;
  unsigned char D.24492;
  int D.24493;
  const unsigned char * D.24494;
  unsigned char D.24495;
  int D.24496;
  int D.23290;
  int iftmp.25;
  int D.23289;
  const char[3] * D.24502;
  unsigned char D.24503;
  int D.24504;
  unsigned char D.24505;
  int D.24506;
  const unsigned char * D.24511;
  unsigned char D.24512;
  int D.24513;
  const unsigned char * D.24514;
  unsigned char D.24515;
  int D.24516;
  const unsigned char * D.24521;
  unsigned char D.24522;
  int D.24523;
  const unsigned char * D.24524;
  unsigned char D.24525;
  int D.24526;
  const unsigned char * D.24531;
  unsigned char D.24532;
  int D.24533;
  const unsigned char * D.24534;
  unsigned char D.24535;
  int D.24536;
  const char * iftmp.26;
  struct MonoImage * D.24541;
  int D.24547;
  int D.23303;
  int iftmp.27;
  int D.23302;
  const char[7] * D.24553;
  unsigned char D.24554;
  int D.24555;
  unsigned char D.24556;
  int D.24557;
  const unsigned char * D.24562;
  unsigned char D.24563;
  int D.24564;
  const unsigned char * D.24565;
  unsigned char D.24566;
  int D.24567;
  const unsigned char * D.24572;
  unsigned char D.24573;
  int D.24574;
  const unsigned char * D.24575;
  unsigned char D.24576;
  int D.24577;
  const unsigned char * D.24582;
  unsigned char D.24583;
  int D.24584;
  const unsigned char * D.24585;
  unsigned char D.24586;
  int D.24587;
  int D.23312;
  int iftmp.28;
  int D.23311;
  const char[3] * D.24593;
  unsigned char D.24594;
  int D.24595;
  unsigned char D.24596;
  int D.24597;
  const unsigned char * D.24602;
  unsigned char D.24603;
  int D.24604;
  const unsigned char * D.24605;
  unsigned char D.24606;
  int D.24607;
  const unsigned char * D.24612;
  unsigned char D.24613;
  int D.24614;
  const unsigned char * D.24615;
  unsigned char D.24616;
  int D.24617;
  const unsigned char * D.24622;
  unsigned char D.24623;
  int D.24624;
  const unsigned char * D.24625;
  unsigned char D.24626;
  int D.24627;
  int D.23321;
  int iftmp.29;
  int D.23320;
  const char[13] * D.24632;
  unsigned char D.24633;
  int D.24634;
  unsigned char D.24635;
  int D.24636;
  const unsigned char * D.24641;
  unsigned char D.24642;
  int D.24643;
  const unsigned char * D.24644;
  unsigned char D.24645;
  int D.24646;
  const unsigned char * D.24651;
  unsigned char D.24652;
  int D.24653;
  const unsigned char * D.24654;
  unsigned char D.24655;
  int D.24656;
  const unsigned char * D.24661;
  unsigned char D.24662;
  int D.24663;
  const unsigned char * D.24664;
  unsigned char D.24665;
  int D.24666;
  int D.23330;
  int iftmp.30;
  int D.23329;
  const char[13] * D.24673;
  unsigned char D.24674;
  int D.24675;
  unsigned char D.24676;
  int D.24677;
  const unsigned char * D.24682;
  unsigned char D.24683;
  int D.24684;
  const unsigned char * D.24685;
  unsigned char D.24686;
  int D.24687;
  const unsigned char * D.24692;
  unsigned char D.24693;
  int D.24694;
  const unsigned char * D.24695;
  unsigned char D.24696;
  int D.24697;
  const unsigned char * D.24702;
  unsigned char D.24703;
  int D.24704;
  const unsigned char * D.24705;
  unsigned char D.24706;
  int D.24707;
  int D.23339;
  int iftmp.31;
  int D.23338;
  const char[13] * D.24714;
  unsigned char D.24715;
  int D.24716;
  unsigned char D.24717;
  int D.24718;
  const unsigned char * D.24723;
  unsigned char D.24724;
  int D.24725;
  const unsigned char * D.24726;
  unsigned char D.24727;
  int D.24728;
  const unsigned char * D.24733;
  unsigned char D.24734;
  int D.24735;
  const unsigned char * D.24736;
  unsigned char D.24737;
  int D.24738;
  const unsigned char * D.24743;
  unsigned char D.24744;
  int D.24745;
  const unsigned char * D.24746;
  unsigned char D.24747;
  int D.24748;
  int D.23348;
  int iftmp.32;
  int D.23347;
  const char[11] * D.24755;
  unsigned char D.24756;
  int D.24757;
  unsigned char D.24758;
  int D.24759;
  const unsigned char * D.24764;
  unsigned char D.24765;
  int D.24766;
  const unsigned char * D.24767;
  unsigned char D.24768;
  int D.24769;
  const unsigned char * D.24774;
  unsigned char D.24775;
  int D.24776;
  const unsigned char * D.24777;
  unsigned char D.24778;
  int D.24779;
  const unsigned char * D.24784;
  unsigned char D.24785;
  int D.24786;
  const unsigned char * D.24787;
  unsigned char D.24788;
  int D.24789;
  int D.24793;
  int D.24796;
  struct _IO_FILE * stderr.33;
  struct FILE * mini_stats_fd.34;
  int D.24802;
  const char * D.24805;
  int D.24807;
  const char * D.24810;
  int D.23384;
  int iftmp.35;
  int D.23383;
  const char[10] * D.24815;
  unsigned char D.24816;
  int D.24817;
  unsigned char D.24818;
  int D.24819;
  const unsigned char * D.24824;
  unsigned char D.24825;
  int D.24826;
  const unsigned char * D.24827;
  unsigned char D.24828;
  int D.24829;
  const unsigned char * D.24834;
  unsigned char D.24835;
  int D.24836;
  const unsigned char * D.24837;
  unsigned char D.24838;
  int D.24839;
  const unsigned char * D.24844;
  unsigned char D.24845;
  int D.24846;
  const unsigned char * D.24847;
  unsigned char D.24848;
  int D.24849;
  int D.23393;
  int iftmp.36;
  int D.23392;
  const char[11] * D.24857;
  unsigned char D.24858;
  int D.24859;
  unsigned char D.24860;
  int D.24861;
  const unsigned char * D.24866;
  unsigned char D.24867;
  int D.24868;
  const unsigned char * D.24869;
  unsigned char D.24870;
  int D.24871;
  const unsigned char * D.24876;
  unsigned char D.24877;
  int D.24878;
  const unsigned char * D.24879;
  unsigned char D.24880;
  int D.24881;
  const unsigned char * D.24886;
  unsigned char D.24887;
  int D.24888;
  const unsigned char * D.24889;
  unsigned char D.24890;
  int D.24891;
  int D.23402;
  int iftmp.37;
  int D.23401;
  const char[9] * D.24899;
  unsigned char D.24900;
  int D.24901;
  unsigned char D.24902;
  int D.24903;
  const unsigned char * D.24908;
  unsigned char D.24909;
  int D.24910;
  const unsigned char * D.24911;
  unsigned char D.24912;
  int D.24913;
  const unsigned char * D.24918;
  unsigned char D.24919;
  int D.24920;
  const unsigned char * D.24921;
  unsigned char D.24922;
  int D.24923;
  const unsigned char * D.24928;
  unsigned char D.24929;
  int D.24930;
  const unsigned char * D.24931;
  unsigned char D.24932;
  int D.24933;
  int D.23411;
  int iftmp.38;
  int D.23410;
  const char[11] * D.24943;
  unsigned char D.24944;
  int D.24945;
  unsigned char D.24946;
  int D.24947;
  const unsigned char * D.24952;
  unsigned char D.24953;
  int D.24954;
  const unsigned char * D.24955;
  unsigned char D.24956;
  int D.24957;
  const unsigned char * D.24962;
  unsigned char D.24963;
  int D.24964;
  const unsigned char * D.24965;
  unsigned char D.24966;
  int D.24967;
  const unsigned char * D.24972;
  unsigned char D.24973;
  int D.24974;
  const unsigned char * D.24975;
  unsigned char D.24976;
  int D.24977;
  int D.23420;
  int iftmp.39;
  int D.23419;
  const char[8] * D.24987;
  unsigned char D.24988;
  int D.24989;
  unsigned char D.24990;
  int D.24991;
  const unsigned char * D.24996;
  unsigned char D.24997;
  int D.24998;
  const unsigned char * D.24999;
  unsigned char D.25000;
  int D.25001;
  const unsigned char * D.25006;
  unsigned char D.25007;
  int D.25008;
  const unsigned char * D.25009;
  unsigned char D.25010;
  int D.25011;
  const unsigned char * D.25016;
  unsigned char D.25017;
  int D.25018;
  const unsigned char * D.25019;
  unsigned char D.25020;
  int D.25021;
  int D.25026;
  int D.23438;
  int iftmp.40;
  int D.23437;
  const char[12] * D.25033;
  unsigned char D.25034;
  int D.25035;
  unsigned char D.25036;
  int D.25037;
  const unsigned char * D.25042;
  unsigned char D.25043;
  int D.25044;
  const unsigned char * D.25045;
  unsigned char D.25046;
  int D.25047;
  const unsigned char * D.25052;
  unsigned char D.25053;
  int D.25054;
  const unsigned char * D.25055;
  unsigned char D.25056;
  int D.25057;
  const unsigned char * D.25062;
  unsigned char D.25063;
  int D.25064;
  const unsigned char * D.25065;
  unsigned char D.25066;
  int D.25067;
  int D.23448;
  int iftmp.41;
  int D.23447;
  const char[8] * D.25075;
  unsigned char D.25076;
  int D.25077;
  unsigned char D.25078;
  int D.25079;
  const unsigned char * D.25084;
  unsigned char D.25085;
  int D.25086;
  const unsigned char * D.25087;
  unsigned char D.25088;
  int D.25089;
  const unsigned char * D.25094;
  unsigned char D.25095;
  int D.25096;
  const unsigned char * D.25097;
  unsigned char D.25098;
  int D.25099;
  const unsigned char * D.25104;
  unsigned char D.25105;
  int D.25106;
  const unsigned char * D.25107;
  unsigned char D.25108;
  int D.25109;
  int D.25115;
  int D.23457;
  int iftmp.42;
  int D.23456;
  const char[14] * D.25122;
  unsigned char D.25123;
  int D.25124;
  unsigned char D.25125;
  int D.25126;
  const unsigned char * D.25131;
  unsigned char D.25132;
  int D.25133;
  const unsigned char * D.25134;
  unsigned char D.25135;
  int D.25136;
  const unsigned char * D.25141;
  unsigned char D.25142;
  int D.25143;
  const unsigned char * D.25144;
  unsigned char D.25145;
  int D.25146;
  const unsigned char * D.25151;
  unsigned char D.25152;
  int D.25153;
  const unsigned char * D.25154;
  unsigned char D.25155;
  int D.25156;
  int D.25160;
  struct MonoMethodDesc * mono_break_at_bb_method.43;
  struct MonoMethodDesc * mono_break_at_bb_method.44;
  int mono_break_at_bb_bb_num.45;
  int D.23466;
  int iftmp.46;
  int D.23465;
  const char[19] * D.25172;
  unsigned char D.25173;
  int D.25174;
  unsigned char D.25175;
  int D.25176;
  const unsigned char * D.25181;
  unsigned char D.25182;
  int D.25183;
  const unsigned char * D.25184;
  unsigned char D.25185;
  int D.25186;
  const unsigned char * D.25191;
  unsigned char D.25192;
  int D.25193;
  const unsigned char * D.25194;
  unsigned char D.25195;
  int D.25196;
  const unsigned char * D.25201;
  unsigned char D.25202;
  int D.25203;
  const unsigned char * D.25204;
  unsigned char D.25205;
  int D.25206;
  struct MonoMethodDesc * mono_inject_async_exc_method.47;
  struct MonoMethodDesc * mono_inject_async_exc_method.48;
  int mono_inject_async_exc_pos.49;
  int D.23475;
  int iftmp.50;
  int D.23474;
  const char[13] * D.25221;
  unsigned char D.25222;
  int D.25223;
  unsigned char D.25224;
  int D.25225;
  const unsigned char * D.25230;
  unsigned char D.25231;
  int D.25232;
  const unsigned char * D.25233;
  unsigned char D.25234;
  int D.25235;
  const unsigned char * D.25240;
  unsigned char D.25241;
  int D.25242;
  const unsigned char * D.25243;
  unsigned char D.25244;
  int D.25245;
  const unsigned char * D.25250;
  unsigned char D.25251;
  int D.25252;
  const unsigned char * D.25253;
  unsigned char D.25254;
  int D.25255;
  int D.23484;
  int iftmp.51;
  int D.23483;
  const char[11] * D.25263;
  unsigned char D.25264;
  int D.25265;
  unsigned char D.25266;
  int D.25267;
  const unsigned char * D.25272;
  unsigned char D.25273;
  int D.25274;
  const unsigned char * D.25275;
  unsigned char D.25276;
  int D.25277;
  const unsigned char * D.25282;
  unsigned char D.25283;
  int D.25284;
  const unsigned char * D.25285;
  unsigned char D.25286;
  int D.25287;
  const unsigned char * D.25292;
  unsigned char D.25293;
  int D.25294;
  const unsigned char * D.25295;
  unsigned char D.25296;
  int D.25297;
  int D.23493;
  int iftmp.52;
  int D.23492;
  const char[15] * D.25305;
  unsigned char D.25306;
  int D.25307;
  unsigned char D.25308;
  int D.25309;
  const unsigned char * D.25314;
  unsigned char D.25315;
  int D.25316;
  const unsigned char * D.25317;
  unsigned char D.25318;
  int D.25319;
  const unsigned char * D.25324;
  unsigned char D.25325;
  int D.25326;
  const unsigned char * D.25327;
  unsigned char D.25328;
  int D.25329;
  const unsigned char * D.25334;
  unsigned char D.25335;
  int D.25336;
  const unsigned char * D.25337;
  unsigned char D.25338;
  int D.25339;
  int D.23502;
  int iftmp.53;
  int D.23501;
  const char[8] * D.25347;
  unsigned char D.25348;
  int D.25349;
  unsigned char D.25350;
  int D.25351;
  const unsigned char * D.25356;
  unsigned char D.25357;
  int D.25358;
  const unsigned char * D.25359;
  unsigned char D.25360;
  int D.25361;
  const unsigned char * D.25366;
  unsigned char D.25367;
  int D.25368;
  const unsigned char * D.25369;
  unsigned char D.25370;
  int D.25371;
  const unsigned char * D.25376;
  unsigned char D.25377;
  int D.25378;
  const unsigned char * D.25379;
  unsigned char D.25380;
  int D.25381;
  int D.23511;
  int iftmp.54;
  int D.23510;
  const char[6] * D.25389;
  unsigned char D.25390;
  int D.25391;
  unsigned char D.25392;
  int D.25393;
  const unsigned char * D.25398;
  unsigned char D.25399;
  int D.25400;
  const unsigned char * D.25401;
  unsigned char D.25402;
  int D.25403;
  const unsigned char * D.25408;
  unsigned char D.25409;
  int D.25410;
  const unsigned char * D.25411;
  unsigned char D.25412;
  int D.25413;
  const unsigned char * D.25418;
  unsigned char D.25419;
  int D.25420;
  const unsigned char * D.25421;
  unsigned char D.25422;
  int D.25423;
  int D.25428;
  int D.25432;
  const char * D.25435;
  int D.25436;
  int D.23538;
  int iftmp.55;
  int D.23537;
  const char[14] * D.25441;
  unsigned char D.25442;
  int D.25443;
  unsigned char D.25444;
  int D.25445;
  const unsigned char * D.25450;
  unsigned char D.25451;
  int D.25452;
  const unsigned char * D.25453;
  unsigned char D.25454;
  int D.25455;
  const unsigned char * D.25460;
  unsigned char D.25461;
  int D.25462;
  const unsigned char * D.25463;
  unsigned char D.25464;
  int D.25465;
  const unsigned char * D.25470;
  unsigned char D.25471;
  int D.25472;
  const unsigned char * D.25473;
  unsigned char D.25474;
  int D.25475;
  int D.25480;
  int D.23556;
  int iftmp.56;
  int D.23555;
  const char[9] * D.25487;
  unsigned char D.25488;
  int D.25489;
  unsigned char D.25490;
  int D.25491;
  const unsigned char * D.25496;
  unsigned char D.25497;
  int D.25498;
  const unsigned char * D.25499;
  unsigned char D.25500;
  int D.25501;
  const unsigned char * D.25506;
  unsigned char D.25507;
  int D.25508;
  const unsigned char * D.25509;
  unsigned char D.25510;
  int D.25511;
  const unsigned char * D.25516;
  unsigned char D.25517;
  int D.25518;
  const unsigned char * D.25519;
  unsigned char D.25520;
  int D.25521;
  int D.23565;
  int iftmp.57;
  int D.23564;
  const char[10] * D.25529;
  unsigned char D.25530;
  int D.25531;
  unsigned char D.25532;
  int D.25533;
  const unsigned char * D.25538;
  unsigned char D.25539;
  int D.25540;
  const unsigned char * D.25541;
  unsigned char D.25542;
  int D.25543;
  const unsigned char * D.25548;
  unsigned char D.25549;
  int D.25550;
  const unsigned char * D.25551;
  unsigned char D.25552;
  int D.25553;
  const unsigned char * D.25558;
  unsigned char D.25559;
  int D.25560;
  const unsigned char * D.25561;
  unsigned char D.25562;
  int D.25563;
  int D.25568;
  int D.25572;
  void * D.25577;
  int D.25579;
  int D.23601;
  int iftmp.58;
  int D.23600;
  const char[10] * D.25586;
  unsigned char D.25587;
  int D.25588;
  unsigned char D.25589;
  int D.25590;
  const unsigned char * D.25595;
  unsigned char D.25596;
  int D.25597;
  const unsigned char * D.25598;
  unsigned char D.25599;
  int D.25600;
  const unsigned char * D.25605;
  unsigned char D.25606;
  int D.25607;
  const unsigned char * D.25608;
  unsigned char D.25609;
  int D.25610;
  const unsigned char * D.25615;
  unsigned char D.25616;
  int D.25617;
  const unsigned char * D.25618;
  unsigned char D.25619;
  int D.25620;
  int D.25627;
  const char * D.25632;
  int D.23619;
  int iftmp.59;
  int D.23618;
  const char[8] * D.25637;
  unsigned char D.25638;
  int D.25639;
  unsigned char D.25640;
  int D.25641;
  const unsigned char * D.25646;
  unsigned char D.25647;
  int D.25648;
  const unsigned char * D.25649;
  unsigned char D.25650;
  int D.25651;
  const unsigned char * D.25656;
  unsigned char D.25657;
  int D.25658;
  const unsigned char * D.25659;
  unsigned char D.25660;
  int D.25661;
  const unsigned char * D.25666;
  unsigned char D.25667;
  int D.25668;
  const unsigned char * D.25669;
  unsigned char D.25670;
  int D.25671;
  int D.23628;
  int iftmp.60;
  int D.23627;
  const char[8] * D.25681;
  unsigned char D.25682;
  int D.25683;
  unsigned char D.25684;
  int D.25685;
  const unsigned char * D.25690;
  unsigned char D.25691;
  int D.25692;
  const unsigned char * D.25693;
  unsigned char D.25694;
  int D.25695;
  const unsigned char * D.25700;
  unsigned char D.25701;
  int D.25702;
  const unsigned char * D.25703;
  unsigned char D.25704;
  int D.25705;
  const unsigned char * D.25710;
  unsigned char D.25711;
  int D.25712;
  const unsigned char * D.25713;
  unsigned char D.25714;
  int D.25715;
  int D.25720;
  int D.25723;
  int D.25727;
  char * D.25730;
  int D.23656;
  int iftmp.61;
  int D.23655;
  const char[11] * D.25735;
  unsigned char D.25736;
  int D.25737;
  unsigned char D.25738;
  int D.25739;
  const unsigned char * D.25744;
  unsigned char D.25745;
  int D.25746;
  const unsigned char * D.25747;
  unsigned char D.25748;
  int D.25749;
  const unsigned char * D.25754;
  unsigned char D.25755;
  int D.25756;
  const unsigned char * D.25757;
  unsigned char D.25758;
  int D.25759;
  const unsigned char * D.25764;
  unsigned char D.25765;
  int D.25766;
  const unsigned char * D.25767;
  unsigned char D.25768;
  int D.25769;
  int D.25774;
  int D.23674;
  int iftmp.62;
  int D.23673;
  const char[20] * D.25780;
  unsigned char D.25781;
  int D.25782;
  unsigned char D.25783;
  int D.25784;
  const unsigned char * D.25789;
  unsigned char D.25790;
  int D.25791;
  const unsigned char * D.25792;
  unsigned char D.25793;
  int D.25794;
  const unsigned char * D.25799;
  unsigned char D.25800;
  int D.25801;
  const unsigned char * D.25802;
  unsigned char D.25803;
  int D.25804;
  const unsigned char * D.25809;
  unsigned char D.25810;
  int D.25811;
  const unsigned char * D.25812;
  unsigned char D.25813;
  int D.25814;
  int D.23683;
  int iftmp.63;
  int D.23682;
  const char[9] * D.25822;
  unsigned char D.25823;
  int D.25824;
  unsigned char D.25825;
  int D.25826;
  const unsigned char * D.25831;
  unsigned char D.25832;
  int D.25833;
  const unsigned char * D.25834;
  unsigned char D.25835;
  int D.25836;
  const unsigned char * D.25841;
  unsigned char D.25842;
  int D.25843;
  const unsigned char * D.25844;
  unsigned char D.25845;
  int D.25846;
  const unsigned char * D.25851;
  unsigned char D.25852;
  int D.25853;
  const unsigned char * D.25854;
  unsigned char D.25855;
  int D.25856;
  int D.23692;
  int iftmp.64;
  int D.23691;
  const char[14] * D.25864;
  unsigned char D.25865;
  int D.25866;
  unsigned char D.25867;
  int D.25868;
  const unsigned char * D.25873;
  unsigned char D.25874;
  int D.25875;
  const unsigned char * D.25876;
  unsigned char D.25877;
  int D.25878;
  const unsigned char * D.25883;
  unsigned char D.25884;
  int D.25885;
  const unsigned char * D.25886;
  unsigned char D.25887;
  int D.25888;
  const unsigned char * D.25893;
  unsigned char D.25894;
  int D.25895;
  const unsigned char * D.25896;
  unsigned char D.25897;
  int D.25898;
  int D.23701;
  int iftmp.65;
  int D.23700;
  const char[4] * D.25906;
  unsigned char D.25907;
  int D.25908;
  unsigned char D.25909;
  int D.25910;
  const unsigned char * D.25915;
  unsigned char D.25916;
  int D.25917;
  const unsigned char * D.25918;
  unsigned char D.25919;
  int D.25920;
  const unsigned char * D.25925;
  unsigned char D.25926;
  int D.25927;
  const unsigned char * D.25928;
  unsigned char D.25929;
  int D.25930;
  const unsigned char * D.25935;
  unsigned char D.25936;
  int D.25937;
  const unsigned char * D.25938;
  unsigned char D.25939;
  int D.25940;
  int D.23710;
  int iftmp.66;
  int D.23709;
  const char[8] * D.25948;
  unsigned char D.25949;
  int D.25950;
  unsigned char D.25951;
  int D.25952;
  const unsigned char * D.25957;
  unsigned char D.25958;
  int D.25959;
  const unsigned char * D.25960;
  unsigned char D.25961;
  int D.25962;
  const unsigned char * D.25967;
  unsigned char D.25968;
  int D.25969;
  const unsigned char * D.25970;
  unsigned char D.25971;
  int D.25972;
  const unsigned char * D.25977;
  unsigned char D.25978;
  int D.25979;
  const unsigned char * D.25980;
  unsigned char D.25981;
  int D.25982;
  int D.23719;
  int iftmp.67;
  int D.23718;
  const char[11] * D.25990;
  unsigned char D.25991;
  int D.25992;
  unsigned char D.25993;
  int D.25994;
  const unsigned char * D.25999;
  unsigned char D.26000;
  int D.26001;
  const unsigned char * D.26002;
  unsigned char D.26003;
  int D.26004;
  const unsigned char * D.26009;
  unsigned char D.26010;
  int D.26011;
  const unsigned char * D.26012;
  unsigned char D.26013;
  int D.26014;
  const unsigned char * D.26019;
  unsigned char D.26020;
  int D.26021;
  const unsigned char * D.26022;
  unsigned char D.26023;
  int D.26024;
  int D.23728;
  int iftmp.68;
  int D.23727;
  const char[10] * D.26033;
  unsigned char D.26034;
  int D.26035;
  unsigned char D.26036;
  int D.26037;
  const unsigned char * D.26042;
  unsigned char D.26043;
  int D.26044;
  const unsigned char * D.26045;
  unsigned char D.26046;
  int D.26047;
  const unsigned char * D.26052;
  unsigned char D.26053;
  int D.26054;
  const unsigned char * D.26055;
  unsigned char D.26056;
  int D.26057;
  const unsigned char * D.26062;
  unsigned char D.26063;
  int D.26064;
  const unsigned char * D.26065;
  unsigned char D.26066;
  int D.26067;
  int D.23737;
  int iftmp.69;
  int D.23736;
  const char[9] * D.26075;
  unsigned char D.26076;
  int D.26077;
  unsigned char D.26078;
  int D.26079;
  const unsigned char * D.26084;
  unsigned char D.26085;
  int D.26086;
  const unsigned char * D.26087;
  unsigned char D.26088;
  int D.26089;
  const unsigned char * D.26094;
  unsigned char D.26095;
  int D.26096;
  const unsigned char * D.26097;
  unsigned char D.26098;
  int D.26099;
  const unsigned char * D.26104;
  unsigned char D.26105;
  int D.26106;
  const unsigned char * D.26107;
  unsigned char D.26108;
  int D.26109;
  int D.23746;
  int iftmp.70;
  int D.23745;
  const char[13] * D.26117;
  unsigned char D.26118;
  int D.26119;
  unsigned char D.26120;
  int D.26121;
  const unsigned char * D.26126;
  unsigned char D.26127;
  int D.26128;
  const unsigned char * D.26129;
  unsigned char D.26130;
  int D.26131;
  const unsigned char * D.26136;
  unsigned char D.26137;
  int D.26138;
  const unsigned char * D.26139;
  unsigned char D.26140;
  int D.26141;
  const unsigned char * D.26146;
  unsigned char D.26147;
  int D.26148;
  const unsigned char * D.26149;
  unsigned char D.26150;
  int D.26151;
  int D.26156;
  int D.23764;
  int iftmp.71;
  int D.23763;
  const char[4] * D.26162;
  unsigned char D.26163;
  int D.26164;
  unsigned char D.26165;
  int D.26166;
  const unsigned char * D.26171;
  unsigned char D.26172;
  int D.26173;
  const unsigned char * D.26174;
  unsigned char D.26175;
  int D.26176;
  const unsigned char * D.26181;
  unsigned char D.26182;
  int D.26183;
  const unsigned char * D.26184;
  unsigned char D.26185;
  int D.26186;
  const unsigned char * D.26191;
  unsigned char D.26192;
  int D.26193;
  const unsigned char * D.26194;
  unsigned char D.26195;
  int D.26196;
  const char * D.26198;
  int D.26201;
  int D.23773;
  int iftmp.72;
  int D.23772;
  const char[7] * D.26205;
  unsigned char D.26206;
  int D.26207;
  unsigned char D.26208;
  int D.26209;
  const unsigned char * D.26214;
  unsigned char D.26215;
  int D.26216;
  const unsigned char * D.26217;
  unsigned char D.26218;
  int D.26219;
  const unsigned char * D.26224;
  unsigned char D.26225;
  int D.26226;
  const unsigned char * D.26227;
  unsigned char D.26228;
  int D.26229;
  const unsigned char * D.26234;
  unsigned char D.26235;
  int D.26236;
  const unsigned char * D.26237;
  unsigned char D.26238;
  int D.26239;
  int D.23782;
  int iftmp.73;
  int D.23781;
  const char[8] * D.26246;
  unsigned char D.26247;
  int D.26248;
  unsigned char D.26249;
  int D.26250;
  const unsigned char * D.26255;
  unsigned char D.26256;
  int D.26257;
  const unsigned char * D.26258;
  unsigned char D.26259;
  int D.26260;
  const unsigned char * D.26265;
  unsigned char D.26266;
  int D.26267;
  const unsigned char * D.26268;
  unsigned char D.26269;
  int D.26270;
  const unsigned char * D.26275;
  unsigned char D.26276;
  int D.26277;
  const unsigned char * D.26278;
  unsigned char D.26279;
  int D.26280;
  int D.23791;
  int iftmp.74;
  int D.23790;
  const char[21] * D.26287;
  unsigned char D.26288;
  int D.26289;
  unsigned char D.26290;
  int D.26291;
  const unsigned char * D.26296;
  unsigned char D.26297;
  int D.26298;
  const unsigned char * D.26299;
  unsigned char D.26300;
  int D.26301;
  const unsigned char * D.26306;
  unsigned char D.26307;
  int D.26308;
  const unsigned char * D.26309;
  unsigned char D.26310;
  int D.26311;
  const unsigned char * D.26316;
  unsigned char D.26317;
  int D.26318;
  const unsigned char * D.26319;
  unsigned char D.26320;
  int D.26321;
  int D.23800;
  int iftmp.75;
  int D.23799;
  const char[7] * D.26329;
  unsigned char D.26330;
  int D.26331;
  unsigned char D.26332;
  int D.26333;
  const unsigned char * D.26338;
  unsigned char D.26339;
  int D.26340;
  const unsigned char * D.26341;
  unsigned char D.26342;
  int D.26343;
  const unsigned char * D.26348;
  unsigned char D.26349;
  int D.26350;
  const unsigned char * D.26351;
  unsigned char D.26352;
  int D.26353;
  const unsigned char * D.26358;
  unsigned char D.26359;
  int D.26360;
  const unsigned char * D.26361;
  unsigned char D.26362;
  int D.26363;
  int D.23809;
  int iftmp.76;
  int D.23808;
  const char[9] * D.26371;
  unsigned char D.26372;
  int D.26373;
  unsigned char D.26374;
  int D.26375;
  const unsigned char * D.26380;
  unsigned char D.26381;
  int D.26382;
  const unsigned char * D.26383;
  unsigned char D.26384;
  int D.26385;
  const unsigned char * D.26390;
  unsigned char D.26391;
  int D.26392;
  const unsigned char * D.26393;
  unsigned char D.26394;
  int D.26395;
  const unsigned char * D.26400;
  unsigned char D.26401;
  int D.26402;
  const unsigned char * D.26403;
  unsigned char D.26404;
  int D.26405;
  const gchar * D.26412;
  int mono_compile_aot.77;
  struct MonoTraceSpec * mono_jit_trace_calls.78;
  struct MonoTraceSpec * mono_jit_trace_calls.79;
  int enable_debugging.80;
  struct MonoDomain * domain.81;
  struct MonoDomain * domain.82;
  void * * D.26437;
  unsigned int i.83;
  unsigned int D.26439;
  void * * D.26440;
  void * D.26441;
  unsigned int i.84;
  unsigned int D.26445;
  int D.26446;
  <unnamed type> open_status.85;
  const char * D.26466;
  const char * iftmp.86;
  struct MonoImage * D.26484;
  short unsigned int D.26492;
  int D.26493;
  int D.26494;
  short unsigned int D.26496;
  int D.26497;
  int D.26498;
  struct MonoDomain * D.26499;
  struct MonoDomain * D.26500;
  unsigned int D.26501;
  unsigned int D.26504;
  unsigned int D.26505;
  struct FILE * mini_stats_fd.87;
  char * D.26514;
  char D.26515;
  struct MonoDomain * D.26518;
  struct MonoDomain * D.26527;
  struct MonoDomain * D.26529;
  struct MainThreadArgs main_args;
  struct MonoAssembly * assembly;
  struct MonoMethodDesc * desc;
  struct MonoMethod * method;
  struct MonoCompile * cfg;
  struct MonoDomain * domain;
  MonoImageOpenStatus open_status;
  const char * aname;
  const char * mname;
  char * config_file;
  int i;
  int count;
  guint32 opt;
  guint32 action;
  guint32 recompilation_times;
  MonoGraphOptions mono_graph_options;
  int mini_verbose;
  gboolean enable_profile;
  char * trace_options;
  char * profile_options;
  char * aot_options;
  char * forced_version;
  struct GPtrArray * agents;
  char * attach_options;

  try
    {
      mname = 0B;
      config_file = 0B;
      count = 1;
      action = 4;
      recompilation_times = 1;
      mono_graph_options = 0;
      mini_verbose = 0;
      enable_profile = 0;
      trace_options = 0B;
      profile_options = 0B;
      aot_options = 0B;
      forced_version = 0B;
      agents = 0B;
      attach_options = 0B;
      setlocale (6, "");
      D.24314 = monoeg_g_getenv ("MONO_NO_SMP");
      if (D.24314 != 0B) goto <D.24315>; else goto <D.24316>;
      <D.24315>:
      mono_set_use_smp (0);
      <D.24316>:
      if (0 != 0) goto <D.24317>; else goto <D.24318>;
      <D.24317>:
      if (0 != 0) goto <D.24319>; else goto <D.24320>;
      <D.24319>:
      monoeg_g_log (0B, 4, "No vtable supported in g_thread_init");
      <D.23234>:
      goto <D.23234>;
      <D.24320>:
      <D.24318>:
      monoeg_g_log_set_always_fatal (4);
      monoeg_g_log_set_fatal_mask (0B, 4);
      opt = parse_optimizations (0B);
      i = 1;
      goto <D.23811>;
      <D.23810>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24325 = *D.24324;
      if (D.24325 != 45) goto <D.23235>; else goto <D.24326>;
      <D.24326>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.24328>; else goto <D.24329>;
        <D.24328>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24330 = "--regression";
          D.24331 = MEM[(const unsigned char *)D.24330];
          D.24332 = (int) D.24331;
          D.24333 = *__s2;
          D.24334 = (int) D.24333;
          __result = D.24332 - D.24334;
          {
            if (__s2_len != 0) goto <D.24335>; else goto <D.24336>;
            <D.24335>:
            if (__result == 0) goto <D.24337>; else goto <D.24338>;
            <D.24337>:
            D.24339 = &MEM[(void *)"--regression" + 1B];
            D.24340 = *D.24339;
            D.24341 = (int) D.24340;
            D.24342 = __s2 + 1;
            D.24343 = *D.24342;
            D.24344 = (int) D.24343;
            __result = D.24341 - D.24344;
            if (__s2_len > 1) goto <D.24345>; else goto <D.24346>;
            <D.24345>:
            if (__result == 0) goto <D.24347>; else goto <D.24348>;
            <D.24347>:
            D.24349 = &MEM[(void *)"--regression" + 2B];
            D.24350 = *D.24349;
            D.24351 = (int) D.24350;
            D.24352 = __s2 + 2;
            D.24353 = *D.24352;
            D.24354 = (int) D.24353;
            __result = D.24351 - D.24354;
            if (__s2_len > 2) goto <D.24355>; else goto <D.24356>;
            <D.24355>:
            if (__result == 0) goto <D.24357>; else goto <D.24358>;
            <D.24357>:
            D.24359 = &MEM[(void *)"--regression" + 3B];
            D.24360 = *D.24359;
            D.24361 = (int) D.24360;
            D.24362 = __s2 + 3;
            D.24363 = *D.24362;
            D.24364 = (int) D.24363;
            __result = D.24361 - D.24364;
            <D.24358>:
            <D.24356>:
            <D.24348>:
            <D.24346>:
            <D.24338>:
            <D.24336>:
          }
          D.23243 = __result;
        }
        iftmp.20 = -D.23243;
        goto <D.24365>;
        <D.24329>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.20 = __builtin_strcmp (D.24324, "--regression");
        <D.24365>:
        D.23244 = iftmp.20;
      }
      if (D.23244 == 0) goto <D.24366>; else goto <D.24367>;
      <D.24366>:
      action = 1;
      goto <D.24368>;
      <D.24367>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24369 = strncmp (D.24324, "--single-method=", 16);
      if (D.24369 == 0) goto <D.24370>; else goto <D.24371>;
      <D.24370>:
      {
        char * full_opts;

        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24372 = D.24324 + 16;
        full_opts = monoeg_g_strdup_printf ("-all,%s", D.24372);
        action = 2;
        mono_single_method_regression_opt.21 = parse_optimizations (full_opts);
        mono_single_method_regression_opt = mono_single_method_regression_opt.21;
        monoeg_g_free (full_opts);
      }
      goto <D.24374>;
      <D.24371>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.24379>; else goto <D.24380>;
        <D.24379>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24381 = "--verbose";
          D.24382 = MEM[(const unsigned char *)D.24381];
          D.24383 = (int) D.24382;
          D.24384 = *__s2;
          D.24385 = (int) D.24384;
          __result = D.24383 - D.24385;
          {
            if (__s2_len != 0) goto <D.24386>; else goto <D.24387>;
            <D.24386>:
            if (__result == 0) goto <D.24388>; else goto <D.24389>;
            <D.24388>:
            D.24390 = &MEM[(void *)"--verbose" + 1B];
            D.24391 = *D.24390;
            D.24392 = (int) D.24391;
            D.24393 = __s2 + 1;
            D.24394 = *D.24393;
            D.24395 = (int) D.24394;
            __result = D.24392 - D.24395;
            if (__s2_len > 1) goto <D.24396>; else goto <D.24397>;
            <D.24396>:
            if (__result == 0) goto <D.24398>; else goto <D.24399>;
            <D.24398>:
            D.24400 = &MEM[(void *)"--verbose" + 2B];
            D.24401 = *D.24400;
            D.24402 = (int) D.24401;
            D.24403 = __s2 + 2;
            D.24404 = *D.24403;
            D.24405 = (int) D.24404;
            __result = D.24402 - D.24405;
            if (__s2_len > 2) goto <D.24406>; else goto <D.24407>;
            <D.24406>:
            if (__result == 0) goto <D.24408>; else goto <D.24409>;
            <D.24408>:
            D.24410 = &MEM[(void *)"--verbose" + 3B];
            D.24411 = *D.24410;
            D.24412 = (int) D.24411;
            D.24413 = __s2 + 3;
            D.24414 = *D.24413;
            D.24415 = (int) D.24414;
            __result = D.24412 - D.24415;
            <D.24409>:
            <D.24407>:
            <D.24399>:
            <D.24397>:
            <D.24389>:
            <D.24387>:
          }
          D.23262 = __result;
        }
        iftmp.22 = -D.23262;
        goto <D.24416>;
        <D.24380>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.22 = __builtin_strcmp (D.24324, "--verbose");
        <D.24416>:
        D.23263 = iftmp.22;
      }
      if (D.23263 == 0) goto <D.24375>; else goto <D.24417>;
      <D.24417>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 2;
        if (__s2_len <= 3) goto <D.24419>; else goto <D.24420>;
        <D.24419>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24421 = "-v";
          D.24422 = MEM[(const unsigned char *)D.24421];
          D.24423 = (int) D.24422;
          D.24424 = *__s2;
          D.24425 = (int) D.24424;
          __result = D.24423 - D.24425;
          {
            if (__s2_len != 0) goto <D.24426>; else goto <D.24427>;
            <D.24426>:
            if (__result == 0) goto <D.24428>; else goto <D.24429>;
            <D.24428>:
            D.24430 = &MEM[(void *)"-v" + 1B];
            D.24431 = *D.24430;
            D.24432 = (int) D.24431;
            D.24433 = __s2 + 1;
            D.24434 = *D.24433;
            D.24435 = (int) D.24434;
            __result = D.24432 - D.24435;
            if (__s2_len > 1) goto <D.24436>; else goto <D.24437>;
            <D.24436>:
            if (__result == 0) goto <D.24438>; else goto <D.24439>;
            <D.24438>:
            D.24440 = &MEM[(void *)"-v" + 2B];
            D.24441 = *D.24440;
            D.24442 = (int) D.24441;
            D.24443 = __s2 + 2;
            D.24444 = *D.24443;
            D.24445 = (int) D.24444;
            __result = D.24442 - D.24445;
            if (__s2_len > 2) goto <D.24446>; else goto <D.24447>;
            <D.24446>:
            if (__result == 0) goto <D.24448>; else goto <D.24449>;
            <D.24448>:
            D.24450 = &MEM[(void *)"-v" + 3B];
            D.24451 = *D.24450;
            D.24452 = (int) D.24451;
            D.24453 = __s2 + 3;
            D.24454 = *D.24453;
            D.24455 = (int) D.24454;
            __result = D.24452 - D.24455;
            <D.24449>:
            <D.24447>:
            <D.24439>:
            <D.24437>:
            <D.24429>:
            <D.24427>:
          }
          D.23271 = __result;
        }
        iftmp.23 = -D.23271;
        goto <D.24456>;
        <D.24420>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.23 = __builtin_strcmp (D.24324, "-v");
        <D.24456>:
        D.23272 = iftmp.23;
      }
      if (D.23272 == 0) goto <D.24375>; else goto <D.24376>;
      <D.24375>:
      mini_verbose = mini_verbose + 1;
      goto <D.24377>;
      <D.24376>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.24460>; else goto <D.24461>;
        <D.24460>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24462 = "--version";
          D.24463 = MEM[(const unsigned char *)D.24462];
          D.24464 = (int) D.24463;
          D.24465 = *__s2;
          D.24466 = (int) D.24465;
          __result = D.24464 - D.24466;
          {
            if (__s2_len != 0) goto <D.24467>; else goto <D.24468>;
            <D.24467>:
            if (__result == 0) goto <D.24469>; else goto <D.24470>;
            <D.24469>:
            D.24471 = &MEM[(void *)"--version" + 1B];
            D.24472 = *D.24471;
            D.24473 = (int) D.24472;
            D.24474 = __s2 + 1;
            D.24475 = *D.24474;
            D.24476 = (int) D.24475;
            __result = D.24473 - D.24476;
            if (__s2_len > 1) goto <D.24477>; else goto <D.24478>;
            <D.24477>:
            if (__result == 0) goto <D.24479>; else goto <D.24480>;
            <D.24479>:
            D.24481 = &MEM[(void *)"--version" + 2B];
            D.24482 = *D.24481;
            D.24483 = (int) D.24482;
            D.24484 = __s2 + 2;
            D.24485 = *D.24484;
            D.24486 = (int) D.24485;
            __result = D.24483 - D.24486;
            if (__s2_len > 2) goto <D.24487>; else goto <D.24488>;
            <D.24487>:
            if (__result == 0) goto <D.24489>; else goto <D.24490>;
            <D.24489>:
            D.24491 = &MEM[(void *)"--version" + 3B];
            D.24492 = *D.24491;
            D.24493 = (int) D.24492;
            D.24494 = __s2 + 3;
            D.24495 = *D.24494;
            D.24496 = (int) D.24495;
            __result = D.24493 - D.24496;
            <D.24490>:
            <D.24488>:
            <D.24480>:
            <D.24478>:
            <D.24470>:
            <D.24468>:
          }
          D.23280 = __result;
        }
        iftmp.24 = -D.23280;
        goto <D.24497>;
        <D.24461>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.24 = __builtin_strcmp (D.24324, "--version");
        <D.24497>:
        D.23281 = iftmp.24;
      }
      if (D.23281 == 0) goto <D.24457>; else goto <D.24498>;
      <D.24498>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 2;
        if (__s2_len <= 3) goto <D.24500>; else goto <D.24501>;
        <D.24500>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24502 = "-V";
          D.24503 = MEM[(const unsigned char *)D.24502];
          D.24504 = (int) D.24503;
          D.24505 = *__s2;
          D.24506 = (int) D.24505;
          __result = D.24504 - D.24506;
          {
            if (__s2_len != 0) goto <D.24507>; else goto <D.24508>;
            <D.24507>:
            if (__result == 0) goto <D.24509>; else goto <D.24510>;
            <D.24509>:
            D.24511 = &MEM[(void *)"-V" + 1B];
            D.24512 = *D.24511;
            D.24513 = (int) D.24512;
            D.24514 = __s2 + 1;
            D.24515 = *D.24514;
            D.24516 = (int) D.24515;
            __result = D.24513 - D.24516;
            if (__s2_len > 1) goto <D.24517>; else goto <D.24518>;
            <D.24517>:
            if (__result == 0) goto <D.24519>; else goto <D.24520>;
            <D.24519>:
            D.24521 = &MEM[(void *)"-V" + 2B];
            D.24522 = *D.24521;
            D.24523 = (int) D.24522;
            D.24524 = __s2 + 2;
            D.24525 = *D.24524;
            D.24526 = (int) D.24525;
            __result = D.24523 - D.24526;
            if (__s2_len > 2) goto <D.24527>; else goto <D.24528>;
            <D.24527>:
            if (__result == 0) goto <D.24529>; else goto <D.24530>;
            <D.24529>:
            D.24531 = &MEM[(void *)"-V" + 3B];
            D.24532 = *D.24531;
            D.24533 = (int) D.24532;
            D.24534 = __s2 + 3;
            D.24535 = *D.24534;
            D.24536 = (int) D.24535;
            __result = D.24533 - D.24536;
            <D.24530>:
            <D.24528>:
            <D.24520>:
            <D.24518>:
            <D.24510>:
            <D.24508>:
          }
          D.23289 = __result;
        }
        iftmp.25 = -D.23289;
        goto <D.24537>;
        <D.24501>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.25 = __builtin_strcmp (D.24324, "-V");
        <D.24537>:
        D.23290 = iftmp.25;
      }
      if (D.23290 == 0) goto <D.24457>; else goto <D.24458>;
      <D.24457>:
      {
        char * build;
        char * gc_descr;

        build = mono_get_runtime_build_info ();
        monoeg_g_print ("Mono JIT compiler version %s\nCopyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com\n", build);
        monoeg_g_free (build);
        monoeg_g_print (&info);
        gc_descr = mono_gc_get_description ();
        monoeg_g_print ("\tGC:            %s\n", gc_descr);
        monoeg_g_free (gc_descr);
        if (mini_verbose != 0) goto <D.24538>; else goto <D.24539>;
        <D.24538>:
        {
          const char * cerror;
          const char * clibpath;

          mono_init ("mono");
          cerror = mono_check_corlib_version ();
          D.24541 = mono_defaults.corlib;
          if (D.24541 != 0B) goto <D.24542>; else goto <D.24543>;
          <D.24542>:
          D.24541 = mono_defaults.corlib;
          iftmp.26 = mono_image_get_filename (D.24541);
          goto <D.24544>;
          <D.24543>:
          iftmp.26 = "unknown";
          <D.24544>:
          clibpath = iftmp.26;
          if (cerror != 0B) goto <D.24545>; else goto <D.24546>;
          <D.24545>:
          monoeg_g_print ("The currently installed mscorlib doesn\'t match this runtime version.\n");
          monoeg_g_print ("The error is: %s\n", cerror);
          monoeg_g_print ("mscorlib.dll loaded at: %s\n", clibpath);
          D.24547 = 1;
          return D.24547;
          <D.24546>:
        }
        <D.24539>:
        D.24547 = 0;
        return D.24547;
      }
      <D.24458>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 6;
        if (__s2_len <= 3) goto <D.24551>; else goto <D.24552>;
        <D.24551>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24553 = "--help";
          D.24554 = MEM[(const unsigned char *)D.24553];
          D.24555 = (int) D.24554;
          D.24556 = *__s2;
          D.24557 = (int) D.24556;
          __result = D.24555 - D.24557;
          {
            if (__s2_len != 0) goto <D.24558>; else goto <D.24559>;
            <D.24558>:
            if (__result == 0) goto <D.24560>; else goto <D.24561>;
            <D.24560>:
            D.24562 = &MEM[(void *)"--help" + 1B];
            D.24563 = *D.24562;
            D.24564 = (int) D.24563;
            D.24565 = __s2 + 1;
            D.24566 = *D.24565;
            D.24567 = (int) D.24566;
            __result = D.24564 - D.24567;
            if (__s2_len > 1) goto <D.24568>; else goto <D.24569>;
            <D.24568>:
            if (__result == 0) goto <D.24570>; else goto <D.24571>;
            <D.24570>:
            D.24572 = &MEM[(void *)"--help" + 2B];
            D.24573 = *D.24572;
            D.24574 = (int) D.24573;
            D.24575 = __s2 + 2;
            D.24576 = *D.24575;
            D.24577 = (int) D.24576;
            __result = D.24574 - D.24577;
            if (__s2_len > 2) goto <D.24578>; else goto <D.24579>;
            <D.24578>:
            if (__result == 0) goto <D.24580>; else goto <D.24581>;
            <D.24580>:
            D.24582 = &MEM[(void *)"--help" + 3B];
            D.24583 = *D.24582;
            D.24584 = (int) D.24583;
            D.24585 = __s2 + 3;
            D.24586 = *D.24585;
            D.24587 = (int) D.24586;
            __result = D.24584 - D.24587;
            <D.24581>:
            <D.24579>:
            <D.24571>:
            <D.24569>:
            <D.24561>:
            <D.24559>:
          }
          D.23302 = __result;
        }
        iftmp.27 = -D.23302;
        goto <D.24588>;
        <D.24552>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.27 = __builtin_strcmp (D.24324, "--help");
        <D.24588>:
        D.23303 = iftmp.27;
      }
      if (D.23303 == 0) goto <D.24548>; else goto <D.24589>;
      <D.24589>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 2;
        if (__s2_len <= 3) goto <D.24591>; else goto <D.24592>;
        <D.24591>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24593 = "-h";
          D.24594 = MEM[(const unsigned char *)D.24593];
          D.24595 = (int) D.24594;
          D.24596 = *__s2;
          D.24597 = (int) D.24596;
          __result = D.24595 - D.24597;
          {
            if (__s2_len != 0) goto <D.24598>; else goto <D.24599>;
            <D.24598>:
            if (__result == 0) goto <D.24600>; else goto <D.24601>;
            <D.24600>:
            D.24602 = &MEM[(void *)"-h" + 1B];
            D.24603 = *D.24602;
            D.24604 = (int) D.24603;
            D.24605 = __s2 + 1;
            D.24606 = *D.24605;
            D.24607 = (int) D.24606;
            __result = D.24604 - D.24607;
            if (__s2_len > 1) goto <D.24608>; else goto <D.24609>;
            <D.24608>:
            if (__result == 0) goto <D.24610>; else goto <D.24611>;
            <D.24610>:
            D.24612 = &MEM[(void *)"-h" + 2B];
            D.24613 = *D.24612;
            D.24614 = (int) D.24613;
            D.24615 = __s2 + 2;
            D.24616 = *D.24615;
            D.24617 = (int) D.24616;
            __result = D.24614 - D.24617;
            if (__s2_len > 2) goto <D.24618>; else goto <D.24619>;
            <D.24618>:
            if (__result == 0) goto <D.24620>; else goto <D.24621>;
            <D.24620>:
            D.24622 = &MEM[(void *)"-h" + 3B];
            D.24623 = *D.24622;
            D.24624 = (int) D.24623;
            D.24625 = __s2 + 3;
            D.24626 = *D.24625;
            D.24627 = (int) D.24626;
            __result = D.24624 - D.24627;
            <D.24621>:
            <D.24619>:
            <D.24611>:
            <D.24609>:
            <D.24601>:
            <D.24599>:
          }
          D.23311 = __result;
        }
        iftmp.28 = -D.23311;
        goto <D.24628>;
        <D.24592>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.28 = __builtin_strcmp (D.24324, "-h");
        <D.24628>:
        D.23312 = iftmp.28;
      }
      if (D.23312 == 0) goto <D.24548>; else goto <D.24549>;
      <D.24548>:
      mini_usage ();
      D.24547 = 0;
      return D.24547;
      <D.24549>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.24630>; else goto <D.24631>;
        <D.24630>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24632 = "--help-trace";
          D.24633 = MEM[(const unsigned char *)D.24632];
          D.24634 = (int) D.24633;
          D.24635 = *__s2;
          D.24636 = (int) D.24635;
          __result = D.24634 - D.24636;
          {
            if (__s2_len != 0) goto <D.24637>; else goto <D.24638>;
            <D.24637>:
            if (__result == 0) goto <D.24639>; else goto <D.24640>;
            <D.24639>:
            D.24641 = &MEM[(void *)"--help-trace" + 1B];
            D.24642 = *D.24641;
            D.24643 = (int) D.24642;
            D.24644 = __s2 + 1;
            D.24645 = *D.24644;
            D.24646 = (int) D.24645;
            __result = D.24643 - D.24646;
            if (__s2_len > 1) goto <D.24647>; else goto <D.24648>;
            <D.24647>:
            if (__result == 0) goto <D.24649>; else goto <D.24650>;
            <D.24649>:
            D.24651 = &MEM[(void *)"--help-trace" + 2B];
            D.24652 = *D.24651;
            D.24653 = (int) D.24652;
            D.24654 = __s2 + 2;
            D.24655 = *D.24654;
            D.24656 = (int) D.24655;
            __result = D.24653 - D.24656;
            if (__s2_len > 2) goto <D.24657>; else goto <D.24658>;
            <D.24657>:
            if (__result == 0) goto <D.24659>; else goto <D.24660>;
            <D.24659>:
            D.24661 = &MEM[(void *)"--help-trace" + 3B];
            D.24662 = *D.24661;
            D.24663 = (int) D.24662;
            D.24664 = __s2 + 3;
            D.24665 = *D.24664;
            D.24666 = (int) D.24665;
            __result = D.24663 - D.24666;
            <D.24660>:
            <D.24658>:
            <D.24650>:
            <D.24648>:
            <D.24640>:
            <D.24638>:
          }
          D.23320 = __result;
        }
        iftmp.29 = -D.23320;
        goto <D.24667>;
        <D.24631>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.29 = __builtin_strcmp (D.24324, "--help-trace");
        <D.24667>:
        D.23321 = iftmp.29;
      }
      if (D.23321 == 0) goto <D.24668>; else goto <D.24669>;
      <D.24668>:
      mini_trace_usage ();
      D.24547 = 0;
      return D.24547;
      <D.24669>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.24671>; else goto <D.24672>;
        <D.24671>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24673 = "--help-devel";
          D.24674 = MEM[(const unsigned char *)D.24673];
          D.24675 = (int) D.24674;
          D.24676 = *__s2;
          D.24677 = (int) D.24676;
          __result = D.24675 - D.24677;
          {
            if (__s2_len != 0) goto <D.24678>; else goto <D.24679>;
            <D.24678>:
            if (__result == 0) goto <D.24680>; else goto <D.24681>;
            <D.24680>:
            D.24682 = &MEM[(void *)"--help-devel" + 1B];
            D.24683 = *D.24682;
            D.24684 = (int) D.24683;
            D.24685 = __s2 + 1;
            D.24686 = *D.24685;
            D.24687 = (int) D.24686;
            __result = D.24684 - D.24687;
            if (__s2_len > 1) goto <D.24688>; else goto <D.24689>;
            <D.24688>:
            if (__result == 0) goto <D.24690>; else goto <D.24691>;
            <D.24690>:
            D.24692 = &MEM[(void *)"--help-devel" + 2B];
            D.24693 = *D.24692;
            D.24694 = (int) D.24693;
            D.24695 = __s2 + 2;
            D.24696 = *D.24695;
            D.24697 = (int) D.24696;
            __result = D.24694 - D.24697;
            if (__s2_len > 2) goto <D.24698>; else goto <D.24699>;
            <D.24698>:
            if (__result == 0) goto <D.24700>; else goto <D.24701>;
            <D.24700>:
            D.24702 = &MEM[(void *)"--help-devel" + 3B];
            D.24703 = *D.24702;
            D.24704 = (int) D.24703;
            D.24705 = __s2 + 3;
            D.24706 = *D.24705;
            D.24707 = (int) D.24706;
            __result = D.24704 - D.24707;
            <D.24701>:
            <D.24699>:
            <D.24691>:
            <D.24689>:
            <D.24681>:
            <D.24679>:
          }
          D.23329 = __result;
        }
        iftmp.30 = -D.23329;
        goto <D.24708>;
        <D.24672>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.30 = __builtin_strcmp (D.24324, "--help-devel");
        <D.24708>:
        D.23330 = iftmp.30;
      }
      if (D.23330 == 0) goto <D.24709>; else goto <D.24710>;
      <D.24709>:
      mini_usage_jitdeveloper ();
      D.24547 = 0;
      return D.24547;
      <D.24710>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.24712>; else goto <D.24713>;
        <D.24712>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24714 = "--help-debug";
          D.24715 = MEM[(const unsigned char *)D.24714];
          D.24716 = (int) D.24715;
          D.24717 = *__s2;
          D.24718 = (int) D.24717;
          __result = D.24716 - D.24718;
          {
            if (__s2_len != 0) goto <D.24719>; else goto <D.24720>;
            <D.24719>:
            if (__result == 0) goto <D.24721>; else goto <D.24722>;
            <D.24721>:
            D.24723 = &MEM[(void *)"--help-debug" + 1B];
            D.24724 = *D.24723;
            D.24725 = (int) D.24724;
            D.24726 = __s2 + 1;
            D.24727 = *D.24726;
            D.24728 = (int) D.24727;
            __result = D.24725 - D.24728;
            if (__s2_len > 1) goto <D.24729>; else goto <D.24730>;
            <D.24729>:
            if (__result == 0) goto <D.24731>; else goto <D.24732>;
            <D.24731>:
            D.24733 = &MEM[(void *)"--help-debug" + 2B];
            D.24734 = *D.24733;
            D.24735 = (int) D.24734;
            D.24736 = __s2 + 2;
            D.24737 = *D.24736;
            D.24738 = (int) D.24737;
            __result = D.24735 - D.24738;
            if (__s2_len > 2) goto <D.24739>; else goto <D.24740>;
            <D.24739>:
            if (__result == 0) goto <D.24741>; else goto <D.24742>;
            <D.24741>:
            D.24743 = &MEM[(void *)"--help-debug" + 3B];
            D.24744 = *D.24743;
            D.24745 = (int) D.24744;
            D.24746 = __s2 + 3;
            D.24747 = *D.24746;
            D.24748 = (int) D.24747;
            __result = D.24745 - D.24748;
            <D.24742>:
            <D.24740>:
            <D.24732>:
            <D.24730>:
            <D.24722>:
            <D.24720>:
          }
          D.23338 = __result;
        }
        iftmp.31 = -D.23338;
        goto <D.24749>;
        <D.24713>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.31 = __builtin_strcmp (D.24324, "--help-debug");
        <D.24749>:
        D.23339 = iftmp.31;
      }
      if (D.23339 == 0) goto <D.24750>; else goto <D.24751>;
      <D.24750>:
      mini_debug_usage ();
      D.24547 = 0;
      return D.24547;
      <D.24751>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.24753>; else goto <D.24754>;
        <D.24753>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24755 = "--list-opt";
          D.24756 = MEM[(const unsigned char *)D.24755];
          D.24757 = (int) D.24756;
          D.24758 = *__s2;
          D.24759 = (int) D.24758;
          __result = D.24757 - D.24759;
          {
            if (__s2_len != 0) goto <D.24760>; else goto <D.24761>;
            <D.24760>:
            if (__result == 0) goto <D.24762>; else goto <D.24763>;
            <D.24762>:
            D.24764 = &MEM[(void *)"--list-opt" + 1B];
            D.24765 = *D.24764;
            D.24766 = (int) D.24765;
            D.24767 = __s2 + 1;
            D.24768 = *D.24767;
            D.24769 = (int) D.24768;
            __result = D.24766 - D.24769;
            if (__s2_len > 1) goto <D.24770>; else goto <D.24771>;
            <D.24770>:
            if (__result == 0) goto <D.24772>; else goto <D.24773>;
            <D.24772>:
            D.24774 = &MEM[(void *)"--list-opt" + 2B];
            D.24775 = *D.24774;
            D.24776 = (int) D.24775;
            D.24777 = __s2 + 2;
            D.24778 = *D.24777;
            D.24779 = (int) D.24778;
            __result = D.24776 - D.24779;
            if (__s2_len > 2) goto <D.24780>; else goto <D.24781>;
            <D.24780>:
            if (__result == 0) goto <D.24782>; else goto <D.24783>;
            <D.24782>:
            D.24784 = &MEM[(void *)"--list-opt" + 3B];
            D.24785 = *D.24784;
            D.24786 = (int) D.24785;
            D.24787 = __s2 + 3;
            D.24788 = *D.24787;
            D.24789 = (int) D.24788;
            __result = D.24786 - D.24789;
            <D.24783>:
            <D.24781>:
            <D.24773>:
            <D.24771>:
            <D.24763>:
            <D.24761>:
          }
          D.23347 = __result;
        }
        iftmp.32 = -D.23347;
        goto <D.24790>;
        <D.24754>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.32 = __builtin_strcmp (D.24324, "--list-opt");
        <D.24790>:
        D.23348 = iftmp.32;
      }
      if (D.23348 == 0) goto <D.24791>; else goto <D.24792>;
      <D.24791>:
      mini_usage_list_opt ();
      D.24547 = 0;
      return D.24547;
      <D.24792>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24793 = strncmp (D.24324, "--statfile", 10);
      if (D.24793 == 0) goto <D.24794>; else goto <D.24795>;
      <D.24794>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.24797>; else goto <D.24798>;
      <D.24797>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --statfile requires a filename argument\n");
      D.24547 = 1;
      return D.24547;
      <D.24798>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      mini_stats_fd.34 = fopen (D.24324, "w+");
      mini_stats_fd = mini_stats_fd.34;
      goto <D.24801>;
      <D.24795>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24802 = strncmp (D.24324, "--optimize=", 11);
      if (D.24802 == 0) goto <D.24803>; else goto <D.24804>;
      <D.24803>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24805 = D.24324 + 11;
      opt = parse_optimizations (D.24805);
      goto <D.24806>;
      <D.24804>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24807 = strncmp (D.24324, "-O=", 3);
      if (D.24807 == 0) goto <D.24808>; else goto <D.24809>;
      <D.24808>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.24810 = D.24324 + 3;
      opt = parse_optimizations (D.24810);
      goto <D.24811>;
      <D.24809>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.24813>; else goto <D.24814>;
        <D.24813>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24815 = "--gc=sgen";
          D.24816 = MEM[(const unsigned char *)D.24815];
          D.24817 = (int) D.24816;
          D.24818 = *__s2;
          D.24819 = (int) D.24818;
          __result = D.24817 - D.24819;
          {
            if (__s2_len != 0) goto <D.24820>; else goto <D.24821>;
            <D.24820>:
            if (__result == 0) goto <D.24822>; else goto <D.24823>;
            <D.24822>:
            D.24824 = &MEM[(void *)"--gc=sgen" + 1B];
            D.24825 = *D.24824;
            D.24826 = (int) D.24825;
            D.24827 = __s2 + 1;
            D.24828 = *D.24827;
            D.24829 = (int) D.24828;
            __result = D.24826 - D.24829;
            if (__s2_len > 1) goto <D.24830>; else goto <D.24831>;
            <D.24830>:
            if (__result == 0) goto <D.24832>; else goto <D.24833>;
            <D.24832>:
            D.24834 = &MEM[(void *)"--gc=sgen" + 2B];
            D.24835 = *D.24834;
            D.24836 = (int) D.24835;
            D.24837 = __s2 + 2;
            D.24838 = *D.24837;
            D.24839 = (int) D.24838;
            __result = D.24836 - D.24839;
            if (__s2_len > 2) goto <D.24840>; else goto <D.24841>;
            <D.24840>:
            if (__result == 0) goto <D.24842>; else goto <D.24843>;
            <D.24842>:
            D.24844 = &MEM[(void *)"--gc=sgen" + 3B];
            D.24845 = *D.24844;
            D.24846 = (int) D.24845;
            D.24847 = __s2 + 3;
            D.24848 = *D.24847;
            D.24849 = (int) D.24848;
            __result = D.24846 - D.24849;
            <D.24843>:
            <D.24841>:
            <D.24833>:
            <D.24831>:
            <D.24823>:
            <D.24821>:
          }
          D.23383 = __result;
        }
        iftmp.35 = -D.23383;
        goto <D.24850>;
        <D.24814>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.35 = __builtin_strcmp (D.24324, "--gc=sgen");
        <D.24850>:
        D.23384 = iftmp.35;
      }
      if (D.23384 == 0) goto <D.24851>; else goto <D.24852>;
      <D.24851>:
      switch_gc (argv, "sgen");
      goto <D.24853>;
      <D.24852>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.24855>; else goto <D.24856>;
        <D.24855>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24857 = "--gc=boehm";
          D.24858 = MEM[(const unsigned char *)D.24857];
          D.24859 = (int) D.24858;
          D.24860 = *__s2;
          D.24861 = (int) D.24860;
          __result = D.24859 - D.24861;
          {
            if (__s2_len != 0) goto <D.24862>; else goto <D.24863>;
            <D.24862>:
            if (__result == 0) goto <D.24864>; else goto <D.24865>;
            <D.24864>:
            D.24866 = &MEM[(void *)"--gc=boehm" + 1B];
            D.24867 = *D.24866;
            D.24868 = (int) D.24867;
            D.24869 = __s2 + 1;
            D.24870 = *D.24869;
            D.24871 = (int) D.24870;
            __result = D.24868 - D.24871;
            if (__s2_len > 1) goto <D.24872>; else goto <D.24873>;
            <D.24872>:
            if (__result == 0) goto <D.24874>; else goto <D.24875>;
            <D.24874>:
            D.24876 = &MEM[(void *)"--gc=boehm" + 2B];
            D.24877 = *D.24876;
            D.24878 = (int) D.24877;
            D.24879 = __s2 + 2;
            D.24880 = *D.24879;
            D.24881 = (int) D.24880;
            __result = D.24878 - D.24881;
            if (__s2_len > 2) goto <D.24882>; else goto <D.24883>;
            <D.24882>:
            if (__result == 0) goto <D.24884>; else goto <D.24885>;
            <D.24884>:
            D.24886 = &MEM[(void *)"--gc=boehm" + 3B];
            D.24887 = *D.24886;
            D.24888 = (int) D.24887;
            D.24889 = __s2 + 3;
            D.24890 = *D.24889;
            D.24891 = (int) D.24890;
            __result = D.24888 - D.24891;
            <D.24885>:
            <D.24883>:
            <D.24875>:
            <D.24873>:
            <D.24865>:
            <D.24863>:
          }
          D.23392 = __result;
        }
        iftmp.36 = -D.23392;
        goto <D.24892>;
        <D.24856>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.36 = __builtin_strcmp (D.24324, "--gc=boehm");
        <D.24892>:
        D.23393 = iftmp.36;
      }
      if (D.23393 == 0) goto <D.24893>; else goto <D.24894>;
      <D.24893>:
      switch_gc (argv, "boehm");
      goto <D.24895>;
      <D.24894>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 8;
        if (__s2_len <= 3) goto <D.24897>; else goto <D.24898>;
        <D.24897>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24899 = "--config";
          D.24900 = MEM[(const unsigned char *)D.24899];
          D.24901 = (int) D.24900;
          D.24902 = *__s2;
          D.24903 = (int) D.24902;
          __result = D.24901 - D.24903;
          {
            if (__s2_len != 0) goto <D.24904>; else goto <D.24905>;
            <D.24904>:
            if (__result == 0) goto <D.24906>; else goto <D.24907>;
            <D.24906>:
            D.24908 = &MEM[(void *)"--config" + 1B];
            D.24909 = *D.24908;
            D.24910 = (int) D.24909;
            D.24911 = __s2 + 1;
            D.24912 = *D.24911;
            D.24913 = (int) D.24912;
            __result = D.24910 - D.24913;
            if (__s2_len > 1) goto <D.24914>; else goto <D.24915>;
            <D.24914>:
            if (__result == 0) goto <D.24916>; else goto <D.24917>;
            <D.24916>:
            D.24918 = &MEM[(void *)"--config" + 2B];
            D.24919 = *D.24918;
            D.24920 = (int) D.24919;
            D.24921 = __s2 + 2;
            D.24922 = *D.24921;
            D.24923 = (int) D.24922;
            __result = D.24920 - D.24923;
            if (__s2_len > 2) goto <D.24924>; else goto <D.24925>;
            <D.24924>:
            if (__result == 0) goto <D.24926>; else goto <D.24927>;
            <D.24926>:
            D.24928 = &MEM[(void *)"--config" + 3B];
            D.24929 = *D.24928;
            D.24930 = (int) D.24929;
            D.24931 = __s2 + 3;
            D.24932 = *D.24931;
            D.24933 = (int) D.24932;
            __result = D.24930 - D.24933;
            <D.24927>:
            <D.24925>:
            <D.24917>:
            <D.24915>:
            <D.24907>:
            <D.24905>:
          }
          D.23401 = __result;
        }
        iftmp.37 = -D.23401;
        goto <D.24934>;
        <D.24898>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.37 = __builtin_strcmp (D.24324, "--config");
        <D.24934>:
        D.23402 = iftmp.37;
      }
      if (D.23402 == 0) goto <D.24935>; else goto <D.24936>;
      <D.24935>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.24937>; else goto <D.24938>;
      <D.24937>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --config requires a filename argument\n");
      D.24547 = 1;
      return D.24547;
      <D.24938>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      config_file = *D.24323;
      goto <D.24939>;
      <D.24936>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.24941>; else goto <D.24942>;
        <D.24941>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24943 = "--ncompile";
          D.24944 = MEM[(const unsigned char *)D.24943];
          D.24945 = (int) D.24944;
          D.24946 = *__s2;
          D.24947 = (int) D.24946;
          __result = D.24945 - D.24947;
          {
            if (__s2_len != 0) goto <D.24948>; else goto <D.24949>;
            <D.24948>:
            if (__result == 0) goto <D.24950>; else goto <D.24951>;
            <D.24950>:
            D.24952 = &MEM[(void *)"--ncompile" + 1B];
            D.24953 = *D.24952;
            D.24954 = (int) D.24953;
            D.24955 = __s2 + 1;
            D.24956 = *D.24955;
            D.24957 = (int) D.24956;
            __result = D.24954 - D.24957;
            if (__s2_len > 1) goto <D.24958>; else goto <D.24959>;
            <D.24958>:
            if (__result == 0) goto <D.24960>; else goto <D.24961>;
            <D.24960>:
            D.24962 = &MEM[(void *)"--ncompile" + 2B];
            D.24963 = *D.24962;
            D.24964 = (int) D.24963;
            D.24965 = __s2 + 2;
            D.24966 = *D.24965;
            D.24967 = (int) D.24966;
            __result = D.24964 - D.24967;
            if (__s2_len > 2) goto <D.24968>; else goto <D.24969>;
            <D.24968>:
            if (__result == 0) goto <D.24970>; else goto <D.24971>;
            <D.24970>:
            D.24972 = &MEM[(void *)"--ncompile" + 3B];
            D.24973 = *D.24972;
            D.24974 = (int) D.24973;
            D.24975 = __s2 + 3;
            D.24976 = *D.24975;
            D.24977 = (int) D.24976;
            __result = D.24974 - D.24977;
            <D.24971>:
            <D.24969>:
            <D.24961>:
            <D.24959>:
            <D.24951>:
            <D.24949>:
          }
          D.23410 = __result;
        }
        iftmp.38 = -D.23410;
        goto <D.24978>;
        <D.24942>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.38 = __builtin_strcmp (D.24324, "--ncompile");
        <D.24978>:
        D.23411 = iftmp.38;
      }
      if (D.23411 == 0) goto <D.24979>; else goto <D.24980>;
      <D.24979>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.24981>; else goto <D.24982>;
      <D.24981>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --ncompile requires an argument\n");
      D.24547 = 1;
      return D.24547;
      <D.24982>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      count = atoi (D.24324);
      action = 0;
      goto <D.24983>;
      <D.24980>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.24985>; else goto <D.24986>;
        <D.24985>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.24987 = "--trace";
          D.24988 = MEM[(const unsigned char *)D.24987];
          D.24989 = (int) D.24988;
          D.24990 = *__s2;
          D.24991 = (int) D.24990;
          __result = D.24989 - D.24991;
          {
            if (__s2_len != 0) goto <D.24992>; else goto <D.24993>;
            <D.24992>:
            if (__result == 0) goto <D.24994>; else goto <D.24995>;
            <D.24994>:
            D.24996 = &MEM[(void *)"--trace" + 1B];
            D.24997 = *D.24996;
            D.24998 = (int) D.24997;
            D.24999 = __s2 + 1;
            D.25000 = *D.24999;
            D.25001 = (int) D.25000;
            __result = D.24998 - D.25001;
            if (__s2_len > 1) goto <D.25002>; else goto <D.25003>;
            <D.25002>:
            if (__result == 0) goto <D.25004>; else goto <D.25005>;
            <D.25004>:
            D.25006 = &MEM[(void *)"--trace" + 2B];
            D.25007 = *D.25006;
            D.25008 = (int) D.25007;
            D.25009 = __s2 + 2;
            D.25010 = *D.25009;
            D.25011 = (int) D.25010;
            __result = D.25008 - D.25011;
            if (__s2_len > 2) goto <D.25012>; else goto <D.25013>;
            <D.25012>:
            if (__result == 0) goto <D.25014>; else goto <D.25015>;
            <D.25014>:
            D.25016 = &MEM[(void *)"--trace" + 3B];
            D.25017 = *D.25016;
            D.25018 = (int) D.25017;
            D.25019 = __s2 + 3;
            D.25020 = *D.25019;
            D.25021 = (int) D.25020;
            __result = D.25018 - D.25021;
            <D.25015>:
            <D.25013>:
            <D.25005>:
            <D.25003>:
            <D.24995>:
            <D.24993>:
          }
          D.23419 = __result;
        }
        iftmp.39 = -D.23419;
        goto <D.25022>;
        <D.24986>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.39 = __builtin_strcmp (D.24324, "--trace");
        <D.25022>:
        D.23420 = iftmp.39;
      }
      if (D.23420 == 0) goto <D.25023>; else goto <D.25024>;
      <D.25023>:
      trace_options = "";
      goto <D.25025>;
      <D.25024>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25026 = strncmp (D.24324, "--trace=", 8);
      if (D.25026 == 0) goto <D.25027>; else goto <D.25028>;
      <D.25027>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      trace_options = D.24324 + 8;
      goto <D.25029>;
      <D.25028>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 11;
        if (__s2_len <= 3) goto <D.25031>; else goto <D.25032>;
        <D.25031>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25033 = "--breakonex";
          D.25034 = MEM[(const unsigned char *)D.25033];
          D.25035 = (int) D.25034;
          D.25036 = *__s2;
          D.25037 = (int) D.25036;
          __result = D.25035 - D.25037;
          {
            if (__s2_len != 0) goto <D.25038>; else goto <D.25039>;
            <D.25038>:
            if (__result == 0) goto <D.25040>; else goto <D.25041>;
            <D.25040>:
            D.25042 = &MEM[(void *)"--breakonex" + 1B];
            D.25043 = *D.25042;
            D.25044 = (int) D.25043;
            D.25045 = __s2 + 1;
            D.25046 = *D.25045;
            D.25047 = (int) D.25046;
            __result = D.25044 - D.25047;
            if (__s2_len > 1) goto <D.25048>; else goto <D.25049>;
            <D.25048>:
            if (__result == 0) goto <D.25050>; else goto <D.25051>;
            <D.25050>:
            D.25052 = &MEM[(void *)"--breakonex" + 2B];
            D.25053 = *D.25052;
            D.25054 = (int) D.25053;
            D.25055 = __s2 + 2;
            D.25056 = *D.25055;
            D.25057 = (int) D.25056;
            __result = D.25054 - D.25057;
            if (__s2_len > 2) goto <D.25058>; else goto <D.25059>;
            <D.25058>:
            if (__result == 0) goto <D.25060>; else goto <D.25061>;
            <D.25060>:
            D.25062 = &MEM[(void *)"--breakonex" + 3B];
            D.25063 = *D.25062;
            D.25064 = (int) D.25063;
            D.25065 = __s2 + 3;
            D.25066 = *D.25065;
            D.25067 = (int) D.25066;
            __result = D.25064 - D.25067;
            <D.25061>:
            <D.25059>:
            <D.25051>:
            <D.25049>:
            <D.25041>:
            <D.25039>:
          }
          D.23437 = __result;
        }
        iftmp.40 = -D.23437;
        goto <D.25068>;
        <D.25032>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.40 = __builtin_strcmp (D.24324, "--breakonex");
        <D.25068>:
        D.23438 = iftmp.40;
      }
      if (D.23438 == 0) goto <D.25069>; else goto <D.25070>;
      <D.25069>:
      {
        struct MonoDebugOptions * opt;

        opt = mini_get_debug_options ();
        opt->break_on_exc = 1;
      }
      goto <D.25071>;
      <D.25070>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.25073>; else goto <D.25074>;
        <D.25073>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25075 = "--break";
          D.25076 = MEM[(const unsigned char *)D.25075];
          D.25077 = (int) D.25076;
          D.25078 = *__s2;
          D.25079 = (int) D.25078;
          __result = D.25077 - D.25079;
          {
            if (__s2_len != 0) goto <D.25080>; else goto <D.25081>;
            <D.25080>:
            if (__result == 0) goto <D.25082>; else goto <D.25083>;
            <D.25082>:
            D.25084 = &MEM[(void *)"--break" + 1B];
            D.25085 = *D.25084;
            D.25086 = (int) D.25085;
            D.25087 = __s2 + 1;
            D.25088 = *D.25087;
            D.25089 = (int) D.25088;
            __result = D.25086 - D.25089;
            if (__s2_len > 1) goto <D.25090>; else goto <D.25091>;
            <D.25090>:
            if (__result == 0) goto <D.25092>; else goto <D.25093>;
            <D.25092>:
            D.25094 = &MEM[(void *)"--break" + 2B];
            D.25095 = *D.25094;
            D.25096 = (int) D.25095;
            D.25097 = __s2 + 2;
            D.25098 = *D.25097;
            D.25099 = (int) D.25098;
            __result = D.25096 - D.25099;
            if (__s2_len > 2) goto <D.25100>; else goto <D.25101>;
            <D.25100>:
            if (__result == 0) goto <D.25102>; else goto <D.25103>;
            <D.25102>:
            D.25104 = &MEM[(void *)"--break" + 3B];
            D.25105 = *D.25104;
            D.25106 = (int) D.25105;
            D.25107 = __s2 + 3;
            D.25108 = *D.25107;
            D.25109 = (int) D.25108;
            __result = D.25106 - D.25109;
            <D.25103>:
            <D.25101>:
            <D.25093>:
            <D.25091>:
            <D.25083>:
            <D.25081>:
          }
          D.23447 = __result;
        }
        iftmp.41 = -D.23447;
        goto <D.25110>;
        <D.25074>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.41 = __builtin_strcmp (D.24324, "--break");
        <D.25110>:
        D.23448 = iftmp.41;
      }
      if (D.23448 == 0) goto <D.25111>; else goto <D.25112>;
      <D.25111>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.25113>; else goto <D.25114>;
      <D.25113>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Missing method name in --break command line option\n");
      D.24547 = 1;
      return D.24547;
      <D.25114>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25115 = mono_debugger_insert_breakpoint (D.24324, 0);
      if (D.25115 == 0) goto <D.25116>; else goto <D.25117>;
      <D.25116>:
      stderr.33 = stderr;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      fprintf (stderr.33, "Error: invalid method name \'%s\'\n", D.24324);
      <D.25117>:
      goto <D.25118>;
      <D.25112>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 13;
        if (__s2_len <= 3) goto <D.25120>; else goto <D.25121>;
        <D.25120>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25122 = "--break-at-bb";
          D.25123 = MEM[(const unsigned char *)D.25122];
          D.25124 = (int) D.25123;
          D.25125 = *__s2;
          D.25126 = (int) D.25125;
          __result = D.25124 - D.25126;
          {
            if (__s2_len != 0) goto <D.25127>; else goto <D.25128>;
            <D.25127>:
            if (__result == 0) goto <D.25129>; else goto <D.25130>;
            <D.25129>:
            D.25131 = &MEM[(void *)"--break-at-bb" + 1B];
            D.25132 = *D.25131;
            D.25133 = (int) D.25132;
            D.25134 = __s2 + 1;
            D.25135 = *D.25134;
            D.25136 = (int) D.25135;
            __result = D.25133 - D.25136;
            if (__s2_len > 1) goto <D.25137>; else goto <D.25138>;
            <D.25137>:
            if (__result == 0) goto <D.25139>; else goto <D.25140>;
            <D.25139>:
            D.25141 = &MEM[(void *)"--break-at-bb" + 2B];
            D.25142 = *D.25141;
            D.25143 = (int) D.25142;
            D.25144 = __s2 + 2;
            D.25145 = *D.25144;
            D.25146 = (int) D.25145;
            __result = D.25143 - D.25146;
            if (__s2_len > 2) goto <D.25147>; else goto <D.25148>;
            <D.25147>:
            if (__result == 0) goto <D.25149>; else goto <D.25150>;
            <D.25149>:
            D.25151 = &MEM[(void *)"--break-at-bb" + 3B];
            D.25152 = *D.25151;
            D.25153 = (int) D.25152;
            D.25154 = __s2 + 3;
            D.25155 = *D.25154;
            D.25156 = (int) D.25155;
            __result = D.25153 - D.25156;
            <D.25150>:
            <D.25148>:
            <D.25140>:
            <D.25138>:
            <D.25130>:
            <D.25128>:
          }
          D.23456 = __result;
        }
        iftmp.42 = -D.23456;
        goto <D.25157>;
        <D.25121>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.42 = __builtin_strcmp (D.24324, "--break-at-bb");
        <D.25157>:
        D.23457 = iftmp.42;
      }
      if (D.23457 == 0) goto <D.25158>; else goto <D.25159>;
      <D.25158>:
      D.25160 = i + 2;
      if (D.25160 >= argc) goto <D.25161>; else goto <D.25162>;
      <D.25161>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Missing method name or bb num in --break-at-bb command line option.");
      D.24547 = 1;
      return D.24547;
      <D.25162>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      mono_break_at_bb_method.43 = mono_method_desc_new (D.24324, 1);
      mono_break_at_bb_method = mono_break_at_bb_method.43;
      mono_break_at_bb_method.44 = mono_break_at_bb_method;
      if (mono_break_at_bb_method.44 == 0B) goto <D.25165>; else goto <D.25166>;
      <D.25165>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Method name is in a bad format in --break-at-bb command line option.");
      D.24547 = 1;
      return D.24547;
      <D.25166>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      mono_break_at_bb_bb_num.45 = atoi (D.24324);
      mono_break_at_bb_bb_num = mono_break_at_bb_bb_num.45;
      goto <D.25168>;
      <D.25159>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 18;
        if (__s2_len <= 3) goto <D.25170>; else goto <D.25171>;
        <D.25170>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25172 = "--inject-async-exc";
          D.25173 = MEM[(const unsigned char *)D.25172];
          D.25174 = (int) D.25173;
          D.25175 = *__s2;
          D.25176 = (int) D.25175;
          __result = D.25174 - D.25176;
          {
            if (__s2_len != 0) goto <D.25177>; else goto <D.25178>;
            <D.25177>:
            if (__result == 0) goto <D.25179>; else goto <D.25180>;
            <D.25179>:
            D.25181 = &MEM[(void *)"--inject-async-exc" + 1B];
            D.25182 = *D.25181;
            D.25183 = (int) D.25182;
            D.25184 = __s2 + 1;
            D.25185 = *D.25184;
            D.25186 = (int) D.25185;
            __result = D.25183 - D.25186;
            if (__s2_len > 1) goto <D.25187>; else goto <D.25188>;
            <D.25187>:
            if (__result == 0) goto <D.25189>; else goto <D.25190>;
            <D.25189>:
            D.25191 = &MEM[(void *)"--inject-async-exc" + 2B];
            D.25192 = *D.25191;
            D.25193 = (int) D.25192;
            D.25194 = __s2 + 2;
            D.25195 = *D.25194;
            D.25196 = (int) D.25195;
            __result = D.25193 - D.25196;
            if (__s2_len > 2) goto <D.25197>; else goto <D.25198>;
            <D.25197>:
            if (__result == 0) goto <D.25199>; else goto <D.25200>;
            <D.25199>:
            D.25201 = &MEM[(void *)"--inject-async-exc" + 3B];
            D.25202 = *D.25201;
            D.25203 = (int) D.25202;
            D.25204 = __s2 + 3;
            D.25205 = *D.25204;
            D.25206 = (int) D.25205;
            __result = D.25203 - D.25206;
            <D.25200>:
            <D.25198>:
            <D.25190>:
            <D.25188>:
            <D.25180>:
            <D.25178>:
          }
          D.23465 = __result;
        }
        iftmp.46 = -D.23465;
        goto <D.25207>;
        <D.25171>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.46 = __builtin_strcmp (D.24324, "--inject-async-exc");
        <D.25207>:
        D.23466 = iftmp.46;
      }
      if (D.23466 == 0) goto <D.25208>; else goto <D.25209>;
      <D.25208>:
      D.25160 = i + 2;
      if (D.25160 >= argc) goto <D.25210>; else goto <D.25211>;
      <D.25210>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Missing method name or position in --inject-async-exc command line option\n");
      D.24547 = 1;
      return D.24547;
      <D.25211>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      mono_inject_async_exc_method.47 = mono_method_desc_new (D.24324, 1);
      mono_inject_async_exc_method = mono_inject_async_exc_method.47;
      mono_inject_async_exc_method.48 = mono_inject_async_exc_method;
      if (mono_inject_async_exc_method.48 == 0B) goto <D.25214>; else goto <D.25215>;
      <D.25214>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Method name is in a bad format in --inject-async-exc command line option\n");
      D.24547 = 1;
      return D.24547;
      <D.25215>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      mono_inject_async_exc_pos.49 = atoi (D.24324);
      mono_inject_async_exc_pos = mono_inject_async_exc_pos.49;
      goto <D.25217>;
      <D.25209>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.25219>; else goto <D.25220>;
        <D.25219>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25221 = "--verify-all";
          D.25222 = MEM[(const unsigned char *)D.25221];
          D.25223 = (int) D.25222;
          D.25224 = *__s2;
          D.25225 = (int) D.25224;
          __result = D.25223 - D.25225;
          {
            if (__s2_len != 0) goto <D.25226>; else goto <D.25227>;
            <D.25226>:
            if (__result == 0) goto <D.25228>; else goto <D.25229>;
            <D.25228>:
            D.25230 = &MEM[(void *)"--verify-all" + 1B];
            D.25231 = *D.25230;
            D.25232 = (int) D.25231;
            D.25233 = __s2 + 1;
            D.25234 = *D.25233;
            D.25235 = (int) D.25234;
            __result = D.25232 - D.25235;
            if (__s2_len > 1) goto <D.25236>; else goto <D.25237>;
            <D.25236>:
            if (__result == 0) goto <D.25238>; else goto <D.25239>;
            <D.25238>:
            D.25240 = &MEM[(void *)"--verify-all" + 2B];
            D.25241 = *D.25240;
            D.25242 = (int) D.25241;
            D.25243 = __s2 + 2;
            D.25244 = *D.25243;
            D.25245 = (int) D.25244;
            __result = D.25242 - D.25245;
            if (__s2_len > 2) goto <D.25246>; else goto <D.25247>;
            <D.25246>:
            if (__result == 0) goto <D.25248>; else goto <D.25249>;
            <D.25248>:
            D.25250 = &MEM[(void *)"--verify-all" + 3B];
            D.25251 = *D.25250;
            D.25252 = (int) D.25251;
            D.25253 = __s2 + 3;
            D.25254 = *D.25253;
            D.25255 = (int) D.25254;
            __result = D.25252 - D.25255;
            <D.25249>:
            <D.25247>:
            <D.25239>:
            <D.25237>:
            <D.25229>:
            <D.25227>:
          }
          D.23474 = __result;
        }
        iftmp.50 = -D.23474;
        goto <D.25256>;
        <D.25220>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.50 = __builtin_strcmp (D.24324, "--verify-all");
        <D.25256>:
        D.23475 = iftmp.50;
      }
      if (D.23475 == 0) goto <D.25257>; else goto <D.25258>;
      <D.25257>:
      mono_verifier_enable_verify_all ();
      goto <D.25259>;
      <D.25258>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.25261>; else goto <D.25262>;
        <D.25261>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25263 = "--full-aot";
          D.25264 = MEM[(const unsigned char *)D.25263];
          D.25265 = (int) D.25264;
          D.25266 = *__s2;
          D.25267 = (int) D.25266;
          __result = D.25265 - D.25267;
          {
            if (__s2_len != 0) goto <D.25268>; else goto <D.25269>;
            <D.25268>:
            if (__result == 0) goto <D.25270>; else goto <D.25271>;
            <D.25270>:
            D.25272 = &MEM[(void *)"--full-aot" + 1B];
            D.25273 = *D.25272;
            D.25274 = (int) D.25273;
            D.25275 = __s2 + 1;
            D.25276 = *D.25275;
            D.25277 = (int) D.25276;
            __result = D.25274 - D.25277;
            if (__s2_len > 1) goto <D.25278>; else goto <D.25279>;
            <D.25278>:
            if (__result == 0) goto <D.25280>; else goto <D.25281>;
            <D.25280>:
            D.25282 = &MEM[(void *)"--full-aot" + 2B];
            D.25283 = *D.25282;
            D.25284 = (int) D.25283;
            D.25285 = __s2 + 2;
            D.25286 = *D.25285;
            D.25287 = (int) D.25286;
            __result = D.25284 - D.25287;
            if (__s2_len > 2) goto <D.25288>; else goto <D.25289>;
            <D.25288>:
            if (__result == 0) goto <D.25290>; else goto <D.25291>;
            <D.25290>:
            D.25292 = &MEM[(void *)"--full-aot" + 3B];
            D.25293 = *D.25292;
            D.25294 = (int) D.25293;
            D.25295 = __s2 + 3;
            D.25296 = *D.25295;
            D.25297 = (int) D.25296;
            __result = D.25294 - D.25297;
            <D.25291>:
            <D.25289>:
            <D.25281>:
            <D.25279>:
            <D.25271>:
            <D.25269>:
          }
          D.23483 = __result;
        }
        iftmp.51 = -D.23483;
        goto <D.25298>;
        <D.25262>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.51 = __builtin_strcmp (D.24324, "--full-aot");
        <D.25298>:
        D.23484 = iftmp.51;
      }
      if (D.23484 == 0) goto <D.25299>; else goto <D.25300>;
      <D.25299>:
      mono_aot_only = 1;
      goto <D.25301>;
      <D.25300>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 14;
        if (__s2_len <= 3) goto <D.25303>; else goto <D.25304>;
        <D.25303>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25305 = "--print-vtable";
          D.25306 = MEM[(const unsigned char *)D.25305];
          D.25307 = (int) D.25306;
          D.25308 = *__s2;
          D.25309 = (int) D.25308;
          __result = D.25307 - D.25309;
          {
            if (__s2_len != 0) goto <D.25310>; else goto <D.25311>;
            <D.25310>:
            if (__result == 0) goto <D.25312>; else goto <D.25313>;
            <D.25312>:
            D.25314 = &MEM[(void *)"--print-vtable" + 1B];
            D.25315 = *D.25314;
            D.25316 = (int) D.25315;
            D.25317 = __s2 + 1;
            D.25318 = *D.25317;
            D.25319 = (int) D.25318;
            __result = D.25316 - D.25319;
            if (__s2_len > 1) goto <D.25320>; else goto <D.25321>;
            <D.25320>:
            if (__result == 0) goto <D.25322>; else goto <D.25323>;
            <D.25322>:
            D.25324 = &MEM[(void *)"--print-vtable" + 2B];
            D.25325 = *D.25324;
            D.25326 = (int) D.25325;
            D.25327 = __s2 + 2;
            D.25328 = *D.25327;
            D.25329 = (int) D.25328;
            __result = D.25326 - D.25329;
            if (__s2_len > 2) goto <D.25330>; else goto <D.25331>;
            <D.25330>:
            if (__result == 0) goto <D.25332>; else goto <D.25333>;
            <D.25332>:
            D.25334 = &MEM[(void *)"--print-vtable" + 3B];
            D.25335 = *D.25334;
            D.25336 = (int) D.25335;
            D.25337 = __s2 + 3;
            D.25338 = *D.25337;
            D.25339 = (int) D.25338;
            __result = D.25336 - D.25339;
            <D.25333>:
            <D.25331>:
            <D.25323>:
            <D.25321>:
            <D.25313>:
            <D.25311>:
          }
          D.23492 = __result;
        }
        iftmp.52 = -D.23492;
        goto <D.25340>;
        <D.25304>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.52 = __builtin_strcmp (D.24324, "--print-vtable");
        <D.25340>:
        D.23493 = iftmp.52;
      }
      if (D.23493 == 0) goto <D.25341>; else goto <D.25342>;
      <D.25341>:
      mono_print_vtable = 1;
      goto <D.25343>;
      <D.25342>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.25345>; else goto <D.25346>;
        <D.25345>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25347 = "--stats";
          D.25348 = MEM[(const unsigned char *)D.25347];
          D.25349 = (int) D.25348;
          D.25350 = *__s2;
          D.25351 = (int) D.25350;
          __result = D.25349 - D.25351;
          {
            if (__s2_len != 0) goto <D.25352>; else goto <D.25353>;
            <D.25352>:
            if (__result == 0) goto <D.25354>; else goto <D.25355>;
            <D.25354>:
            D.25356 = &MEM[(void *)"--stats" + 1B];
            D.25357 = *D.25356;
            D.25358 = (int) D.25357;
            D.25359 = __s2 + 1;
            D.25360 = *D.25359;
            D.25361 = (int) D.25360;
            __result = D.25358 - D.25361;
            if (__s2_len > 1) goto <D.25362>; else goto <D.25363>;
            <D.25362>:
            if (__result == 0) goto <D.25364>; else goto <D.25365>;
            <D.25364>:
            D.25366 = &MEM[(void *)"--stats" + 2B];
            D.25367 = *D.25366;
            D.25368 = (int) D.25367;
            D.25369 = __s2 + 2;
            D.25370 = *D.25369;
            D.25371 = (int) D.25370;
            __result = D.25368 - D.25371;
            if (__s2_len > 2) goto <D.25372>; else goto <D.25373>;
            <D.25372>:
            if (__result == 0) goto <D.25374>; else goto <D.25375>;
            <D.25374>:
            D.25376 = &MEM[(void *)"--stats" + 3B];
            D.25377 = *D.25376;
            D.25378 = (int) D.25377;
            D.25379 = __s2 + 3;
            D.25380 = *D.25379;
            D.25381 = (int) D.25380;
            __result = D.25378 - D.25381;
            <D.25375>:
            <D.25373>:
            <D.25365>:
            <D.25363>:
            <D.25355>:
            <D.25353>:
          }
          D.23501 = __result;
        }
        iftmp.53 = -D.23501;
        goto <D.25382>;
        <D.25346>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.53 = __builtin_strcmp (D.24324, "--stats");
        <D.25382>:
        D.23502 = iftmp.53;
      }
      if (D.23502 == 0) goto <D.25383>; else goto <D.25384>;
      <D.25383>:
      mono_counters_enable (-1);
      mono_stats.enabled = 1;
      mono_jit_stats.enabled = 1;
      goto <D.25385>;
      <D.25384>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 5;
        if (__s2_len <= 3) goto <D.25387>; else goto <D.25388>;
        <D.25387>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25389 = "--aot";
          D.25390 = MEM[(const unsigned char *)D.25389];
          D.25391 = (int) D.25390;
          D.25392 = *__s2;
          D.25393 = (int) D.25392;
          __result = D.25391 - D.25393;
          {
            if (__s2_len != 0) goto <D.25394>; else goto <D.25395>;
            <D.25394>:
            if (__result == 0) goto <D.25396>; else goto <D.25397>;
            <D.25396>:
            D.25398 = &MEM[(void *)"--aot" + 1B];
            D.25399 = *D.25398;
            D.25400 = (int) D.25399;
            D.25401 = __s2 + 1;
            D.25402 = *D.25401;
            D.25403 = (int) D.25402;
            __result = D.25400 - D.25403;
            if (__s2_len > 1) goto <D.25404>; else goto <D.25405>;
            <D.25404>:
            if (__result == 0) goto <D.25406>; else goto <D.25407>;
            <D.25406>:
            D.25408 = &MEM[(void *)"--aot" + 2B];
            D.25409 = *D.25408;
            D.25410 = (int) D.25409;
            D.25411 = __s2 + 2;
            D.25412 = *D.25411;
            D.25413 = (int) D.25412;
            __result = D.25410 - D.25413;
            if (__s2_len > 2) goto <D.25414>; else goto <D.25415>;
            <D.25414>:
            if (__result == 0) goto <D.25416>; else goto <D.25417>;
            <D.25416>:
            D.25418 = &MEM[(void *)"--aot" + 3B];
            D.25419 = *D.25418;
            D.25420 = (int) D.25419;
            D.25421 = __s2 + 3;
            D.25422 = *D.25421;
            D.25423 = (int) D.25422;
            __result = D.25420 - D.25423;
            <D.25417>:
            <D.25415>:
            <D.25407>:
            <D.25405>:
            <D.25397>:
            <D.25395>:
          }
          D.23510 = __result;
        }
        iftmp.54 = -D.23510;
        goto <D.25424>;
        <D.25388>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.54 = __builtin_strcmp (D.24324, "--aot");
        <D.25424>:
        D.23511 = iftmp.54;
      }
      if (D.23511 == 0) goto <D.25425>; else goto <D.25426>;
      <D.25425>:
      stderr.33 = stderr;
      fprintf (stderr.33, "AOT compilation is not supported on this platform.\n");
      exit (1);
      mono_compile_aot = 1;
      goto <D.25427>;
      <D.25426>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25428 = strncmp (D.24324, "--aot=", 6);
      if (D.25428 == 0) goto <D.25429>; else goto <D.25430>;
      <D.25429>:
      stderr.33 = stderr;
      fprintf (stderr.33, "AOT compilation is not supported on this platform.\n");
      exit (1);
      mono_compile_aot = 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      aot_options = D.24324 + 6;
      goto <D.25431>;
      <D.25430>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25432 = strncmp (D.24324, "--compile-all=", 14);
      if (D.25432 == 0) goto <D.25433>; else goto <D.25434>;
      <D.25433>:
      action = 3;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25435 = D.24324 + 14;
      D.25436 = atoi (D.25435);
      recompilation_times = (guint32) D.25436;
      goto <D.25437>;
      <D.25434>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 13;
        if (__s2_len <= 3) goto <D.25439>; else goto <D.25440>;
        <D.25439>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25441 = "--compile-all";
          D.25442 = MEM[(const unsigned char *)D.25441];
          D.25443 = (int) D.25442;
          D.25444 = *__s2;
          D.25445 = (int) D.25444;
          __result = D.25443 - D.25445;
          {
            if (__s2_len != 0) goto <D.25446>; else goto <D.25447>;
            <D.25446>:
            if (__result == 0) goto <D.25448>; else goto <D.25449>;
            <D.25448>:
            D.25450 = &MEM[(void *)"--compile-all" + 1B];
            D.25451 = *D.25450;
            D.25452 = (int) D.25451;
            D.25453 = __s2 + 1;
            D.25454 = *D.25453;
            D.25455 = (int) D.25454;
            __result = D.25452 - D.25455;
            if (__s2_len > 1) goto <D.25456>; else goto <D.25457>;
            <D.25456>:
            if (__result == 0) goto <D.25458>; else goto <D.25459>;
            <D.25458>:
            D.25460 = &MEM[(void *)"--compile-all" + 2B];
            D.25461 = *D.25460;
            D.25462 = (int) D.25461;
            D.25463 = __s2 + 2;
            D.25464 = *D.25463;
            D.25465 = (int) D.25464;
            __result = D.25462 - D.25465;
            if (__s2_len > 2) goto <D.25466>; else goto <D.25467>;
            <D.25466>:
            if (__result == 0) goto <D.25468>; else goto <D.25469>;
            <D.25468>:
            D.25470 = &MEM[(void *)"--compile-all" + 3B];
            D.25471 = *D.25470;
            D.25472 = (int) D.25471;
            D.25473 = __s2 + 3;
            D.25474 = *D.25473;
            D.25475 = (int) D.25474;
            __result = D.25472 - D.25475;
            <D.25469>:
            <D.25467>:
            <D.25459>:
            <D.25457>:
            <D.25449>:
            <D.25447>:
          }
          D.23537 = __result;
        }
        iftmp.55 = -D.23537;
        goto <D.25476>;
        <D.25440>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.55 = __builtin_strcmp (D.24324, "--compile-all");
        <D.25476>:
        D.23538 = iftmp.55;
      }
      if (D.23538 == 0) goto <D.25477>; else goto <D.25478>;
      <D.25477>:
      action = 3;
      goto <D.25479>;
      <D.25478>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25480 = strncmp (D.24324, "--runtime=", 10);
      if (D.25480 == 0) goto <D.25481>; else goto <D.25482>;
      <D.25481>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      forced_version = D.24324 + 10;
      goto <D.25483>;
      <D.25482>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 8;
        if (__s2_len <= 3) goto <D.25485>; else goto <D.25486>;
        <D.25485>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25487 = "--jitmap";
          D.25488 = MEM[(const unsigned char *)D.25487];
          D.25489 = (int) D.25488;
          D.25490 = *__s2;
          D.25491 = (int) D.25490;
          __result = D.25489 - D.25491;
          {
            if (__s2_len != 0) goto <D.25492>; else goto <D.25493>;
            <D.25492>:
            if (__result == 0) goto <D.25494>; else goto <D.25495>;
            <D.25494>:
            D.25496 = &MEM[(void *)"--jitmap" + 1B];
            D.25497 = *D.25496;
            D.25498 = (int) D.25497;
            D.25499 = __s2 + 1;
            D.25500 = *D.25499;
            D.25501 = (int) D.25500;
            __result = D.25498 - D.25501;
            if (__s2_len > 1) goto <D.25502>; else goto <D.25503>;
            <D.25502>:
            if (__result == 0) goto <D.25504>; else goto <D.25505>;
            <D.25504>:
            D.25506 = &MEM[(void *)"--jitmap" + 2B];
            D.25507 = *D.25506;
            D.25508 = (int) D.25507;
            D.25509 = __s2 + 2;
            D.25510 = *D.25509;
            D.25511 = (int) D.25510;
            __result = D.25508 - D.25511;
            if (__s2_len > 2) goto <D.25512>; else goto <D.25513>;
            <D.25512>:
            if (__result == 0) goto <D.25514>; else goto <D.25515>;
            <D.25514>:
            D.25516 = &MEM[(void *)"--jitmap" + 3B];
            D.25517 = *D.25516;
            D.25518 = (int) D.25517;
            D.25519 = __s2 + 3;
            D.25520 = *D.25519;
            D.25521 = (int) D.25520;
            __result = D.25518 - D.25521;
            <D.25515>:
            <D.25513>:
            <D.25505>:
            <D.25503>:
            <D.25495>:
            <D.25493>:
          }
          D.23555 = __result;
        }
        iftmp.56 = -D.23555;
        goto <D.25522>;
        <D.25486>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.56 = __builtin_strcmp (D.24324, "--jitmap");
        <D.25522>:
        D.23556 = iftmp.56;
      }
      if (D.23556 == 0) goto <D.25523>; else goto <D.25524>;
      <D.25523>:
      mono_enable_jit_map ();
      goto <D.25525>;
      <D.25524>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.25527>; else goto <D.25528>;
        <D.25527>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25529 = "--profile";
          D.25530 = MEM[(const unsigned char *)D.25529];
          D.25531 = (int) D.25530;
          D.25532 = *__s2;
          D.25533 = (int) D.25532;
          __result = D.25531 - D.25533;
          {
            if (__s2_len != 0) goto <D.25534>; else goto <D.25535>;
            <D.25534>:
            if (__result == 0) goto <D.25536>; else goto <D.25537>;
            <D.25536>:
            D.25538 = &MEM[(void *)"--profile" + 1B];
            D.25539 = *D.25538;
            D.25540 = (int) D.25539;
            D.25541 = __s2 + 1;
            D.25542 = *D.25541;
            D.25543 = (int) D.25542;
            __result = D.25540 - D.25543;
            if (__s2_len > 1) goto <D.25544>; else goto <D.25545>;
            <D.25544>:
            if (__result == 0) goto <D.25546>; else goto <D.25547>;
            <D.25546>:
            D.25548 = &MEM[(void *)"--profile" + 2B];
            D.25549 = *D.25548;
            D.25550 = (int) D.25549;
            D.25551 = __s2 + 2;
            D.25552 = *D.25551;
            D.25553 = (int) D.25552;
            __result = D.25550 - D.25553;
            if (__s2_len > 2) goto <D.25554>; else goto <D.25555>;
            <D.25554>:
            if (__result == 0) goto <D.25556>; else goto <D.25557>;
            <D.25556>:
            D.25558 = &MEM[(void *)"--profile" + 3B];
            D.25559 = *D.25558;
            D.25560 = (int) D.25559;
            D.25561 = __s2 + 3;
            D.25562 = *D.25561;
            D.25563 = (int) D.25562;
            __result = D.25560 - D.25563;
            <D.25557>:
            <D.25555>:
            <D.25547>:
            <D.25545>:
            <D.25537>:
            <D.25535>:
          }
          D.23564 = __result;
        }
        iftmp.57 = -D.23564;
        goto <D.25564>;
        <D.25528>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.57 = __builtin_strcmp (D.24324, "--profile");
        <D.25564>:
        D.23565 = iftmp.57;
      }
      if (D.23565 == 0) goto <D.25565>; else goto <D.25566>;
      <D.25565>:
      enable_profile = 1;
      profile_options = 0B;
      goto <D.25567>;
      <D.25566>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25568 = strncmp (D.24324, "--profile=", 10);
      if (D.25568 == 0) goto <D.25569>; else goto <D.25570>;
      <D.25569>:
      enable_profile = 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      profile_options = D.24324 + 10;
      goto <D.25571>;
      <D.25570>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25572 = strncmp (D.24324, "--agent=", 8);
      if (D.25572 == 0) goto <D.25573>; else goto <D.25574>;
      <D.25573>:
      if (agents == 0B) goto <D.25575>; else goto <D.25576>;
      <D.25575>:
      agents = monoeg_g_ptr_array_new ();
      <D.25576>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25577 = D.24324 + 8;
      monoeg_g_ptr_array_add (agents, D.25577);
      goto <D.25578>;
      <D.25574>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25579 = strncmp (D.24324, "--attach=", 9);
      if (D.25579 == 0) goto <D.25580>; else goto <D.25581>;
      <D.25580>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      attach_options = D.24324 + 9;
      goto <D.25582>;
      <D.25581>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.25584>; else goto <D.25585>;
        <D.25584>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25586 = "--compile";
          D.25587 = MEM[(const unsigned char *)D.25586];
          D.25588 = (int) D.25587;
          D.25589 = *__s2;
          D.25590 = (int) D.25589;
          __result = D.25588 - D.25590;
          {
            if (__s2_len != 0) goto <D.25591>; else goto <D.25592>;
            <D.25591>:
            if (__result == 0) goto <D.25593>; else goto <D.25594>;
            <D.25593>:
            D.25595 = &MEM[(void *)"--compile" + 1B];
            D.25596 = *D.25595;
            D.25597 = (int) D.25596;
            D.25598 = __s2 + 1;
            D.25599 = *D.25598;
            D.25600 = (int) D.25599;
            __result = D.25597 - D.25600;
            if (__s2_len > 1) goto <D.25601>; else goto <D.25602>;
            <D.25601>:
            if (__result == 0) goto <D.25603>; else goto <D.25604>;
            <D.25603>:
            D.25605 = &MEM[(void *)"--compile" + 2B];
            D.25606 = *D.25605;
            D.25607 = (int) D.25606;
            D.25608 = __s2 + 2;
            D.25609 = *D.25608;
            D.25610 = (int) D.25609;
            __result = D.25607 - D.25610;
            if (__s2_len > 2) goto <D.25611>; else goto <D.25612>;
            <D.25611>:
            if (__result == 0) goto <D.25613>; else goto <D.25614>;
            <D.25613>:
            D.25615 = &MEM[(void *)"--compile" + 3B];
            D.25616 = *D.25615;
            D.25617 = (int) D.25616;
            D.25618 = __s2 + 3;
            D.25619 = *D.25618;
            D.25620 = (int) D.25619;
            __result = D.25617 - D.25620;
            <D.25614>:
            <D.25612>:
            <D.25604>:
            <D.25602>:
            <D.25594>:
            <D.25592>:
          }
          D.23600 = __result;
        }
        iftmp.58 = -D.23600;
        goto <D.25621>;
        <D.25585>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.58 = __builtin_strcmp (D.24324, "--compile");
        <D.25621>:
        D.23601 = iftmp.58;
      }
      if (D.23601 == 0) goto <D.25622>; else goto <D.25623>;
      <D.25622>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.25624>; else goto <D.25625>;
      <D.25624>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --compile option requires a method name argument\n");
      D.24547 = 1;
      return D.24547;
      <D.25625>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      mname = *D.24323;
      action = 0;
      goto <D.25626>;
      <D.25623>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25627 = strncmp (D.24324, "--graph=", 8);
      if (D.25627 == 0) goto <D.25628>; else goto <D.25629>;
      <D.25628>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.25630>; else goto <D.25631>;
      <D.25630>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --graph option requires a method name argument\n");
      D.24547 = 1;
      return D.24547;
      <D.25631>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25632 = D.24324 + 8;
      mono_graph_options = mono_parse_graph_options (D.25632);
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      mname = *D.24323;
      action = 5;
      goto <D.25633>;
      <D.25629>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.25635>; else goto <D.25636>;
        <D.25635>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25637 = "--graph";
          D.25638 = MEM[(const unsigned char *)D.25637];
          D.25639 = (int) D.25638;
          D.25640 = *__s2;
          D.25641 = (int) D.25640;
          __result = D.25639 - D.25641;
          {
            if (__s2_len != 0) goto <D.25642>; else goto <D.25643>;
            <D.25642>:
            if (__result == 0) goto <D.25644>; else goto <D.25645>;
            <D.25644>:
            D.25646 = &MEM[(void *)"--graph" + 1B];
            D.25647 = *D.25646;
            D.25648 = (int) D.25647;
            D.25649 = __s2 + 1;
            D.25650 = *D.25649;
            D.25651 = (int) D.25650;
            __result = D.25648 - D.25651;
            if (__s2_len > 1) goto <D.25652>; else goto <D.25653>;
            <D.25652>:
            if (__result == 0) goto <D.25654>; else goto <D.25655>;
            <D.25654>:
            D.25656 = &MEM[(void *)"--graph" + 2B];
            D.25657 = *D.25656;
            D.25658 = (int) D.25657;
            D.25659 = __s2 + 2;
            D.25660 = *D.25659;
            D.25661 = (int) D.25660;
            __result = D.25658 - D.25661;
            if (__s2_len > 2) goto <D.25662>; else goto <D.25663>;
            <D.25662>:
            if (__result == 0) goto <D.25664>; else goto <D.25665>;
            <D.25664>:
            D.25666 = &MEM[(void *)"--graph" + 3B];
            D.25667 = *D.25666;
            D.25668 = (int) D.25667;
            D.25669 = __s2 + 3;
            D.25670 = *D.25669;
            D.25671 = (int) D.25670;
            __result = D.25668 - D.25671;
            <D.25665>:
            <D.25663>:
            <D.25655>:
            <D.25653>:
            <D.25645>:
            <D.25643>:
          }
          D.23618 = __result;
        }
        iftmp.59 = -D.23618;
        goto <D.25672>;
        <D.25636>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.59 = __builtin_strcmp (D.24324, "--graph");
        <D.25672>:
        D.23619 = iftmp.59;
      }
      if (D.23619 == 0) goto <D.25673>; else goto <D.25674>;
      <D.25673>:
      D.24796 = i + 1;
      if (D.24796 >= argc) goto <D.25675>; else goto <D.25676>;
      <D.25675>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --graph option requires a method name argument\n");
      D.24547 = 1;
      return D.24547;
      <D.25676>:
      i = i + 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      mname = *D.24323;
      mono_graph_options = 1;
      action = 5;
      goto <D.25677>;
      <D.25674>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.25679>; else goto <D.25680>;
        <D.25679>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25681 = "--debug";
          D.25682 = MEM[(const unsigned char *)D.25681];
          D.25683 = (int) D.25682;
          D.25684 = *__s2;
          D.25685 = (int) D.25684;
          __result = D.25683 - D.25685;
          {
            if (__s2_len != 0) goto <D.25686>; else goto <D.25687>;
            <D.25686>:
            if (__result == 0) goto <D.25688>; else goto <D.25689>;
            <D.25688>:
            D.25690 = &MEM[(void *)"--debug" + 1B];
            D.25691 = *D.25690;
            D.25692 = (int) D.25691;
            D.25693 = __s2 + 1;
            D.25694 = *D.25693;
            D.25695 = (int) D.25694;
            __result = D.25692 - D.25695;
            if (__s2_len > 1) goto <D.25696>; else goto <D.25697>;
            <D.25696>:
            if (__result == 0) goto <D.25698>; else goto <D.25699>;
            <D.25698>:
            D.25700 = &MEM[(void *)"--debug" + 2B];
            D.25701 = *D.25700;
            D.25702 = (int) D.25701;
            D.25703 = __s2 + 2;
            D.25704 = *D.25703;
            D.25705 = (int) D.25704;
            __result = D.25702 - D.25705;
            if (__s2_len > 2) goto <D.25706>; else goto <D.25707>;
            <D.25706>:
            if (__result == 0) goto <D.25708>; else goto <D.25709>;
            <D.25708>:
            D.25710 = &MEM[(void *)"--debug" + 3B];
            D.25711 = *D.25710;
            D.25712 = (int) D.25711;
            D.25713 = __s2 + 3;
            D.25714 = *D.25713;
            D.25715 = (int) D.25714;
            __result = D.25712 - D.25715;
            <D.25709>:
            <D.25707>:
            <D.25699>:
            <D.25697>:
            <D.25689>:
            <D.25687>:
          }
          D.23627 = __result;
        }
        iftmp.60 = -D.23627;
        goto <D.25716>;
        <D.25680>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.60 = __builtin_strcmp (D.24324, "--debug");
        <D.25716>:
        D.23628 = iftmp.60;
      }
      if (D.23628 == 0) goto <D.25717>; else goto <D.25718>;
      <D.25717>:
      enable_debugging = 1;
      goto <D.25719>;
      <D.25718>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25720 = strncmp (D.24324, "--debug=", 8);
      if (D.25720 == 0) goto <D.25721>; else goto <D.25722>;
      <D.25721>:
      enable_debugging = 1;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25632 = D.24324 + 8;
      D.25723 = parse_debug_options (D.25632);
      if (D.25723 == 0) goto <D.25724>; else goto <D.25725>;
      <D.25724>:
      D.24547 = 1;
      return D.24547;
      <D.25725>:
      goto <D.25726>;
      <D.25722>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25727 = strncmp (D.24324, "--debugger-agent=", 17);
      if (D.25727 == 0) goto <D.25728>; else goto <D.25729>;
      <D.25728>:
      {
        struct MonoDebugOptions * opt;

        opt = mini_get_debug_options ();
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.25730 = D.24324 + 17;
        mono_debugger_agent_parse_options (D.25730);
        opt->mdb_optimizations = 1;
        enable_debugging = 1;
      }
      goto <D.25731>;
      <D.25729>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.25733>; else goto <D.25734>;
        <D.25733>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.25735 = "--security";
          D.25736 = MEM[(const unsigned char *)D.25735];
          D.25737 = (int) D.25736;
          D.25738 = *__s2;
          D.25739 = (int) D.25738;
          __result = D.25737 - D.25739;
          {
            if (__s2_len != 0) goto <D.25740>; else goto <D.25741>;
            <D.25740>:
            if (__result == 0) goto <D.25742>; else goto <D.25743>;
            <D.25742>:
            D.25744 = &MEM[(void *)"--security" + 1B];
            D.25745 = *D.25744;
            D.25746 = (int) D.25745;
            D.25747 = __s2 + 1;
            D.25748 = *D.25747;
            D.25749 = (int) D.25748;
            __result = D.25746 - D.25749;
            if (__s2_len > 1) goto <D.25750>; else goto <D.25751>;
            <D.25750>:
            if (__result == 0) goto <D.25752>; else goto <D.25753>;
            <D.25752>:
            D.25754 = &MEM[(void *)"--security" + 2B];
            D.25755 = *D.25754;
            D.25756 = (int) D.25755;
            D.25757 = __s2 + 2;
            D.25758 = *D.25757;
            D.25759 = (int) D.25758;
            __result = D.25756 - D.25759;
            if (__s2_len > 2) goto <D.25760>; else goto <D.25761>;
            <D.25760>:
            if (__result == 0) goto <D.25762>; else goto <D.25763>;
            <D.25762>:
            D.25764 = &MEM[(void *)"--security" + 3B];
            D.25765 = *D.25764;
            D.25766 = (int) D.25765;
            D.25767 = __s2 + 3;
            D.25768 = *D.25767;
            D.25769 = (int) D.25768;
            __result = D.25766 - D.25769;
            <D.25763>:
            <D.25761>:
            <D.25753>:
            <D.25751>:
            <D.25743>:
            <D.25741>:
          }
          D.23655 = __result;
        }
        iftmp.61 = -D.23655;
        goto <D.25770>;
        <D.25734>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.61 = __builtin_strcmp (D.24324, "--security");
        <D.25770>:
        D.23656 = iftmp.61;
      }
      if (D.23656 == 0) goto <D.25771>; else goto <D.25772>;
      <D.25771>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (2);
      mono_activate_security_manager ();
      goto <D.25773>;
      <D.25772>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.25774 = strncmp (D.24324, "--security=", 11);
      if (D.25774 == 0) goto <D.25775>; else goto <D.25776>;
      <D.25775>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 19;
        if (__s2_len <= 3) goto <D.25778>; else goto <D.25779>;
        <D.25778>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25780 = "temporary-smcs-hack";
          D.25781 = MEM[(const unsigned char *)D.25780];
          D.25782 = (int) D.25781;
          D.25783 = *__s2;
          D.25784 = (int) D.25783;
          __result = D.25782 - D.25784;
          {
            if (__s2_len != 0) goto <D.25785>; else goto <D.25786>;
            <D.25785>:
            if (__result == 0) goto <D.25787>; else goto <D.25788>;
            <D.25787>:
            D.25789 = &MEM[(void *)"temporary-smcs-hack" + 1B];
            D.25790 = *D.25789;
            D.25791 = (int) D.25790;
            D.25792 = __s2 + 1;
            D.25793 = *D.25792;
            D.25794 = (int) D.25793;
            __result = D.25791 - D.25794;
            if (__s2_len > 1) goto <D.25795>; else goto <D.25796>;
            <D.25795>:
            if (__result == 0) goto <D.25797>; else goto <D.25798>;
            <D.25797>:
            D.25799 = &MEM[(void *)"temporary-smcs-hack" + 2B];
            D.25800 = *D.25799;
            D.25801 = (int) D.25800;
            D.25802 = __s2 + 2;
            D.25803 = *D.25802;
            D.25804 = (int) D.25803;
            __result = D.25801 - D.25804;
            if (__s2_len > 2) goto <D.25805>; else goto <D.25806>;
            <D.25805>:
            if (__result == 0) goto <D.25807>; else goto <D.25808>;
            <D.25807>:
            D.25809 = &MEM[(void *)"temporary-smcs-hack" + 3B];
            D.25810 = *D.25809;
            D.25811 = (int) D.25810;
            D.25812 = __s2 + 3;
            D.25813 = *D.25812;
            D.25814 = (int) D.25813;
            __result = D.25811 - D.25814;
            <D.25808>:
            <D.25806>:
            <D.25798>:
            <D.25796>:
            <D.25788>:
            <D.25786>:
          }
          D.23673 = __result;
        }
        iftmp.62 = -D.23673;
        goto <D.25815>;
        <D.25779>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.62 = __builtin_strcmp (D.24805, "temporary-smcs-hack");
        <D.25815>:
        D.23674 = iftmp.62;
      }
      if (D.23674 == 0) goto <D.25816>; else goto <D.25817>;
      <D.25816>:
      mono_security_set_mode (3);
      goto <D.25818>;
      <D.25817>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 8;
        if (__s2_len <= 3) goto <D.25820>; else goto <D.25821>;
        <D.25820>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25822 = "core-clr";
          D.25823 = MEM[(const unsigned char *)D.25822];
          D.25824 = (int) D.25823;
          D.25825 = *__s2;
          D.25826 = (int) D.25825;
          __result = D.25824 - D.25826;
          {
            if (__s2_len != 0) goto <D.25827>; else goto <D.25828>;
            <D.25827>:
            if (__result == 0) goto <D.25829>; else goto <D.25830>;
            <D.25829>:
            D.25831 = &MEM[(void *)"core-clr" + 1B];
            D.25832 = *D.25831;
            D.25833 = (int) D.25832;
            D.25834 = __s2 + 1;
            D.25835 = *D.25834;
            D.25836 = (int) D.25835;
            __result = D.25833 - D.25836;
            if (__s2_len > 1) goto <D.25837>; else goto <D.25838>;
            <D.25837>:
            if (__result == 0) goto <D.25839>; else goto <D.25840>;
            <D.25839>:
            D.25841 = &MEM[(void *)"core-clr" + 2B];
            D.25842 = *D.25841;
            D.25843 = (int) D.25842;
            D.25844 = __s2 + 2;
            D.25845 = *D.25844;
            D.25846 = (int) D.25845;
            __result = D.25843 - D.25846;
            if (__s2_len > 2) goto <D.25847>; else goto <D.25848>;
            <D.25847>:
            if (__result == 0) goto <D.25849>; else goto <D.25850>;
            <D.25849>:
            D.25851 = &MEM[(void *)"core-clr" + 3B];
            D.25852 = *D.25851;
            D.25853 = (int) D.25852;
            D.25854 = __s2 + 3;
            D.25855 = *D.25854;
            D.25856 = (int) D.25855;
            __result = D.25853 - D.25856;
            <D.25850>:
            <D.25848>:
            <D.25840>:
            <D.25838>:
            <D.25830>:
            <D.25828>:
          }
          D.23682 = __result;
        }
        iftmp.63 = -D.23682;
        goto <D.25857>;
        <D.25821>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.63 = __builtin_strcmp (D.24805, "core-clr");
        <D.25857>:
        D.23683 = iftmp.63;
      }
      if (D.23683 == 0) goto <D.25858>; else goto <D.25859>;
      <D.25858>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (1);
      goto <D.25860>;
      <D.25859>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 13;
        if (__s2_len <= 3) goto <D.25862>; else goto <D.25863>;
        <D.25862>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25864 = "core-clr-test";
          D.25865 = MEM[(const unsigned char *)D.25864];
          D.25866 = (int) D.25865;
          D.25867 = *__s2;
          D.25868 = (int) D.25867;
          __result = D.25866 - D.25868;
          {
            if (__s2_len != 0) goto <D.25869>; else goto <D.25870>;
            <D.25869>:
            if (__result == 0) goto <D.25871>; else goto <D.25872>;
            <D.25871>:
            D.25873 = &MEM[(void *)"core-clr-test" + 1B];
            D.25874 = *D.25873;
            D.25875 = (int) D.25874;
            D.25876 = __s2 + 1;
            D.25877 = *D.25876;
            D.25878 = (int) D.25877;
            __result = D.25875 - D.25878;
            if (__s2_len > 1) goto <D.25879>; else goto <D.25880>;
            <D.25879>:
            if (__result == 0) goto <D.25881>; else goto <D.25882>;
            <D.25881>:
            D.25883 = &MEM[(void *)"core-clr-test" + 2B];
            D.25884 = *D.25883;
            D.25885 = (int) D.25884;
            D.25886 = __s2 + 2;
            D.25887 = *D.25886;
            D.25888 = (int) D.25887;
            __result = D.25885 - D.25888;
            if (__s2_len > 2) goto <D.25889>; else goto <D.25890>;
            <D.25889>:
            if (__result == 0) goto <D.25891>; else goto <D.25892>;
            <D.25891>:
            D.25893 = &MEM[(void *)"core-clr-test" + 3B];
            D.25894 = *D.25893;
            D.25895 = (int) D.25894;
            D.25896 = __s2 + 3;
            D.25897 = *D.25896;
            D.25898 = (int) D.25897;
            __result = D.25895 - D.25898;
            <D.25892>:
            <D.25890>:
            <D.25882>:
            <D.25880>:
            <D.25872>:
            <D.25870>:
          }
          D.23691 = __result;
        }
        iftmp.64 = -D.23691;
        goto <D.25899>;
        <D.25863>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.64 = __builtin_strcmp (D.24805, "core-clr-test");
        <D.25899>:
        D.23692 = iftmp.64;
      }
      if (D.23692 == 0) goto <D.25900>; else goto <D.25901>;
      <D.25900>:
      mono_security_set_mode (1);
      mono_security_core_clr_test = 1;
      goto <D.25902>;
      <D.25901>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 3;
        if (__s2_len <= 3) goto <D.25904>; else goto <D.25905>;
        <D.25904>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25906 = "cas";
          D.25907 = MEM[(const unsigned char *)D.25906];
          D.25908 = (int) D.25907;
          D.25909 = *__s2;
          D.25910 = (int) D.25909;
          __result = D.25908 - D.25910;
          {
            if (__s2_len != 0) goto <D.25911>; else goto <D.25912>;
            <D.25911>:
            if (__result == 0) goto <D.25913>; else goto <D.25914>;
            <D.25913>:
            D.25915 = &MEM[(void *)"cas" + 1B];
            D.25916 = *D.25915;
            D.25917 = (int) D.25916;
            D.25918 = __s2 + 1;
            D.25919 = *D.25918;
            D.25920 = (int) D.25919;
            __result = D.25917 - D.25920;
            if (__s2_len > 1) goto <D.25921>; else goto <D.25922>;
            <D.25921>:
            if (__result == 0) goto <D.25923>; else goto <D.25924>;
            <D.25923>:
            D.25925 = &MEM[(void *)"cas" + 2B];
            D.25926 = *D.25925;
            D.25927 = (int) D.25926;
            D.25928 = __s2 + 2;
            D.25929 = *D.25928;
            D.25930 = (int) D.25929;
            __result = D.25927 - D.25930;
            if (__s2_len > 2) goto <D.25931>; else goto <D.25932>;
            <D.25931>:
            if (__result == 0) goto <D.25933>; else goto <D.25934>;
            <D.25933>:
            D.25935 = &MEM[(void *)"cas" + 3B];
            D.25936 = *D.25935;
            D.25937 = (int) D.25936;
            D.25938 = __s2 + 3;
            D.25939 = *D.25938;
            D.25940 = (int) D.25939;
            __result = D.25937 - D.25940;
            <D.25934>:
            <D.25932>:
            <D.25924>:
            <D.25922>:
            <D.25914>:
            <D.25912>:
          }
          D.23700 = __result;
        }
        iftmp.65 = -D.23700;
        goto <D.25941>;
        <D.25905>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.65 = __builtin_strcmp (D.24805, "cas");
        <D.25941>:
        D.23701 = iftmp.65;
      }
      if (D.23701 == 0) goto <D.25942>; else goto <D.25943>;
      <D.25942>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (2);
      mono_activate_security_manager ();
      goto <D.25944>;
      <D.25943>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.25946>; else goto <D.25947>;
        <D.25946>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25948 = "validil";
          D.25949 = MEM[(const unsigned char *)D.25948];
          D.25950 = (int) D.25949;
          D.25951 = *__s2;
          D.25952 = (int) D.25951;
          __result = D.25950 - D.25952;
          {
            if (__s2_len != 0) goto <D.25953>; else goto <D.25954>;
            <D.25953>:
            if (__result == 0) goto <D.25955>; else goto <D.25956>;
            <D.25955>:
            D.25957 = &MEM[(void *)"validil" + 1B];
            D.25958 = *D.25957;
            D.25959 = (int) D.25958;
            D.25960 = __s2 + 1;
            D.25961 = *D.25960;
            D.25962 = (int) D.25961;
            __result = D.25959 - D.25962;
            if (__s2_len > 1) goto <D.25963>; else goto <D.25964>;
            <D.25963>:
            if (__result == 0) goto <D.25965>; else goto <D.25966>;
            <D.25965>:
            D.25967 = &MEM[(void *)"validil" + 2B];
            D.25968 = *D.25967;
            D.25969 = (int) D.25968;
            D.25970 = __s2 + 2;
            D.25971 = *D.25970;
            D.25972 = (int) D.25971;
            __result = D.25969 - D.25972;
            if (__s2_len > 2) goto <D.25973>; else goto <D.25974>;
            <D.25973>:
            if (__result == 0) goto <D.25975>; else goto <D.25976>;
            <D.25975>:
            D.25977 = &MEM[(void *)"validil" + 3B];
            D.25978 = *D.25977;
            D.25979 = (int) D.25978;
            D.25980 = __s2 + 3;
            D.25981 = *D.25980;
            D.25982 = (int) D.25981;
            __result = D.25979 - D.25982;
            <D.25976>:
            <D.25974>:
            <D.25966>:
            <D.25964>:
            <D.25956>:
            <D.25954>:
          }
          D.23709 = __result;
        }
        iftmp.66 = -D.23709;
        goto <D.25983>;
        <D.25947>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.66 = __builtin_strcmp (D.24805, "validil");
        <D.25983>:
        D.23710 = iftmp.66;
      }
      if (D.23710 == 0) goto <D.25984>; else goto <D.25985>;
      <D.25984>:
      mono_verifier_set_mode (1);
      goto <D.25986>;
      <D.25985>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 10;
        if (__s2_len <= 3) goto <D.25988>; else goto <D.25989>;
        <D.25988>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 11;
          D.25990 = "verifiable";
          D.25991 = MEM[(const unsigned char *)D.25990];
          D.25992 = (int) D.25991;
          D.25993 = *__s2;
          D.25994 = (int) D.25993;
          __result = D.25992 - D.25994;
          {
            if (__s2_len != 0) goto <D.25995>; else goto <D.25996>;
            <D.25995>:
            if (__result == 0) goto <D.25997>; else goto <D.25998>;
            <D.25997>:
            D.25999 = &MEM[(void *)"verifiable" + 1B];
            D.26000 = *D.25999;
            D.26001 = (int) D.26000;
            D.26002 = __s2 + 1;
            D.26003 = *D.26002;
            D.26004 = (int) D.26003;
            __result = D.26001 - D.26004;
            if (__s2_len > 1) goto <D.26005>; else goto <D.26006>;
            <D.26005>:
            if (__result == 0) goto <D.26007>; else goto <D.26008>;
            <D.26007>:
            D.26009 = &MEM[(void *)"verifiable" + 2B];
            D.26010 = *D.26009;
            D.26011 = (int) D.26010;
            D.26012 = __s2 + 2;
            D.26013 = *D.26012;
            D.26014 = (int) D.26013;
            __result = D.26011 - D.26014;
            if (__s2_len > 2) goto <D.26015>; else goto <D.26016>;
            <D.26015>:
            if (__result == 0) goto <D.26017>; else goto <D.26018>;
            <D.26017>:
            D.26019 = &MEM[(void *)"verifiable" + 3B];
            D.26020 = *D.26019;
            D.26021 = (int) D.26020;
            D.26022 = __s2 + 3;
            D.26023 = *D.26022;
            D.26024 = (int) D.26023;
            __result = D.26021 - D.26024;
            <D.26018>:
            <D.26016>:
            <D.26008>:
            <D.26006>:
            <D.25998>:
            <D.25996>:
          }
          D.23718 = __result;
        }
        iftmp.67 = -D.23718;
        goto <D.26025>;
        <D.25989>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.24805 = D.24324 + 11;
        iftmp.67 = __builtin_strcmp (D.24805, "verifiable");
        <D.26025>:
        D.23719 = iftmp.67;
      }
      if (D.23719 == 0) goto <D.26026>; else goto <D.26027>;
      <D.26026>:
      mono_verifier_set_mode (2);
      goto <D.26028>;
      <D.26027>:
      stderr.33 = stderr;
      fprintf (stderr.33, "error: --security= option has invalid argument (cas, core-clr, verifiable or validil)\n");
      D.24547 = 1;
      return D.24547;
      <D.26028>:
      <D.25986>:
      <D.25944>:
      <D.25902>:
      <D.25860>:
      <D.25818>:
      goto <D.26029>;
      <D.25776>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 9;
        if (__s2_len <= 3) goto <D.26031>; else goto <D.26032>;
        <D.26031>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26033 = "--desktop";
          D.26034 = MEM[(const unsigned char *)D.26033];
          D.26035 = (int) D.26034;
          D.26036 = *__s2;
          D.26037 = (int) D.26036;
          __result = D.26035 - D.26037;
          {
            if (__s2_len != 0) goto <D.26038>; else goto <D.26039>;
            <D.26038>:
            if (__result == 0) goto <D.26040>; else goto <D.26041>;
            <D.26040>:
            D.26042 = &MEM[(void *)"--desktop" + 1B];
            D.26043 = *D.26042;
            D.26044 = (int) D.26043;
            D.26045 = __s2 + 1;
            D.26046 = *D.26045;
            D.26047 = (int) D.26046;
            __result = D.26044 - D.26047;
            if (__s2_len > 1) goto <D.26048>; else goto <D.26049>;
            <D.26048>:
            if (__result == 0) goto <D.26050>; else goto <D.26051>;
            <D.26050>:
            D.26052 = &MEM[(void *)"--desktop" + 2B];
            D.26053 = *D.26052;
            D.26054 = (int) D.26053;
            D.26055 = __s2 + 2;
            D.26056 = *D.26055;
            D.26057 = (int) D.26056;
            __result = D.26054 - D.26057;
            if (__s2_len > 2) goto <D.26058>; else goto <D.26059>;
            <D.26058>:
            if (__result == 0) goto <D.26060>; else goto <D.26061>;
            <D.26060>:
            D.26062 = &MEM[(void *)"--desktop" + 3B];
            D.26063 = *D.26062;
            D.26064 = (int) D.26063;
            D.26065 = __s2 + 3;
            D.26066 = *D.26065;
            D.26067 = (int) D.26066;
            __result = D.26064 - D.26067;
            <D.26061>:
            <D.26059>:
            <D.26051>:
            <D.26049>:
            <D.26041>:
            <D.26039>:
          }
          D.23727 = __result;
        }
        iftmp.68 = -D.23727;
        goto <D.26068>;
        <D.26032>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.68 = __builtin_strcmp (D.24324, "--desktop");
        <D.26068>:
        D.23728 = iftmp.68;
      }
      if (D.23728 == 0) goto <D.26069>; else goto <D.26070>;
      <D.26069>:
      mono_gc_set_desktop_mode ();
      goto <D.26071>;
      <D.26070>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 8;
        if (__s2_len <= 3) goto <D.26073>; else goto <D.26074>;
        <D.26073>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26075 = "--server";
          D.26076 = MEM[(const unsigned char *)D.26075];
          D.26077 = (int) D.26076;
          D.26078 = *__s2;
          D.26079 = (int) D.26078;
          __result = D.26077 - D.26079;
          {
            if (__s2_len != 0) goto <D.26080>; else goto <D.26081>;
            <D.26080>:
            if (__result == 0) goto <D.26082>; else goto <D.26083>;
            <D.26082>:
            D.26084 = &MEM[(void *)"--server" + 1B];
            D.26085 = *D.26084;
            D.26086 = (int) D.26085;
            D.26087 = __s2 + 1;
            D.26088 = *D.26087;
            D.26089 = (int) D.26088;
            __result = D.26086 - D.26089;
            if (__s2_len > 1) goto <D.26090>; else goto <D.26091>;
            <D.26090>:
            if (__result == 0) goto <D.26092>; else goto <D.26093>;
            <D.26092>:
            D.26094 = &MEM[(void *)"--server" + 2B];
            D.26095 = *D.26094;
            D.26096 = (int) D.26095;
            D.26097 = __s2 + 2;
            D.26098 = *D.26097;
            D.26099 = (int) D.26098;
            __result = D.26096 - D.26099;
            if (__s2_len > 2) goto <D.26100>; else goto <D.26101>;
            <D.26100>:
            if (__result == 0) goto <D.26102>; else goto <D.26103>;
            <D.26102>:
            D.26104 = &MEM[(void *)"--server" + 3B];
            D.26105 = *D.26104;
            D.26106 = (int) D.26105;
            D.26107 = __s2 + 3;
            D.26108 = *D.26107;
            D.26109 = (int) D.26108;
            __result = D.26106 - D.26109;
            <D.26103>:
            <D.26101>:
            <D.26093>:
            <D.26091>:
            <D.26083>:
            <D.26081>:
          }
          D.23736 = __result;
        }
        iftmp.69 = -D.23736;
        goto <D.26110>;
        <D.26074>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.69 = __builtin_strcmp (D.24324, "--server");
        <D.26110>:
        D.23737 = iftmp.69;
      }
      if (D.23737 == 0) goto <D.26111>; else goto <D.26112>;
      <D.26111>:
      mono_config_set_server_mode (1);
      goto <D.26113>;
      <D.26112>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 12;
        if (__s2_len <= 3) goto <D.26115>; else goto <D.26116>;
        <D.26115>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26117 = "--inside-mdb";
          D.26118 = MEM[(const unsigned char *)D.26117];
          D.26119 = (int) D.26118;
          D.26120 = *__s2;
          D.26121 = (int) D.26120;
          __result = D.26119 - D.26121;
          {
            if (__s2_len != 0) goto <D.26122>; else goto <D.26123>;
            <D.26122>:
            if (__result == 0) goto <D.26124>; else goto <D.26125>;
            <D.26124>:
            D.26126 = &MEM[(void *)"--inside-mdb" + 1B];
            D.26127 = *D.26126;
            D.26128 = (int) D.26127;
            D.26129 = __s2 + 1;
            D.26130 = *D.26129;
            D.26131 = (int) D.26130;
            __result = D.26128 - D.26131;
            if (__s2_len > 1) goto <D.26132>; else goto <D.26133>;
            <D.26132>:
            if (__result == 0) goto <D.26134>; else goto <D.26135>;
            <D.26134>:
            D.26136 = &MEM[(void *)"--inside-mdb" + 2B];
            D.26137 = *D.26136;
            D.26138 = (int) D.26137;
            D.26139 = __s2 + 2;
            D.26140 = *D.26139;
            D.26141 = (int) D.26140;
            __result = D.26138 - D.26141;
            if (__s2_len > 2) goto <D.26142>; else goto <D.26143>;
            <D.26142>:
            if (__result == 0) goto <D.26144>; else goto <D.26145>;
            <D.26144>:
            D.26146 = &MEM[(void *)"--inside-mdb" + 3B];
            D.26147 = *D.26146;
            D.26148 = (int) D.26147;
            D.26149 = __s2 + 3;
            D.26150 = *D.26149;
            D.26151 = (int) D.26150;
            __result = D.26148 - D.26151;
            <D.26145>:
            <D.26143>:
            <D.26135>:
            <D.26133>:
            <D.26125>:
            <D.26123>:
          }
          D.23745 = __result;
        }
        iftmp.70 = -D.23745;
        goto <D.26152>;
        <D.26116>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.70 = __builtin_strcmp (D.24324, "--inside-mdb");
        <D.26152>:
        D.23746 = iftmp.70;
      }
      if (D.23746 == 0) goto <D.26153>; else goto <D.26154>;
      <D.26153>:
      action = 6;
      goto <D.26155>;
      <D.26154>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      D.26156 = strncmp (D.24324, "--wapi=", 7);
      if (D.26156 == 0) goto <D.26157>; else goto <D.26158>;
      <D.26157>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 3;
        if (__s2_len <= 3) goto <D.26160>; else goto <D.26161>;
        <D.26160>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 7;
          D.26162 = "hps";
          D.26163 = MEM[(const unsigned char *)D.26162];
          D.26164 = (int) D.26163;
          D.26165 = *__s2;
          D.26166 = (int) D.26165;
          __result = D.26164 - D.26166;
          {
            if (__s2_len != 0) goto <D.26167>; else goto <D.26168>;
            <D.26167>:
            if (__result == 0) goto <D.26169>; else goto <D.26170>;
            <D.26169>:
            D.26171 = &MEM[(void *)"hps" + 1B];
            D.26172 = *D.26171;
            D.26173 = (int) D.26172;
            D.26174 = __s2 + 1;
            D.26175 = *D.26174;
            D.26176 = (int) D.26175;
            __result = D.26173 - D.26176;
            if (__s2_len > 1) goto <D.26177>; else goto <D.26178>;
            <D.26177>:
            if (__result == 0) goto <D.26179>; else goto <D.26180>;
            <D.26179>:
            D.26181 = &MEM[(void *)"hps" + 2B];
            D.26182 = *D.26181;
            D.26183 = (int) D.26182;
            D.26184 = __s2 + 2;
            D.26185 = *D.26184;
            D.26186 = (int) D.26185;
            __result = D.26183 - D.26186;
            if (__s2_len > 2) goto <D.26187>; else goto <D.26188>;
            <D.26187>:
            if (__result == 0) goto <D.26189>; else goto <D.26190>;
            <D.26189>:
            D.26191 = &MEM[(void *)"hps" + 3B];
            D.26192 = *D.26191;
            D.26193 = (int) D.26192;
            D.26194 = __s2 + 3;
            D.26195 = *D.26194;
            D.26196 = (int) D.26195;
            __result = D.26193 - D.26196;
            <D.26190>:
            <D.26188>:
            <D.26180>:
            <D.26178>:
            <D.26170>:
            <D.26168>:
          }
          D.23763 = __result;
        }
        iftmp.71 = -D.23763;
        goto <D.26197>;
        <D.26161>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.26198 = D.24324 + 7;
        iftmp.71 = __builtin_strcmp (D.26198, "hps");
        <D.26197>:
        D.23764 = iftmp.71;
      }
      if (D.23764 == 0) goto <D.26199>; else goto <D.26200>;
      <D.26199>:
      D.26201 = argc - i;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24547 = mini_wapi_hps (D.26201, D.24323);
      return D.24547;
      <D.26200>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 6;
        if (__s2_len <= 3) goto <D.26203>; else goto <D.26204>;
        <D.26203>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 7;
          D.26205 = "semdel";
          D.26206 = MEM[(const unsigned char *)D.26205];
          D.26207 = (int) D.26206;
          D.26208 = *__s2;
          D.26209 = (int) D.26208;
          __result = D.26207 - D.26209;
          {
            if (__s2_len != 0) goto <D.26210>; else goto <D.26211>;
            <D.26210>:
            if (__result == 0) goto <D.26212>; else goto <D.26213>;
            <D.26212>:
            D.26214 = &MEM[(void *)"semdel" + 1B];
            D.26215 = *D.26214;
            D.26216 = (int) D.26215;
            D.26217 = __s2 + 1;
            D.26218 = *D.26217;
            D.26219 = (int) D.26218;
            __result = D.26216 - D.26219;
            if (__s2_len > 1) goto <D.26220>; else goto <D.26221>;
            <D.26220>:
            if (__result == 0) goto <D.26222>; else goto <D.26223>;
            <D.26222>:
            D.26224 = &MEM[(void *)"semdel" + 2B];
            D.26225 = *D.26224;
            D.26226 = (int) D.26225;
            D.26227 = __s2 + 2;
            D.26228 = *D.26227;
            D.26229 = (int) D.26228;
            __result = D.26226 - D.26229;
            if (__s2_len > 2) goto <D.26230>; else goto <D.26231>;
            <D.26230>:
            if (__result == 0) goto <D.26232>; else goto <D.26233>;
            <D.26232>:
            D.26234 = &MEM[(void *)"semdel" + 3B];
            D.26235 = *D.26234;
            D.26236 = (int) D.26235;
            D.26237 = __s2 + 3;
            D.26238 = *D.26237;
            D.26239 = (int) D.26238;
            __result = D.26236 - D.26239;
            <D.26233>:
            <D.26231>:
            <D.26223>:
            <D.26221>:
            <D.26213>:
            <D.26211>:
          }
          D.23772 = __result;
        }
        iftmp.72 = -D.23772;
        goto <D.26240>;
        <D.26204>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.26198 = D.24324 + 7;
        iftmp.72 = __builtin_strcmp (D.26198, "semdel");
        <D.26240>:
        D.23773 = iftmp.72;
      }
      if (D.23773 == 0) goto <D.26241>; else goto <D.26242>;
      <D.26241>:
      D.26201 = argc - i;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24547 = mini_wapi_semdel (D.26201, D.24323);
      return D.24547;
      <D.26242>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 7;
        if (__s2_len <= 3) goto <D.26244>; else goto <D.26245>;
        <D.26244>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          D.24324 = *D.24323;
          __s2 = D.24324 + 7;
          D.26246 = "seminfo";
          D.26247 = MEM[(const unsigned char *)D.26246];
          D.26248 = (int) D.26247;
          D.26249 = *__s2;
          D.26250 = (int) D.26249;
          __result = D.26248 - D.26250;
          {
            if (__s2_len != 0) goto <D.26251>; else goto <D.26252>;
            <D.26251>:
            if (__result == 0) goto <D.26253>; else goto <D.26254>;
            <D.26253>:
            D.26255 = &MEM[(void *)"seminfo" + 1B];
            D.26256 = *D.26255;
            D.26257 = (int) D.26256;
            D.26258 = __s2 + 1;
            D.26259 = *D.26258;
            D.26260 = (int) D.26259;
            __result = D.26257 - D.26260;
            if (__s2_len > 1) goto <D.26261>; else goto <D.26262>;
            <D.26261>:
            if (__result == 0) goto <D.26263>; else goto <D.26264>;
            <D.26263>:
            D.26265 = &MEM[(void *)"seminfo" + 2B];
            D.26266 = *D.26265;
            D.26267 = (int) D.26266;
            D.26268 = __s2 + 2;
            D.26269 = *D.26268;
            D.26270 = (int) D.26269;
            __result = D.26267 - D.26270;
            if (__s2_len > 2) goto <D.26271>; else goto <D.26272>;
            <D.26271>:
            if (__result == 0) goto <D.26273>; else goto <D.26274>;
            <D.26273>:
            D.26275 = &MEM[(void *)"seminfo" + 3B];
            D.26276 = *D.26275;
            D.26277 = (int) D.26276;
            D.26278 = __s2 + 3;
            D.26279 = *D.26278;
            D.26280 = (int) D.26279;
            __result = D.26277 - D.26280;
            <D.26274>:
            <D.26272>:
            <D.26264>:
            <D.26262>:
            <D.26254>:
            <D.26252>:
          }
          D.23781 = __result;
        }
        iftmp.73 = -D.23781;
        goto <D.26281>;
        <D.26245>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        D.26198 = D.24324 + 7;
        iftmp.73 = __builtin_strcmp (D.26198, "seminfo");
        <D.26281>:
        D.23782 = iftmp.73;
      }
      if (D.23782 == 0) goto <D.26282>; else goto <D.26283>;
      <D.26282>:
      D.26201 = argc - i;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24547 = mini_wapi_seminfo (D.26201, D.24323);
      return D.24547;
      <D.26283>:
      stderr.33 = stderr;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      fprintf (stderr.33, "Invalid --wapi suboption: \'%s\'\n", D.24324);
      D.24547 = 1;
      return D.24547;
      <D.26158>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 20;
        if (__s2_len <= 3) goto <D.26285>; else goto <D.26286>;
        <D.26285>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26287 = "--no-x86-stack-align";
          D.26288 = MEM[(const unsigned char *)D.26287];
          D.26289 = (int) D.26288;
          D.26290 = *__s2;
          D.26291 = (int) D.26290;
          __result = D.26289 - D.26291;
          {
            if (__s2_len != 0) goto <D.26292>; else goto <D.26293>;
            <D.26292>:
            if (__result == 0) goto <D.26294>; else goto <D.26295>;
            <D.26294>:
            D.26296 = &MEM[(void *)"--no-x86-stack-align" + 1B];
            D.26297 = *D.26296;
            D.26298 = (int) D.26297;
            D.26299 = __s2 + 1;
            D.26300 = *D.26299;
            D.26301 = (int) D.26300;
            __result = D.26298 - D.26301;
            if (__s2_len > 1) goto <D.26302>; else goto <D.26303>;
            <D.26302>:
            if (__result == 0) goto <D.26304>; else goto <D.26305>;
            <D.26304>:
            D.26306 = &MEM[(void *)"--no-x86-stack-align" + 2B];
            D.26307 = *D.26306;
            D.26308 = (int) D.26307;
            D.26309 = __s2 + 2;
            D.26310 = *D.26309;
            D.26311 = (int) D.26310;
            __result = D.26308 - D.26311;
            if (__s2_len > 2) goto <D.26312>; else goto <D.26313>;
            <D.26312>:
            if (__result == 0) goto <D.26314>; else goto <D.26315>;
            <D.26314>:
            D.26316 = &MEM[(void *)"--no-x86-stack-align" + 3B];
            D.26317 = *D.26316;
            D.26318 = (int) D.26317;
            D.26319 = __s2 + 3;
            D.26320 = *D.26319;
            D.26321 = (int) D.26320;
            __result = D.26318 - D.26321;
            <D.26315>:
            <D.26313>:
            <D.26305>:
            <D.26303>:
            <D.26295>:
            <D.26293>:
          }
          D.23790 = __result;
        }
        iftmp.74 = -D.23790;
        goto <D.26322>;
        <D.26286>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.74 = __builtin_strcmp (D.24324, "--no-x86-stack-align");
        <D.26322>:
        D.23791 = iftmp.74;
      }
      if (D.23791 == 0) goto <D.26323>; else goto <D.26324>;
      <D.26323>:
      mono_do_x86_stack_align = 0;
      goto <D.26325>;
      <D.26324>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 6;
        if (__s2_len <= 3) goto <D.26327>; else goto <D.26328>;
        <D.26327>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26329 = "--llvm";
          D.26330 = MEM[(const unsigned char *)D.26329];
          D.26331 = (int) D.26330;
          D.26332 = *__s2;
          D.26333 = (int) D.26332;
          __result = D.26331 - D.26333;
          {
            if (__s2_len != 0) goto <D.26334>; else goto <D.26335>;
            <D.26334>:
            if (__result == 0) goto <D.26336>; else goto <D.26337>;
            <D.26336>:
            D.26338 = &MEM[(void *)"--llvm" + 1B];
            D.26339 = *D.26338;
            D.26340 = (int) D.26339;
            D.26341 = __s2 + 1;
            D.26342 = *D.26341;
            D.26343 = (int) D.26342;
            __result = D.26340 - D.26343;
            if (__s2_len > 1) goto <D.26344>; else goto <D.26345>;
            <D.26344>:
            if (__result == 0) goto <D.26346>; else goto <D.26347>;
            <D.26346>:
            D.26348 = &MEM[(void *)"--llvm" + 2B];
            D.26349 = *D.26348;
            D.26350 = (int) D.26349;
            D.26351 = __s2 + 2;
            D.26352 = *D.26351;
            D.26353 = (int) D.26352;
            __result = D.26350 - D.26353;
            if (__s2_len > 2) goto <D.26354>; else goto <D.26355>;
            <D.26354>:
            if (__result == 0) goto <D.26356>; else goto <D.26357>;
            <D.26356>:
            D.26358 = &MEM[(void *)"--llvm" + 3B];
            D.26359 = *D.26358;
            D.26360 = (int) D.26359;
            D.26361 = __s2 + 3;
            D.26362 = *D.26361;
            D.26363 = (int) D.26362;
            __result = D.26360 - D.26363;
            <D.26357>:
            <D.26355>:
            <D.26347>:
            <D.26345>:
            <D.26337>:
            <D.26335>:
          }
          D.23799 = __result;
        }
        iftmp.75 = -D.23799;
        goto <D.26364>;
        <D.26328>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.75 = __builtin_strcmp (D.24324, "--llvm");
        <D.26364>:
        D.23800 = iftmp.75;
      }
      if (D.23800 == 0) goto <D.26365>; else goto <D.26366>;
      <D.26365>:
      stderr.33 = stderr;
      fprintf (stderr.33, "Mono Warning: --llvm not supported on this platform.\n");
      goto <D.26367>;
      <D.26366>:
      {
        size_t __s1_len;
        size_t __s2_len;

        __s2_len = 8;
        if (__s2_len <= 3) goto <D.26369>; else goto <D.26370>;
        <D.26369>:
        {
          const unsigned char * __s2;
          int __result;

          i.19 = (unsigned int) i;
          D.24322 = i.19 * 4;
          D.24323 = argv + D.24322;
          __s2 = *D.24323;
          D.26371 = "--nollvm";
          D.26372 = MEM[(const unsigned char *)D.26371];
          D.26373 = (int) D.26372;
          D.26374 = *__s2;
          D.26375 = (int) D.26374;
          __result = D.26373 - D.26375;
          {
            if (__s2_len != 0) goto <D.26376>; else goto <D.26377>;
            <D.26376>:
            if (__result == 0) goto <D.26378>; else goto <D.26379>;
            <D.26378>:
            D.26380 = &MEM[(void *)"--nollvm" + 1B];
            D.26381 = *D.26380;
            D.26382 = (int) D.26381;
            D.26383 = __s2 + 1;
            D.26384 = *D.26383;
            D.26385 = (int) D.26384;
            __result = D.26382 - D.26385;
            if (__s2_len > 1) goto <D.26386>; else goto <D.26387>;
            <D.26386>:
            if (__result == 0) goto <D.26388>; else goto <D.26389>;
            <D.26388>:
            D.26390 = &MEM[(void *)"--nollvm" + 2B];
            D.26391 = *D.26390;
            D.26392 = (int) D.26391;
            D.26393 = __s2 + 2;
            D.26394 = *D.26393;
            D.26395 = (int) D.26394;
            __result = D.26392 - D.26395;
            if (__s2_len > 2) goto <D.26396>; else goto <D.26397>;
            <D.26396>:
            if (__result == 0) goto <D.26398>; else goto <D.26399>;
            <D.26398>:
            D.26400 = &MEM[(void *)"--nollvm" + 3B];
            D.26401 = *D.26400;
            D.26402 = (int) D.26401;
            D.26403 = __s2 + 3;
            D.26404 = *D.26403;
            D.26405 = (int) D.26404;
            __result = D.26402 - D.26405;
            <D.26399>:
            <D.26397>:
            <D.26389>:
            <D.26387>:
            <D.26379>:
            <D.26377>:
          }
          D.23808 = __result;
        }
        iftmp.76 = -D.23808;
        goto <D.26406>;
        <D.26370>:
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        D.24324 = *D.24323;
        iftmp.76 = __builtin_strcmp (D.24324, "--nollvm");
        <D.26406>:
        D.23809 = iftmp.76;
      }
      if (D.23809 == 0) goto <D.26407>; else goto <D.26408>;
      <D.26407>:
      mono_use_llvm = 0;
      goto <D.26409>;
      <D.26408>:
      stderr.33 = stderr;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      fprintf (stderr.33, "Unknown command line option: \'%s\'\n", D.24324);
      D.24547 = 1;
      return D.24547;
      <D.26409>:
      <D.26367>:
      <D.26325>:
      <D.26155>:
      <D.26113>:
      <D.26071>:
      <D.26029>:
      <D.25773>:
      <D.25731>:
      <D.25726>:
      <D.25719>:
      <D.25677>:
      <D.25633>:
      <D.25626>:
      <D.25582>:
      <D.25578>:
      <D.25571>:
      <D.25567>:
      <D.25525>:
      <D.25483>:
      <D.25479>:
      <D.25437>:
      <D.25431>:
      <D.25427>:
      <D.25385>:
      <D.25343>:
      <D.25301>:
      <D.25259>:
      <D.25217>:
      <D.25168>:
      <D.25118>:
      <D.25071>:
      <D.25029>:
      <D.25025>:
      <D.24983>:
      <D.24939>:
      <D.24895>:
      <D.24853>:
      <D.24811>:
      <D.24806>:
      <D.24801>:
      <D.24377>:
      <D.24374>:
      <D.24368>:
      i = i + 1;
      <D.23811>:
      if (i < argc) goto <D.23810>; else goto <D.23235>;
      <D.23235>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      if (D.24324 == 0B) goto <D.26410>; else goto <D.26411>;
      <D.26410>:
      mini_usage ();
      D.24547 = 1;
      return D.24547;
      <D.26411>:
      D.26412 = monoeg_g_getenv ("MONO_XDEBUG");
      if (D.26412 != 0B) goto <D.26413>; else goto <D.26414>;
      <D.26413>:
      enable_debugging = 1;
      <D.26414>:
      mono_compile_aot.77 = mono_compile_aot;
      if (mono_compile_aot.77 != 0) goto <D.26415>; else goto <D.26418>;
      <D.26418>:
      if (action == 4) goto <D.26415>; else goto <D.26419>;
      <D.26419>:
      if (action == 6) goto <D.26415>; else goto <D.26416>;
      <D.26415>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      monoeg_g_set_prgname (D.24324);
      <D.26416>:
      if (enable_profile != 0) goto <D.26420>; else goto <D.26421>;
      <D.26420>:
      mono_profiler_load (profile_options);
      <D.26421>:
      mono_attach_parse_options (attach_options);
      if (trace_options != 0B) goto <D.26422>; else goto <D.26423>;
      <D.26422>:
      mono_jit_trace_calls.78 = mono_trace_parse_options (trace_options);
      mono_jit_trace_calls = mono_jit_trace_calls.78;
      mono_jit_trace_calls.79 = mono_jit_trace_calls;
      if (mono_jit_trace_calls.79 == 0B) goto <D.26426>; else goto <D.26427>;
      <D.26426>:
      exit (1);
      <D.26427>:
      <D.26423>:
      if (action == 6) goto <D.26428>; else goto <D.26429>;
      <D.26428>:
      enable_debugging = 1;
      monoeg_g_print ("The Mono Debugger is no longer supported.\n");
      D.24547 = 1;
      return D.24547;
      <D.26429>:
      enable_debugging.80 = enable_debugging;
      if (enable_debugging.80 != 0) goto <D.26431>; else goto <D.26432>;
      <D.26431>:
      mono_debug_init (1);
      <D.26432>:
      mono_set_defaults (mini_verbose, opt);
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.24324 = *D.24323;
      domain.81 = mini_init (D.24324, forced_version);
      domain = domain.81;
      mono_gc_set_stack_end (&domain);
      if (agents != 0B) goto <D.26434>; else goto <D.26435>;
      <D.26434>:
      {
        int i;

        i = 0;
        goto <D.23815>;
        <D.23814>:
        {
          int res;

          domain.82 = domain;
          D.26437 = agents->pdata;
          i.83 = (unsigned int) i;
          D.26439 = i.83 * 4;
          D.26440 = D.26437 + D.26439;
          D.26441 = *D.26440;
          res = load_agent (domain.82, D.26441);
          if (res != 0) goto <D.26442>; else goto <D.26443>;
          <D.26442>:
          monoeg_g_ptr_array_free (agents, 1);
          domain.82 = domain;
          mini_cleanup (domain.82);
          D.24547 = 1;
          return D.24547;
          <D.26443>:
        }
        i = i + 1;
        <D.23815>:
        i.84 = (unsigned int) i;
        D.26445 = agents->len;
        if (i.84 < D.26445) goto <D.23814>; else goto <D.23816>;
        <D.23816>:
        monoeg_g_ptr_array_free (agents, 1);
      }
      <D.26435>:
      switch (action) <default: <D.23823>, case 0: <D.23819>, case 1: <D.23818>, case 2: <D.23817>, case 3: <D.23821>, case 5: <D.23822>>
      <D.23817>:
      mono_do_single_method_regression = 1;
      <D.23818>:
      D.26201 = argc - i;
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      D.26446 = mini_regression_list (mini_verbose, D.26201, D.24323);
      if (D.26446 != 0) goto <D.26447>; else goto <D.26448>;
      <D.26447>:
      monoeg_g_print ("Regression ERRORS!\n");
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 1;
      return D.24547;
      <D.26448>:
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 0;
      return D.24547;
      <D.23819>:
      D.26201 = argc - i;
      if (D.26201 != 1) goto <D.26449>; else goto <D.26451>;
      <D.26451>:
      if (mname == 0B) goto <D.26449>; else goto <D.26450>;
      <D.26449>:
      monoeg_g_print ("Usage: mini --ncompile num --compile method assembly\n");
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 1;
      return D.24547;
      <D.26450>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      aname = *D.24323;
      goto <D.23820>;
      <D.23821>:
      D.26201 = argc - i;
      if (D.26201 != 1) goto <D.26452>; else goto <D.26453>;
      <D.26452>:
      mini_usage ();
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 1;
      return D.24547;
      <D.26453>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      aname = *D.24323;
      goto <D.23820>;
      <D.23822>:
      D.26201 = argc - i;
      if (D.26201 != 1) goto <D.26454>; else goto <D.26456>;
      <D.26456>:
      if (mname == 0B) goto <D.26454>; else goto <D.26455>;
      <D.26454>:
      mini_usage ();
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 1;
      return D.24547;
      <D.26455>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      aname = *D.24323;
      goto <D.23820>;
      <D.23823>:
      D.26201 = argc - i;
      if (D.26201 <= 0) goto <D.26457>; else goto <D.26458>;
      <D.26457>:
      mini_usage ();
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 1;
      return D.24547;
      <D.26458>:
      i.19 = (unsigned int) i;
      D.24322 = i.19 * 4;
      D.24323 = argv + D.24322;
      aname = *D.24323;
      goto <D.23820>;
      <D.23820>:
      mono_compile_aot.77 = mono_compile_aot;
      if (mono_compile_aot.77 != 0) goto <D.26459>; else goto <D.26461>;
      <D.26461>:
      if (action == 4) goto <D.26459>; else goto <D.26462>;
      <D.26462>:
      if (action == 6) goto <D.26459>; else goto <D.26460>;
      <D.26459>:
      mono_config_parse (config_file);
      <D.26460>:
      assembly = mono_assembly_open (aname, &open_status);
      if (assembly == 0B) goto <D.26463>; else goto <D.26464>;
      <D.26463>:
      stderr.33 = stderr;
      open_status.85 = open_status;
      D.26466 = mono_image_strerror (open_status.85);
      fprintf (stderr.33, "Cannot open assembly \'%s\': %s.\n", aname, D.26466);
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 2;
      return D.24547;
      <D.26464>:
      if (trace_options != 0B) goto <D.26467>; else goto <D.26468>;
      <D.26467>:
      mono_trace_set_assembly (assembly);
      <D.26468>:
      mono_compile_aot.77 = mono_compile_aot;
      if (mono_compile_aot.77 != 0) goto <D.26469>; else goto <D.26471>;
      <D.26471>:
      if (action == 4) goto <D.26469>; else goto <D.26470>;
      <D.26469>:
      {
        const char * error;

        error = mono_check_corlib_version ();
        if (error != 0B) goto <D.26472>; else goto <D.26473>;
        <D.26472>:
        stderr.33 = stderr;
        fprintf (stderr.33, "Corlib not in sync with this runtime: %s\n", error);
        stderr.33 = stderr;
        D.24541 = mono_defaults.corlib;
        if (D.24541 != 0B) goto <D.26475>; else goto <D.26476>;
        <D.26475>:
        D.24541 = mono_defaults.corlib;
        iftmp.86 = mono_image_get_filename (D.24541);
        goto <D.26477>;
        <D.26476>:
        iftmp.86 = "unknown";
        <D.26477>:
        fprintf (stderr.33, "Loaded from: %s\n", iftmp.86);
        stderr.33 = stderr;
        fprintf (stderr.33, "Download a newer corlib or a newer runtime at http://www.go-mono.com/daily.\n");
        exit (1);
        <D.26473>:
        domain.82 = domain;
        main_args.domain = domain.82;
        main_args.file = aname;
        D.26201 = argc - i;
        main_args.argc = D.26201;
        i.19 = (unsigned int) i;
        D.24322 = i.19 * 4;
        D.24323 = argv + D.24322;
        main_args.argv = D.24323;
        main_args.opts = opt;
        main_args.aot_options = aot_options;
        main_thread_handler (&main_args);
        mono_thread_manage ();
        mono_dont_free_global_codeman = 1;
        domain.82 = domain;
        mini_cleanup (domain.82);
        i = mono_environment_exitcode_get ();
        D.24547 = i;
        return D.24547;
      }
      <D.26470>:
      if (action == 3) goto <D.26478>; else goto <D.26479>;
      <D.26478>:
      compile_all_methods (assembly, mini_verbose, opt, recompilation_times);
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 0;
      return D.24547;
      <D.26479>:
      if (action == 6) goto <D.26480>; else goto <D.26481>;
      <D.26480>:
      D.24547 = 1;
      return D.24547;
      <D.26481>:
      desc = mono_method_desc_new (mname, 0);
      if (desc == 0B) goto <D.26482>; else goto <D.26483>;
      <D.26482>:
      monoeg_g_print ("Invalid method name %s\n", mname);
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 3;
      return D.24547;
      <D.26483>:
      D.26484 = mono_assembly_get_image (assembly);
      method = mono_method_desc_search_in_image (desc, D.26484);
      if (method == 0B) goto <D.26485>; else goto <D.26486>;
      <D.26485>:
      monoeg_g_print ("Cannot find method %s\n", mname);
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 3;
      return D.24547;
      <D.26486>:
      if (action == 5) goto <D.26487>; else goto <D.26488>;
      <D.26487>:
      {
        int part;

        part = 0;
        switch (mono_graph_options) <default: <D.23831>, case 2: <D.23826>, case 4: <D.23828>, case 8: <D.23829>, case 16: <D.23830>>
        <D.23826>:
        part = 1;
        opt = opt | 8192;
        goto <D.23827>;
        <D.23828>:
        part = 1;
        goto <D.23827>;
        <D.23829>:
        part = 2;
        goto <D.23827>;
        <D.23830>:
        part = 3;
        goto <D.23827>;
        <D.23831>:
        goto <D.23827>;
        <D.23827>:
        D.26492 = method->iflags;
        D.26493 = (int) D.26492;
        D.26494 = D.26493 & 4096;
        if (D.26494 != 0) goto <D.26489>; else goto <D.26495>;
        <D.26495>:
        D.26496 = method->flags;
        D.26497 = (int) D.26496;
        D.26498 = D.26497 & 8192;
        if (D.26498 != 0) goto <D.26489>; else goto <D.26490>;
        <D.26489>:
        {
          struct MonoMethod * nm;

          nm = mono_marshal_get_native_wrapper (method, 1, 0);
          D.26499 = mono_get_root_domain ();
          cfg = mini_method_compile (nm, opt, D.26499, 0, part);
        }
        goto <D.26491>;
        <D.26490>:
        D.26500 = mono_get_root_domain ();
        cfg = mini_method_compile (method, opt, D.26500, 0, part);
        <D.26491>:
        D.26501 = mono_graph_options & 8;
        if (D.26501 != 0) goto <D.26502>; else goto <D.26503>;
        <D.26502>:
        D.26504 = cfg->comp_done;
        D.26505 = D.26504 & 32;
        if (D.26505 == 0) goto <D.26506>; else goto <D.26507>;
        <D.26506>:
        monoeg_g_log (0B, 16, "no SSA info available (use -O=deadce)");
        D.24547 = 1;
        return D.24547;
        <D.26507>:
        <D.26503>:
        mono_draw_graph (cfg, mono_graph_options);
        mono_destroy_compile (cfg);
      }
      goto <D.26508>;
      <D.26488>:
      if (action == 0) goto <D.26509>; else goto <D.26510>;
      <D.26509>:
      mini_stats_fd.87 = mini_stats_fd;
      if (mini_stats_fd.87 != 0B) goto <D.26512>; else goto <D.26513>;
      <D.26512>:
      {
        const char * n;
        double no_opt_time;
        struct GTimer * timer;

        no_opt_time = 0.0;
        timer = monoeg_g_timer_new ();
        mini_stats_fd.87 = mini_stats_fd;
        D.26514 = mono_method_full_name (method, 1);
        fprintf (mini_stats_fd.87, "$stattitle = \'Compilations times for %s\';\n", D.26514);
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "@data = (\n");
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "[");
        i = 0;
        goto <D.23837>;
        <D.23836>:
        opt = opt_sets[i];
        n = opt_descr (opt);
        D.26515 = *n;
        if (D.26515 == 0) goto <D.26516>; else goto <D.26517>;
        <D.26516>:
        n = "none";
        <D.26517>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "\"%s\",", n);
        i = i + 1;
        <D.23837>:
        i.19 = (unsigned int) i;
        if (i.19 <= 23) goto <D.23836>; else goto <D.23838>;
        <D.23838>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "],\n[");
        i = 0;
        goto <D.23845>;
        <D.23844>:
        {
          int j;
          double elapsed;

          opt = opt_sets[i];
          monoeg_g_timer_start (timer);
          j = 0;
          goto <D.23842>;
          <D.23841>:
          D.26518 = mono_get_root_domain ();
          cfg = mini_method_compile (method, opt, D.26518, 0, 0);
          mono_destroy_compile (cfg);
          j = j + 1;
          <D.23842>:
          if (j < count) goto <D.23841>; else goto <D.23843>;
          <D.23843>:
          monoeg_g_timer_stop (timer);
          elapsed = monoeg_g_timer_elapsed (timer, 0B);
          if (opt == 0) goto <D.26519>; else goto <D.26520>;
          <D.26519>:
          no_opt_time = elapsed;
          <D.26520>:
          mini_stats_fd.87 = mini_stats_fd;
          fprintf (mini_stats_fd.87, "%f, ", elapsed);
        }
        i = i + 1;
        <D.23845>:
        i.19 = (unsigned int) i;
        if (i.19 <= 23) goto <D.23844>; else goto <D.23846>;
        <D.23846>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "]");
        if (no_opt_time > 0.0) goto <D.26521>; else goto <D.26522>;
        <D.26521>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, ", \n[");
        i = 0;
        goto <D.23848>;
        <D.23847>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "%f,", no_opt_time);
        i = i + 1;
        <D.23848>:
        i.19 = (unsigned int) i;
        if (i.19 <= 23) goto <D.23847>; else goto <D.23849>;
        <D.23849>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, "]");
        <D.26522>:
        mini_stats_fd.87 = mini_stats_fd;
        fprintf (mini_stats_fd.87, ");\n");
      }
      goto <D.26523>;
      <D.26513>:
      i = 0;
      goto <D.23851>;
      <D.23850>:
      D.26492 = method->iflags;
      D.26493 = (int) D.26492;
      D.26494 = D.26493 & 4096;
      if (D.26494 != 0) goto <D.26524>; else goto <D.26526>;
      <D.26526>:
      D.26496 = method->flags;
      D.26497 = (int) D.26496;
      D.26498 = D.26497 & 8192;
      if (D.26498 != 0) goto <D.26524>; else goto <D.26525>;
      <D.26524>:
      method = mono_marshal_get_native_wrapper (method, 1, 0);
      <D.26525>:
      D.26527 = mono_get_root_domain ();
      cfg = mini_method_compile (method, opt, D.26527, 0, 0);
      mono_destroy_compile (cfg);
      i = i + 1;
      <D.23851>:
      if (i < count) goto <D.23850>; else goto <D.23852>;
      <D.23852>:
      <D.26523>:
      goto <D.26528>;
      <D.26510>:
      D.26529 = mono_get_root_domain ();
      cfg = mini_method_compile (method, opt, D.26529, 0, 0);
      mono_destroy_compile (cfg);
      <D.26528>:
      <D.26508>:
      domain.82 = domain;
      mini_cleanup (domain.82);
      D.24547 = 0;
      return D.24547;
    }
  finally
    {
      main_args = {CLOBBER};
      domain = {CLOBBER};
      open_status = {CLOBBER};
    }
}


mono_set_use_smp (int use_smp)
{
  int D.26535;

  if (use_smp == 0) goto <D.26533>; else goto <D.26534>;
  <D.26533>:
  {
    long unsigned int proc_mask;

    try
      {
        proc_mask = 1;
        D.26535 = getpid ();
        sched_setaffinity (D.26535, 4, &proc_mask);
      }
    finally
      {
        proc_mask = {CLOBBER};
      }
  }
  <D.26534>:
}


mini_trace_usage ()
{
  struct _IO_FILE * stdout.88;

  stdout.88 = stdout;
  fprintf (stdout.88, "Tracing options:\n   --trace[=EXPR]        Trace every call, optional EXPR controls the scope\n\nEXPR is composed of:\n    all                  All assemblies\n    none                 No assemblies\n    program              Entry point assembly\n    assembly             Specifies an assembly\n    wrapper              All wrappers bridging native and managed code\n    M:Type:Method        Specifies a method\n    N:Namespace          Specifies a namespace\n    T:Type               Specifies a type\n    E:Type               Specifies stack traces for an exception type\n    EXPR                 Includes expression\n    -EXPR                Excludes expression\n    EXPR,EXPR            Multiple expressions\n    disabled             Don\'t print any output until toggled via SIGUSR2\n");
}


mini_usage_jitdeveloper ()
{
  struct _IO_FILE * stdout.89;
  const char[6] * D.26538;
  const char[18] * D.26539;
  unsigned int i.90;
  int i;

  stdout.89 = stdout;
  fprintf (stdout.89, "Runtime and JIT debugging options:\n    --breakonex            Inserts a breakpoint on exceptions\n    --break METHOD         Inserts a breakpoint at METHOD entry\n    --break-at-bb METHOD N Inserts a breakpoint in METHOD at BB N\n    --compile METHOD       Just compile METHOD in assembly\n    --compile-all=N        Compiles all the methods in the assembly multiple times (default: 1)\n    --ncompile N           Number of times to compile METHOD (default: 1)\n    --print-vtable         Print the vtable of all used classes\n    --regression           Runs the regression test contained in the assembly\n    --single-method=OPTS   Runs regressions with only one method optimized with OPTS at any time\n    --statfile FILE        Sets the stat file to FILE\n    --stats                Print statistics about the JIT operations\n    --wapi=hps|semdel|seminfo IO-layer maintenance\n    --inject-async-exc METHOD OFFSET Inject an asynchronous exception at METHOD\n    --verify-all           Run the verifier on all assemblies and methods\n    --full-aot             Avoid JITting any code\n    --agent=ASSEMBLY[:ARG] Loads the specific agent assembly and executes its Main method with the given argument before loading the main assembly.\n    --no-x86-stack-align   Don\'t align stack on x86\n\nOther options:\n    --graph[=TYPE] METHOD  Draws a graph of the specified method:\n");
  i = 0;
  goto <D.23045>;
  <D.23044>:
  stdout.89 = stdout;
  D.26538 = &graph_names[i].name;
  D.26539 = &graph_names[i].desc;
  fprintf (stdout.89, "                           %-10s %s\n", D.26538, D.26539);
  i = i + 1;
  <D.23045>:
  i.90 = (unsigned int) i;
  if (i.90 <= 4) goto <D.23044>; else goto <D.23046>;
  <D.23046>:
}


mini_debug_usage ()
{
  struct _IO_FILE * stdout.91;

  stdout.91 = stdout;
  fprintf (stdout.91, "Debugging options:\n   --debug[=OPTIONS]     Enable debugging support, optional OPTIONS is a comma\n                         separated list of options\n\nOPTIONS is composed of:\n    casts                Enable more detailed InvalidCastException messages.\n    mdb-optimizations    Disable some JIT optimizations which are normally\n                         disabled when running inside the debugger.\n                         This is useful if you plan to attach to the running\n                         process with the debugger.\n");
}


mini_usage_list_opt ()
{
  struct _IO_FILE * stdout.92;
  short int D.26543;
  sizetype D.26544;
  const char * D.26545;
  unsigned int D.26546;
  sizetype D.26547;
  sizetype D.26548;
  const char * D.26549;
  unsigned int i.93;
  int i;

  i = 0;
  goto <D.23052>;
  <D.23051>:
  stdout.92 = stdout;
  D.26543 = opt_names[i];
  D.26544 = (sizetype) D.26543;
  D.26545 = &opstr + D.26544;
  D.26543 = opt_names[i];
  D.26544 = (sizetype) D.26543;
  D.26543 = opt_names[i];
  D.26544 = (sizetype) D.26543;
  D.26545 = &opstr + D.26544;
  D.26546 = strlen (D.26545);
  D.26547 = D.26544 + D.26546;
  D.26548 = D.26547 + 1;
  D.26549 = &opstr + D.26548;
  fprintf (stdout.92, "                           %-10s %s\n", D.26545, D.26549);
  i = i + 1;
  <D.23052>:
  i.93 = (unsigned int) i;
  if (i.93 <= 28) goto <D.23051>; else goto <D.23053>;
  <D.23053>:
}


switch_gc (char * * argv, const char * target_gc)
{
  int D.23205;
  const char * D.26551;
  char * D.26554;
  char * D.26555;
  unsigned int D.26558;
  unsigned int D.26559;
  char * D.26561;
  unsigned int D.26564;
  char * D.26565;
  struct GString * path;

  {
    size_t __s1_len;
    size_t __s2_len;

    D.26551 = mono_gc_get_gc_name ();
    D.23205 = __builtin_strcmp (D.26551, target_gc);
  }
  if (D.23205 == 0) goto <D.26552>; else goto <D.26553>;
  <D.26552>:
  return;
  <D.26553>:
  D.26554 = *argv;
  path = monoeg_g_string_new (D.26554);
  D.26554 = *argv;
  D.26555 = strstr (D.26554, "-sgen");
  if (D.26555 != 0B) goto <D.26556>; else goto <D.26557>;
  <D.26556>:
  D.26558 = path->len;
  D.26559 = D.26558 + 4294967291;
  monoeg_g_string_truncate (path, D.26559);
  goto <D.26560>;
  <D.26557>:
  D.26554 = *argv;
  D.26561 = strstr (D.26554, "-boehm");
  if (D.26561 != 0B) goto <D.26562>; else goto <D.26563>;
  <D.26562>:
  D.26558 = path->len;
  D.26564 = D.26558 + 4294967290;
  monoeg_g_string_truncate (path, D.26564);
  <D.26563>:
  <D.26560>:
  monoeg_g_string_append_c (path, 45);
  monoeg_g_string_append (path, target_gc);
  D.26565 = path->str;
  execvp (D.26565, argv);
}


atoi (const char * __nptr)
{
  int D.26567;

  D.26567 = strtol (__nptr, 0B, 10);
  return D.26567;
}


mono_parse_graph_options (const char * p)
{
  unsigned int D.26569;
  unsigned int len.94;
  int D.26571;
  MonoGraphOptions D.26574;
  unsigned int i.95;
  struct _IO_FILE * stderr.96;
  const char * n;
  int i;
  int len;

  i = 0;
  goto <D.22834>;
  <D.22833>:
  n = &graph_names[i].name;
  D.26569 = strlen (n);
  len = (int) D.26569;
  len.94 = (unsigned int) len;
  D.26571 = strncmp (p, n, len.94);
  if (D.26571 == 0) goto <D.26572>; else goto <D.26573>;
  <D.26572>:
  D.26574 = graph_names[i].value;
  return D.26574;
  <D.26573>:
  i = i + 1;
  <D.22834>:
  i.95 = (unsigned int) i;
  if (i.95 <= 4) goto <D.22833>; else goto <D.22835>;
  <D.22835>:
  stderr.96 = stderr;
  fprintf (stderr.96, "Invalid graph name provided: %s\n", p);
  exit (1);
}


parse_debug_options (const char * p)
{
  char D.26578;
  struct _IO_FILE * stderr.97;
  gboolean D.26582;
  int D.26583;
  int D.26587;
  int D.26591;
  struct MonoDebugOptions * opt;

  opt = mini_get_debug_options ();
  <D.22810>:
  D.26578 = *p;
  if (D.26578 == 0) goto <D.26579>; else goto <D.26580>;
  <D.26579>:
  stderr.97 = stderr;
  fprintf (stderr.97, "Syntax error; expected debug option name\n");
  D.26582 = 0;
  return D.26582;
  <D.26580>:
  D.26583 = strncmp (p, "casts", 5);
  if (D.26583 == 0) goto <D.26584>; else goto <D.26585>;
  <D.26584>:
  opt->better_cast_details = 1;
  p = p + 5;
  goto <D.26586>;
  <D.26585>:
  D.26587 = strncmp (p, "mdb-optimizations", 17);
  if (D.26587 == 0) goto <D.26588>; else goto <D.26589>;
  <D.26588>:
  opt->mdb_optimizations = 1;
  p = p + 17;
  goto <D.26590>;
  <D.26589>:
  D.26591 = strncmp (p, "gdb", 3);
  if (D.26591 == 0) goto <D.26592>; else goto <D.26593>;
  <D.26592>:
  opt->gdb = 1;
  p = p + 3;
  goto <D.26594>;
  <D.26593>:
  stderr.97 = stderr;
  fprintf (stderr.97, "Invalid debug option `%s\', use --help-debug for details\n", p);
  D.26582 = 0;
  return D.26582;
  <D.26594>:
  <D.26590>:
  <D.26586>:
  D.26578 = *p;
  if (D.26578 == 44) goto <D.26595>; else goto <D.26596>;
  <D.26595>:
  p = p + 1;
  D.26578 = *p;
  if (D.26578 == 0) goto <D.26597>; else goto <D.26598>;
  <D.26597>:
  stderr.97 = stderr;
  fprintf (stderr.97, "Syntax error; expected debug option name\n");
  D.26582 = 0;
  return D.26582;
  <D.26598>:
  <D.26596>:
  D.26578 = *p;
  if (D.26578 != 0) goto <D.22810>; else goto <D.22811>;
  <D.22811>:
  D.26582 = 1;
  return D.26582;
}


load_agent (struct MonoDomain * domain, char * desc)
{
  int col.98;
  int desc.99;
  int D.26604;
  int D.26605;
  unsigned int D.26606;
  sizetype D.26607;
  char * D.26608;
  struct _IO_FILE * stderr.100;
  <unnamed type> open_status.101;
  const char * D.26614;
  int D.26615;
  const char * D.26618;
  struct MonoThread * D.26621;
  struct MonoClass * D.26624;
  struct MonoString * D.26625;
  char * col;
  char * agent;
  char * args;
  struct MonoAssembly * agent_assembly;
  struct MonoImage * image;
  struct MonoMethod * method;
  guint32 entry;
  struct MonoArray * main_args;
  void * pa[1];
  MonoImageOpenStatus open_status;

  try
    {
      col = __builtin_strchr (desc, 58);
      if (col != 0B) goto <D.26600>; else goto <D.26601>;
      <D.26600>:
      col.98 = (int) col;
      desc.99 = (int) desc;
      D.26604 = col.98 - desc.99;
      D.26605 = D.26604 + 1;
      D.26606 = (unsigned int) D.26605;
      agent = monoeg_g_memdup (desc, D.26606);
      col.98 = (int) col;
      desc.99 = (int) desc;
      D.26604 = col.98 - desc.99;
      D.26607 = (sizetype) D.26604;
      D.26608 = agent + D.26607;
      *D.26608 = 0;
      args = col + 1;
      goto <D.26609>;
      <D.26601>:
      agent = monoeg_strdup (desc);
      args = 0B;
      <D.26609>:
      agent_assembly = mono_assembly_open (agent, &open_status);
      if (agent_assembly == 0B) goto <D.26610>; else goto <D.26611>;
      <D.26610>:
      stderr.100 = stderr;
      open_status.101 = open_status;
      D.26614 = mono_image_strerror (open_status.101);
      fprintf (stderr.100, "Cannot open agent assembly \'%s\': %s.\n", agent, D.26614);
      monoeg_g_free (agent);
      D.26615 = 2;
      return D.26615;
      <D.26611>:
      image = mono_assembly_get_image (agent_assembly);
      entry = mono_image_get_entry_point (image);
      if (entry == 0) goto <D.26616>; else goto <D.26617>;
      <D.26616>:
      D.26618 = mono_image_get_filename (image);
      monoeg_g_print ("Assembly \'%s\' doesn\'t have an entry point.\n", D.26618);
      monoeg_g_free (agent);
      D.26615 = 1;
      return D.26615;
      <D.26617>:
      method = mono_get_method (image, entry, 0B);
      if (method == 0B) goto <D.26619>; else goto <D.26620>;
      <D.26619>:
      monoeg_g_print ("The entry point method of assembly \'%s\' could not be loaded\n", agent);
      monoeg_g_free (agent);
      D.26615 = 1;
      return D.26615;
      <D.26620>:
      D.26621 = mono_thread_current ();
      mono_thread_set_main (D.26621);
      if (args != 0B) goto <D.26622>; else goto <D.26623>;
      <D.26622>:
      D.26624 = mono_defaults.string_class;
      main_args = mono_array_new (domain, D.26624, 1);
      {
        struct MonoString * * __p;

        __p = mono_array_addr_with_size (main_args, 4, 0);
        D.26625 = mono_string_new (domain, args);
        *__p = D.26625;
      }
      goto <D.26626>;
      <D.26623>:
      D.26624 = mono_defaults.string_class;
      main_args = mono_array_new (domain, D.26624, 0);
      <D.26626>:
      monoeg_g_free (agent);
      pa[0] = main_args;
      mono_runtime_invoke (method, 0B, &pa, 0B);
      D.26615 = 0;
      return D.26615;
    }
  finally
    {
      pa = {CLOBBER};
      open_status = {CLOBBER};
    }
}


monoeg_strdup (const gchar * str)
{
  gchar * D.26631;

  if (str != 0B) goto <D.26629>; else goto <D.26630>;
  <D.26629>:
  D.26631 = __strdup (str);
  return D.26631;
  <D.26630>:
  D.26631 = 0B;
  return D.26631;
}


mini_regression_list (int verbose, int count, char * * images)
{
  unsigned int i.102;
  unsigned int D.26634;
  char * * D.26635;
  char * D.26636;
  struct MonoImage * D.26639;
  int D.26640;
  int run.103;
  int D.26644;
  double D.26645;
  double D.26646;
  double D.26647;
  double D.26648;
  int D.26650;
  int i;
  int total;
  int total_run;
  int run;
  struct MonoAssembly * ass;

  try
    {
      total = 0;
      total_run = total;
      i = 0;
      goto <D.22938>;
      <D.22937>:
      i.102 = (unsigned int) i;
      D.26634 = i.102 * 4;
      D.26635 = images + D.26634;
      D.26636 = *D.26635;
      ass = mono_assembly_open (D.26636, 0B);
      if (ass == 0B) goto <D.26637>; else goto <D.26638>;
      <D.26637>:
      i.102 = (unsigned int) i;
      D.26634 = i.102 * 4;
      D.26635 = images + D.26634;
      D.26636 = *D.26635;
      monoeg_g_log (0B, 16, "failed to load assembly: %s", D.26636);
      // predicted unlikely by continue predictor.
      goto <D.22936>;
      <D.26638>:
      D.26639 = mono_assembly_get_image (ass);
      D.26640 = mini_regression (D.26639, verbose, &run);
      total = D.26640 + total;
      run.103 = run;
      total_run = total_run + run.103;
      <D.22936>:
      i = i + 1;
      <D.22938>:
      if (i < count) goto <D.22937>; else goto <D.22939>;
      <D.22939>:
      if (total > 0) goto <D.26642>; else goto <D.26643>;
      <D.26642>:
      D.26644 = total_run - total;
      D.26645 = (double) D.26644;
      D.26646 = D.26645 * 1.0e+2;
      D.26647 = (double) total_run;
      D.26648 = D.26646 / D.26647;
      monoeg_g_print ("Overall results: tests: %d, failed: %d, opt combinations: %d (pass: %.2f%%)\n", total_run, total, 24, D.26648);
      goto <D.26649>;
      <D.26643>:
      monoeg_g_print ("Overall results: tests: %d, 100%% pass, opt combinations: %d\n", total_run, 24);
      <D.26649>:
      D.26650 = total;
      return D.26650;
    }
  finally
    {
      run = {CLOBBER};
    }
}


mini_regression (struct MonoImage * image, int verbose, int * total_run)
{
  struct FILE * mini_stats_fd.104;
  char D.26656;
  unsigned int D.26661;
  unsigned int D.26662;
  struct MonoClass * D.26665;
  const char * D.26666;
  int D.26667;
  int D.26672;
  unsigned int D.26673;
  int mono_do_single_method_regression.105;
  int total.106;
  int D.26682;
  struct GSList * mono_single_method_list.107;
  unsigned int D.26684;
  void * mono_current_single_method.108;
  struct MonoMethod * mono_current_single_method.109;
  struct GSList * iftmp.110;
  unsigned int D.26694;
  unsigned int exclude.111;
  unsigned int D.26696;
  unsigned int D.26697;
  guint32 i;
  guint32 opt;
  struct MonoMethod * method;
  char * n;
  struct GTimer * timer;
  struct MonoDomain * domain;
  guint32 exclude;
  int total;

  try
    {
      timer = monoeg_g_timer_new ();
      domain = mono_domain_get ();
      exclude = 0;
      mono_arch_cpu_optimizations (&exclude);
      mini_stats_fd.104 = mini_stats_fd;
      if (mini_stats_fd.104 != 0B) goto <D.26654>; else goto <D.26655>;
      <D.26654>:
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "$stattitle = \'Mono Benchmark Results (various optimizations)\';\n");
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "$graph->set_legend(qw(");
      opt = 0;
      goto <D.22903>;
      <D.22902>:
      {
        guint32 opt_flags;

        opt_flags = opt_sets[opt];
        n = opt_descr (opt_flags);
        D.26656 = *n;
        if (D.26656 == 0) goto <D.26657>; else goto <D.26658>;
        <D.26657>:
        n = "none";
        <D.26658>:
        if (opt != 0) goto <D.26659>; else goto <D.26660>;
        <D.26659>:
        mini_stats_fd.104 = mini_stats_fd;
        fprintf (mini_stats_fd.104, " ");
        <D.26660>:
        mini_stats_fd.104 = mini_stats_fd;
        fprintf (mini_stats_fd.104, "%s", n);
      }
      opt = opt + 1;
      <D.22903>:
      if (opt <= 23) goto <D.22902>; else goto <D.22904>;
      <D.22904>:
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "));\n");
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "@data = (\n");
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "[");
      <D.26655>:
      i = 0;
      goto <D.22916>;
      <D.22915>:
      D.26661 = i + 1;
      D.26662 = D.26661 | 100663296;
      method = mono_get_method (image, D.26662, 0B);
      if (method == 0B) goto <D.26663>; else goto <D.26664>;
      <D.26663>:
      // predicted unlikely by continue predictor.
      goto <D.22905>;
      <D.26664>:
      D.26665 = method->klass;
      mono_class_init (D.26665);
      D.26666 = method->name;
      D.26667 = strncmp (D.26666, "test_", 5);
      if (D.26667 == 0) goto <D.26668>; else goto <D.26669>;
      <D.26668>:
      mini_stats_fd.104 = mini_stats_fd;
      if (mini_stats_fd.104 != 0B) goto <D.26670>; else goto <D.26671>;
      <D.26670>:
      mini_stats_fd.104 = mini_stats_fd;
      D.26666 = method->name;
      fprintf (mini_stats_fd.104, "\"%s\",", D.26666);
      <D.26671>:
      <D.26669>:
      <D.22905>:
      i = i + 1;
      <D.22916>:
      D.26672 = mono_image_get_table_rows (image, 6);
      D.26673 = (unsigned int) D.26672;
      if (D.26673 > i) goto <D.22915>; else goto <D.22917>;
      <D.22917>:
      mini_stats_fd.104 = mini_stats_fd;
      if (mini_stats_fd.104 != 0B) goto <D.26674>; else goto <D.26675>;
      <D.26674>:
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, "],\n");
      <D.26675>:
      total = 0;
      *total_run = 0;
      mono_do_single_method_regression.105 = mono_do_single_method_regression;
      if (mono_do_single_method_regression.105 != 0) goto <D.26677>; else goto <D.26678>;
      <D.26677>:
      {
        struct GSList * iter;

        mini_regression_step (image, verbose, total_run, &total, 0, timer, domain);
        total.106 = total;
        if (total.106 != 0) goto <D.26680>; else goto <D.26681>;
        <D.26680>:
        D.26682 = total;
        return D.26682;
        <D.26681>:
        mono_single_method_list.107 = mono_single_method_list;
        D.26684 = monoeg_g_slist_length (mono_single_method_list.107);
        monoeg_g_print ("Single method regression: %d methods\n", D.26684);
        iter = mono_single_method_list;
        goto <D.22921>;
        <D.22920>:
        {
          char * method_name;

          mono_current_single_method.108 = iter->data;
          mono_current_single_method = mono_current_single_method.108;
          mono_current_single_method.109 = mono_current_single_method;
          method_name = mono_method_full_name (mono_current_single_method.109, 1);
          monoeg_g_print ("Current single method: %s\n", method_name);
          monoeg_g_free (method_name);
          mini_regression_step (image, verbose, total_run, &total, 0, timer, domain);
          total.106 = total;
          if (total.106 != 0) goto <D.26687>; else goto <D.26688>;
          <D.26687>:
          D.26682 = total;
          return D.26682;
          <D.26688>:
        }
        if (iter != 0B) goto <D.26690>; else goto <D.26691>;
        <D.26690>:
        iftmp.110 = iter->next;
        goto <D.26692>;
        <D.26691>:
        iftmp.110 = 0B;
        <D.26692>:
        iter = iftmp.110;
        <D.22921>:
        if (iter != 0B) goto <D.22920>; else goto <D.22922>;
        <D.22922>:
      }
      goto <D.26693>;
      <D.26678>:
      opt = 0;
      goto <D.22924>;
      <D.22923>:
      D.26694 = opt_sets[opt];
      exclude.111 = exclude;
      D.26696 = ~exclude.111;
      D.26697 = D.26694 & D.26696;
      mini_regression_step (image, verbose, total_run, &total, D.26697, timer, domain);
      opt = opt + 1;
      <D.22924>:
      if (opt <= 23) goto <D.22923>; else goto <D.22925>;
      <D.22925>:
      <D.26693>:
      mini_stats_fd.104 = mini_stats_fd;
      if (mini_stats_fd.104 != 0B) goto <D.26698>; else goto <D.26699>;
      <D.26698>:
      mini_stats_fd.104 = mini_stats_fd;
      fprintf (mini_stats_fd.104, ");\n");
      mini_stats_fd.104 = mini_stats_fd;
      fflush (mini_stats_fd.104);
      <D.26699>:
      monoeg_g_timer_destroy (timer);
      D.26682 = total;
      return D.26682;
    }
  finally
    {
      exclude = {CLOBBER};
      total = {CLOBBER};
    }
}


mini_regression_step (struct MonoImage * image, int verbose, int * total_run, int * total, guint32 opt_flags, struct GTimer * timer, struct MonoDomain * domain)
{
  const char * D.26702;
  void * D.26703;
  struct GHashTable * D.26706;
  struct GHashTable * D.26707;
  struct MonoInternalHashTable * D.26708;
  struct FILE * mini_stats_fd.112;
  int D.26712;
  int D.26713;
  unsigned int D.26714;
  const char * D.26717;
  int D.26718;
  const char * D.26721;
  unsigned int D.26722;
  struct MonoDomain * D.26723;
  double D.26724;
  unsigned int D.26725;
  struct MonoDomain * D.26730;
  void * D.26731;
  unsigned char * D.26735;
  struct MonoDomain * D.26736;
  void * D.26737;
  unsigned int D.26740;
  unsigned int code_size.113;
  unsigned int D.26742;
  double D.26748;
  double D.26749;
  int D.26750;
  int D.26757;
  int D.26758;
  double D.26759;
  double D.26760;
  double D.26761;
  double D.26762;
  double D.26763;
  int D.26764;
  int D.26765;
  int D.26766;
  int D.26767;
  int D.26768;
  int result;
  int expected;
  int failed;
  int cfailed;
  int run;
  int code_size;
  int (*TestMethod) (void) func;
  double elapsed;
  double comp_time;
  double start_time;
  char * n;
  int i;

  mono_set_defaults (verbose, opt_flags);
  n = opt_descr (opt_flags);
  D.26702 = mono_image_get_filename (image);
  monoeg_g_print ("Test run: image=%s, opts=%s\n", D.26702, n);
  monoeg_g_free (n);
  code_size = 0;
  run = code_size;
  failed = run;
  cfailed = failed;
  elapsed = 0.0;
  comp_time = elapsed;
  D.26703 = domain->runtime_info;
  if (D.26703 != 0B) goto <D.26704>; else goto <D.26705>;
  <D.26704>:
  D.26703 = domain->runtime_info;
  D.26706 = MEM[(struct MonoJitDomainInfo *)D.26703].jit_trampoline_hash;
  monoeg_g_hash_table_destroy (D.26706);
  D.26703 = domain->runtime_info;
  D.26707 = monoeg_g_hash_table_new (mono_aligned_addr_hash, 0B);
  MEM[(struct MonoJitDomainInfo *)D.26703].jit_trampoline_hash = D.26707;
  D.26708 = &domain->jit_code_hash;
  mono_internal_hash_table_destroy (D.26708);
  D.26708 = &domain->jit_code_hash;
  mono_jit_code_hash_init (D.26708);
  <D.26705>:
  monoeg_g_timer_start (timer);
  mini_stats_fd.112 = mini_stats_fd;
  if (mini_stats_fd.112 != 0B) goto <D.26710>; else goto <D.26711>;
  <D.26710>:
  mini_stats_fd.112 = mini_stats_fd;
  fprintf (mini_stats_fd.112, "[");
  <D.26711>:
  i = 0;
  goto <D.22886>;
  <D.22885>:
  {
    struct MonoMethod * method;

    D.26712 = i + 1;
    D.26713 = D.26712 | 100663296;
    D.26714 = (unsigned int) D.26713;
    method = mono_get_method (image, D.26714, 0B);
    if (method == 0B) goto <D.26715>; else goto <D.26716>;
    <D.26715>:
    // predicted unlikely by continue predictor.
    goto <D.22874>;
    <D.26716>:
    D.26717 = method->name;
    D.26718 = strncmp (D.26717, "test_", 5);
    if (D.26718 == 0) goto <D.26719>; else goto <D.26720>;
    <D.26719>:
    {
      struct MonoCompile * cfg;

      D.26717 = method->name;
      D.26721 = D.26717 + 5;
      expected = atoi (D.26721);
      run = run + 1;
      start_time = monoeg_g_timer_elapsed (timer, 0B);
      comp_time = comp_time - start_time;
      D.26722 = mono_get_optimizations_for_method (method, opt_flags);
      D.26723 = mono_get_root_domain ();
      cfg = mini_method_compile (method, D.26722, D.26723, 1, 0);
      D.26724 = monoeg_g_timer_elapsed (timer, 0B);
      comp_time = D.26724 + comp_time;
      D.26725 = cfg->exception_type;
      if (D.26725 == 0) goto <D.26726>; else goto <D.26727>;
      <D.26726>:
      if (verbose > 1) goto <D.26728>; else goto <D.26729>;
      <D.26728>:
      D.26717 = method->name;
      monoeg_g_print ("Running \'%s\' ...\n", D.26717);
      <D.26729>:
      D.26730 = mono_get_root_domain ();
      D.26731 = mono_aot_get_method (D.26730, method);
      func = (int (*TestMethod) (void)) D.26731;
      if (func != 0B) goto <D.26732>; else goto <D.26733>;
      <D.26732>:
      goto <D.26734>;
      <D.26733>:
      D.26735 = cfg->native_code;
      func = (int (*TestMethod) (void)) D.26735;
      <D.26734>:
      D.26736 = mono_get_root_domain ();
      D.26737 = mono_create_ftnptr (D.26736, func);
      func = (int (*TestMethod) (void)) D.26737;
      result = func ();
      if (result != expected) goto <D.26738>; else goto <D.26739>;
      <D.26738>:
      failed = failed + 1;
      D.26717 = method->name;
      monoeg_g_print ("Test \'%s\' failed result (got %d, expected %d).\n", D.26717, result, expected);
      <D.26739>:
      D.26740 = cfg->code_len;
      code_size.113 = (unsigned int) code_size;
      D.26742 = D.26740 + code_size.113;
      code_size = (int) D.26742;
      mono_destroy_compile (cfg);
      goto <D.26743>;
      <D.26727>:
      cfailed = cfailed + 1;
      if (verbose != 0) goto <D.26744>; else goto <D.26745>;
      <D.26744>:
      D.26717 = method->name;
      monoeg_g_print ("Test \'%s\' failed compilation.\n", D.26717);
      <D.26745>:
      <D.26743>:
      mini_stats_fd.112 = mini_stats_fd;
      if (mini_stats_fd.112 != 0B) goto <D.26746>; else goto <D.26747>;
      <D.26746>:
      mini_stats_fd.112 = mini_stats_fd;
      D.26748 = monoeg_g_timer_elapsed (timer, 0B);
      D.26749 = D.26748 - start_time;
      fprintf (mini_stats_fd.112, "%f, ", D.26749);
      <D.26747>:
    }
    <D.26720>:
  }
  <D.22874>:
  i = i + 1;
  <D.22886>:
  D.26750 = mono_image_get_table_rows (image, 6);
  if (D.26750 > i) goto <D.22885>; else goto <D.22887>;
  <D.22887>:
  mini_stats_fd.112 = mini_stats_fd;
  if (mini_stats_fd.112 != 0B) goto <D.26751>; else goto <D.26752>;
  <D.26751>:
  mini_stats_fd.112 = mini_stats_fd;
  fprintf (mini_stats_fd.112, "],\n");
  <D.26752>:
  monoeg_g_timer_stop (timer);
  elapsed = monoeg_g_timer_elapsed (timer, 0B);
  if (failed > 0) goto <D.26753>; else goto <D.26756>;
  <D.26756>:
  if (cfailed > 0) goto <D.26753>; else goto <D.26754>;
  <D.26753>:
  D.26757 = run - failed;
  D.26758 = D.26757 - cfailed;
  D.26759 = (double) D.26758;
  D.26760 = D.26759 * 1.0e+2;
  D.26761 = (double) run;
  D.26762 = D.26760 / D.26761;
  monoeg_g_print ("Results: total tests: %d, failed: %d, cfailed: %d (pass: %.2f%%)\n", run, failed, cfailed, D.26762);
  goto <D.26755>;
  <D.26754>:
  monoeg_g_print ("Results: total tests: %d, all pass \n", run);
  <D.26755>:
  D.26763 = elapsed - comp_time;
  monoeg_g_print ("Elapsed time: %f secs (%f, %f), Code size: %d\n\n", elapsed, D.26763, comp_time, code_size);
  D.26764 = *total;
  D.26765 = failed + cfailed;
  D.26766 = D.26764 + D.26765;
  *total = D.26766;
  D.26767 = *total_run;
  D.26768 = D.26767 + run;
  *total_run = D.26768;
}


mini_usage ()
{
  struct _IO_FILE * stdout.114;

  stdout.114 = stdout;
  fprintf (stdout.114, "Usage is: mono [options] program [program-options]\n\nDevelopment:\n    --aot[=<options>]      Compiles the assembly to native code\n    --debug[=<options>]    Enable debugging support, use --help-debug for details\n    --debugger-agent=options Enable the debugger agent\n    --profile[=profiler]   Runs in profiling mode with the specified profiler module\n    --trace[=EXPR]         Enable tracing, use --help-trace for details\n    --jitmap               Output a jit method map to /tmp/perf-PID.map\n    --help-devel           Shows more options available to developers\n\nRuntime:\n    --config FILE          Loads FILE as the Mono config\n    --verbose, -v          Increases the verbosity level\n    --help, -h             Show usage information\n    --version, -V          Show version information\n    --runtime=VERSION      Use the VERSION runtime, instead of autodetecting\n    --optimize=OPT         Turns on or off a specific optimization\n                           Use --list-opt to get a list of optimizations\n    --security[=mode]      Turns on the unsupported security manager (off by default)\n                           mode is one of cas, core-clr, verifiable or validil\n    --attach=OPTIONS       Pass OPTIONS to the attach agent in the runtime.\n                           Currently the only supported option is \'disable\'.\n    --llvm, --nollvm       Controls whenever the runtime uses LLVM to compile code.\n    --gc=[sgen,boehm]      Select SGen or Boehm GC (runs mono or mono-sgen)\n");
}


main_thread_handler (void * user_data)
{
  int mono_compile_aot.115;
  struct MonoDomain * D.26773;
  char * * D.26774;
  unsigned int i.116;
  unsigned int D.26776;
  char * * D.26777;
  char * D.26778;
  struct _IO_FILE * stderr.117;
  int D.23021;
  char * D.26784;
  struct MonoImage * D.26785;
  char * D.26786;
  unsigned int D.26789;
  char * D.26790;
  int D.26793;
  const char * D.26795;
  unsigned int D.26798;
  struct MainThreadArgs * main_args;
  struct MonoAssembly * assembly;

  main_args = user_data;
  mono_compile_aot.115 = mono_compile_aot;
  if (mono_compile_aot.115 != 0) goto <D.26771>; else goto <D.26772>;
  <D.26771>:
  {
    int i;
    int res;

    i = 0;
    goto <D.23023>;
    <D.23022>:
    D.26773 = main_args->domain;
    D.26774 = main_args->argv;
    i.116 = (unsigned int) i;
    D.26776 = i.116 * 4;
    D.26777 = D.26774 + D.26776;
    D.26778 = *D.26777;
    assembly = mono_domain_assembly_open (D.26773, D.26778);
    if (assembly == 0B) goto <D.26779>; else goto <D.26780>;
    <D.26779>:
    stderr.117 = stderr;
    D.26774 = main_args->argv;
    i.116 = (unsigned int) i;
    D.26776 = i.116 * 4;
    D.26777 = D.26774 + D.26776;
    D.26778 = *D.26777;
    fprintf (stderr.117, "Can not open image %s\n", D.26778);
    exit (1);
    <D.26780>:
    {
      MonoImageOpenStatus status;
      struct MonoImage * img;

      try
        {
          D.26774 = main_args->argv;
          i.116 = (unsigned int) i;
          D.26776 = i.116 * 4;
          D.26777 = D.26774 + D.26776;
          D.26778 = *D.26777;
          img = mono_image_open (D.26778, &status);
          if (img != 0B) goto <D.26782>; else goto <D.26783>;
          <D.26782>:
          {
            size_t __s1_len;
            size_t __s2_len;

            D.26784 = img->name;
            D.26785 = assembly->image;
            D.26786 = D.26785->name;
            D.23021 = __builtin_strcmp (D.26784, D.26786);
          }
          if (D.23021 != 0) goto <D.26787>; else goto <D.26788>;
          <D.26787>:
          stderr.117 = stderr;
          D.26785 = assembly->image;
          D.26786 = D.26785->name;
          D.26784 = img->name;
          fprintf (stderr.117, "Error: Loaded assembly \'%s\' doesn\'t match original file name \'%s\'. Set MONO_PATH to the assembly\'s location.\n", D.26786, D.26784);
          exit (1);
          <D.26788>:
          <D.26783>:
        }
      finally
        {
          status = {CLOBBER};
        }
    }
    D.26789 = main_args->opts;
    D.26790 = main_args->aot_options;
    res = mono_compile_assembly (assembly, D.26789, D.26790);
    if (res != 0) goto <D.26791>; else goto <D.26792>;
    <D.26791>:
    stderr.117 = stderr;
    D.26774 = main_args->argv;
    i.116 = (unsigned int) i;
    D.26776 = i.116 * 4;
    D.26777 = D.26774 + D.26776;
    D.26778 = *D.26777;
    fprintf (stderr.117, "AOT of image %s failed.\n", D.26778);
    exit (1);
    <D.26792>:
    i = i + 1;
    <D.23023>:
    D.26793 = main_args->argc;
    if (D.26793 > i) goto <D.23022>; else goto <D.23024>;
    <D.23024>:
  }
  goto <D.26794>;
  <D.26772>:
  D.26773 = main_args->domain;
  D.26795 = main_args->file;
  assembly = mono_domain_assembly_open (D.26773, D.26795);
  if (assembly == 0B) goto <D.26796>; else goto <D.26797>;
  <D.26796>:
  stderr.117 = stderr;
  D.26795 = main_args->file;
  fprintf (stderr.117, "Can not open image %s\n", D.26795);
  exit (1);
  <D.26797>:
  D.26789 = main_args->opts;
  D.26798 = D.26789 & 131072;
  if (D.26798 != 0) goto <D.26799>; else goto <D.26800>;
  <D.26799>:
  mono_precompile_assemblies ();
  <D.26800>:
  D.26773 = main_args->domain;
  D.26793 = main_args->argc;
  D.26774 = main_args->argv;
  mono_jit_exec (D.26773, assembly, D.26793, D.26774);
  <D.26794>:
}


compile_all_methods (struct MonoAssembly * ass, int verbose, guint32 opts, guint32 recompilation_times)
{
  struct MonoDomain * D.26801;
  struct CompileAllThreadArgs args;

  try
    {
      args.ass = ass;
      args.verbose = verbose;
      args.opts = opts;
      args.recompilation_times = recompilation_times;
      D.26801 = mono_domain_get ();
      mono_thread_create (D.26801, compile_all_methods_thread_main, &args);
      mono_thread_manage ();
    }
  finally
    {
      args = {CLOBBER};
    }
}


compile_all_methods_thread_main (struct CompileAllThreadArgs * args)
{
  unsigned int D.26802;
  guint32 i;

  i = 0;
  goto <D.22978>;
  <D.22977>:
  compile_all_methods_thread_main_inner (args);
  i = i + 1;
  <D.22978>:
  D.26802 = args->recompilation_times;
  if (D.26802 > i) goto <D.22977>; else goto <D.22979>;
  <D.22979>:
}


compile_all_methods_thread_main_inner (struct CompileAllThreadArgs * args)
{
  int D.26803;
  int D.26804;
  int D.26805;
  short unsigned int D.26812;
  int D.26813;
  int D.26814;
  short unsigned int D.26816;
  int D.26817;
  int D.26818;
  int D.26820;
  int D.26822;
  struct MonoClass * D.26823;
  struct MonoGenericContainer * D.26824;
  unsigned int D.26829;
  unsigned int D.26830;
  unsigned int D.26835;
  unsigned int D.26836;
  struct MonoDomain * D.26837;
  unsigned int D.26838;
  struct MonoMethod * D.26841;
  char * D.26842;
  char * D.26843;
  int D.26844;
  struct MonoAssembly * ass;
  int verbose;
  struct MonoImage * image;
  struct MonoMethod * method;
  struct MonoCompile * cfg;
  int i;
  int count;
  int fail_count;

  ass = args->ass;
  verbose = args->verbose;
  image = mono_assembly_get_image (ass);
  count = 0;
  fail_count = 0;
  i = 0;
  goto <D.22971>;
  <D.22970>:
  {
    guint32 token;
    struct MonoMethodSignature * sig;

    D.26803 = i + 1;
    D.26804 = D.26803 | 100663296;
    token = (guint32) D.26804;
    D.26805 = mono_metadata_has_generic_params (image, token);
    if (D.26805 != 0) goto <D.26806>; else goto <D.26807>;
    <D.26806>:
    // predicted unlikely by continue predictor.
    goto <D.22967>;
    <D.26807>:
    method = mono_get_method (image, token, 0B);
    if (method == 0B) goto <D.26808>; else goto <D.26809>;
    <D.26808>:
    // predicted unlikely by continue predictor.
    goto <D.22967>;
    <D.26809>:
    D.26812 = method->iflags;
    D.26813 = (int) D.26812;
    D.26814 = D.26813 & 4096;
    if (D.26814 != 0) goto <D.26810>; else goto <D.26815>;
    <D.26815>:
    D.26816 = method->flags;
    D.26817 = (int) D.26816;
    D.26818 = D.26817 & 8192;
    if (D.26818 != 0) goto <D.26810>; else goto <D.26819>;
    <D.26819>:
    D.26812 = method->iflags;
    D.26813 = (int) D.26812;
    D.26820 = D.26813 & 3;
    if (D.26820 != 0) goto <D.26810>; else goto <D.26821>;
    <D.26821>:
    D.26816 = method->flags;
    D.26817 = (int) D.26816;
    D.26822 = D.26817 & 1024;
    if (D.26822 != 0) goto <D.26810>; else goto <D.26811>;
    <D.26810>:
    // predicted unlikely by continue predictor.
    goto <D.22967>;
    <D.26811>:
    D.26823 = method->klass;
    D.26824 = D.26823->generic_container;
    if (D.26824 != 0B) goto <D.26825>; else goto <D.26826>;
    <D.26825>:
    // predicted unlikely by continue predictor.
    goto <D.22967>;
    <D.26826>:
    sig = mono_method_signature (method);
    if (sig == 0B) goto <D.26827>; else goto <D.26828>;
    <D.26827>:
    {
      char * desc;

      desc = mono_method_full_name (method, 1);
      monoeg_g_print ("Could not retrieve method signature for %s\n", desc);
      monoeg_g_free (desc);
      fail_count = fail_count + 1;
      // predicted unlikely by continue predictor.
      goto <D.22967>;
    }
    <D.26828>:
    D.26829 = BIT_FIELD_REF <*sig, 32, 64>;
    D.26830 = D.26829 & 67108864;
    if (D.26830 != 0) goto <D.26831>; else goto <D.26832>;
    <D.26831>:
    // predicted unlikely by continue predictor.
    goto <D.22967>;
    <D.26832>:
    count = count + 1;
    if (verbose != 0) goto <D.26833>; else goto <D.26834>;
    <D.26833>:
    {
      char * desc;

      desc = mono_method_full_name (method, 1);
      monoeg_g_print ("Compiling %d %s\n", count, desc);
      monoeg_g_free (desc);
    }
    <D.26834>:
    D.26835 = args->opts;
    D.26836 = mono_get_optimizations_for_method (method, D.26835);
    D.26837 = mono_get_root_domain ();
    cfg = mini_method_compile (method, D.26836, D.26837, 0, 0);
    D.26838 = cfg->exception_type;
    if (D.26838 != 0) goto <D.26839>; else goto <D.26840>;
    <D.26839>:
    D.26841 = cfg->method;
    D.26842 = mono_method_full_name (D.26841, 1);
    D.26843 = cfg->exception_message;
    printf ("Compilation of %s failed with exception \'%s\':\n", D.26842, D.26843);
    fail_count = fail_count + 1;
    <D.26840>:
    mono_destroy_compile (cfg);
  }
  <D.22967>:
  i = i + 1;
  <D.22971>:
  D.26844 = mono_image_get_table_rows (image, 6);
  if (D.26844 > i) goto <D.22970>; else goto <D.22972>;
  <D.22972>:
  if (fail_count != 0) goto <D.26845>; else goto <D.26846>;
  <D.26845>:
  exit (1);
  <D.26846>:
}


printf (const char * restrict __fmt)
{
  int D.26847;

  D.26847 = __printf_chk (1, __fmt, __builtin_va_arg_pack ());
  return D.26847;
}


opt_descr (guint32 flags)
{
  int D.26849;
  unsigned int D.26850;
  unsigned int D.26851;
  short int D.26856;
  sizetype D.26857;
  const gchar * D.26858;
  unsigned int i.118;
  char * D.26860;
  struct GString * str;
  int i;
  int need_comma;

  str = monoeg_g_string_new ("");
  need_comma = 0;
  i = 0;
  goto <D.22847>;
  <D.22846>:
  D.26849 = 1 << i;
  D.26850 = (unsigned int) D.26849;
  D.26851 = D.26850 & flags;
  if (D.26851 != 0) goto <D.26852>; else goto <D.26853>;
  <D.26852>:
  if (need_comma != 0) goto <D.26854>; else goto <D.26855>;
  <D.26854>:
  monoeg_g_string_append_c (str, 44);
  <D.26855>:
  D.26856 = opt_names[i];
  D.26857 = (sizetype) D.26856;
  D.26858 = &opstr + D.26857;
  monoeg_g_string_append (str, D.26858);
  need_comma = 1;
  <D.26853>:
  i = i + 1;
  <D.22847>:
  i.118 = (unsigned int) i;
  if (i.118 <= 28) goto <D.22846>; else goto <D.22848>;
  <D.22848>:
  D.26860 = monoeg_g_string_free (str, 0);
  return D.26860;
}


mono_jit_init (const char * file)
{
  struct MonoDomain * D.26862;

  D.26862 = mini_init (file, 0B);
  return D.26862;
}


mono_jit_init_version (const char * domain_name, const char * runtime_version)
{
  struct MonoDomain * D.26864;

  D.26864 = mini_init (domain_name, runtime_version);
  return D.26864;
}


mono_jit_cleanup (struct MonoDomain * domain)
{
  mini_cleanup (domain);
}


mono_jit_set_aot_only (gboolean val)
{
  mono_aot_only = val;
}


mono_jit_set_trace_options (const char * options)
{
  mono_bool D.26868;
  struct MonoTraceSpec * trace_opt;

  trace_opt = mono_trace_parse_options (options);
  if (trace_opt == 0B) goto <D.26866>; else goto <D.26867>;
  <D.26866>:
  D.26868 = 0;
  return D.26868;
  <D.26867>:
  mono_jit_trace_calls = trace_opt;
  D.26868 = 1;
  return D.26868;
}


mono_set_signal_chaining (gboolean chain_signals)
{
  mono_do_signal_chaining = chain_signals;
}


