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

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


parse_optimizations (const char * p)
{
  unsigned int D.24719;
  unsigned int exclude.0;
  unsigned int D.24721;
  guint32 D.24724;
  char D.24725;
  short int D.24729;
  sizetype D.24730;
  long unsigned int D.24731;
  long unsigned int D.24732;
  int D.24733;
  int D.24738;
  int D.24739;
  unsigned int D.24740;
  unsigned int D.24742;
  sizetype D.24743;
  void (*<T3d66>) (const char *) D.24748;
  const char * p.1;
  char D.24753;
  unsigned int i.2;
  const char * D.24756;
  int D.24760;
  unsigned int D.24766;
  struct _IO_FILE * stderr.3;
  guint32 opt;
  guint32 exclude;
  const char * n;
  int i;
  int invert;
  int len;

  try
    {
      opt = 370223615;
      exclude = 0;
      mono_hwcap_init ();
      D.24719 = mono_arch_cpu_optimizations (&exclude);
      opt = D.24719 | opt;
      exclude.0 = exclude;
      D.24721 = ~exclude.0;
      opt = D.24721 & opt;
      if (p == 0B) goto <D.24722>; else goto <D.24723>;
      <D.24722>:
      D.24724 = opt;
      return D.24724;
      <D.24723>:
      goto <D.23620>;
      <D.23619>:
      D.24725 = *p;
      if (D.24725 == 45) goto <D.24726>; else goto <D.24727>;
      <D.24726>:
      p = p + 1;
      invert = 1;
      goto <D.24728>;
      <D.24727>:
      invert = 0;
      <D.24728>:
      i = 0;
      goto <D.23609>;
      <D.23608>:
      D.24729 = opt_names[i];
      D.24730 = (sizetype) D.24729;
      n = &opstr + D.24730;
      D.24731 = strlen (n);
      len = (int) D.24731;
      D.24732 = (long unsigned int) len;
      D.24733 = strncmp (p, n, D.24732);
      if (D.24733 == 0) goto <D.24734>; else goto <D.24735>;
      <D.24734>:
      if (invert != 0) goto <D.24736>; else goto <D.24737>;
      <D.24736>:
      D.24738 = 1 << i;
      D.24739 = ~D.24738;
      D.24740 = (unsigned int) D.24739;
      opt = D.24740 & opt;
      goto <D.24741>;
      <D.24737>:
      D.24738 = 1 << i;
      D.24742 = (unsigned int) D.24738;
      opt = D.24742 | opt;
      <D.24741>:
      D.24743 = (sizetype) len;
      p = p + D.24743;
      D.24725 = *p;
      if (D.24725 == 44) goto <D.24744>; else goto <D.24745>;
      <D.24744>:
      p = p + 1;
      goto <D.23604>;
      <D.24745>:
      D.24725 = *p;
      if (D.24725 == 61) goto <D.24746>; else goto <D.24747>;
      <D.24746>:
      p = p + 1;
      D.24748 = opt_funcs[i];
      if (D.24748 != 0B) goto <D.24749>; else goto <D.24750>;
      <D.24749>:
      D.24748 = opt_funcs[i];
      D.24748 (p);
      <D.24750>:
      goto <D.23606>;
      <D.23605>:
      <D.23606>:
      D.24725 = *p;
      if (D.24725 != 0) goto <D.24751>; else goto <D.23607>;
      <D.24751>:
      p.1 = p;
      p = p.1 + 1;
      D.24753 = *p.1;
      if (D.24753 != 44) goto <D.23605>; else goto <D.23607>;
      <D.23607>:
      goto <D.23604>;
      <D.24747>:
      goto <D.23604>;
      <D.24735>:
      i = i + 1;
      <D.23609>:
      i.2 = (unsigned int) i;
      if (i.2 <= 28) goto <D.24755>; else goto <D.23604>;
      <D.24755>:
      D.24729 = opt_names[i];
      D.24730 = (sizetype) D.24729;
      D.24756 = &opstr + D.24730;
      if (D.24756 != 0B) goto <D.23608>; else goto <D.23604>;
      <D.23604>:
      if (i == 29) goto <D.24757>; else goto <D.24759>;
      <D.24759>:
      D.24729 = opt_names[i];
      D.24730 = (sizetype) D.24729;
      D.24756 = &opstr + D.24730;
      if (D.24756 == 0B) goto <D.24757>; else goto <D.24758>;
      <D.24757>:
      D.24760 = strncmp (p, "all", 3);
      if (D.24760 == 0) goto <D.24761>; else goto <D.24762>;
      <D.24761>:
      if (invert != 0) goto <D.24763>; else goto <D.24764>;
      <D.24763>:
      opt = 0;
      goto <D.24765>;
      <D.24764>:
      exclude.0 = exclude;
      D.24766 = exclude.0 | 151126528;
      opt = ~D.24766;
      <D.24765>:
      p = p + 3;
      D.24725 = *p;
      if (D.24725 == 44) goto <D.24767>; else goto <D.24768>;
      <D.24767>:
      p = p + 1;
      <D.24768>:
      goto <D.24769>;
      <D.24762>:
      stderr.3 = stderr;
      fprintf (stderr.3, "Invalid optimization name `%s\'\n", p);
      exit (1);
      <D.24769>:
      <D.24758>:
      <D.23620>:
      D.24725 = *p;
      if (D.24725 != 0) goto <D.23619>; else goto <D.23621>;
      <D.23621>:
      D.24724 = opt;
      return D.24724;
    }
  finally
    {
      exclude = {CLOBBER};
    }
}


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

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


mono_jit_exec (struct MonoDomain * domain, struct MonoAssembly * assembly, int argc, char * * argv)
{
  const char * D.24777;
  int D.24778;
  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.24775>; else goto <D.24776>;
  <D.24775>:
  D.24777 = mono_image_get_filename (image);
  monoeg_g_print ("Assembly \'%s\' doesn\'t have an entry point.\n", D.24777);
  mono_environment_exitcode_set (1);
  D.24778 = 1;
  return D.24778;
  <D.24776>:
  method = mono_get_method (image, entry, 0B);
  if (method == 0B) goto <D.24779>; else goto <D.24780>;
  <D.24779>:
  monoeg_g_print ("The entry point method could not be loaded\n");
  mono_environment_exitcode_set (1);
  D.24778 = 1;
  return D.24778;
  <D.24780>:
  D.24778 = mono_runtime_run_main (method, argc, argv, 0B);
  return D.24778;
}


mono_jit_parse_options (int argc, char * * argv)
{
  long unsigned int D.24782;
  long unsigned int D.24783;
  char * * D.24784;
  char * D.24785;
  char D.24786;
  int D.24788;
  char * D.24791;
  int D.23934;
  int iftmp.4;
  int D.23933;
  const char[19] * D.24796;
  unsigned char D.24797;
  int D.24798;
  unsigned char D.24799;
  int D.24800;
  const unsigned char * D.24805;
  unsigned char D.24806;
  int D.24807;
  const unsigned char * D.24808;
  unsigned char D.24809;
  int D.24810;
  const unsigned char * D.24815;
  unsigned char D.24816;
  int D.24817;
  const unsigned char * D.24818;
  unsigned char D.24819;
  int D.24820;
  const unsigned char * D.24825;
  unsigned char D.24826;
  int D.24827;
  const unsigned char * D.24828;
  unsigned char D.24829;
  int D.24830;
  int D.24835;
  const char * D.24838;
  int D.24840;
  const char * D.24843;
  int D.23964;
  int iftmp.5;
  int D.23963;
  const char[8] * D.24848;
  unsigned char D.24849;
  int D.24850;
  unsigned char D.24851;
  int D.24852;
  const unsigned char * D.24857;
  unsigned char D.24858;
  int D.24859;
  const unsigned char * D.24860;
  unsigned char D.24861;
  int D.24862;
  const unsigned char * D.24867;
  unsigned char D.24868;
  int D.24869;
  const unsigned char * D.24870;
  unsigned char D.24871;
  int D.24872;
  const unsigned char * D.24877;
  unsigned char D.24878;
  int D.24879;
  const unsigned char * D.24880;
  unsigned char D.24881;
  int D.24882;
  int D.24887;
  int D.23982;
  int iftmp.6;
  int D.23981;
  const char[10] * D.24897;
  unsigned char D.24898;
  int D.24899;
  unsigned char D.24900;
  int D.24901;
  const unsigned char * D.24906;
  unsigned char D.24907;
  int D.24908;
  const unsigned char * D.24909;
  unsigned char D.24910;
  int D.24911;
  const unsigned char * D.24916;
  unsigned char D.24917;
  int D.24918;
  const unsigned char * D.24919;
  unsigned char D.24920;
  int D.24921;
  const unsigned char * D.24926;
  unsigned char D.24927;
  int D.24928;
  const unsigned char * D.24929;
  unsigned char D.24930;
  int D.24931;
  int D.23991;
  int iftmp.7;
  int D.23990;
  const char[3] * D.24937;
  unsigned char D.24938;
  int D.24939;
  unsigned char D.24940;
  int D.24941;
  const unsigned char * D.24946;
  unsigned char D.24947;
  int D.24948;
  const unsigned char * D.24949;
  unsigned char D.24950;
  int D.24951;
  const unsigned char * D.24956;
  unsigned char D.24957;
  int D.24958;
  const unsigned char * D.24959;
  unsigned char D.24960;
  int D.24961;
  const unsigned char * D.24966;
  unsigned char D.24967;
  int D.24968;
  const unsigned char * D.24969;
  unsigned char D.24970;
  int D.24971;
  int D.24000;
  int iftmp.8;
  int D.23999;
  const char[12] * D.24976;
  unsigned char D.24977;
  int D.24978;
  unsigned char D.24979;
  int D.24980;
  const unsigned char * D.24985;
  unsigned char D.24986;
  int D.24987;
  const unsigned char * D.24988;
  unsigned char D.24989;
  int D.24990;
  const unsigned char * D.24995;
  unsigned char D.24996;
  int D.24997;
  const unsigned char * D.24998;
  unsigned char D.24999;
  int D.25000;
  const unsigned char * D.25005;
  unsigned char D.25006;
  int D.25007;
  const unsigned char * D.25008;
  unsigned char D.25009;
  int D.25010;
  int D.24010;
  int iftmp.9;
  int D.24009;
  const char[8] * D.25018;
  unsigned char D.25019;
  int D.25020;
  unsigned char D.25021;
  int D.25022;
  const unsigned char * D.25027;
  unsigned char D.25028;
  int D.25029;
  const unsigned char * D.25030;
  unsigned char D.25031;
  int D.25032;
  const unsigned char * D.25037;
  unsigned char D.25038;
  int D.25039;
  const unsigned char * D.25040;
  unsigned char D.25041;
  int D.25042;
  const unsigned char * D.25047;
  unsigned char D.25048;
  int D.25049;
  const unsigned char * D.25050;
  unsigned char D.25051;
  int D.25052;
  int D.24019;
  int iftmp.10;
  int D.24018;
  const char[8] * D.25060;
  unsigned char D.25061;
  int D.25062;
  unsigned char D.25063;
  int D.25064;
  const unsigned char * D.25069;
  unsigned char D.25070;
  int D.25071;
  const unsigned char * D.25072;
  unsigned char D.25073;
  int D.25074;
  const unsigned char * D.25079;
  unsigned char D.25080;
  int D.25081;
  const unsigned char * D.25082;
  unsigned char D.25083;
  int D.25084;
  const unsigned char * D.25089;
  unsigned char D.25090;
  int D.25091;
  const unsigned char * D.25092;
  unsigned char D.25093;
  int D.25094;
  int D.25098;
  struct _IO_FILE * stderr.11;
  int D.25102;
  int D.24028;
  int iftmp.12;
  int D.24027;
  const char[7] * D.25109;
  unsigned char D.25110;
  int D.25111;
  unsigned char D.25112;
  int D.25113;
  const unsigned char * D.25118;
  unsigned char D.25119;
  int D.25120;
  const unsigned char * D.25121;
  unsigned char D.25122;
  int D.25123;
  const unsigned char * D.25128;
  unsigned char D.25129;
  int D.25130;
  const unsigned char * D.25131;
  unsigned char D.25132;
  int D.25133;
  const unsigned char * D.25138;
  unsigned char D.25139;
  int D.25140;
  const unsigned char * D.25141;
  unsigned char D.25142;
  int D.25143;
  struct MonoTraceSpec * mono_jit_trace_calls.13;
  struct MonoTraceSpec * mono_jit_trace_calls.14;
  unsigned int mini_verbose.15;
  int i;
  char * trace_options;
  int mini_verbose;

  trace_options = 0B;
  mini_verbose = 0;
  i = 0;
  goto <D.24030>;
  <D.24029>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.24786 = *D.24785;
  if (D.24786 != 45) goto <D.23915>; else goto <D.24787>;
  <D.24787>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.24788 = strncmp (D.24785, "--debugger-agent=", 17);
  if (D.24788 == 0) goto <D.24789>; else goto <D.24790>;
  <D.24789>:
  {
    struct MonoDebugOptions * opt;

    opt = mini_get_debug_options ();
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    D.24791 = D.24785 + 17;
    mono_debugger_agent_parse_options (D.24791);
    opt->mdb_optimizations = 1;
    enable_debugging = 1;
  }
  goto <D.24792>;
  <D.24790>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.24796 = "--soft-breakpoints";
      D.24797 = MEM[(const unsigned char *)D.24796];
      D.24798 = (int) D.24797;
      D.24799 = *__s2;
      D.24800 = (int) D.24799;
      __result = D.24798 - D.24800;
      {
        if (__s2_len != 0) goto <D.24801>; else goto <D.24802>;
        <D.24801>:
        if (__result == 0) goto <D.24803>; else goto <D.24804>;
        <D.24803>:
        D.24805 = &MEM[(void *)"--soft-breakpoints" + 1B];
        D.24806 = *D.24805;
        D.24807 = (int) D.24806;
        D.24808 = __s2 + 1;
        D.24809 = *D.24808;
        D.24810 = (int) D.24809;
        __result = D.24807 - D.24810;
        if (__s2_len > 1) goto <D.24811>; else goto <D.24812>;
        <D.24811>:
        if (__result == 0) goto <D.24813>; else goto <D.24814>;
        <D.24813>:
        D.24815 = &MEM[(void *)"--soft-breakpoints" + 2B];
        D.24816 = *D.24815;
        D.24817 = (int) D.24816;
        D.24818 = __s2 + 2;
        D.24819 = *D.24818;
        D.24820 = (int) D.24819;
        __result = D.24817 - D.24820;
        if (__s2_len > 2) goto <D.24821>; else goto <D.24822>;
        <D.24821>:
        if (__result == 0) goto <D.24823>; else goto <D.24824>;
        <D.24823>:
        D.24825 = &MEM[(void *)"--soft-breakpoints" + 3B];
        D.24826 = *D.24825;
        D.24827 = (int) D.24826;
        D.24828 = __s2 + 3;
        D.24829 = *D.24828;
        D.24830 = (int) D.24829;
        __result = D.24827 - D.24830;
        <D.24824>:
        <D.24822>:
        <D.24814>:
        <D.24812>:
        <D.24804>:
        <D.24802>:
      }
      D.23933 = __result;
    }
    iftmp.4 = -D.23933;
    goto <D.24831>;
    <D.24795>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.4 = __builtin_strcmp (D.24785, "--soft-breakpoints");
    <D.24831>:
    D.23934 = iftmp.4;
  }
  if (D.23934 == 0) goto <D.24832>; else goto <D.24833>;
  <D.24832>:
  {
    struct MonoDebugOptions * opt;

    opt = mini_get_debug_options ();
    opt->soft_breakpoints = 1;
    opt->explicit_null_checks = 1;
  }
  goto <D.24834>;
  <D.24833>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.24835 = strncmp (D.24785, "--optimize=", 11);
  if (D.24835 == 0) goto <D.24836>; else goto <D.24837>;
  <D.24836>:
  {
    guint32 opt;

    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    D.24838 = D.24785 + 11;
    opt = parse_optimizations (D.24838);
    mono_set_optimizations (opt);
  }
  goto <D.24839>;
  <D.24837>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.24840 = strncmp (D.24785, "-O=", 3);
  if (D.24840 == 0) goto <D.24841>; else goto <D.24842>;
  <D.24841>:
  {
    guint32 opt;

    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    D.24843 = D.24785 + 3;
    opt = parse_optimizations (D.24843);
    mono_set_optimizations (opt);
  }
  goto <D.24844>;
  <D.24842>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.24848 = "--trace";
      D.24849 = MEM[(const unsigned char *)D.24848];
      D.24850 = (int) D.24849;
      D.24851 = *__s2;
      D.24852 = (int) D.24851;
      __result = D.24850 - D.24852;
      {
        if (__s2_len != 0) goto <D.24853>; else goto <D.24854>;
        <D.24853>:
        if (__result == 0) goto <D.24855>; else goto <D.24856>;
        <D.24855>:
        D.24857 = &MEM[(void *)"--trace" + 1B];
        D.24858 = *D.24857;
        D.24859 = (int) D.24858;
        D.24860 = __s2 + 1;
        D.24861 = *D.24860;
        D.24862 = (int) D.24861;
        __result = D.24859 - D.24862;
        if (__s2_len > 1) goto <D.24863>; else goto <D.24864>;
        <D.24863>:
        if (__result == 0) goto <D.24865>; else goto <D.24866>;
        <D.24865>:
        D.24867 = &MEM[(void *)"--trace" + 2B];
        D.24868 = *D.24867;
        D.24869 = (int) D.24868;
        D.24870 = __s2 + 2;
        D.24871 = *D.24870;
        D.24872 = (int) D.24871;
        __result = D.24869 - D.24872;
        if (__s2_len > 2) goto <D.24873>; else goto <D.24874>;
        <D.24873>:
        if (__result == 0) goto <D.24875>; else goto <D.24876>;
        <D.24875>:
        D.24877 = &MEM[(void *)"--trace" + 3B];
        D.24878 = *D.24877;
        D.24879 = (int) D.24878;
        D.24880 = __s2 + 3;
        D.24881 = *D.24880;
        D.24882 = (int) D.24881;
        __result = D.24879 - D.24882;
        <D.24876>:
        <D.24874>:
        <D.24866>:
        <D.24864>:
        <D.24856>:
        <D.24854>:
      }
      D.23963 = __result;
    }
    iftmp.5 = -D.23963;
    goto <D.24883>;
    <D.24847>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.5 = __builtin_strcmp (D.24785, "--trace");
    <D.24883>:
    D.23964 = iftmp.5;
  }
  if (D.23964 == 0) goto <D.24884>; else goto <D.24885>;
  <D.24884>:
  trace_options = "";
  goto <D.24886>;
  <D.24885>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.24887 = strncmp (D.24785, "--trace=", 8);
  if (D.24887 == 0) goto <D.24888>; else goto <D.24889>;
  <D.24888>:
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  trace_options = D.24785 + 8;
  goto <D.24890>;
  <D.24889>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.24897 = "--verbose";
      D.24898 = MEM[(const unsigned char *)D.24897];
      D.24899 = (int) D.24898;
      D.24900 = *__s2;
      D.24901 = (int) D.24900;
      __result = D.24899 - D.24901;
      {
        if (__s2_len != 0) goto <D.24902>; else goto <D.24903>;
        <D.24902>:
        if (__result == 0) goto <D.24904>; else goto <D.24905>;
        <D.24904>:
        D.24906 = &MEM[(void *)"--verbose" + 1B];
        D.24907 = *D.24906;
        D.24908 = (int) D.24907;
        D.24909 = __s2 + 1;
        D.24910 = *D.24909;
        D.24911 = (int) D.24910;
        __result = D.24908 - D.24911;
        if (__s2_len > 1) goto <D.24912>; else goto <D.24913>;
        <D.24912>:
        if (__result == 0) goto <D.24914>; else goto <D.24915>;
        <D.24914>:
        D.24916 = &MEM[(void *)"--verbose" + 2B];
        D.24917 = *D.24916;
        D.24918 = (int) D.24917;
        D.24919 = __s2 + 2;
        D.24920 = *D.24919;
        D.24921 = (int) D.24920;
        __result = D.24918 - D.24921;
        if (__s2_len > 2) goto <D.24922>; else goto <D.24923>;
        <D.24922>:
        if (__result == 0) goto <D.24924>; else goto <D.24925>;
        <D.24924>:
        D.24926 = &MEM[(void *)"--verbose" + 3B];
        D.24927 = *D.24926;
        D.24928 = (int) D.24927;
        D.24929 = __s2 + 3;
        D.24930 = *D.24929;
        D.24931 = (int) D.24930;
        __result = D.24928 - D.24931;
        <D.24925>:
        <D.24923>:
        <D.24915>:
        <D.24913>:
        <D.24905>:
        <D.24903>:
      }
      D.23981 = __result;
    }
    iftmp.6 = -D.23981;
    goto <D.24932>;
    <D.24896>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.6 = __builtin_strcmp (D.24785, "--verbose");
    <D.24932>:
    D.23982 = iftmp.6;
  }
  if (D.23982 == 0) goto <D.24891>; else goto <D.24933>;
  <D.24933>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.24937 = "-v";
      D.24938 = MEM[(const unsigned char *)D.24937];
      D.24939 = (int) D.24938;
      D.24940 = *__s2;
      D.24941 = (int) D.24940;
      __result = D.24939 - D.24941;
      {
        if (__s2_len != 0) goto <D.24942>; else goto <D.24943>;
        <D.24942>:
        if (__result == 0) goto <D.24944>; else goto <D.24945>;
        <D.24944>:
        D.24946 = &MEM[(void *)"-v" + 1B];
        D.24947 = *D.24946;
        D.24948 = (int) D.24947;
        D.24949 = __s2 + 1;
        D.24950 = *D.24949;
        D.24951 = (int) D.24950;
        __result = D.24948 - D.24951;
        if (__s2_len > 1) goto <D.24952>; else goto <D.24953>;
        <D.24952>:
        if (__result == 0) goto <D.24954>; else goto <D.24955>;
        <D.24954>:
        D.24956 = &MEM[(void *)"-v" + 2B];
        D.24957 = *D.24956;
        D.24958 = (int) D.24957;
        D.24959 = __s2 + 2;
        D.24960 = *D.24959;
        D.24961 = (int) D.24960;
        __result = D.24958 - D.24961;
        if (__s2_len > 2) goto <D.24962>; else goto <D.24963>;
        <D.24962>:
        if (__result == 0) goto <D.24964>; else goto <D.24965>;
        <D.24964>:
        D.24966 = &MEM[(void *)"-v" + 3B];
        D.24967 = *D.24966;
        D.24968 = (int) D.24967;
        D.24969 = __s2 + 3;
        D.24970 = *D.24969;
        D.24971 = (int) D.24970;
        __result = D.24968 - D.24971;
        <D.24965>:
        <D.24963>:
        <D.24955>:
        <D.24953>:
        <D.24945>:
        <D.24943>:
      }
      D.23990 = __result;
    }
    iftmp.7 = -D.23990;
    goto <D.24972>;
    <D.24936>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.7 = __builtin_strcmp (D.24785, "-v");
    <D.24972>:
    D.23991 = iftmp.7;
  }
  if (D.23991 == 0) goto <D.24891>; else goto <D.24892>;
  <D.24891>:
  mini_verbose = mini_verbose + 1;
  goto <D.24893>;
  <D.24892>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.24976 = "--breakonex";
      D.24977 = MEM[(const unsigned char *)D.24976];
      D.24978 = (int) D.24977;
      D.24979 = *__s2;
      D.24980 = (int) D.24979;
      __result = D.24978 - D.24980;
      {
        if (__s2_len != 0) goto <D.24981>; else goto <D.24982>;
        <D.24981>:
        if (__result == 0) goto <D.24983>; else goto <D.24984>;
        <D.24983>:
        D.24985 = &MEM[(void *)"--breakonex" + 1B];
        D.24986 = *D.24985;
        D.24987 = (int) D.24986;
        D.24988 = __s2 + 1;
        D.24989 = *D.24988;
        D.24990 = (int) D.24989;
        __result = D.24987 - D.24990;
        if (__s2_len > 1) goto <D.24991>; else goto <D.24992>;
        <D.24991>:
        if (__result == 0) goto <D.24993>; else goto <D.24994>;
        <D.24993>:
        D.24995 = &MEM[(void *)"--breakonex" + 2B];
        D.24996 = *D.24995;
        D.24997 = (int) D.24996;
        D.24998 = __s2 + 2;
        D.24999 = *D.24998;
        D.25000 = (int) D.24999;
        __result = D.24997 - D.25000;
        if (__s2_len > 2) goto <D.25001>; else goto <D.25002>;
        <D.25001>:
        if (__result == 0) goto <D.25003>; else goto <D.25004>;
        <D.25003>:
        D.25005 = &MEM[(void *)"--breakonex" + 3B];
        D.25006 = *D.25005;
        D.25007 = (int) D.25006;
        D.25008 = __s2 + 3;
        D.25009 = *D.25008;
        D.25010 = (int) D.25009;
        __result = D.25007 - D.25010;
        <D.25004>:
        <D.25002>:
        <D.24994>:
        <D.24992>:
        <D.24984>:
        <D.24982>:
      }
      D.23999 = __result;
    }
    iftmp.8 = -D.23999;
    goto <D.25011>;
    <D.24975>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.8 = __builtin_strcmp (D.24785, "--breakonex");
    <D.25011>:
    D.24000 = iftmp.8;
  }
  if (D.24000 == 0) goto <D.25012>; else goto <D.25013>;
  <D.25012>:
  {
    struct MonoDebugOptions * opt;

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

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.25018 = "--stats";
      D.25019 = MEM[(const unsigned char *)D.25018];
      D.25020 = (int) D.25019;
      D.25021 = *__s2;
      D.25022 = (int) D.25021;
      __result = D.25020 - D.25022;
      {
        if (__s2_len != 0) goto <D.25023>; else goto <D.25024>;
        <D.25023>:
        if (__result == 0) goto <D.25025>; else goto <D.25026>;
        <D.25025>:
        D.25027 = &MEM[(void *)"--stats" + 1B];
        D.25028 = *D.25027;
        D.25029 = (int) D.25028;
        D.25030 = __s2 + 1;
        D.25031 = *D.25030;
        D.25032 = (int) D.25031;
        __result = D.25029 - D.25032;
        if (__s2_len > 1) goto <D.25033>; else goto <D.25034>;
        <D.25033>:
        if (__result == 0) goto <D.25035>; else goto <D.25036>;
        <D.25035>:
        D.25037 = &MEM[(void *)"--stats" + 2B];
        D.25038 = *D.25037;
        D.25039 = (int) D.25038;
        D.25040 = __s2 + 2;
        D.25041 = *D.25040;
        D.25042 = (int) D.25041;
        __result = D.25039 - D.25042;
        if (__s2_len > 2) goto <D.25043>; else goto <D.25044>;
        <D.25043>:
        if (__result == 0) goto <D.25045>; else goto <D.25046>;
        <D.25045>:
        D.25047 = &MEM[(void *)"--stats" + 3B];
        D.25048 = *D.25047;
        D.25049 = (int) D.25048;
        D.25050 = __s2 + 3;
        D.25051 = *D.25050;
        D.25052 = (int) D.25051;
        __result = D.25049 - D.25052;
        <D.25046>:
        <D.25044>:
        <D.25036>:
        <D.25034>:
        <D.25026>:
        <D.25024>:
      }
      D.24009 = __result;
    }
    iftmp.9 = -D.24009;
    goto <D.25053>;
    <D.25017>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.9 = __builtin_strcmp (D.24785, "--stats");
    <D.25053>:
    D.24010 = iftmp.9;
  }
  if (D.24010 == 0) goto <D.25054>; else goto <D.25055>;
  <D.25054>:
  mono_counters_enable (-1);
  mono_stats.enabled = 1;
  mono_jit_stats.enabled = 1;
  goto <D.25056>;
  <D.25055>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.25060 = "--break";
      D.25061 = MEM[(const unsigned char *)D.25060];
      D.25062 = (int) D.25061;
      D.25063 = *__s2;
      D.25064 = (int) D.25063;
      __result = D.25062 - D.25064;
      {
        if (__s2_len != 0) goto <D.25065>; else goto <D.25066>;
        <D.25065>:
        if (__result == 0) goto <D.25067>; else goto <D.25068>;
        <D.25067>:
        D.25069 = &MEM[(void *)"--break" + 1B];
        D.25070 = *D.25069;
        D.25071 = (int) D.25070;
        D.25072 = __s2 + 1;
        D.25073 = *D.25072;
        D.25074 = (int) D.25073;
        __result = D.25071 - D.25074;
        if (__s2_len > 1) goto <D.25075>; else goto <D.25076>;
        <D.25075>:
        if (__result == 0) goto <D.25077>; else goto <D.25078>;
        <D.25077>:
        D.25079 = &MEM[(void *)"--break" + 2B];
        D.25080 = *D.25079;
        D.25081 = (int) D.25080;
        D.25082 = __s2 + 2;
        D.25083 = *D.25082;
        D.25084 = (int) D.25083;
        __result = D.25081 - D.25084;
        if (__s2_len > 2) goto <D.25085>; else goto <D.25086>;
        <D.25085>:
        if (__result == 0) goto <D.25087>; else goto <D.25088>;
        <D.25087>:
        D.25089 = &MEM[(void *)"--break" + 3B];
        D.25090 = *D.25089;
        D.25091 = (int) D.25090;
        D.25092 = __s2 + 3;
        D.25093 = *D.25092;
        D.25094 = (int) D.25093;
        __result = D.25091 - D.25094;
        <D.25088>:
        <D.25086>:
        <D.25078>:
        <D.25076>:
        <D.25068>:
        <D.25066>:
      }
      D.24018 = __result;
    }
    iftmp.10 = -D.24018;
    goto <D.25095>;
    <D.25059>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.10 = __builtin_strcmp (D.24785, "--break");
    <D.25095>:
    D.24019 = iftmp.10;
  }
  if (D.24019 == 0) goto <D.25096>; else goto <D.25097>;
  <D.25096>:
  D.25098 = i + 1;
  if (D.25098 >= argc) goto <D.25099>; else goto <D.25100>;
  <D.25099>:
  stderr.11 = stderr;
  fprintf (stderr.11, "Missing method name in --break command line option\n");
  exit (1);
  <D.25100>:
  i = i + 1;
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  D.25102 = mono_debugger_insert_breakpoint (D.24785, 0);
  if (D.25102 == 0) goto <D.25103>; else goto <D.25104>;
  <D.25103>:
  stderr.11 = stderr;
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  fprintf (stderr.11, "Error: invalid method name \'%s\'\n", D.24785);
  <D.25104>:
  goto <D.25105>;
  <D.25097>:
  {
    size_t __s1_len;
    size_t __s2_len;

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

      D.24782 = (long unsigned int) i;
      D.24783 = D.24782 * 8;
      D.24784 = argv + D.24783;
      __s2 = *D.24784;
      D.25109 = "--llvm";
      D.25110 = MEM[(const unsigned char *)D.25109];
      D.25111 = (int) D.25110;
      D.25112 = *__s2;
      D.25113 = (int) D.25112;
      __result = D.25111 - D.25113;
      {
        if (__s2_len != 0) goto <D.25114>; else goto <D.25115>;
        <D.25114>:
        if (__result == 0) goto <D.25116>; else goto <D.25117>;
        <D.25116>:
        D.25118 = &MEM[(void *)"--llvm" + 1B];
        D.25119 = *D.25118;
        D.25120 = (int) D.25119;
        D.25121 = __s2 + 1;
        D.25122 = *D.25121;
        D.25123 = (int) D.25122;
        __result = D.25120 - D.25123;
        if (__s2_len > 1) goto <D.25124>; else goto <D.25125>;
        <D.25124>:
        if (__result == 0) goto <D.25126>; else goto <D.25127>;
        <D.25126>:
        D.25128 = &MEM[(void *)"--llvm" + 2B];
        D.25129 = *D.25128;
        D.25130 = (int) D.25129;
        D.25131 = __s2 + 2;
        D.25132 = *D.25131;
        D.25133 = (int) D.25132;
        __result = D.25130 - D.25133;
        if (__s2_len > 2) goto <D.25134>; else goto <D.25135>;
        <D.25134>:
        if (__result == 0) goto <D.25136>; else goto <D.25137>;
        <D.25136>:
        D.25138 = &MEM[(void *)"--llvm" + 3B];
        D.25139 = *D.25138;
        D.25140 = (int) D.25139;
        D.25141 = __s2 + 3;
        D.25142 = *D.25141;
        D.25143 = (int) D.25142;
        __result = D.25140 - D.25143;
        <D.25137>:
        <D.25135>:
        <D.25127>:
        <D.25125>:
        <D.25117>:
        <D.25115>:
      }
      D.24027 = __result;
    }
    iftmp.12 = -D.24027;
    goto <D.25144>;
    <D.25108>:
    D.24782 = (long unsigned int) i;
    D.24783 = D.24782 * 8;
    D.24784 = argv + D.24783;
    D.24785 = *D.24784;
    iftmp.12 = __builtin_strcmp (D.24785, "--llvm");
    <D.25144>:
    D.24028 = iftmp.12;
  }
  if (D.24028 == 0) goto <D.25145>; else goto <D.25146>;
  <D.25145>:
  stderr.11 = stderr;
  fprintf (stderr.11, "Mono Warning: --llvm not supported on this platform.\n");
  goto <D.25147>;
  <D.25146>:
  stderr.11 = stderr;
  D.24782 = (long unsigned int) i;
  D.24783 = D.24782 * 8;
  D.24784 = argv + D.24783;
  D.24785 = *D.24784;
  fprintf (stderr.11, "Unsupported command line option: \'%s\'\n", D.24785);
  exit (1);
  <D.25147>:
  <D.25105>:
  <D.25056>:
  <D.25014>:
  <D.24893>:
  <D.24890>:
  <D.24886>:
  <D.24844>:
  <D.24839>:
  <D.24834>:
  <D.24792>:
  i = i + 1;
  <D.24030>:
  if (i < argc) goto <D.24029>; else goto <D.23915>;
  <D.23915>:
  if (trace_options != 0B) goto <D.25148>; else goto <D.25149>;
  <D.25148>:
  mono_jit_trace_calls.13 = mono_trace_parse_options (trace_options);
  mono_jit_trace_calls = mono_jit_trace_calls.13;
  mono_jit_trace_calls.14 = mono_jit_trace_calls;
  if (mono_jit_trace_calls.14 == 0B) goto <D.25152>; else goto <D.25153>;
  <D.25152>:
  exit (1);
  <D.25153>:
  <D.25149>:
  if (mini_verbose != 0) goto <D.25154>; else goto <D.25155>;
  <D.25154>:
  mini_verbose.15 = (unsigned int) mini_verbose;
  mono_set_verbose_level (mini_verbose.15);
  <D.25155>:
}


mono_main (int argc, char * * argv)
{
  const gchar * D.25157;
  long unsigned int D.25164;
  long unsigned int D.25165;
  char * * D.25166;
  char * D.25167;
  char D.25168;
  int D.24087;
  int iftmp.16;
  int D.24086;
  const char[13] * D.25173;
  unsigned char D.25174;
  int D.25175;
  unsigned char D.25176;
  int D.25177;
  const unsigned char * D.25182;
  unsigned char D.25183;
  int D.25184;
  const unsigned char * D.25185;
  unsigned char D.25186;
  int D.25187;
  const unsigned char * D.25192;
  unsigned char D.25193;
  int D.25194;
  const unsigned char * D.25195;
  unsigned char D.25196;
  int D.25197;
  const unsigned char * D.25202;
  unsigned char D.25203;
  int D.25204;
  const unsigned char * D.25205;
  unsigned char D.25206;
  int D.25207;
  int D.25212;
  char * D.25215;
  unsigned int mono_single_method_regression_opt.17;
  int D.24106;
  int iftmp.18;
  int D.24105;
  const char[10] * D.25224;
  unsigned char D.25225;
  int D.25226;
  unsigned char D.25227;
  int D.25228;
  const unsigned char * D.25233;
  unsigned char D.25234;
  int D.25235;
  const unsigned char * D.25236;
  unsigned char D.25237;
  int D.25238;
  const unsigned char * D.25243;
  unsigned char D.25244;
  int D.25245;
  const unsigned char * D.25246;
  unsigned char D.25247;
  int D.25248;
  const unsigned char * D.25253;
  unsigned char D.25254;
  int D.25255;
  const unsigned char * D.25256;
  unsigned char D.25257;
  int D.25258;
  int D.24115;
  int iftmp.19;
  int D.24114;
  const char[3] * D.25264;
  unsigned char D.25265;
  int D.25266;
  unsigned char D.25267;
  int D.25268;
  const unsigned char * D.25273;
  unsigned char D.25274;
  int D.25275;
  const unsigned char * D.25276;
  unsigned char D.25277;
  int D.25278;
  const unsigned char * D.25283;
  unsigned char D.25284;
  int D.25285;
  const unsigned char * D.25286;
  unsigned char D.25287;
  int D.25288;
  const unsigned char * D.25293;
  unsigned char D.25294;
  int D.25295;
  const unsigned char * D.25296;
  unsigned char D.25297;
  int D.25298;
  int D.24124;
  int iftmp.20;
  int D.24123;
  const char[10] * 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.24133;
  int iftmp.21;
  int D.24132;
  const char[3] * D.25345;
  unsigned char D.25346;
  int D.25347;
  unsigned char D.25348;
  int D.25349;
  const unsigned char * D.25354;
  unsigned char D.25355;
  int D.25356;
  const unsigned char * D.25357;
  unsigned char D.25358;
  int D.25359;
  const unsigned char * D.25364;
  unsigned char D.25365;
  int D.25366;
  const unsigned char * D.25367;
  unsigned char D.25368;
  int D.25369;
  const unsigned char * D.25374;
  unsigned char D.25375;
  int D.25376;
  const unsigned char * D.25377;
  unsigned char D.25378;
  int D.25379;
  const char * iftmp.22;
  struct MonoImage * D.25384;
  int D.25390;
  int D.24146;
  int iftmp.23;
  int D.24145;
  const char[7] * D.25396;
  unsigned char D.25397;
  int D.25398;
  unsigned char D.25399;
  int D.25400;
  const unsigned char * D.25405;
  unsigned char D.25406;
  int D.25407;
  const unsigned char * D.25408;
  unsigned char D.25409;
  int D.25410;
  const unsigned char * D.25415;
  unsigned char D.25416;
  int D.25417;
  const unsigned char * D.25418;
  unsigned char D.25419;
  int D.25420;
  const unsigned char * D.25425;
  unsigned char D.25426;
  int D.25427;
  const unsigned char * D.25428;
  unsigned char D.25429;
  int D.25430;
  int D.24155;
  int iftmp.24;
  int D.24154;
  const char[3] * D.25436;
  unsigned char D.25437;
  int D.25438;
  unsigned char D.25439;
  int D.25440;
  const unsigned char * D.25445;
  unsigned char D.25446;
  int D.25447;
  const unsigned char * D.25448;
  unsigned char D.25449;
  int D.25450;
  const unsigned char * D.25455;
  unsigned char D.25456;
  int D.25457;
  const unsigned char * D.25458;
  unsigned char D.25459;
  int D.25460;
  const unsigned char * D.25465;
  unsigned char D.25466;
  int D.25467;
  const unsigned char * D.25468;
  unsigned char D.25469;
  int D.25470;
  int D.24164;
  int iftmp.25;
  int D.24163;
  const char[13] * D.25475;
  unsigned char D.25476;
  int D.25477;
  unsigned char D.25478;
  int D.25479;
  const unsigned char * D.25484;
  unsigned char D.25485;
  int D.25486;
  const unsigned char * D.25487;
  unsigned char D.25488;
  int D.25489;
  const unsigned char * D.25494;
  unsigned char D.25495;
  int D.25496;
  const unsigned char * D.25497;
  unsigned char D.25498;
  int D.25499;
  const unsigned char * D.25504;
  unsigned char D.25505;
  int D.25506;
  const unsigned char * D.25507;
  unsigned char D.25508;
  int D.25509;
  int D.24173;
  int iftmp.26;
  int D.24172;
  const char[13] * D.25516;
  unsigned char D.25517;
  int D.25518;
  unsigned char D.25519;
  int D.25520;
  const unsigned char * D.25525;
  unsigned char D.25526;
  int D.25527;
  const unsigned char * D.25528;
  unsigned char D.25529;
  int D.25530;
  const unsigned char * D.25535;
  unsigned char D.25536;
  int D.25537;
  const unsigned char * D.25538;
  unsigned char D.25539;
  int D.25540;
  const unsigned char * D.25545;
  unsigned char D.25546;
  int D.25547;
  const unsigned char * D.25548;
  unsigned char D.25549;
  int D.25550;
  int D.24182;
  int iftmp.27;
  int D.24181;
  const char[13] * D.25557;
  unsigned char D.25558;
  int D.25559;
  unsigned char D.25560;
  int D.25561;
  const unsigned char * D.25566;
  unsigned char D.25567;
  int D.25568;
  const unsigned char * D.25569;
  unsigned char D.25570;
  int D.25571;
  const unsigned char * D.25576;
  unsigned char D.25577;
  int D.25578;
  const unsigned char * D.25579;
  unsigned char D.25580;
  int D.25581;
  const unsigned char * D.25586;
  unsigned char D.25587;
  int D.25588;
  const unsigned char * D.25589;
  unsigned char D.25590;
  int D.25591;
  int D.24191;
  int iftmp.28;
  int D.24190;
  const char[11] * D.25598;
  unsigned char D.25599;
  int D.25600;
  unsigned char D.25601;
  int D.25602;
  const unsigned char * D.25607;
  unsigned char D.25608;
  int D.25609;
  const unsigned char * D.25610;
  unsigned char D.25611;
  int D.25612;
  const unsigned char * D.25617;
  unsigned char D.25618;
  int D.25619;
  const unsigned char * D.25620;
  unsigned char D.25621;
  int D.25622;
  const unsigned char * D.25627;
  unsigned char D.25628;
  int D.25629;
  const unsigned char * D.25630;
  unsigned char D.25631;
  int D.25632;
  int D.25636;
  int D.25639;
  struct _IO_FILE * stderr.29;
  struct FILE * mini_stats_fd.30;
  int D.25645;
  const char * D.25648;
  int D.25650;
  const char * D.25653;
  int D.24227;
  int iftmp.31;
  int D.24226;
  const char[10] * D.25658;
  unsigned char D.25659;
  int D.25660;
  unsigned char D.25661;
  int D.25662;
  const unsigned char * D.25667;
  unsigned char D.25668;
  int D.25669;
  const unsigned char * D.25670;
  unsigned char D.25671;
  int D.25672;
  const unsigned char * D.25677;
  unsigned char D.25678;
  int D.25679;
  const unsigned char * D.25680;
  unsigned char D.25681;
  int D.25682;
  const unsigned char * D.25687;
  unsigned char D.25688;
  int D.25689;
  const unsigned char * D.25690;
  unsigned char D.25691;
  int D.25692;
  int D.24236;
  int iftmp.32;
  int D.24235;
  const char[11] * D.25700;
  unsigned char D.25701;
  int D.25702;
  unsigned char D.25703;
  int D.25704;
  const unsigned char * D.25709;
  unsigned char D.25710;
  int D.25711;
  const unsigned char * D.25712;
  unsigned char D.25713;
  int D.25714;
  const unsigned char * D.25719;
  unsigned char D.25720;
  int D.25721;
  const unsigned char * D.25722;
  unsigned char D.25723;
  int D.25724;
  const unsigned char * D.25729;
  unsigned char D.25730;
  int D.25731;
  const unsigned char * D.25732;
  unsigned char D.25733;
  int D.25734;
  int D.24245;
  int iftmp.33;
  int D.24244;
  const char[9] * D.25742;
  unsigned char D.25743;
  int D.25744;
  unsigned char D.25745;
  int D.25746;
  const unsigned char * D.25751;
  unsigned char D.25752;
  int D.25753;
  const unsigned char * D.25754;
  unsigned char D.25755;
  int D.25756;
  const unsigned char * D.25761;
  unsigned char D.25762;
  int D.25763;
  const unsigned char * D.25764;
  unsigned char D.25765;
  int D.25766;
  const unsigned char * D.25771;
  unsigned char D.25772;
  int D.25773;
  const unsigned char * D.25774;
  unsigned char D.25775;
  int D.25776;
  int D.24254;
  int iftmp.34;
  int D.24253;
  const char[11] * D.25786;
  unsigned char D.25787;
  int D.25788;
  unsigned char D.25789;
  int D.25790;
  const unsigned char * D.25795;
  unsigned char D.25796;
  int D.25797;
  const unsigned char * D.25798;
  unsigned char D.25799;
  int D.25800;
  const unsigned char * D.25805;
  unsigned char D.25806;
  int D.25807;
  const unsigned char * D.25808;
  unsigned char D.25809;
  int D.25810;
  const unsigned char * D.25815;
  unsigned char D.25816;
  int D.25817;
  const unsigned char * D.25818;
  unsigned char D.25819;
  int D.25820;
  int D.24263;
  int iftmp.35;
  int D.24262;
  const char[8] * D.25830;
  unsigned char D.25831;
  int D.25832;
  unsigned char D.25833;
  int D.25834;
  const unsigned char * D.25839;
  unsigned char D.25840;
  int D.25841;
  const unsigned char * D.25842;
  unsigned char D.25843;
  int D.25844;
  const unsigned char * D.25849;
  unsigned char D.25850;
  int D.25851;
  const unsigned char * D.25852;
  unsigned char D.25853;
  int D.25854;
  const unsigned char * D.25859;
  unsigned char D.25860;
  int D.25861;
  const unsigned char * D.25862;
  unsigned char D.25863;
  int D.25864;
  int D.25869;
  int D.24281;
  int iftmp.36;
  int D.24280;
  const char[12] * D.25876;
  unsigned char D.25877;
  int D.25878;
  unsigned char D.25879;
  int D.25880;
  const unsigned char * D.25885;
  unsigned char D.25886;
  int D.25887;
  const unsigned char * D.25888;
  unsigned char D.25889;
  int D.25890;
  const unsigned char * D.25895;
  unsigned char D.25896;
  int D.25897;
  const unsigned char * D.25898;
  unsigned char D.25899;
  int D.25900;
  const unsigned char * D.25905;
  unsigned char D.25906;
  int D.25907;
  const unsigned char * D.25908;
  unsigned char D.25909;
  int D.25910;
  int D.24291;
  int iftmp.37;
  int D.24290;
  const char[8] * D.25918;
  unsigned char D.25919;
  int D.25920;
  unsigned char D.25921;
  int D.25922;
  const unsigned char * D.25927;
  unsigned char D.25928;
  int D.25929;
  const unsigned char * D.25930;
  unsigned char D.25931;
  int D.25932;
  const unsigned char * D.25937;
  unsigned char D.25938;
  int D.25939;
  const unsigned char * D.25940;
  unsigned char D.25941;
  int D.25942;
  const unsigned char * D.25947;
  unsigned char D.25948;
  int D.25949;
  const unsigned char * D.25950;
  unsigned char D.25951;
  int D.25952;
  int D.25958;
  int D.24300;
  int iftmp.38;
  int D.24299;
  const char[14] * D.25965;
  unsigned char D.25966;
  int D.25967;
  unsigned char D.25968;
  int D.25969;
  const unsigned char * D.25974;
  unsigned char D.25975;
  int D.25976;
  const unsigned char * D.25977;
  unsigned char D.25978;
  int D.25979;
  const unsigned char * D.25984;
  unsigned char D.25985;
  int D.25986;
  const unsigned char * D.25987;
  unsigned char D.25988;
  int D.25989;
  const unsigned char * D.25994;
  unsigned char D.25995;
  int D.25996;
  const unsigned char * D.25997;
  unsigned char D.25998;
  int D.25999;
  int D.26003;
  struct MonoMethodDesc * mono_break_at_bb_method.39;
  struct MonoMethodDesc * mono_break_at_bb_method.40;
  int mono_break_at_bb_bb_num.41;
  int D.24309;
  int iftmp.42;
  int D.24308;
  const char[19] * D.26015;
  unsigned char D.26016;
  int D.26017;
  unsigned char D.26018;
  int D.26019;
  const unsigned char * D.26024;
  unsigned char D.26025;
  int D.26026;
  const unsigned char * D.26027;
  unsigned char D.26028;
  int D.26029;
  const unsigned char * D.26034;
  unsigned char D.26035;
  int D.26036;
  const unsigned char * D.26037;
  unsigned char D.26038;
  int D.26039;
  const unsigned char * D.26044;
  unsigned char D.26045;
  int D.26046;
  const unsigned char * D.26047;
  unsigned char D.26048;
  int D.26049;
  struct MonoMethodDesc * mono_inject_async_exc_method.43;
  struct MonoMethodDesc * mono_inject_async_exc_method.44;
  int mono_inject_async_exc_pos.45;
  int D.24318;
  int iftmp.46;
  int D.24317;
  const char[13] * D.26064;
  unsigned char D.26065;
  int D.26066;
  unsigned char D.26067;
  int D.26068;
  const unsigned char * D.26073;
  unsigned char D.26074;
  int D.26075;
  const unsigned char * D.26076;
  unsigned char D.26077;
  int D.26078;
  const unsigned char * D.26083;
  unsigned char D.26084;
  int D.26085;
  const unsigned char * D.26086;
  unsigned char D.26087;
  int D.26088;
  const unsigned char * D.26093;
  unsigned char D.26094;
  int D.26095;
  const unsigned char * D.26096;
  unsigned char D.26097;
  int D.26098;
  int D.24327;
  int iftmp.47;
  int D.24326;
  const char[11] * D.26106;
  unsigned char D.26107;
  int D.26108;
  unsigned char D.26109;
  int D.26110;
  const unsigned char * D.26115;
  unsigned char D.26116;
  int D.26117;
  const unsigned char * D.26118;
  unsigned char D.26119;
  int D.26120;
  const unsigned char * D.26125;
  unsigned char D.26126;
  int D.26127;
  const unsigned char * D.26128;
  unsigned char D.26129;
  int D.26130;
  const unsigned char * D.26135;
  unsigned char D.26136;
  int D.26137;
  const unsigned char * D.26138;
  unsigned char D.26139;
  int D.26140;
  int D.24336;
  int iftmp.48;
  int D.24335;
  const char[15] * D.26148;
  unsigned char D.26149;
  int D.26150;
  unsigned char D.26151;
  int D.26152;
  const unsigned char * D.26157;
  unsigned char D.26158;
  int D.26159;
  const unsigned char * D.26160;
  unsigned char D.26161;
  int D.26162;
  const unsigned char * D.26167;
  unsigned char D.26168;
  int D.26169;
  const unsigned char * D.26170;
  unsigned char D.26171;
  int D.26172;
  const unsigned char * D.26177;
  unsigned char D.26178;
  int D.26179;
  const unsigned char * D.26180;
  unsigned char D.26181;
  int D.26182;
  int D.24345;
  int iftmp.49;
  int D.24344;
  const char[8] * D.26190;
  unsigned char D.26191;
  int D.26192;
  unsigned char D.26193;
  int D.26194;
  const unsigned char * D.26199;
  unsigned char D.26200;
  int D.26201;
  const unsigned char * D.26202;
  unsigned char D.26203;
  int D.26204;
  const unsigned char * D.26209;
  unsigned char D.26210;
  int D.26211;
  const unsigned char * D.26212;
  unsigned char D.26213;
  int D.26214;
  const unsigned char * D.26219;
  unsigned char D.26220;
  int D.26221;
  const unsigned char * D.26222;
  unsigned char D.26223;
  int D.26224;
  int D.24354;
  int iftmp.50;
  int D.24353;
  const char[6] * D.26232;
  unsigned char D.26233;
  int D.26234;
  unsigned char D.26235;
  int D.26236;
  const unsigned char * D.26241;
  unsigned char D.26242;
  int D.26243;
  const unsigned char * D.26244;
  unsigned char D.26245;
  int D.26246;
  const unsigned char * D.26251;
  unsigned char D.26252;
  int D.26253;
  const unsigned char * D.26254;
  unsigned char D.26255;
  int D.26256;
  const unsigned char * D.26261;
  unsigned char D.26262;
  int D.26263;
  const unsigned char * D.26264;
  unsigned char D.26265;
  int D.26266;
  int D.26271;
  int D.26275;
  const char * D.26278;
  int D.26279;
  int D.24381;
  int iftmp.51;
  int D.24380;
  const char[14] * D.26284;
  unsigned char D.26285;
  int D.26286;
  unsigned char D.26287;
  int D.26288;
  const unsigned char * D.26293;
  unsigned char D.26294;
  int D.26295;
  const unsigned char * D.26296;
  unsigned char D.26297;
  int D.26298;
  const unsigned char * D.26303;
  unsigned char D.26304;
  int D.26305;
  const unsigned char * D.26306;
  unsigned char D.26307;
  int D.26308;
  const unsigned char * D.26313;
  unsigned char D.26314;
  int D.26315;
  const unsigned char * D.26316;
  unsigned char D.26317;
  int D.26318;
  int D.26323;
  int D.24399;
  int iftmp.52;
  int D.24398;
  const char[9] * D.26330;
  unsigned char D.26331;
  int D.26332;
  unsigned char D.26333;
  int D.26334;
  const unsigned char * D.26339;
  unsigned char D.26340;
  int D.26341;
  const unsigned char * D.26342;
  unsigned char D.26343;
  int D.26344;
  const unsigned char * D.26349;
  unsigned char D.26350;
  int D.26351;
  const unsigned char * D.26352;
  unsigned char D.26353;
  int D.26354;
  const unsigned char * D.26359;
  unsigned char D.26360;
  int D.26361;
  const unsigned char * D.26362;
  unsigned char D.26363;
  int D.26364;
  int D.24408;
  int iftmp.53;
  int D.24407;
  const char[10] * D.26372;
  unsigned char D.26373;
  int D.26374;
  unsigned char D.26375;
  int D.26376;
  const unsigned char * D.26381;
  unsigned char D.26382;
  int D.26383;
  const unsigned char * D.26384;
  unsigned char D.26385;
  int D.26386;
  const unsigned char * D.26391;
  unsigned char D.26392;
  int D.26393;
  const unsigned char * D.26394;
  unsigned char D.26395;
  int D.26396;
  const unsigned char * D.26401;
  unsigned char D.26402;
  int D.26403;
  const unsigned char * D.26404;
  unsigned char D.26405;
  int D.26406;
  int D.26411;
  int D.26415;
  void * D.26420;
  int D.26422;
  int D.24444;
  int iftmp.54;
  int D.24443;
  const char[10] * D.26429;
  unsigned char D.26430;
  int D.26431;
  unsigned char D.26432;
  int D.26433;
  const unsigned char * D.26438;
  unsigned char D.26439;
  int D.26440;
  const unsigned char * D.26441;
  unsigned char D.26442;
  int D.26443;
  const unsigned char * D.26448;
  unsigned char D.26449;
  int D.26450;
  const unsigned char * D.26451;
  unsigned char D.26452;
  int D.26453;
  const unsigned char * D.26458;
  unsigned char D.26459;
  int D.26460;
  const unsigned char * D.26461;
  unsigned char D.26462;
  int D.26463;
  int D.26470;
  const char * D.26475;
  int D.24462;
  int iftmp.55;
  int D.24461;
  const char[8] * D.26480;
  unsigned char D.26481;
  int D.26482;
  unsigned char D.26483;
  int D.26484;
  const unsigned char * D.26489;
  unsigned char D.26490;
  int D.26491;
  const unsigned char * D.26492;
  unsigned char D.26493;
  int D.26494;
  const unsigned char * D.26499;
  unsigned char D.26500;
  int D.26501;
  const unsigned char * D.26502;
  unsigned char D.26503;
  int D.26504;
  const unsigned char * D.26509;
  unsigned char D.26510;
  int D.26511;
  const unsigned char * D.26512;
  unsigned char D.26513;
  int D.26514;
  int D.24471;
  int iftmp.56;
  int D.24470;
  const char[8] * D.26524;
  unsigned char D.26525;
  int D.26526;
  unsigned char D.26527;
  int D.26528;
  const unsigned char * D.26533;
  unsigned char D.26534;
  int D.26535;
  const unsigned char * D.26536;
  unsigned char D.26537;
  int D.26538;
  const unsigned char * D.26543;
  unsigned char D.26544;
  int D.26545;
  const unsigned char * D.26546;
  unsigned char D.26547;
  int D.26548;
  const unsigned char * D.26553;
  unsigned char D.26554;
  int D.26555;
  const unsigned char * D.26556;
  unsigned char D.26557;
  int D.26558;
  int D.26563;
  int D.26566;
  int D.26570;
  char * D.26573;
  int D.24499;
  int iftmp.57;
  int D.24498;
  const char[11] * D.26578;
  unsigned char D.26579;
  int D.26580;
  unsigned char D.26581;
  int D.26582;
  const unsigned char * D.26587;
  unsigned char D.26588;
  int D.26589;
  const unsigned char * D.26590;
  unsigned char D.26591;
  int D.26592;
  const unsigned char * D.26597;
  unsigned char D.26598;
  int D.26599;
  const unsigned char * D.26600;
  unsigned char D.26601;
  int D.26602;
  const unsigned char * D.26607;
  unsigned char D.26608;
  int D.26609;
  const unsigned char * D.26610;
  unsigned char D.26611;
  int D.26612;
  int D.26617;
  int D.24517;
  int iftmp.58;
  int D.24516;
  const char[20] * D.26623;
  unsigned char D.26624;
  int D.26625;
  unsigned char D.26626;
  int D.26627;
  const unsigned char * D.26632;
  unsigned char D.26633;
  int D.26634;
  const unsigned char * D.26635;
  unsigned char D.26636;
  int D.26637;
  const unsigned char * D.26642;
  unsigned char D.26643;
  int D.26644;
  const unsigned char * D.26645;
  unsigned char D.26646;
  int D.26647;
  const unsigned char * D.26652;
  unsigned char D.26653;
  int D.26654;
  const unsigned char * D.26655;
  unsigned char D.26656;
  int D.26657;
  int D.24526;
  int iftmp.59;
  int D.24525;
  const char[9] * D.26665;
  unsigned char D.26666;
  int D.26667;
  unsigned char D.26668;
  int D.26669;
  const unsigned char * D.26674;
  unsigned char D.26675;
  int D.26676;
  const unsigned char * D.26677;
  unsigned char D.26678;
  int D.26679;
  const unsigned char * D.26684;
  unsigned char D.26685;
  int D.26686;
  const unsigned char * D.26687;
  unsigned char D.26688;
  int D.26689;
  const unsigned char * D.26694;
  unsigned char D.26695;
  int D.26696;
  const unsigned char * D.26697;
  unsigned char D.26698;
  int D.26699;
  int D.24535;
  int iftmp.60;
  int D.24534;
  const char[14] * D.26707;
  unsigned char D.26708;
  int D.26709;
  unsigned char D.26710;
  int D.26711;
  const unsigned char * D.26716;
  unsigned char D.26717;
  int D.26718;
  const unsigned char * D.26719;
  unsigned char D.26720;
  int D.26721;
  const unsigned char * D.26726;
  unsigned char D.26727;
  int D.26728;
  const unsigned char * D.26729;
  unsigned char D.26730;
  int D.26731;
  const unsigned char * D.26736;
  unsigned char D.26737;
  int D.26738;
  const unsigned char * D.26739;
  unsigned char D.26740;
  int D.26741;
  int D.24544;
  int iftmp.61;
  int D.24543;
  const char[4] * D.26749;
  unsigned char D.26750;
  int D.26751;
  unsigned char D.26752;
  int D.26753;
  const unsigned char * D.26758;
  unsigned char D.26759;
  int D.26760;
  const unsigned char * D.26761;
  unsigned char D.26762;
  int D.26763;
  const unsigned char * D.26768;
  unsigned char D.26769;
  int D.26770;
  const unsigned char * D.26771;
  unsigned char D.26772;
  int D.26773;
  const unsigned char * D.26778;
  unsigned char D.26779;
  int D.26780;
  const unsigned char * D.26781;
  unsigned char D.26782;
  int D.26783;
  int D.24553;
  int iftmp.62;
  int D.24552;
  const char[8] * D.26791;
  unsigned char D.26792;
  int D.26793;
  unsigned char D.26794;
  int D.26795;
  const unsigned char * D.26800;
  unsigned char D.26801;
  int D.26802;
  const unsigned char * D.26803;
  unsigned char D.26804;
  int D.26805;
  const unsigned char * D.26810;
  unsigned char D.26811;
  int D.26812;
  const unsigned char * D.26813;
  unsigned char D.26814;
  int D.26815;
  const unsigned char * D.26820;
  unsigned char D.26821;
  int D.26822;
  const unsigned char * D.26823;
  unsigned char D.26824;
  int D.26825;
  int D.24562;
  int iftmp.63;
  int D.24561;
  const char[11] * D.26833;
  unsigned char D.26834;
  int D.26835;
  unsigned char D.26836;
  int D.26837;
  const unsigned char * D.26842;
  unsigned char D.26843;
  int D.26844;
  const unsigned char * D.26845;
  unsigned char D.26846;
  int D.26847;
  const unsigned char * D.26852;
  unsigned char D.26853;
  int D.26854;
  const unsigned char * D.26855;
  unsigned char D.26856;
  int D.26857;
  const unsigned char * D.26862;
  unsigned char D.26863;
  int D.26864;
  const unsigned char * D.26865;
  unsigned char D.26866;
  int D.26867;
  int D.24571;
  int iftmp.64;
  int D.24570;
  const char[10] * D.26876;
  unsigned char D.26877;
  int D.26878;
  unsigned char D.26879;
  int D.26880;
  const unsigned char * D.26885;
  unsigned char D.26886;
  int D.26887;
  const unsigned char * D.26888;
  unsigned char D.26889;
  int D.26890;
  const unsigned char * D.26895;
  unsigned char D.26896;
  int D.26897;
  const unsigned char * D.26898;
  unsigned char D.26899;
  int D.26900;
  const unsigned char * D.26905;
  unsigned char D.26906;
  int D.26907;
  const unsigned char * D.26908;
  unsigned char D.26909;
  int D.26910;
  int D.24580;
  int iftmp.65;
  int D.24579;
  const char[9] * D.26918;
  unsigned char D.26919;
  int D.26920;
  unsigned char D.26921;
  int D.26922;
  const unsigned char * D.26927;
  unsigned char D.26928;
  int D.26929;
  const unsigned char * D.26930;
  unsigned char D.26931;
  int D.26932;
  const unsigned char * D.26937;
  unsigned char D.26938;
  int D.26939;
  const unsigned char * D.26940;
  unsigned char D.26941;
  int D.26942;
  const unsigned char * D.26947;
  unsigned char D.26948;
  int D.26949;
  const unsigned char * D.26950;
  unsigned char D.26951;
  int D.26952;
  int D.24589;
  int iftmp.66;
  int D.24588;
  const char[13] * D.26960;
  unsigned char D.26961;
  int D.26962;
  unsigned char D.26963;
  int D.26964;
  const unsigned char * D.26969;
  unsigned char D.26970;
  int D.26971;
  const unsigned char * D.26972;
  unsigned char D.26973;
  int D.26974;
  const unsigned char * D.26979;
  unsigned char D.26980;
  int D.26981;
  const unsigned char * D.26982;
  unsigned char D.26983;
  int D.26984;
  const unsigned char * D.26989;
  unsigned char D.26990;
  int D.26991;
  const unsigned char * D.26992;
  unsigned char D.26993;
  int D.26994;
  int D.26999;
  int D.24607;
  int iftmp.67;
  int D.24606;
  const char[4] * D.27005;
  unsigned char D.27006;
  int D.27007;
  unsigned char D.27008;
  int D.27009;
  const unsigned char * D.27014;
  unsigned char D.27015;
  int D.27016;
  const unsigned char * D.27017;
  unsigned char D.27018;
  int D.27019;
  const unsigned char * D.27024;
  unsigned char D.27025;
  int D.27026;
  const unsigned char * D.27027;
  unsigned char D.27028;
  int D.27029;
  const unsigned char * D.27034;
  unsigned char D.27035;
  int D.27036;
  const unsigned char * D.27037;
  unsigned char D.27038;
  int D.27039;
  const char * D.27041;
  int D.27044;
  int D.24616;
  int iftmp.68;
  int D.24615;
  const char[7] * D.27048;
  unsigned char D.27049;
  int D.27050;
  unsigned char D.27051;
  int D.27052;
  const unsigned char * D.27057;
  unsigned char D.27058;
  int D.27059;
  const unsigned char * D.27060;
  unsigned char D.27061;
  int D.27062;
  const unsigned char * D.27067;
  unsigned char D.27068;
  int D.27069;
  const unsigned char * D.27070;
  unsigned char D.27071;
  int D.27072;
  const unsigned char * D.27077;
  unsigned char D.27078;
  int D.27079;
  const unsigned char * D.27080;
  unsigned char D.27081;
  int D.27082;
  int D.24625;
  int iftmp.69;
  int D.24624;
  const char[8] * D.27089;
  unsigned char D.27090;
  int D.27091;
  unsigned char D.27092;
  int D.27093;
  const unsigned char * D.27098;
  unsigned char D.27099;
  int D.27100;
  const unsigned char * D.27101;
  unsigned char D.27102;
  int D.27103;
  const unsigned char * D.27108;
  unsigned char D.27109;
  int D.27110;
  const unsigned char * D.27111;
  unsigned char D.27112;
  int D.27113;
  const unsigned char * D.27118;
  unsigned char D.27119;
  int D.27120;
  const unsigned char * D.27121;
  unsigned char D.27122;
  int D.27123;
  int D.24634;
  int iftmp.70;
  int D.24633;
  const char[21] * D.27130;
  unsigned char D.27131;
  int D.27132;
  unsigned char D.27133;
  int D.27134;
  const unsigned char * D.27139;
  unsigned char D.27140;
  int D.27141;
  const unsigned char * D.27142;
  unsigned char D.27143;
  int D.27144;
  const unsigned char * D.27149;
  unsigned char D.27150;
  int D.27151;
  const unsigned char * D.27152;
  unsigned char D.27153;
  int D.27154;
  const unsigned char * D.27159;
  unsigned char D.27160;
  int D.27161;
  const unsigned char * D.27162;
  unsigned char D.27163;
  int D.27164;
  int D.24643;
  int iftmp.71;
  int D.24642;
  const char[7] * D.27172;
  unsigned char D.27173;
  int D.27174;
  unsigned char D.27175;
  int D.27176;
  const unsigned char * D.27181;
  unsigned char D.27182;
  int D.27183;
  const unsigned char * D.27184;
  unsigned char D.27185;
  int D.27186;
  const unsigned char * D.27191;
  unsigned char D.27192;
  int D.27193;
  const unsigned char * D.27194;
  unsigned char D.27195;
  int D.27196;
  const unsigned char * D.27201;
  unsigned char D.27202;
  int D.27203;
  const unsigned char * D.27204;
  unsigned char D.27205;
  int D.27206;
  int D.24652;
  int iftmp.72;
  int D.24651;
  const char[9] * D.27214;
  unsigned char D.27215;
  int D.27216;
  unsigned char D.27217;
  int D.27218;
  const unsigned char * D.27223;
  unsigned char D.27224;
  int D.27225;
  const unsigned char * D.27226;
  unsigned char D.27227;
  int D.27228;
  const unsigned char * D.27233;
  unsigned char D.27234;
  int D.27235;
  const unsigned char * D.27236;
  unsigned char D.27237;
  int D.27238;
  const unsigned char * D.27243;
  unsigned char D.27244;
  int D.27245;
  const unsigned char * D.27246;
  unsigned char D.27247;
  int D.27248;
  const gchar * D.27255;
  int mono_compile_aot.73;
  struct MonoTraceSpec * mono_jit_trace_calls.74;
  struct MonoTraceSpec * mono_jit_trace_calls.75;
  int enable_debugging.76;
  struct MonoDomain * domain.77;
  struct MonoDomain * domain.78;
  void * * D.27280;
  long unsigned int D.27281;
  long unsigned int D.27282;
  void * * D.27283;
  void * D.27284;
  unsigned int i.79;
  unsigned int D.27288;
  int D.27289;
  <unnamed type> open_status.80;
  const char * D.27309;
  const char * iftmp.81;
  struct MonoImage * D.27327;
  short unsigned int D.27335;
  int D.27336;
  int D.27337;
  short unsigned int D.27339;
  int D.27340;
  int D.27341;
  struct MonoDomain * D.27342;
  struct MonoDomain * D.27343;
  unsigned int D.27344;
  unsigned int D.27347;
  unsigned int D.27348;
  struct FILE * mini_stats_fd.82;
  char * D.27357;
  char D.27358;
  unsigned int i.83;
  struct MonoDomain * D.27362;
  struct MonoDomain * D.27371;
  struct MonoDomain * D.27373;
  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.25157 = monoeg_g_getenv ("MONO_NO_SMP");
      if (D.25157 != 0B) goto <D.25158>; else goto <D.25159>;
      <D.25158>:
      mono_set_use_smp (0);
      <D.25159>:
      if (0 != 0) goto <D.25160>; else goto <D.25161>;
      <D.25160>:
      if (0 != 0) goto <D.25162>; else goto <D.25163>;
      <D.25162>:
      monoeg_g_log (0B, 4, "No vtable supported in g_thread_init");
      <D.24077>:
      goto <D.24077>;
      <D.25163>:
      <D.25161>:
      monoeg_g_log_set_always_fatal (4);
      monoeg_g_log_set_fatal_mask (0B, 4);
      opt = parse_optimizations (0B);
      i = 1;
      goto <D.24654>;
      <D.24653>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25168 = *D.25167;
      if (D.25168 != 45) goto <D.24078>; else goto <D.25169>;
      <D.25169>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25173 = "--regression";
          D.25174 = MEM[(const unsigned char *)D.25173];
          D.25175 = (int) D.25174;
          D.25176 = *__s2;
          D.25177 = (int) D.25176;
          __result = D.25175 - D.25177;
          {
            if (__s2_len != 0) goto <D.25178>; else goto <D.25179>;
            <D.25178>:
            if (__result == 0) goto <D.25180>; else goto <D.25181>;
            <D.25180>:
            D.25182 = &MEM[(void *)"--regression" + 1B];
            D.25183 = *D.25182;
            D.25184 = (int) D.25183;
            D.25185 = __s2 + 1;
            D.25186 = *D.25185;
            D.25187 = (int) D.25186;
            __result = D.25184 - D.25187;
            if (__s2_len > 1) goto <D.25188>; else goto <D.25189>;
            <D.25188>:
            if (__result == 0) goto <D.25190>; else goto <D.25191>;
            <D.25190>:
            D.25192 = &MEM[(void *)"--regression" + 2B];
            D.25193 = *D.25192;
            D.25194 = (int) D.25193;
            D.25195 = __s2 + 2;
            D.25196 = *D.25195;
            D.25197 = (int) D.25196;
            __result = D.25194 - D.25197;
            if (__s2_len > 2) goto <D.25198>; else goto <D.25199>;
            <D.25198>:
            if (__result == 0) goto <D.25200>; else goto <D.25201>;
            <D.25200>:
            D.25202 = &MEM[(void *)"--regression" + 3B];
            D.25203 = *D.25202;
            D.25204 = (int) D.25203;
            D.25205 = __s2 + 3;
            D.25206 = *D.25205;
            D.25207 = (int) D.25206;
            __result = D.25204 - D.25207;
            <D.25201>:
            <D.25199>:
            <D.25191>:
            <D.25189>:
            <D.25181>:
            <D.25179>:
          }
          D.24086 = __result;
        }
        iftmp.16 = -D.24086;
        goto <D.25208>;
        <D.25172>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.16 = __builtin_strcmp (D.25167, "--regression");
        <D.25208>:
        D.24087 = iftmp.16;
      }
      if (D.24087 == 0) goto <D.25209>; else goto <D.25210>;
      <D.25209>:
      action = 1;
      goto <D.25211>;
      <D.25210>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25212 = strncmp (D.25167, "--single-method=", 16);
      if (D.25212 == 0) goto <D.25213>; else goto <D.25214>;
      <D.25213>:
      {
        char * full_opts;

        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25215 = D.25167 + 16;
        full_opts = monoeg_g_strdup_printf ("-all,%s", D.25215);
        action = 2;
        mono_single_method_regression_opt.17 = parse_optimizations (full_opts);
        mono_single_method_regression_opt = mono_single_method_regression_opt.17;
        monoeg_g_free (full_opts);
      }
      goto <D.25217>;
      <D.25214>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25224 = "--verbose";
          D.25225 = MEM[(const unsigned char *)D.25224];
          D.25226 = (int) D.25225;
          D.25227 = *__s2;
          D.25228 = (int) D.25227;
          __result = D.25226 - D.25228;
          {
            if (__s2_len != 0) goto <D.25229>; else goto <D.25230>;
            <D.25229>:
            if (__result == 0) goto <D.25231>; else goto <D.25232>;
            <D.25231>:
            D.25233 = &MEM[(void *)"--verbose" + 1B];
            D.25234 = *D.25233;
            D.25235 = (int) D.25234;
            D.25236 = __s2 + 1;
            D.25237 = *D.25236;
            D.25238 = (int) D.25237;
            __result = D.25235 - D.25238;
            if (__s2_len > 1) goto <D.25239>; else goto <D.25240>;
            <D.25239>:
            if (__result == 0) goto <D.25241>; else goto <D.25242>;
            <D.25241>:
            D.25243 = &MEM[(void *)"--verbose" + 2B];
            D.25244 = *D.25243;
            D.25245 = (int) D.25244;
            D.25246 = __s2 + 2;
            D.25247 = *D.25246;
            D.25248 = (int) D.25247;
            __result = D.25245 - D.25248;
            if (__s2_len > 2) goto <D.25249>; else goto <D.25250>;
            <D.25249>:
            if (__result == 0) goto <D.25251>; else goto <D.25252>;
            <D.25251>:
            D.25253 = &MEM[(void *)"--verbose" + 3B];
            D.25254 = *D.25253;
            D.25255 = (int) D.25254;
            D.25256 = __s2 + 3;
            D.25257 = *D.25256;
            D.25258 = (int) D.25257;
            __result = D.25255 - D.25258;
            <D.25252>:
            <D.25250>:
            <D.25242>:
            <D.25240>:
            <D.25232>:
            <D.25230>:
          }
          D.24105 = __result;
        }
        iftmp.18 = -D.24105;
        goto <D.25259>;
        <D.25223>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.18 = __builtin_strcmp (D.25167, "--verbose");
        <D.25259>:
        D.24106 = iftmp.18;
      }
      if (D.24106 == 0) goto <D.25218>; else goto <D.25260>;
      <D.25260>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25264 = "-v";
          D.25265 = MEM[(const unsigned char *)D.25264];
          D.25266 = (int) D.25265;
          D.25267 = *__s2;
          D.25268 = (int) D.25267;
          __result = D.25266 - D.25268;
          {
            if (__s2_len != 0) goto <D.25269>; else goto <D.25270>;
            <D.25269>:
            if (__result == 0) goto <D.25271>; else goto <D.25272>;
            <D.25271>:
            D.25273 = &MEM[(void *)"-v" + 1B];
            D.25274 = *D.25273;
            D.25275 = (int) D.25274;
            D.25276 = __s2 + 1;
            D.25277 = *D.25276;
            D.25278 = (int) D.25277;
            __result = D.25275 - D.25278;
            if (__s2_len > 1) goto <D.25279>; else goto <D.25280>;
            <D.25279>:
            if (__result == 0) goto <D.25281>; else goto <D.25282>;
            <D.25281>:
            D.25283 = &MEM[(void *)"-v" + 2B];
            D.25284 = *D.25283;
            D.25285 = (int) D.25284;
            D.25286 = __s2 + 2;
            D.25287 = *D.25286;
            D.25288 = (int) D.25287;
            __result = D.25285 - D.25288;
            if (__s2_len > 2) goto <D.25289>; else goto <D.25290>;
            <D.25289>:
            if (__result == 0) goto <D.25291>; else goto <D.25292>;
            <D.25291>:
            D.25293 = &MEM[(void *)"-v" + 3B];
            D.25294 = *D.25293;
            D.25295 = (int) D.25294;
            D.25296 = __s2 + 3;
            D.25297 = *D.25296;
            D.25298 = (int) D.25297;
            __result = D.25295 - D.25298;
            <D.25292>:
            <D.25290>:
            <D.25282>:
            <D.25280>:
            <D.25272>:
            <D.25270>:
          }
          D.24114 = __result;
        }
        iftmp.19 = -D.24114;
        goto <D.25299>;
        <D.25263>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.19 = __builtin_strcmp (D.25167, "-v");
        <D.25299>:
        D.24115 = iftmp.19;
      }
      if (D.24115 == 0) goto <D.25218>; else goto <D.25219>;
      <D.25218>:
      mini_verbose = mini_verbose + 1;
      goto <D.25220>;
      <D.25219>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25305 = "--version";
          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 *)"--version" + 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 *)"--version" + 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 *)"--version" + 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.24123 = __result;
        }
        iftmp.20 = -D.24123;
        goto <D.25340>;
        <D.25304>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.20 = __builtin_strcmp (D.25167, "--version");
        <D.25340>:
        D.24124 = iftmp.20;
      }
      if (D.24124 == 0) goto <D.25300>; else goto <D.25341>;
      <D.25341>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25345 = "-V";
          D.25346 = MEM[(const unsigned char *)D.25345];
          D.25347 = (int) D.25346;
          D.25348 = *__s2;
          D.25349 = (int) D.25348;
          __result = D.25347 - D.25349;
          {
            if (__s2_len != 0) goto <D.25350>; else goto <D.25351>;
            <D.25350>:
            if (__result == 0) goto <D.25352>; else goto <D.25353>;
            <D.25352>:
            D.25354 = &MEM[(void *)"-V" + 1B];
            D.25355 = *D.25354;
            D.25356 = (int) D.25355;
            D.25357 = __s2 + 1;
            D.25358 = *D.25357;
            D.25359 = (int) D.25358;
            __result = D.25356 - D.25359;
            if (__s2_len > 1) goto <D.25360>; else goto <D.25361>;
            <D.25360>:
            if (__result == 0) goto <D.25362>; else goto <D.25363>;
            <D.25362>:
            D.25364 = &MEM[(void *)"-V" + 2B];
            D.25365 = *D.25364;
            D.25366 = (int) D.25365;
            D.25367 = __s2 + 2;
            D.25368 = *D.25367;
            D.25369 = (int) D.25368;
            __result = D.25366 - D.25369;
            if (__s2_len > 2) goto <D.25370>; else goto <D.25371>;
            <D.25370>:
            if (__result == 0) goto <D.25372>; else goto <D.25373>;
            <D.25372>:
            D.25374 = &MEM[(void *)"-V" + 3B];
            D.25375 = *D.25374;
            D.25376 = (int) D.25375;
            D.25377 = __s2 + 3;
            D.25378 = *D.25377;
            D.25379 = (int) D.25378;
            __result = D.25376 - D.25379;
            <D.25373>:
            <D.25371>:
            <D.25363>:
            <D.25361>:
            <D.25353>:
            <D.25351>:
          }
          D.24132 = __result;
        }
        iftmp.21 = -D.24132;
        goto <D.25380>;
        <D.25344>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.21 = __builtin_strcmp (D.25167, "-V");
        <D.25380>:
        D.24133 = iftmp.21;
      }
      if (D.24133 == 0) goto <D.25300>; else goto <D.25301>;
      <D.25300>:
      {
        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.25381>; else goto <D.25382>;
        <D.25381>:
        {
          const char * cerror;
          const char * clibpath;

          mono_init ("mono");
          cerror = mono_check_corlib_version ();
          D.25384 = mono_defaults.corlib;
          if (D.25384 != 0B) goto <D.25385>; else goto <D.25386>;
          <D.25385>:
          D.25384 = mono_defaults.corlib;
          iftmp.22 = mono_image_get_filename (D.25384);
          goto <D.25387>;
          <D.25386>:
          iftmp.22 = "unknown";
          <D.25387>:
          clibpath = iftmp.22;
          if (cerror != 0B) goto <D.25388>; else goto <D.25389>;
          <D.25388>:
          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.25390 = 1;
          return D.25390;
          <D.25389>:
        }
        <D.25382>:
        D.25390 = 0;
        return D.25390;
      }
      <D.25301>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25396 = "--help";
          D.25397 = MEM[(const unsigned char *)D.25396];
          D.25398 = (int) D.25397;
          D.25399 = *__s2;
          D.25400 = (int) D.25399;
          __result = D.25398 - D.25400;
          {
            if (__s2_len != 0) goto <D.25401>; else goto <D.25402>;
            <D.25401>:
            if (__result == 0) goto <D.25403>; else goto <D.25404>;
            <D.25403>:
            D.25405 = &MEM[(void *)"--help" + 1B];
            D.25406 = *D.25405;
            D.25407 = (int) D.25406;
            D.25408 = __s2 + 1;
            D.25409 = *D.25408;
            D.25410 = (int) D.25409;
            __result = D.25407 - D.25410;
            if (__s2_len > 1) goto <D.25411>; else goto <D.25412>;
            <D.25411>:
            if (__result == 0) goto <D.25413>; else goto <D.25414>;
            <D.25413>:
            D.25415 = &MEM[(void *)"--help" + 2B];
            D.25416 = *D.25415;
            D.25417 = (int) D.25416;
            D.25418 = __s2 + 2;
            D.25419 = *D.25418;
            D.25420 = (int) D.25419;
            __result = D.25417 - D.25420;
            if (__s2_len > 2) goto <D.25421>; else goto <D.25422>;
            <D.25421>:
            if (__result == 0) goto <D.25423>; else goto <D.25424>;
            <D.25423>:
            D.25425 = &MEM[(void *)"--help" + 3B];
            D.25426 = *D.25425;
            D.25427 = (int) D.25426;
            D.25428 = __s2 + 3;
            D.25429 = *D.25428;
            D.25430 = (int) D.25429;
            __result = D.25427 - D.25430;
            <D.25424>:
            <D.25422>:
            <D.25414>:
            <D.25412>:
            <D.25404>:
            <D.25402>:
          }
          D.24145 = __result;
        }
        iftmp.23 = -D.24145;
        goto <D.25431>;
        <D.25395>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.23 = __builtin_strcmp (D.25167, "--help");
        <D.25431>:
        D.24146 = iftmp.23;
      }
      if (D.24146 == 0) goto <D.25391>; else goto <D.25432>;
      <D.25432>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25436 = "-h";
          D.25437 = MEM[(const unsigned char *)D.25436];
          D.25438 = (int) D.25437;
          D.25439 = *__s2;
          D.25440 = (int) D.25439;
          __result = D.25438 - D.25440;
          {
            if (__s2_len != 0) goto <D.25441>; else goto <D.25442>;
            <D.25441>:
            if (__result == 0) goto <D.25443>; else goto <D.25444>;
            <D.25443>:
            D.25445 = &MEM[(void *)"-h" + 1B];
            D.25446 = *D.25445;
            D.25447 = (int) D.25446;
            D.25448 = __s2 + 1;
            D.25449 = *D.25448;
            D.25450 = (int) D.25449;
            __result = D.25447 - D.25450;
            if (__s2_len > 1) goto <D.25451>; else goto <D.25452>;
            <D.25451>:
            if (__result == 0) goto <D.25453>; else goto <D.25454>;
            <D.25453>:
            D.25455 = &MEM[(void *)"-h" + 2B];
            D.25456 = *D.25455;
            D.25457 = (int) D.25456;
            D.25458 = __s2 + 2;
            D.25459 = *D.25458;
            D.25460 = (int) D.25459;
            __result = D.25457 - D.25460;
            if (__s2_len > 2) goto <D.25461>; else goto <D.25462>;
            <D.25461>:
            if (__result == 0) goto <D.25463>; else goto <D.25464>;
            <D.25463>:
            D.25465 = &MEM[(void *)"-h" + 3B];
            D.25466 = *D.25465;
            D.25467 = (int) D.25466;
            D.25468 = __s2 + 3;
            D.25469 = *D.25468;
            D.25470 = (int) D.25469;
            __result = D.25467 - D.25470;
            <D.25464>:
            <D.25462>:
            <D.25454>:
            <D.25452>:
            <D.25444>:
            <D.25442>:
          }
          D.24154 = __result;
        }
        iftmp.24 = -D.24154;
        goto <D.25471>;
        <D.25435>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.24 = __builtin_strcmp (D.25167, "-h");
        <D.25471>:
        D.24155 = iftmp.24;
      }
      if (D.24155 == 0) goto <D.25391>; else goto <D.25392>;
      <D.25391>:
      mini_usage ();
      D.25390 = 0;
      return D.25390;
      <D.25392>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25475 = "--help-trace";
          D.25476 = MEM[(const unsigned char *)D.25475];
          D.25477 = (int) D.25476;
          D.25478 = *__s2;
          D.25479 = (int) D.25478;
          __result = D.25477 - D.25479;
          {
            if (__s2_len != 0) goto <D.25480>; else goto <D.25481>;
            <D.25480>:
            if (__result == 0) goto <D.25482>; else goto <D.25483>;
            <D.25482>:
            D.25484 = &MEM[(void *)"--help-trace" + 1B];
            D.25485 = *D.25484;
            D.25486 = (int) D.25485;
            D.25487 = __s2 + 1;
            D.25488 = *D.25487;
            D.25489 = (int) D.25488;
            __result = D.25486 - D.25489;
            if (__s2_len > 1) goto <D.25490>; else goto <D.25491>;
            <D.25490>:
            if (__result == 0) goto <D.25492>; else goto <D.25493>;
            <D.25492>:
            D.25494 = &MEM[(void *)"--help-trace" + 2B];
            D.25495 = *D.25494;
            D.25496 = (int) D.25495;
            D.25497 = __s2 + 2;
            D.25498 = *D.25497;
            D.25499 = (int) D.25498;
            __result = D.25496 - D.25499;
            if (__s2_len > 2) goto <D.25500>; else goto <D.25501>;
            <D.25500>:
            if (__result == 0) goto <D.25502>; else goto <D.25503>;
            <D.25502>:
            D.25504 = &MEM[(void *)"--help-trace" + 3B];
            D.25505 = *D.25504;
            D.25506 = (int) D.25505;
            D.25507 = __s2 + 3;
            D.25508 = *D.25507;
            D.25509 = (int) D.25508;
            __result = D.25506 - D.25509;
            <D.25503>:
            <D.25501>:
            <D.25493>:
            <D.25491>:
            <D.25483>:
            <D.25481>:
          }
          D.24163 = __result;
        }
        iftmp.25 = -D.24163;
        goto <D.25510>;
        <D.25474>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.25 = __builtin_strcmp (D.25167, "--help-trace");
        <D.25510>:
        D.24164 = iftmp.25;
      }
      if (D.24164 == 0) goto <D.25511>; else goto <D.25512>;
      <D.25511>:
      mini_trace_usage ();
      D.25390 = 0;
      return D.25390;
      <D.25512>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25516 = "--help-devel";
          D.25517 = MEM[(const unsigned char *)D.25516];
          D.25518 = (int) D.25517;
          D.25519 = *__s2;
          D.25520 = (int) D.25519;
          __result = D.25518 - D.25520;
          {
            if (__s2_len != 0) goto <D.25521>; else goto <D.25522>;
            <D.25521>:
            if (__result == 0) goto <D.25523>; else goto <D.25524>;
            <D.25523>:
            D.25525 = &MEM[(void *)"--help-devel" + 1B];
            D.25526 = *D.25525;
            D.25527 = (int) D.25526;
            D.25528 = __s2 + 1;
            D.25529 = *D.25528;
            D.25530 = (int) D.25529;
            __result = D.25527 - D.25530;
            if (__s2_len > 1) goto <D.25531>; else goto <D.25532>;
            <D.25531>:
            if (__result == 0) goto <D.25533>; else goto <D.25534>;
            <D.25533>:
            D.25535 = &MEM[(void *)"--help-devel" + 2B];
            D.25536 = *D.25535;
            D.25537 = (int) D.25536;
            D.25538 = __s2 + 2;
            D.25539 = *D.25538;
            D.25540 = (int) D.25539;
            __result = D.25537 - D.25540;
            if (__s2_len > 2) goto <D.25541>; else goto <D.25542>;
            <D.25541>:
            if (__result == 0) goto <D.25543>; else goto <D.25544>;
            <D.25543>:
            D.25545 = &MEM[(void *)"--help-devel" + 3B];
            D.25546 = *D.25545;
            D.25547 = (int) D.25546;
            D.25548 = __s2 + 3;
            D.25549 = *D.25548;
            D.25550 = (int) D.25549;
            __result = D.25547 - D.25550;
            <D.25544>:
            <D.25542>:
            <D.25534>:
            <D.25532>:
            <D.25524>:
            <D.25522>:
          }
          D.24172 = __result;
        }
        iftmp.26 = -D.24172;
        goto <D.25551>;
        <D.25515>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.26 = __builtin_strcmp (D.25167, "--help-devel");
        <D.25551>:
        D.24173 = iftmp.26;
      }
      if (D.24173 == 0) goto <D.25552>; else goto <D.25553>;
      <D.25552>:
      mini_usage_jitdeveloper ();
      D.25390 = 0;
      return D.25390;
      <D.25553>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25557 = "--help-debug";
          D.25558 = MEM[(const unsigned char *)D.25557];
          D.25559 = (int) D.25558;
          D.25560 = *__s2;
          D.25561 = (int) D.25560;
          __result = D.25559 - D.25561;
          {
            if (__s2_len != 0) goto <D.25562>; else goto <D.25563>;
            <D.25562>:
            if (__result == 0) goto <D.25564>; else goto <D.25565>;
            <D.25564>:
            D.25566 = &MEM[(void *)"--help-debug" + 1B];
            D.25567 = *D.25566;
            D.25568 = (int) D.25567;
            D.25569 = __s2 + 1;
            D.25570 = *D.25569;
            D.25571 = (int) D.25570;
            __result = D.25568 - D.25571;
            if (__s2_len > 1) goto <D.25572>; else goto <D.25573>;
            <D.25572>:
            if (__result == 0) goto <D.25574>; else goto <D.25575>;
            <D.25574>:
            D.25576 = &MEM[(void *)"--help-debug" + 2B];
            D.25577 = *D.25576;
            D.25578 = (int) D.25577;
            D.25579 = __s2 + 2;
            D.25580 = *D.25579;
            D.25581 = (int) D.25580;
            __result = D.25578 - D.25581;
            if (__s2_len > 2) goto <D.25582>; else goto <D.25583>;
            <D.25582>:
            if (__result == 0) goto <D.25584>; else goto <D.25585>;
            <D.25584>:
            D.25586 = &MEM[(void *)"--help-debug" + 3B];
            D.25587 = *D.25586;
            D.25588 = (int) D.25587;
            D.25589 = __s2 + 3;
            D.25590 = *D.25589;
            D.25591 = (int) D.25590;
            __result = D.25588 - D.25591;
            <D.25585>:
            <D.25583>:
            <D.25575>:
            <D.25573>:
            <D.25565>:
            <D.25563>:
          }
          D.24181 = __result;
        }
        iftmp.27 = -D.24181;
        goto <D.25592>;
        <D.25556>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.27 = __builtin_strcmp (D.25167, "--help-debug");
        <D.25592>:
        D.24182 = iftmp.27;
      }
      if (D.24182 == 0) goto <D.25593>; else goto <D.25594>;
      <D.25593>:
      mini_debug_usage ();
      D.25390 = 0;
      return D.25390;
      <D.25594>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25598 = "--list-opt";
          D.25599 = MEM[(const unsigned char *)D.25598];
          D.25600 = (int) D.25599;
          D.25601 = *__s2;
          D.25602 = (int) D.25601;
          __result = D.25600 - D.25602;
          {
            if (__s2_len != 0) goto <D.25603>; else goto <D.25604>;
            <D.25603>:
            if (__result == 0) goto <D.25605>; else goto <D.25606>;
            <D.25605>:
            D.25607 = &MEM[(void *)"--list-opt" + 1B];
            D.25608 = *D.25607;
            D.25609 = (int) D.25608;
            D.25610 = __s2 + 1;
            D.25611 = *D.25610;
            D.25612 = (int) D.25611;
            __result = D.25609 - D.25612;
            if (__s2_len > 1) goto <D.25613>; else goto <D.25614>;
            <D.25613>:
            if (__result == 0) goto <D.25615>; else goto <D.25616>;
            <D.25615>:
            D.25617 = &MEM[(void *)"--list-opt" + 2B];
            D.25618 = *D.25617;
            D.25619 = (int) D.25618;
            D.25620 = __s2 + 2;
            D.25621 = *D.25620;
            D.25622 = (int) D.25621;
            __result = D.25619 - D.25622;
            if (__s2_len > 2) goto <D.25623>; else goto <D.25624>;
            <D.25623>:
            if (__result == 0) goto <D.25625>; else goto <D.25626>;
            <D.25625>:
            D.25627 = &MEM[(void *)"--list-opt" + 3B];
            D.25628 = *D.25627;
            D.25629 = (int) D.25628;
            D.25630 = __s2 + 3;
            D.25631 = *D.25630;
            D.25632 = (int) D.25631;
            __result = D.25629 - D.25632;
            <D.25626>:
            <D.25624>:
            <D.25616>:
            <D.25614>:
            <D.25606>:
            <D.25604>:
          }
          D.24190 = __result;
        }
        iftmp.28 = -D.24190;
        goto <D.25633>;
        <D.25597>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.28 = __builtin_strcmp (D.25167, "--list-opt");
        <D.25633>:
        D.24191 = iftmp.28;
      }
      if (D.24191 == 0) goto <D.25634>; else goto <D.25635>;
      <D.25634>:
      mini_usage_list_opt ();
      D.25390 = 0;
      return D.25390;
      <D.25635>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25636 = strncmp (D.25167, "--statfile", 10);
      if (D.25636 == 0) goto <D.25637>; else goto <D.25638>;
      <D.25637>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.25640>; else goto <D.25641>;
      <D.25640>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --statfile requires a filename argument\n");
      D.25390 = 1;
      return D.25390;
      <D.25641>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      mini_stats_fd.30 = fopen (D.25167, "w+");
      mini_stats_fd = mini_stats_fd.30;
      goto <D.25644>;
      <D.25638>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25645 = strncmp (D.25167, "--optimize=", 11);
      if (D.25645 == 0) goto <D.25646>; else goto <D.25647>;
      <D.25646>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25648 = D.25167 + 11;
      opt = parse_optimizations (D.25648);
      goto <D.25649>;
      <D.25647>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25650 = strncmp (D.25167, "-O=", 3);
      if (D.25650 == 0) goto <D.25651>; else goto <D.25652>;
      <D.25651>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25653 = D.25167 + 3;
      opt = parse_optimizations (D.25653);
      goto <D.25654>;
      <D.25652>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25658 = "--gc=sgen";
          D.25659 = MEM[(const unsigned char *)D.25658];
          D.25660 = (int) D.25659;
          D.25661 = *__s2;
          D.25662 = (int) D.25661;
          __result = D.25660 - D.25662;
          {
            if (__s2_len != 0) goto <D.25663>; else goto <D.25664>;
            <D.25663>:
            if (__result == 0) goto <D.25665>; else goto <D.25666>;
            <D.25665>:
            D.25667 = &MEM[(void *)"--gc=sgen" + 1B];
            D.25668 = *D.25667;
            D.25669 = (int) D.25668;
            D.25670 = __s2 + 1;
            D.25671 = *D.25670;
            D.25672 = (int) D.25671;
            __result = D.25669 - D.25672;
            if (__s2_len > 1) goto <D.25673>; else goto <D.25674>;
            <D.25673>:
            if (__result == 0) goto <D.25675>; else goto <D.25676>;
            <D.25675>:
            D.25677 = &MEM[(void *)"--gc=sgen" + 2B];
            D.25678 = *D.25677;
            D.25679 = (int) D.25678;
            D.25680 = __s2 + 2;
            D.25681 = *D.25680;
            D.25682 = (int) D.25681;
            __result = D.25679 - D.25682;
            if (__s2_len > 2) goto <D.25683>; else goto <D.25684>;
            <D.25683>:
            if (__result == 0) goto <D.25685>; else goto <D.25686>;
            <D.25685>:
            D.25687 = &MEM[(void *)"--gc=sgen" + 3B];
            D.25688 = *D.25687;
            D.25689 = (int) D.25688;
            D.25690 = __s2 + 3;
            D.25691 = *D.25690;
            D.25692 = (int) D.25691;
            __result = D.25689 - D.25692;
            <D.25686>:
            <D.25684>:
            <D.25676>:
            <D.25674>:
            <D.25666>:
            <D.25664>:
          }
          D.24226 = __result;
        }
        iftmp.31 = -D.24226;
        goto <D.25693>;
        <D.25657>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.31 = __builtin_strcmp (D.25167, "--gc=sgen");
        <D.25693>:
        D.24227 = iftmp.31;
      }
      if (D.24227 == 0) goto <D.25694>; else goto <D.25695>;
      <D.25694>:
      switch_gc (argv, "sgen");
      goto <D.25696>;
      <D.25695>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25700 = "--gc=boehm";
          D.25701 = MEM[(const unsigned char *)D.25700];
          D.25702 = (int) D.25701;
          D.25703 = *__s2;
          D.25704 = (int) D.25703;
          __result = D.25702 - D.25704;
          {
            if (__s2_len != 0) goto <D.25705>; else goto <D.25706>;
            <D.25705>:
            if (__result == 0) goto <D.25707>; else goto <D.25708>;
            <D.25707>:
            D.25709 = &MEM[(void *)"--gc=boehm" + 1B];
            D.25710 = *D.25709;
            D.25711 = (int) D.25710;
            D.25712 = __s2 + 1;
            D.25713 = *D.25712;
            D.25714 = (int) D.25713;
            __result = D.25711 - D.25714;
            if (__s2_len > 1) goto <D.25715>; else goto <D.25716>;
            <D.25715>:
            if (__result == 0) goto <D.25717>; else goto <D.25718>;
            <D.25717>:
            D.25719 = &MEM[(void *)"--gc=boehm" + 2B];
            D.25720 = *D.25719;
            D.25721 = (int) D.25720;
            D.25722 = __s2 + 2;
            D.25723 = *D.25722;
            D.25724 = (int) D.25723;
            __result = D.25721 - D.25724;
            if (__s2_len > 2) goto <D.25725>; else goto <D.25726>;
            <D.25725>:
            if (__result == 0) goto <D.25727>; else goto <D.25728>;
            <D.25727>:
            D.25729 = &MEM[(void *)"--gc=boehm" + 3B];
            D.25730 = *D.25729;
            D.25731 = (int) D.25730;
            D.25732 = __s2 + 3;
            D.25733 = *D.25732;
            D.25734 = (int) D.25733;
            __result = D.25731 - D.25734;
            <D.25728>:
            <D.25726>:
            <D.25718>:
            <D.25716>:
            <D.25708>:
            <D.25706>:
          }
          D.24235 = __result;
        }
        iftmp.32 = -D.24235;
        goto <D.25735>;
        <D.25699>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.32 = __builtin_strcmp (D.25167, "--gc=boehm");
        <D.25735>:
        D.24236 = iftmp.32;
      }
      if (D.24236 == 0) goto <D.25736>; else goto <D.25737>;
      <D.25736>:
      switch_gc (argv, "boehm");
      goto <D.25738>;
      <D.25737>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25742 = "--config";
          D.25743 = MEM[(const unsigned char *)D.25742];
          D.25744 = (int) D.25743;
          D.25745 = *__s2;
          D.25746 = (int) D.25745;
          __result = D.25744 - D.25746;
          {
            if (__s2_len != 0) goto <D.25747>; else goto <D.25748>;
            <D.25747>:
            if (__result == 0) goto <D.25749>; else goto <D.25750>;
            <D.25749>:
            D.25751 = &MEM[(void *)"--config" + 1B];
            D.25752 = *D.25751;
            D.25753 = (int) D.25752;
            D.25754 = __s2 + 1;
            D.25755 = *D.25754;
            D.25756 = (int) D.25755;
            __result = D.25753 - D.25756;
            if (__s2_len > 1) goto <D.25757>; else goto <D.25758>;
            <D.25757>:
            if (__result == 0) goto <D.25759>; else goto <D.25760>;
            <D.25759>:
            D.25761 = &MEM[(void *)"--config" + 2B];
            D.25762 = *D.25761;
            D.25763 = (int) D.25762;
            D.25764 = __s2 + 2;
            D.25765 = *D.25764;
            D.25766 = (int) D.25765;
            __result = D.25763 - D.25766;
            if (__s2_len > 2) goto <D.25767>; else goto <D.25768>;
            <D.25767>:
            if (__result == 0) goto <D.25769>; else goto <D.25770>;
            <D.25769>:
            D.25771 = &MEM[(void *)"--config" + 3B];
            D.25772 = *D.25771;
            D.25773 = (int) D.25772;
            D.25774 = __s2 + 3;
            D.25775 = *D.25774;
            D.25776 = (int) D.25775;
            __result = D.25773 - D.25776;
            <D.25770>:
            <D.25768>:
            <D.25760>:
            <D.25758>:
            <D.25750>:
            <D.25748>:
          }
          D.24244 = __result;
        }
        iftmp.33 = -D.24244;
        goto <D.25777>;
        <D.25741>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.33 = __builtin_strcmp (D.25167, "--config");
        <D.25777>:
        D.24245 = iftmp.33;
      }
      if (D.24245 == 0) goto <D.25778>; else goto <D.25779>;
      <D.25778>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.25780>; else goto <D.25781>;
      <D.25780>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --config requires a filename argument\n");
      D.25390 = 1;
      return D.25390;
      <D.25781>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      config_file = *D.25166;
      goto <D.25782>;
      <D.25779>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25786 = "--ncompile";
          D.25787 = MEM[(const unsigned char *)D.25786];
          D.25788 = (int) D.25787;
          D.25789 = *__s2;
          D.25790 = (int) D.25789;
          __result = D.25788 - D.25790;
          {
            if (__s2_len != 0) goto <D.25791>; else goto <D.25792>;
            <D.25791>:
            if (__result == 0) goto <D.25793>; else goto <D.25794>;
            <D.25793>:
            D.25795 = &MEM[(void *)"--ncompile" + 1B];
            D.25796 = *D.25795;
            D.25797 = (int) D.25796;
            D.25798 = __s2 + 1;
            D.25799 = *D.25798;
            D.25800 = (int) D.25799;
            __result = D.25797 - D.25800;
            if (__s2_len > 1) goto <D.25801>; else goto <D.25802>;
            <D.25801>:
            if (__result == 0) goto <D.25803>; else goto <D.25804>;
            <D.25803>:
            D.25805 = &MEM[(void *)"--ncompile" + 2B];
            D.25806 = *D.25805;
            D.25807 = (int) D.25806;
            D.25808 = __s2 + 2;
            D.25809 = *D.25808;
            D.25810 = (int) D.25809;
            __result = D.25807 - D.25810;
            if (__s2_len > 2) goto <D.25811>; else goto <D.25812>;
            <D.25811>:
            if (__result == 0) goto <D.25813>; else goto <D.25814>;
            <D.25813>:
            D.25815 = &MEM[(void *)"--ncompile" + 3B];
            D.25816 = *D.25815;
            D.25817 = (int) D.25816;
            D.25818 = __s2 + 3;
            D.25819 = *D.25818;
            D.25820 = (int) D.25819;
            __result = D.25817 - D.25820;
            <D.25814>:
            <D.25812>:
            <D.25804>:
            <D.25802>:
            <D.25794>:
            <D.25792>:
          }
          D.24253 = __result;
        }
        iftmp.34 = -D.24253;
        goto <D.25821>;
        <D.25785>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.34 = __builtin_strcmp (D.25167, "--ncompile");
        <D.25821>:
        D.24254 = iftmp.34;
      }
      if (D.24254 == 0) goto <D.25822>; else goto <D.25823>;
      <D.25822>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.25824>; else goto <D.25825>;
      <D.25824>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --ncompile requires an argument\n");
      D.25390 = 1;
      return D.25390;
      <D.25825>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      count = atoi (D.25167);
      action = 0;
      goto <D.25826>;
      <D.25823>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25830 = "--trace";
          D.25831 = MEM[(const unsigned char *)D.25830];
          D.25832 = (int) D.25831;
          D.25833 = *__s2;
          D.25834 = (int) D.25833;
          __result = D.25832 - D.25834;
          {
            if (__s2_len != 0) goto <D.25835>; else goto <D.25836>;
            <D.25835>:
            if (__result == 0) goto <D.25837>; else goto <D.25838>;
            <D.25837>:
            D.25839 = &MEM[(void *)"--trace" + 1B];
            D.25840 = *D.25839;
            D.25841 = (int) D.25840;
            D.25842 = __s2 + 1;
            D.25843 = *D.25842;
            D.25844 = (int) D.25843;
            __result = D.25841 - D.25844;
            if (__s2_len > 1) goto <D.25845>; else goto <D.25846>;
            <D.25845>:
            if (__result == 0) goto <D.25847>; else goto <D.25848>;
            <D.25847>:
            D.25849 = &MEM[(void *)"--trace" + 2B];
            D.25850 = *D.25849;
            D.25851 = (int) D.25850;
            D.25852 = __s2 + 2;
            D.25853 = *D.25852;
            D.25854 = (int) D.25853;
            __result = D.25851 - D.25854;
            if (__s2_len > 2) goto <D.25855>; else goto <D.25856>;
            <D.25855>:
            if (__result == 0) goto <D.25857>; else goto <D.25858>;
            <D.25857>:
            D.25859 = &MEM[(void *)"--trace" + 3B];
            D.25860 = *D.25859;
            D.25861 = (int) D.25860;
            D.25862 = __s2 + 3;
            D.25863 = *D.25862;
            D.25864 = (int) D.25863;
            __result = D.25861 - D.25864;
            <D.25858>:
            <D.25856>:
            <D.25848>:
            <D.25846>:
            <D.25838>:
            <D.25836>:
          }
          D.24262 = __result;
        }
        iftmp.35 = -D.24262;
        goto <D.25865>;
        <D.25829>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.35 = __builtin_strcmp (D.25167, "--trace");
        <D.25865>:
        D.24263 = iftmp.35;
      }
      if (D.24263 == 0) goto <D.25866>; else goto <D.25867>;
      <D.25866>:
      trace_options = "";
      goto <D.25868>;
      <D.25867>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25869 = strncmp (D.25167, "--trace=", 8);
      if (D.25869 == 0) goto <D.25870>; else goto <D.25871>;
      <D.25870>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      trace_options = D.25167 + 8;
      goto <D.25872>;
      <D.25871>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25876 = "--breakonex";
          D.25877 = MEM[(const unsigned char *)D.25876];
          D.25878 = (int) D.25877;
          D.25879 = *__s2;
          D.25880 = (int) D.25879;
          __result = D.25878 - D.25880;
          {
            if (__s2_len != 0) goto <D.25881>; else goto <D.25882>;
            <D.25881>:
            if (__result == 0) goto <D.25883>; else goto <D.25884>;
            <D.25883>:
            D.25885 = &MEM[(void *)"--breakonex" + 1B];
            D.25886 = *D.25885;
            D.25887 = (int) D.25886;
            D.25888 = __s2 + 1;
            D.25889 = *D.25888;
            D.25890 = (int) D.25889;
            __result = D.25887 - D.25890;
            if (__s2_len > 1) goto <D.25891>; else goto <D.25892>;
            <D.25891>:
            if (__result == 0) goto <D.25893>; else goto <D.25894>;
            <D.25893>:
            D.25895 = &MEM[(void *)"--breakonex" + 2B];
            D.25896 = *D.25895;
            D.25897 = (int) D.25896;
            D.25898 = __s2 + 2;
            D.25899 = *D.25898;
            D.25900 = (int) D.25899;
            __result = D.25897 - D.25900;
            if (__s2_len > 2) goto <D.25901>; else goto <D.25902>;
            <D.25901>:
            if (__result == 0) goto <D.25903>; else goto <D.25904>;
            <D.25903>:
            D.25905 = &MEM[(void *)"--breakonex" + 3B];
            D.25906 = *D.25905;
            D.25907 = (int) D.25906;
            D.25908 = __s2 + 3;
            D.25909 = *D.25908;
            D.25910 = (int) D.25909;
            __result = D.25907 - D.25910;
            <D.25904>:
            <D.25902>:
            <D.25894>:
            <D.25892>:
            <D.25884>:
            <D.25882>:
          }
          D.24280 = __result;
        }
        iftmp.36 = -D.24280;
        goto <D.25911>;
        <D.25875>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.36 = __builtin_strcmp (D.25167, "--breakonex");
        <D.25911>:
        D.24281 = iftmp.36;
      }
      if (D.24281 == 0) goto <D.25912>; else goto <D.25913>;
      <D.25912>:
      {
        struct MonoDebugOptions * opt;

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

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25918 = "--break";
          D.25919 = MEM[(const unsigned char *)D.25918];
          D.25920 = (int) D.25919;
          D.25921 = *__s2;
          D.25922 = (int) D.25921;
          __result = D.25920 - D.25922;
          {
            if (__s2_len != 0) goto <D.25923>; else goto <D.25924>;
            <D.25923>:
            if (__result == 0) goto <D.25925>; else goto <D.25926>;
            <D.25925>:
            D.25927 = &MEM[(void *)"--break" + 1B];
            D.25928 = *D.25927;
            D.25929 = (int) D.25928;
            D.25930 = __s2 + 1;
            D.25931 = *D.25930;
            D.25932 = (int) D.25931;
            __result = D.25929 - D.25932;
            if (__s2_len > 1) goto <D.25933>; else goto <D.25934>;
            <D.25933>:
            if (__result == 0) goto <D.25935>; else goto <D.25936>;
            <D.25935>:
            D.25937 = &MEM[(void *)"--break" + 2B];
            D.25938 = *D.25937;
            D.25939 = (int) D.25938;
            D.25940 = __s2 + 2;
            D.25941 = *D.25940;
            D.25942 = (int) D.25941;
            __result = D.25939 - D.25942;
            if (__s2_len > 2) goto <D.25943>; else goto <D.25944>;
            <D.25943>:
            if (__result == 0) goto <D.25945>; else goto <D.25946>;
            <D.25945>:
            D.25947 = &MEM[(void *)"--break" + 3B];
            D.25948 = *D.25947;
            D.25949 = (int) D.25948;
            D.25950 = __s2 + 3;
            D.25951 = *D.25950;
            D.25952 = (int) D.25951;
            __result = D.25949 - D.25952;
            <D.25946>:
            <D.25944>:
            <D.25936>:
            <D.25934>:
            <D.25926>:
            <D.25924>:
          }
          D.24290 = __result;
        }
        iftmp.37 = -D.24290;
        goto <D.25953>;
        <D.25917>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.37 = __builtin_strcmp (D.25167, "--break");
        <D.25953>:
        D.24291 = iftmp.37;
      }
      if (D.24291 == 0) goto <D.25954>; else goto <D.25955>;
      <D.25954>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.25956>; else goto <D.25957>;
      <D.25956>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Missing method name in --break command line option\n");
      D.25390 = 1;
      return D.25390;
      <D.25957>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.25958 = mono_debugger_insert_breakpoint (D.25167, 0);
      if (D.25958 == 0) goto <D.25959>; else goto <D.25960>;
      <D.25959>:
      stderr.29 = stderr;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      fprintf (stderr.29, "Error: invalid method name \'%s\'\n", D.25167);
      <D.25960>:
      goto <D.25961>;
      <D.25955>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.25965 = "--break-at-bb";
          D.25966 = MEM[(const unsigned char *)D.25965];
          D.25967 = (int) D.25966;
          D.25968 = *__s2;
          D.25969 = (int) D.25968;
          __result = D.25967 - D.25969;
          {
            if (__s2_len != 0) goto <D.25970>; else goto <D.25971>;
            <D.25970>:
            if (__result == 0) goto <D.25972>; else goto <D.25973>;
            <D.25972>:
            D.25974 = &MEM[(void *)"--break-at-bb" + 1B];
            D.25975 = *D.25974;
            D.25976 = (int) D.25975;
            D.25977 = __s2 + 1;
            D.25978 = *D.25977;
            D.25979 = (int) D.25978;
            __result = D.25976 - D.25979;
            if (__s2_len > 1) goto <D.25980>; else goto <D.25981>;
            <D.25980>:
            if (__result == 0) goto <D.25982>; else goto <D.25983>;
            <D.25982>:
            D.25984 = &MEM[(void *)"--break-at-bb" + 2B];
            D.25985 = *D.25984;
            D.25986 = (int) D.25985;
            D.25987 = __s2 + 2;
            D.25988 = *D.25987;
            D.25989 = (int) D.25988;
            __result = D.25986 - D.25989;
            if (__s2_len > 2) goto <D.25990>; else goto <D.25991>;
            <D.25990>:
            if (__result == 0) goto <D.25992>; else goto <D.25993>;
            <D.25992>:
            D.25994 = &MEM[(void *)"--break-at-bb" + 3B];
            D.25995 = *D.25994;
            D.25996 = (int) D.25995;
            D.25997 = __s2 + 3;
            D.25998 = *D.25997;
            D.25999 = (int) D.25998;
            __result = D.25996 - D.25999;
            <D.25993>:
            <D.25991>:
            <D.25983>:
            <D.25981>:
            <D.25973>:
            <D.25971>:
          }
          D.24299 = __result;
        }
        iftmp.38 = -D.24299;
        goto <D.26000>;
        <D.25964>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.38 = __builtin_strcmp (D.25167, "--break-at-bb");
        <D.26000>:
        D.24300 = iftmp.38;
      }
      if (D.24300 == 0) goto <D.26001>; else goto <D.26002>;
      <D.26001>:
      D.26003 = i + 2;
      if (D.26003 >= argc) goto <D.26004>; else goto <D.26005>;
      <D.26004>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Missing method name or bb num in --break-at-bb command line option.");
      D.25390 = 1;
      return D.25390;
      <D.26005>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      mono_break_at_bb_method.39 = mono_method_desc_new (D.25167, 1);
      mono_break_at_bb_method = mono_break_at_bb_method.39;
      mono_break_at_bb_method.40 = mono_break_at_bb_method;
      if (mono_break_at_bb_method.40 == 0B) goto <D.26008>; else goto <D.26009>;
      <D.26008>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Method name is in a bad format in --break-at-bb command line option.");
      D.25390 = 1;
      return D.25390;
      <D.26009>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      mono_break_at_bb_bb_num.41 = atoi (D.25167);
      mono_break_at_bb_bb_num = mono_break_at_bb_bb_num.41;
      goto <D.26011>;
      <D.26002>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26015 = "--inject-async-exc";
          D.26016 = MEM[(const unsigned char *)D.26015];
          D.26017 = (int) D.26016;
          D.26018 = *__s2;
          D.26019 = (int) D.26018;
          __result = D.26017 - D.26019;
          {
            if (__s2_len != 0) goto <D.26020>; else goto <D.26021>;
            <D.26020>:
            if (__result == 0) goto <D.26022>; else goto <D.26023>;
            <D.26022>:
            D.26024 = &MEM[(void *)"--inject-async-exc" + 1B];
            D.26025 = *D.26024;
            D.26026 = (int) D.26025;
            D.26027 = __s2 + 1;
            D.26028 = *D.26027;
            D.26029 = (int) D.26028;
            __result = D.26026 - D.26029;
            if (__s2_len > 1) goto <D.26030>; else goto <D.26031>;
            <D.26030>:
            if (__result == 0) goto <D.26032>; else goto <D.26033>;
            <D.26032>:
            D.26034 = &MEM[(void *)"--inject-async-exc" + 2B];
            D.26035 = *D.26034;
            D.26036 = (int) D.26035;
            D.26037 = __s2 + 2;
            D.26038 = *D.26037;
            D.26039 = (int) D.26038;
            __result = D.26036 - D.26039;
            if (__s2_len > 2) goto <D.26040>; else goto <D.26041>;
            <D.26040>:
            if (__result == 0) goto <D.26042>; else goto <D.26043>;
            <D.26042>:
            D.26044 = &MEM[(void *)"--inject-async-exc" + 3B];
            D.26045 = *D.26044;
            D.26046 = (int) D.26045;
            D.26047 = __s2 + 3;
            D.26048 = *D.26047;
            D.26049 = (int) D.26048;
            __result = D.26046 - D.26049;
            <D.26043>:
            <D.26041>:
            <D.26033>:
            <D.26031>:
            <D.26023>:
            <D.26021>:
          }
          D.24308 = __result;
        }
        iftmp.42 = -D.24308;
        goto <D.26050>;
        <D.26014>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.42 = __builtin_strcmp (D.25167, "--inject-async-exc");
        <D.26050>:
        D.24309 = iftmp.42;
      }
      if (D.24309 == 0) goto <D.26051>; else goto <D.26052>;
      <D.26051>:
      D.26003 = i + 2;
      if (D.26003 >= argc) goto <D.26053>; else goto <D.26054>;
      <D.26053>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Missing method name or position in --inject-async-exc command line option\n");
      D.25390 = 1;
      return D.25390;
      <D.26054>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      mono_inject_async_exc_method.43 = mono_method_desc_new (D.25167, 1);
      mono_inject_async_exc_method = mono_inject_async_exc_method.43;
      mono_inject_async_exc_method.44 = mono_inject_async_exc_method;
      if (mono_inject_async_exc_method.44 == 0B) goto <D.26057>; else goto <D.26058>;
      <D.26057>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Method name is in a bad format in --inject-async-exc command line option\n");
      D.25390 = 1;
      return D.25390;
      <D.26058>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      mono_inject_async_exc_pos.45 = atoi (D.25167);
      mono_inject_async_exc_pos = mono_inject_async_exc_pos.45;
      goto <D.26060>;
      <D.26052>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26064 = "--verify-all";
          D.26065 = MEM[(const unsigned char *)D.26064];
          D.26066 = (int) D.26065;
          D.26067 = *__s2;
          D.26068 = (int) D.26067;
          __result = D.26066 - D.26068;
          {
            if (__s2_len != 0) goto <D.26069>; else goto <D.26070>;
            <D.26069>:
            if (__result == 0) goto <D.26071>; else goto <D.26072>;
            <D.26071>:
            D.26073 = &MEM[(void *)"--verify-all" + 1B];
            D.26074 = *D.26073;
            D.26075 = (int) D.26074;
            D.26076 = __s2 + 1;
            D.26077 = *D.26076;
            D.26078 = (int) D.26077;
            __result = D.26075 - D.26078;
            if (__s2_len > 1) goto <D.26079>; else goto <D.26080>;
            <D.26079>:
            if (__result == 0) goto <D.26081>; else goto <D.26082>;
            <D.26081>:
            D.26083 = &MEM[(void *)"--verify-all" + 2B];
            D.26084 = *D.26083;
            D.26085 = (int) D.26084;
            D.26086 = __s2 + 2;
            D.26087 = *D.26086;
            D.26088 = (int) D.26087;
            __result = D.26085 - D.26088;
            if (__s2_len > 2) goto <D.26089>; else goto <D.26090>;
            <D.26089>:
            if (__result == 0) goto <D.26091>; else goto <D.26092>;
            <D.26091>:
            D.26093 = &MEM[(void *)"--verify-all" + 3B];
            D.26094 = *D.26093;
            D.26095 = (int) D.26094;
            D.26096 = __s2 + 3;
            D.26097 = *D.26096;
            D.26098 = (int) D.26097;
            __result = D.26095 - D.26098;
            <D.26092>:
            <D.26090>:
            <D.26082>:
            <D.26080>:
            <D.26072>:
            <D.26070>:
          }
          D.24317 = __result;
        }
        iftmp.46 = -D.24317;
        goto <D.26099>;
        <D.26063>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.46 = __builtin_strcmp (D.25167, "--verify-all");
        <D.26099>:
        D.24318 = iftmp.46;
      }
      if (D.24318 == 0) goto <D.26100>; else goto <D.26101>;
      <D.26100>:
      mono_verifier_enable_verify_all ();
      goto <D.26102>;
      <D.26101>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26106 = "--full-aot";
          D.26107 = MEM[(const unsigned char *)D.26106];
          D.26108 = (int) D.26107;
          D.26109 = *__s2;
          D.26110 = (int) D.26109;
          __result = D.26108 - D.26110;
          {
            if (__s2_len != 0) goto <D.26111>; else goto <D.26112>;
            <D.26111>:
            if (__result == 0) goto <D.26113>; else goto <D.26114>;
            <D.26113>:
            D.26115 = &MEM[(void *)"--full-aot" + 1B];
            D.26116 = *D.26115;
            D.26117 = (int) D.26116;
            D.26118 = __s2 + 1;
            D.26119 = *D.26118;
            D.26120 = (int) D.26119;
            __result = D.26117 - D.26120;
            if (__s2_len > 1) goto <D.26121>; else goto <D.26122>;
            <D.26121>:
            if (__result == 0) goto <D.26123>; else goto <D.26124>;
            <D.26123>:
            D.26125 = &MEM[(void *)"--full-aot" + 2B];
            D.26126 = *D.26125;
            D.26127 = (int) D.26126;
            D.26128 = __s2 + 2;
            D.26129 = *D.26128;
            D.26130 = (int) D.26129;
            __result = D.26127 - D.26130;
            if (__s2_len > 2) goto <D.26131>; else goto <D.26132>;
            <D.26131>:
            if (__result == 0) goto <D.26133>; else goto <D.26134>;
            <D.26133>:
            D.26135 = &MEM[(void *)"--full-aot" + 3B];
            D.26136 = *D.26135;
            D.26137 = (int) D.26136;
            D.26138 = __s2 + 3;
            D.26139 = *D.26138;
            D.26140 = (int) D.26139;
            __result = D.26137 - D.26140;
            <D.26134>:
            <D.26132>:
            <D.26124>:
            <D.26122>:
            <D.26114>:
            <D.26112>:
          }
          D.24326 = __result;
        }
        iftmp.47 = -D.24326;
        goto <D.26141>;
        <D.26105>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.47 = __builtin_strcmp (D.25167, "--full-aot");
        <D.26141>:
        D.24327 = iftmp.47;
      }
      if (D.24327 == 0) goto <D.26142>; else goto <D.26143>;
      <D.26142>:
      mono_aot_only = 1;
      goto <D.26144>;
      <D.26143>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26148 = "--print-vtable";
          D.26149 = MEM[(const unsigned char *)D.26148];
          D.26150 = (int) D.26149;
          D.26151 = *__s2;
          D.26152 = (int) D.26151;
          __result = D.26150 - D.26152;
          {
            if (__s2_len != 0) goto <D.26153>; else goto <D.26154>;
            <D.26153>:
            if (__result == 0) goto <D.26155>; else goto <D.26156>;
            <D.26155>:
            D.26157 = &MEM[(void *)"--print-vtable" + 1B];
            D.26158 = *D.26157;
            D.26159 = (int) D.26158;
            D.26160 = __s2 + 1;
            D.26161 = *D.26160;
            D.26162 = (int) D.26161;
            __result = D.26159 - D.26162;
            if (__s2_len > 1) goto <D.26163>; else goto <D.26164>;
            <D.26163>:
            if (__result == 0) goto <D.26165>; else goto <D.26166>;
            <D.26165>:
            D.26167 = &MEM[(void *)"--print-vtable" + 2B];
            D.26168 = *D.26167;
            D.26169 = (int) D.26168;
            D.26170 = __s2 + 2;
            D.26171 = *D.26170;
            D.26172 = (int) D.26171;
            __result = D.26169 - D.26172;
            if (__s2_len > 2) goto <D.26173>; else goto <D.26174>;
            <D.26173>:
            if (__result == 0) goto <D.26175>; else goto <D.26176>;
            <D.26175>:
            D.26177 = &MEM[(void *)"--print-vtable" + 3B];
            D.26178 = *D.26177;
            D.26179 = (int) D.26178;
            D.26180 = __s2 + 3;
            D.26181 = *D.26180;
            D.26182 = (int) D.26181;
            __result = D.26179 - D.26182;
            <D.26176>:
            <D.26174>:
            <D.26166>:
            <D.26164>:
            <D.26156>:
            <D.26154>:
          }
          D.24335 = __result;
        }
        iftmp.48 = -D.24335;
        goto <D.26183>;
        <D.26147>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.48 = __builtin_strcmp (D.25167, "--print-vtable");
        <D.26183>:
        D.24336 = iftmp.48;
      }
      if (D.24336 == 0) goto <D.26184>; else goto <D.26185>;
      <D.26184>:
      mono_print_vtable = 1;
      goto <D.26186>;
      <D.26185>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26190 = "--stats";
          D.26191 = MEM[(const unsigned char *)D.26190];
          D.26192 = (int) D.26191;
          D.26193 = *__s2;
          D.26194 = (int) D.26193;
          __result = D.26192 - D.26194;
          {
            if (__s2_len != 0) goto <D.26195>; else goto <D.26196>;
            <D.26195>:
            if (__result == 0) goto <D.26197>; else goto <D.26198>;
            <D.26197>:
            D.26199 = &MEM[(void *)"--stats" + 1B];
            D.26200 = *D.26199;
            D.26201 = (int) D.26200;
            D.26202 = __s2 + 1;
            D.26203 = *D.26202;
            D.26204 = (int) D.26203;
            __result = D.26201 - D.26204;
            if (__s2_len > 1) goto <D.26205>; else goto <D.26206>;
            <D.26205>:
            if (__result == 0) goto <D.26207>; else goto <D.26208>;
            <D.26207>:
            D.26209 = &MEM[(void *)"--stats" + 2B];
            D.26210 = *D.26209;
            D.26211 = (int) D.26210;
            D.26212 = __s2 + 2;
            D.26213 = *D.26212;
            D.26214 = (int) D.26213;
            __result = D.26211 - D.26214;
            if (__s2_len > 2) goto <D.26215>; else goto <D.26216>;
            <D.26215>:
            if (__result == 0) goto <D.26217>; else goto <D.26218>;
            <D.26217>:
            D.26219 = &MEM[(void *)"--stats" + 3B];
            D.26220 = *D.26219;
            D.26221 = (int) D.26220;
            D.26222 = __s2 + 3;
            D.26223 = *D.26222;
            D.26224 = (int) D.26223;
            __result = D.26221 - D.26224;
            <D.26218>:
            <D.26216>:
            <D.26208>:
            <D.26206>:
            <D.26198>:
            <D.26196>:
          }
          D.24344 = __result;
        }
        iftmp.49 = -D.24344;
        goto <D.26225>;
        <D.26189>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.49 = __builtin_strcmp (D.25167, "--stats");
        <D.26225>:
        D.24345 = iftmp.49;
      }
      if (D.24345 == 0) goto <D.26226>; else goto <D.26227>;
      <D.26226>:
      mono_counters_enable (-1);
      mono_stats.enabled = 1;
      mono_jit_stats.enabled = 1;
      goto <D.26228>;
      <D.26227>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26232 = "--aot";
          D.26233 = MEM[(const unsigned char *)D.26232];
          D.26234 = (int) D.26233;
          D.26235 = *__s2;
          D.26236 = (int) D.26235;
          __result = D.26234 - D.26236;
          {
            if (__s2_len != 0) goto <D.26237>; else goto <D.26238>;
            <D.26237>:
            if (__result == 0) goto <D.26239>; else goto <D.26240>;
            <D.26239>:
            D.26241 = &MEM[(void *)"--aot" + 1B];
            D.26242 = *D.26241;
            D.26243 = (int) D.26242;
            D.26244 = __s2 + 1;
            D.26245 = *D.26244;
            D.26246 = (int) D.26245;
            __result = D.26243 - D.26246;
            if (__s2_len > 1) goto <D.26247>; else goto <D.26248>;
            <D.26247>:
            if (__result == 0) goto <D.26249>; else goto <D.26250>;
            <D.26249>:
            D.26251 = &MEM[(void *)"--aot" + 2B];
            D.26252 = *D.26251;
            D.26253 = (int) D.26252;
            D.26254 = __s2 + 2;
            D.26255 = *D.26254;
            D.26256 = (int) D.26255;
            __result = D.26253 - D.26256;
            if (__s2_len > 2) goto <D.26257>; else goto <D.26258>;
            <D.26257>:
            if (__result == 0) goto <D.26259>; else goto <D.26260>;
            <D.26259>:
            D.26261 = &MEM[(void *)"--aot" + 3B];
            D.26262 = *D.26261;
            D.26263 = (int) D.26262;
            D.26264 = __s2 + 3;
            D.26265 = *D.26264;
            D.26266 = (int) D.26265;
            __result = D.26263 - D.26266;
            <D.26260>:
            <D.26258>:
            <D.26250>:
            <D.26248>:
            <D.26240>:
            <D.26238>:
          }
          D.24353 = __result;
        }
        iftmp.50 = -D.24353;
        goto <D.26267>;
        <D.26231>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.50 = __builtin_strcmp (D.25167, "--aot");
        <D.26267>:
        D.24354 = iftmp.50;
      }
      if (D.24354 == 0) goto <D.26268>; else goto <D.26269>;
      <D.26268>:
      mono_compile_aot = 1;
      goto <D.26270>;
      <D.26269>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26271 = strncmp (D.25167, "--aot=", 6);
      if (D.26271 == 0) goto <D.26272>; else goto <D.26273>;
      <D.26272>:
      mono_compile_aot = 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      aot_options = D.25167 + 6;
      goto <D.26274>;
      <D.26273>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26275 = strncmp (D.25167, "--compile-all=", 14);
      if (D.26275 == 0) goto <D.26276>; else goto <D.26277>;
      <D.26276>:
      action = 3;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26278 = D.25167 + 14;
      D.26279 = atoi (D.26278);
      recompilation_times = (guint32) D.26279;
      goto <D.26280>;
      <D.26277>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26284 = "--compile-all";
          D.26285 = MEM[(const unsigned char *)D.26284];
          D.26286 = (int) D.26285;
          D.26287 = *__s2;
          D.26288 = (int) D.26287;
          __result = D.26286 - D.26288;
          {
            if (__s2_len != 0) goto <D.26289>; else goto <D.26290>;
            <D.26289>:
            if (__result == 0) goto <D.26291>; else goto <D.26292>;
            <D.26291>:
            D.26293 = &MEM[(void *)"--compile-all" + 1B];
            D.26294 = *D.26293;
            D.26295 = (int) D.26294;
            D.26296 = __s2 + 1;
            D.26297 = *D.26296;
            D.26298 = (int) D.26297;
            __result = D.26295 - D.26298;
            if (__s2_len > 1) goto <D.26299>; else goto <D.26300>;
            <D.26299>:
            if (__result == 0) goto <D.26301>; else goto <D.26302>;
            <D.26301>:
            D.26303 = &MEM[(void *)"--compile-all" + 2B];
            D.26304 = *D.26303;
            D.26305 = (int) D.26304;
            D.26306 = __s2 + 2;
            D.26307 = *D.26306;
            D.26308 = (int) D.26307;
            __result = D.26305 - D.26308;
            if (__s2_len > 2) goto <D.26309>; else goto <D.26310>;
            <D.26309>:
            if (__result == 0) goto <D.26311>; else goto <D.26312>;
            <D.26311>:
            D.26313 = &MEM[(void *)"--compile-all" + 3B];
            D.26314 = *D.26313;
            D.26315 = (int) D.26314;
            D.26316 = __s2 + 3;
            D.26317 = *D.26316;
            D.26318 = (int) D.26317;
            __result = D.26315 - D.26318;
            <D.26312>:
            <D.26310>:
            <D.26302>:
            <D.26300>:
            <D.26292>:
            <D.26290>:
          }
          D.24380 = __result;
        }
        iftmp.51 = -D.24380;
        goto <D.26319>;
        <D.26283>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.51 = __builtin_strcmp (D.25167, "--compile-all");
        <D.26319>:
        D.24381 = iftmp.51;
      }
      if (D.24381 == 0) goto <D.26320>; else goto <D.26321>;
      <D.26320>:
      action = 3;
      goto <D.26322>;
      <D.26321>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26323 = strncmp (D.25167, "--runtime=", 10);
      if (D.26323 == 0) goto <D.26324>; else goto <D.26325>;
      <D.26324>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      forced_version = D.25167 + 10;
      goto <D.26326>;
      <D.26325>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26330 = "--jitmap";
          D.26331 = MEM[(const unsigned char *)D.26330];
          D.26332 = (int) D.26331;
          D.26333 = *__s2;
          D.26334 = (int) D.26333;
          __result = D.26332 - D.26334;
          {
            if (__s2_len != 0) goto <D.26335>; else goto <D.26336>;
            <D.26335>:
            if (__result == 0) goto <D.26337>; else goto <D.26338>;
            <D.26337>:
            D.26339 = &MEM[(void *)"--jitmap" + 1B];
            D.26340 = *D.26339;
            D.26341 = (int) D.26340;
            D.26342 = __s2 + 1;
            D.26343 = *D.26342;
            D.26344 = (int) D.26343;
            __result = D.26341 - D.26344;
            if (__s2_len > 1) goto <D.26345>; else goto <D.26346>;
            <D.26345>:
            if (__result == 0) goto <D.26347>; else goto <D.26348>;
            <D.26347>:
            D.26349 = &MEM[(void *)"--jitmap" + 2B];
            D.26350 = *D.26349;
            D.26351 = (int) D.26350;
            D.26352 = __s2 + 2;
            D.26353 = *D.26352;
            D.26354 = (int) D.26353;
            __result = D.26351 - D.26354;
            if (__s2_len > 2) goto <D.26355>; else goto <D.26356>;
            <D.26355>:
            if (__result == 0) goto <D.26357>; else goto <D.26358>;
            <D.26357>:
            D.26359 = &MEM[(void *)"--jitmap" + 3B];
            D.26360 = *D.26359;
            D.26361 = (int) D.26360;
            D.26362 = __s2 + 3;
            D.26363 = *D.26362;
            D.26364 = (int) D.26363;
            __result = D.26361 - D.26364;
            <D.26358>:
            <D.26356>:
            <D.26348>:
            <D.26346>:
            <D.26338>:
            <D.26336>:
          }
          D.24398 = __result;
        }
        iftmp.52 = -D.24398;
        goto <D.26365>;
        <D.26329>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.52 = __builtin_strcmp (D.25167, "--jitmap");
        <D.26365>:
        D.24399 = iftmp.52;
      }
      if (D.24399 == 0) goto <D.26366>; else goto <D.26367>;
      <D.26366>:
      mono_enable_jit_map ();
      goto <D.26368>;
      <D.26367>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26372 = "--profile";
          D.26373 = MEM[(const unsigned char *)D.26372];
          D.26374 = (int) D.26373;
          D.26375 = *__s2;
          D.26376 = (int) D.26375;
          __result = D.26374 - D.26376;
          {
            if (__s2_len != 0) goto <D.26377>; else goto <D.26378>;
            <D.26377>:
            if (__result == 0) goto <D.26379>; else goto <D.26380>;
            <D.26379>:
            D.26381 = &MEM[(void *)"--profile" + 1B];
            D.26382 = *D.26381;
            D.26383 = (int) D.26382;
            D.26384 = __s2 + 1;
            D.26385 = *D.26384;
            D.26386 = (int) D.26385;
            __result = D.26383 - D.26386;
            if (__s2_len > 1) goto <D.26387>; else goto <D.26388>;
            <D.26387>:
            if (__result == 0) goto <D.26389>; else goto <D.26390>;
            <D.26389>:
            D.26391 = &MEM[(void *)"--profile" + 2B];
            D.26392 = *D.26391;
            D.26393 = (int) D.26392;
            D.26394 = __s2 + 2;
            D.26395 = *D.26394;
            D.26396 = (int) D.26395;
            __result = D.26393 - D.26396;
            if (__s2_len > 2) goto <D.26397>; else goto <D.26398>;
            <D.26397>:
            if (__result == 0) goto <D.26399>; else goto <D.26400>;
            <D.26399>:
            D.26401 = &MEM[(void *)"--profile" + 3B];
            D.26402 = *D.26401;
            D.26403 = (int) D.26402;
            D.26404 = __s2 + 3;
            D.26405 = *D.26404;
            D.26406 = (int) D.26405;
            __result = D.26403 - D.26406;
            <D.26400>:
            <D.26398>:
            <D.26390>:
            <D.26388>:
            <D.26380>:
            <D.26378>:
          }
          D.24407 = __result;
        }
        iftmp.53 = -D.24407;
        goto <D.26407>;
        <D.26371>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.53 = __builtin_strcmp (D.25167, "--profile");
        <D.26407>:
        D.24408 = iftmp.53;
      }
      if (D.24408 == 0) goto <D.26408>; else goto <D.26409>;
      <D.26408>:
      enable_profile = 1;
      profile_options = 0B;
      goto <D.26410>;
      <D.26409>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26411 = strncmp (D.25167, "--profile=", 10);
      if (D.26411 == 0) goto <D.26412>; else goto <D.26413>;
      <D.26412>:
      enable_profile = 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      profile_options = D.25167 + 10;
      goto <D.26414>;
      <D.26413>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26415 = strncmp (D.25167, "--agent=", 8);
      if (D.26415 == 0) goto <D.26416>; else goto <D.26417>;
      <D.26416>:
      if (agents == 0B) goto <D.26418>; else goto <D.26419>;
      <D.26418>:
      agents = monoeg_g_ptr_array_new ();
      <D.26419>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26420 = D.25167 + 8;
      monoeg_g_ptr_array_add (agents, D.26420);
      goto <D.26421>;
      <D.26417>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26422 = strncmp (D.25167, "--attach=", 9);
      if (D.26422 == 0) goto <D.26423>; else goto <D.26424>;
      <D.26423>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      attach_options = D.25167 + 9;
      goto <D.26425>;
      <D.26424>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26429 = "--compile";
          D.26430 = MEM[(const unsigned char *)D.26429];
          D.26431 = (int) D.26430;
          D.26432 = *__s2;
          D.26433 = (int) D.26432;
          __result = D.26431 - D.26433;
          {
            if (__s2_len != 0) goto <D.26434>; else goto <D.26435>;
            <D.26434>:
            if (__result == 0) goto <D.26436>; else goto <D.26437>;
            <D.26436>:
            D.26438 = &MEM[(void *)"--compile" + 1B];
            D.26439 = *D.26438;
            D.26440 = (int) D.26439;
            D.26441 = __s2 + 1;
            D.26442 = *D.26441;
            D.26443 = (int) D.26442;
            __result = D.26440 - D.26443;
            if (__s2_len > 1) goto <D.26444>; else goto <D.26445>;
            <D.26444>:
            if (__result == 0) goto <D.26446>; else goto <D.26447>;
            <D.26446>:
            D.26448 = &MEM[(void *)"--compile" + 2B];
            D.26449 = *D.26448;
            D.26450 = (int) D.26449;
            D.26451 = __s2 + 2;
            D.26452 = *D.26451;
            D.26453 = (int) D.26452;
            __result = D.26450 - D.26453;
            if (__s2_len > 2) goto <D.26454>; else goto <D.26455>;
            <D.26454>:
            if (__result == 0) goto <D.26456>; else goto <D.26457>;
            <D.26456>:
            D.26458 = &MEM[(void *)"--compile" + 3B];
            D.26459 = *D.26458;
            D.26460 = (int) D.26459;
            D.26461 = __s2 + 3;
            D.26462 = *D.26461;
            D.26463 = (int) D.26462;
            __result = D.26460 - D.26463;
            <D.26457>:
            <D.26455>:
            <D.26447>:
            <D.26445>:
            <D.26437>:
            <D.26435>:
          }
          D.24443 = __result;
        }
        iftmp.54 = -D.24443;
        goto <D.26464>;
        <D.26428>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.54 = __builtin_strcmp (D.25167, "--compile");
        <D.26464>:
        D.24444 = iftmp.54;
      }
      if (D.24444 == 0) goto <D.26465>; else goto <D.26466>;
      <D.26465>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.26467>; else goto <D.26468>;
      <D.26467>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --compile option requires a method name argument\n");
      D.25390 = 1;
      return D.25390;
      <D.26468>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      mname = *D.25166;
      action = 0;
      goto <D.26469>;
      <D.26466>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26470 = strncmp (D.25167, "--graph=", 8);
      if (D.26470 == 0) goto <D.26471>; else goto <D.26472>;
      <D.26471>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.26473>; else goto <D.26474>;
      <D.26473>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --graph option requires a method name argument\n");
      D.25390 = 1;
      return D.25390;
      <D.26474>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26475 = D.25167 + 8;
      mono_graph_options = mono_parse_graph_options (D.26475);
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      mname = *D.25166;
      action = 5;
      goto <D.26476>;
      <D.26472>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26480 = "--graph";
          D.26481 = MEM[(const unsigned char *)D.26480];
          D.26482 = (int) D.26481;
          D.26483 = *__s2;
          D.26484 = (int) D.26483;
          __result = D.26482 - D.26484;
          {
            if (__s2_len != 0) goto <D.26485>; else goto <D.26486>;
            <D.26485>:
            if (__result == 0) goto <D.26487>; else goto <D.26488>;
            <D.26487>:
            D.26489 = &MEM[(void *)"--graph" + 1B];
            D.26490 = *D.26489;
            D.26491 = (int) D.26490;
            D.26492 = __s2 + 1;
            D.26493 = *D.26492;
            D.26494 = (int) D.26493;
            __result = D.26491 - D.26494;
            if (__s2_len > 1) goto <D.26495>; else goto <D.26496>;
            <D.26495>:
            if (__result == 0) goto <D.26497>; else goto <D.26498>;
            <D.26497>:
            D.26499 = &MEM[(void *)"--graph" + 2B];
            D.26500 = *D.26499;
            D.26501 = (int) D.26500;
            D.26502 = __s2 + 2;
            D.26503 = *D.26502;
            D.26504 = (int) D.26503;
            __result = D.26501 - D.26504;
            if (__s2_len > 2) goto <D.26505>; else goto <D.26506>;
            <D.26505>:
            if (__result == 0) goto <D.26507>; else goto <D.26508>;
            <D.26507>:
            D.26509 = &MEM[(void *)"--graph" + 3B];
            D.26510 = *D.26509;
            D.26511 = (int) D.26510;
            D.26512 = __s2 + 3;
            D.26513 = *D.26512;
            D.26514 = (int) D.26513;
            __result = D.26511 - D.26514;
            <D.26508>:
            <D.26506>:
            <D.26498>:
            <D.26496>:
            <D.26488>:
            <D.26486>:
          }
          D.24461 = __result;
        }
        iftmp.55 = -D.24461;
        goto <D.26515>;
        <D.26479>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.55 = __builtin_strcmp (D.25167, "--graph");
        <D.26515>:
        D.24462 = iftmp.55;
      }
      if (D.24462 == 0) goto <D.26516>; else goto <D.26517>;
      <D.26516>:
      D.25639 = i + 1;
      if (D.25639 >= argc) goto <D.26518>; else goto <D.26519>;
      <D.26518>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --graph option requires a method name argument\n");
      D.25390 = 1;
      return D.25390;
      <D.26519>:
      i = i + 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      mname = *D.25166;
      mono_graph_options = 1;
      action = 5;
      goto <D.26520>;
      <D.26517>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26524 = "--debug";
          D.26525 = MEM[(const unsigned char *)D.26524];
          D.26526 = (int) D.26525;
          D.26527 = *__s2;
          D.26528 = (int) D.26527;
          __result = D.26526 - D.26528;
          {
            if (__s2_len != 0) goto <D.26529>; else goto <D.26530>;
            <D.26529>:
            if (__result == 0) goto <D.26531>; else goto <D.26532>;
            <D.26531>:
            D.26533 = &MEM[(void *)"--debug" + 1B];
            D.26534 = *D.26533;
            D.26535 = (int) D.26534;
            D.26536 = __s2 + 1;
            D.26537 = *D.26536;
            D.26538 = (int) D.26537;
            __result = D.26535 - D.26538;
            if (__s2_len > 1) goto <D.26539>; else goto <D.26540>;
            <D.26539>:
            if (__result == 0) goto <D.26541>; else goto <D.26542>;
            <D.26541>:
            D.26543 = &MEM[(void *)"--debug" + 2B];
            D.26544 = *D.26543;
            D.26545 = (int) D.26544;
            D.26546 = __s2 + 2;
            D.26547 = *D.26546;
            D.26548 = (int) D.26547;
            __result = D.26545 - D.26548;
            if (__s2_len > 2) goto <D.26549>; else goto <D.26550>;
            <D.26549>:
            if (__result == 0) goto <D.26551>; else goto <D.26552>;
            <D.26551>:
            D.26553 = &MEM[(void *)"--debug" + 3B];
            D.26554 = *D.26553;
            D.26555 = (int) D.26554;
            D.26556 = __s2 + 3;
            D.26557 = *D.26556;
            D.26558 = (int) D.26557;
            __result = D.26555 - D.26558;
            <D.26552>:
            <D.26550>:
            <D.26542>:
            <D.26540>:
            <D.26532>:
            <D.26530>:
          }
          D.24470 = __result;
        }
        iftmp.56 = -D.24470;
        goto <D.26559>;
        <D.26523>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.56 = __builtin_strcmp (D.25167, "--debug");
        <D.26559>:
        D.24471 = iftmp.56;
      }
      if (D.24471 == 0) goto <D.26560>; else goto <D.26561>;
      <D.26560>:
      enable_debugging = 1;
      goto <D.26562>;
      <D.26561>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26563 = strncmp (D.25167, "--debug=", 8);
      if (D.26563 == 0) goto <D.26564>; else goto <D.26565>;
      <D.26564>:
      enable_debugging = 1;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26475 = D.25167 + 8;
      D.26566 = parse_debug_options (D.26475);
      if (D.26566 == 0) goto <D.26567>; else goto <D.26568>;
      <D.26567>:
      D.25390 = 1;
      return D.25390;
      <D.26568>:
      goto <D.26569>;
      <D.26565>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26570 = strncmp (D.25167, "--debugger-agent=", 17);
      if (D.26570 == 0) goto <D.26571>; else goto <D.26572>;
      <D.26571>:
      {
        struct MonoDebugOptions * opt;

        opt = mini_get_debug_options ();
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.26573 = D.25167 + 17;
        mono_debugger_agent_parse_options (D.26573);
        opt->mdb_optimizations = 1;
        enable_debugging = 1;
      }
      goto <D.26574>;
      <D.26572>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26578 = "--security";
          D.26579 = MEM[(const unsigned char *)D.26578];
          D.26580 = (int) D.26579;
          D.26581 = *__s2;
          D.26582 = (int) D.26581;
          __result = D.26580 - D.26582;
          {
            if (__s2_len != 0) goto <D.26583>; else goto <D.26584>;
            <D.26583>:
            if (__result == 0) goto <D.26585>; else goto <D.26586>;
            <D.26585>:
            D.26587 = &MEM[(void *)"--security" + 1B];
            D.26588 = *D.26587;
            D.26589 = (int) D.26588;
            D.26590 = __s2 + 1;
            D.26591 = *D.26590;
            D.26592 = (int) D.26591;
            __result = D.26589 - D.26592;
            if (__s2_len > 1) goto <D.26593>; else goto <D.26594>;
            <D.26593>:
            if (__result == 0) goto <D.26595>; else goto <D.26596>;
            <D.26595>:
            D.26597 = &MEM[(void *)"--security" + 2B];
            D.26598 = *D.26597;
            D.26599 = (int) D.26598;
            D.26600 = __s2 + 2;
            D.26601 = *D.26600;
            D.26602 = (int) D.26601;
            __result = D.26599 - D.26602;
            if (__s2_len > 2) goto <D.26603>; else goto <D.26604>;
            <D.26603>:
            if (__result == 0) goto <D.26605>; else goto <D.26606>;
            <D.26605>:
            D.26607 = &MEM[(void *)"--security" + 3B];
            D.26608 = *D.26607;
            D.26609 = (int) D.26608;
            D.26610 = __s2 + 3;
            D.26611 = *D.26610;
            D.26612 = (int) D.26611;
            __result = D.26609 - D.26612;
            <D.26606>:
            <D.26604>:
            <D.26596>:
            <D.26594>:
            <D.26586>:
            <D.26584>:
          }
          D.24498 = __result;
        }
        iftmp.57 = -D.24498;
        goto <D.26613>;
        <D.26577>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.57 = __builtin_strcmp (D.25167, "--security");
        <D.26613>:
        D.24499 = iftmp.57;
      }
      if (D.24499 == 0) goto <D.26614>; else goto <D.26615>;
      <D.26614>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (2);
      mono_activate_security_manager ();
      goto <D.26616>;
      <D.26615>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26617 = strncmp (D.25167, "--security=", 11);
      if (D.26617 == 0) goto <D.26618>; else goto <D.26619>;
      <D.26618>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26623 = "temporary-smcs-hack";
          D.26624 = MEM[(const unsigned char *)D.26623];
          D.26625 = (int) D.26624;
          D.26626 = *__s2;
          D.26627 = (int) D.26626;
          __result = D.26625 - D.26627;
          {
            if (__s2_len != 0) goto <D.26628>; else goto <D.26629>;
            <D.26628>:
            if (__result == 0) goto <D.26630>; else goto <D.26631>;
            <D.26630>:
            D.26632 = &MEM[(void *)"temporary-smcs-hack" + 1B];
            D.26633 = *D.26632;
            D.26634 = (int) D.26633;
            D.26635 = __s2 + 1;
            D.26636 = *D.26635;
            D.26637 = (int) D.26636;
            __result = D.26634 - D.26637;
            if (__s2_len > 1) goto <D.26638>; else goto <D.26639>;
            <D.26638>:
            if (__result == 0) goto <D.26640>; else goto <D.26641>;
            <D.26640>:
            D.26642 = &MEM[(void *)"temporary-smcs-hack" + 2B];
            D.26643 = *D.26642;
            D.26644 = (int) D.26643;
            D.26645 = __s2 + 2;
            D.26646 = *D.26645;
            D.26647 = (int) D.26646;
            __result = D.26644 - D.26647;
            if (__s2_len > 2) goto <D.26648>; else goto <D.26649>;
            <D.26648>:
            if (__result == 0) goto <D.26650>; else goto <D.26651>;
            <D.26650>:
            D.26652 = &MEM[(void *)"temporary-smcs-hack" + 3B];
            D.26653 = *D.26652;
            D.26654 = (int) D.26653;
            D.26655 = __s2 + 3;
            D.26656 = *D.26655;
            D.26657 = (int) D.26656;
            __result = D.26654 - D.26657;
            <D.26651>:
            <D.26649>:
            <D.26641>:
            <D.26639>:
            <D.26631>:
            <D.26629>:
          }
          D.24516 = __result;
        }
        iftmp.58 = -D.24516;
        goto <D.26658>;
        <D.26622>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.58 = __builtin_strcmp (D.25648, "temporary-smcs-hack");
        <D.26658>:
        D.24517 = iftmp.58;
      }
      if (D.24517 == 0) goto <D.26659>; else goto <D.26660>;
      <D.26659>:
      mono_security_set_mode (3);
      goto <D.26661>;
      <D.26660>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26665 = "core-clr";
          D.26666 = MEM[(const unsigned char *)D.26665];
          D.26667 = (int) D.26666;
          D.26668 = *__s2;
          D.26669 = (int) D.26668;
          __result = D.26667 - D.26669;
          {
            if (__s2_len != 0) goto <D.26670>; else goto <D.26671>;
            <D.26670>:
            if (__result == 0) goto <D.26672>; else goto <D.26673>;
            <D.26672>:
            D.26674 = &MEM[(void *)"core-clr" + 1B];
            D.26675 = *D.26674;
            D.26676 = (int) D.26675;
            D.26677 = __s2 + 1;
            D.26678 = *D.26677;
            D.26679 = (int) D.26678;
            __result = D.26676 - D.26679;
            if (__s2_len > 1) goto <D.26680>; else goto <D.26681>;
            <D.26680>:
            if (__result == 0) goto <D.26682>; else goto <D.26683>;
            <D.26682>:
            D.26684 = &MEM[(void *)"core-clr" + 2B];
            D.26685 = *D.26684;
            D.26686 = (int) D.26685;
            D.26687 = __s2 + 2;
            D.26688 = *D.26687;
            D.26689 = (int) D.26688;
            __result = D.26686 - D.26689;
            if (__s2_len > 2) goto <D.26690>; else goto <D.26691>;
            <D.26690>:
            if (__result == 0) goto <D.26692>; else goto <D.26693>;
            <D.26692>:
            D.26694 = &MEM[(void *)"core-clr" + 3B];
            D.26695 = *D.26694;
            D.26696 = (int) D.26695;
            D.26697 = __s2 + 3;
            D.26698 = *D.26697;
            D.26699 = (int) D.26698;
            __result = D.26696 - D.26699;
            <D.26693>:
            <D.26691>:
            <D.26683>:
            <D.26681>:
            <D.26673>:
            <D.26671>:
          }
          D.24525 = __result;
        }
        iftmp.59 = -D.24525;
        goto <D.26700>;
        <D.26664>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.59 = __builtin_strcmp (D.25648, "core-clr");
        <D.26700>:
        D.24526 = iftmp.59;
      }
      if (D.24526 == 0) goto <D.26701>; else goto <D.26702>;
      <D.26701>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (1);
      goto <D.26703>;
      <D.26702>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26707 = "core-clr-test";
          D.26708 = MEM[(const unsigned char *)D.26707];
          D.26709 = (int) D.26708;
          D.26710 = *__s2;
          D.26711 = (int) D.26710;
          __result = D.26709 - D.26711;
          {
            if (__s2_len != 0) goto <D.26712>; else goto <D.26713>;
            <D.26712>:
            if (__result == 0) goto <D.26714>; else goto <D.26715>;
            <D.26714>:
            D.26716 = &MEM[(void *)"core-clr-test" + 1B];
            D.26717 = *D.26716;
            D.26718 = (int) D.26717;
            D.26719 = __s2 + 1;
            D.26720 = *D.26719;
            D.26721 = (int) D.26720;
            __result = D.26718 - D.26721;
            if (__s2_len > 1) goto <D.26722>; else goto <D.26723>;
            <D.26722>:
            if (__result == 0) goto <D.26724>; else goto <D.26725>;
            <D.26724>:
            D.26726 = &MEM[(void *)"core-clr-test" + 2B];
            D.26727 = *D.26726;
            D.26728 = (int) D.26727;
            D.26729 = __s2 + 2;
            D.26730 = *D.26729;
            D.26731 = (int) D.26730;
            __result = D.26728 - D.26731;
            if (__s2_len > 2) goto <D.26732>; else goto <D.26733>;
            <D.26732>:
            if (__result == 0) goto <D.26734>; else goto <D.26735>;
            <D.26734>:
            D.26736 = &MEM[(void *)"core-clr-test" + 3B];
            D.26737 = *D.26736;
            D.26738 = (int) D.26737;
            D.26739 = __s2 + 3;
            D.26740 = *D.26739;
            D.26741 = (int) D.26740;
            __result = D.26738 - D.26741;
            <D.26735>:
            <D.26733>:
            <D.26725>:
            <D.26723>:
            <D.26715>:
            <D.26713>:
          }
          D.24534 = __result;
        }
        iftmp.60 = -D.24534;
        goto <D.26742>;
        <D.26706>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.60 = __builtin_strcmp (D.25648, "core-clr-test");
        <D.26742>:
        D.24535 = iftmp.60;
      }
      if (D.24535 == 0) goto <D.26743>; else goto <D.26744>;
      <D.26743>:
      mono_security_set_mode (1);
      mono_security_core_clr_test = 1;
      goto <D.26745>;
      <D.26744>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26749 = "cas";
          D.26750 = MEM[(const unsigned char *)D.26749];
          D.26751 = (int) D.26750;
          D.26752 = *__s2;
          D.26753 = (int) D.26752;
          __result = D.26751 - D.26753;
          {
            if (__s2_len != 0) goto <D.26754>; else goto <D.26755>;
            <D.26754>:
            if (__result == 0) goto <D.26756>; else goto <D.26757>;
            <D.26756>:
            D.26758 = &MEM[(void *)"cas" + 1B];
            D.26759 = *D.26758;
            D.26760 = (int) D.26759;
            D.26761 = __s2 + 1;
            D.26762 = *D.26761;
            D.26763 = (int) D.26762;
            __result = D.26760 - D.26763;
            if (__s2_len > 1) goto <D.26764>; else goto <D.26765>;
            <D.26764>:
            if (__result == 0) goto <D.26766>; else goto <D.26767>;
            <D.26766>:
            D.26768 = &MEM[(void *)"cas" + 2B];
            D.26769 = *D.26768;
            D.26770 = (int) D.26769;
            D.26771 = __s2 + 2;
            D.26772 = *D.26771;
            D.26773 = (int) D.26772;
            __result = D.26770 - D.26773;
            if (__s2_len > 2) goto <D.26774>; else goto <D.26775>;
            <D.26774>:
            if (__result == 0) goto <D.26776>; else goto <D.26777>;
            <D.26776>:
            D.26778 = &MEM[(void *)"cas" + 3B];
            D.26779 = *D.26778;
            D.26780 = (int) D.26779;
            D.26781 = __s2 + 3;
            D.26782 = *D.26781;
            D.26783 = (int) D.26782;
            __result = D.26780 - D.26783;
            <D.26777>:
            <D.26775>:
            <D.26767>:
            <D.26765>:
            <D.26757>:
            <D.26755>:
          }
          D.24543 = __result;
        }
        iftmp.61 = -D.24543;
        goto <D.26784>;
        <D.26748>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.61 = __builtin_strcmp (D.25648, "cas");
        <D.26784>:
        D.24544 = iftmp.61;
      }
      if (D.24544 == 0) goto <D.26785>; else goto <D.26786>;
      <D.26785>:
      mono_verifier_set_mode (2);
      mono_security_set_mode (2);
      mono_activate_security_manager ();
      goto <D.26787>;
      <D.26786>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26791 = "validil";
          D.26792 = MEM[(const unsigned char *)D.26791];
          D.26793 = (int) D.26792;
          D.26794 = *__s2;
          D.26795 = (int) D.26794;
          __result = D.26793 - D.26795;
          {
            if (__s2_len != 0) goto <D.26796>; else goto <D.26797>;
            <D.26796>:
            if (__result == 0) goto <D.26798>; else goto <D.26799>;
            <D.26798>:
            D.26800 = &MEM[(void *)"validil" + 1B];
            D.26801 = *D.26800;
            D.26802 = (int) D.26801;
            D.26803 = __s2 + 1;
            D.26804 = *D.26803;
            D.26805 = (int) D.26804;
            __result = D.26802 - D.26805;
            if (__s2_len > 1) goto <D.26806>; else goto <D.26807>;
            <D.26806>:
            if (__result == 0) goto <D.26808>; else goto <D.26809>;
            <D.26808>:
            D.26810 = &MEM[(void *)"validil" + 2B];
            D.26811 = *D.26810;
            D.26812 = (int) D.26811;
            D.26813 = __s2 + 2;
            D.26814 = *D.26813;
            D.26815 = (int) D.26814;
            __result = D.26812 - D.26815;
            if (__s2_len > 2) goto <D.26816>; else goto <D.26817>;
            <D.26816>:
            if (__result == 0) goto <D.26818>; else goto <D.26819>;
            <D.26818>:
            D.26820 = &MEM[(void *)"validil" + 3B];
            D.26821 = *D.26820;
            D.26822 = (int) D.26821;
            D.26823 = __s2 + 3;
            D.26824 = *D.26823;
            D.26825 = (int) D.26824;
            __result = D.26822 - D.26825;
            <D.26819>:
            <D.26817>:
            <D.26809>:
            <D.26807>:
            <D.26799>:
            <D.26797>:
          }
          D.24552 = __result;
        }
        iftmp.62 = -D.24552;
        goto <D.26826>;
        <D.26790>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.62 = __builtin_strcmp (D.25648, "validil");
        <D.26826>:
        D.24553 = iftmp.62;
      }
      if (D.24553 == 0) goto <D.26827>; else goto <D.26828>;
      <D.26827>:
      mono_verifier_set_mode (1);
      goto <D.26829>;
      <D.26828>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 11;
          D.26833 = "verifiable";
          D.26834 = MEM[(const unsigned char *)D.26833];
          D.26835 = (int) D.26834;
          D.26836 = *__s2;
          D.26837 = (int) D.26836;
          __result = D.26835 - D.26837;
          {
            if (__s2_len != 0) goto <D.26838>; else goto <D.26839>;
            <D.26838>:
            if (__result == 0) goto <D.26840>; else goto <D.26841>;
            <D.26840>:
            D.26842 = &MEM[(void *)"verifiable" + 1B];
            D.26843 = *D.26842;
            D.26844 = (int) D.26843;
            D.26845 = __s2 + 1;
            D.26846 = *D.26845;
            D.26847 = (int) D.26846;
            __result = D.26844 - D.26847;
            if (__s2_len > 1) goto <D.26848>; else goto <D.26849>;
            <D.26848>:
            if (__result == 0) goto <D.26850>; else goto <D.26851>;
            <D.26850>:
            D.26852 = &MEM[(void *)"verifiable" + 2B];
            D.26853 = *D.26852;
            D.26854 = (int) D.26853;
            D.26855 = __s2 + 2;
            D.26856 = *D.26855;
            D.26857 = (int) D.26856;
            __result = D.26854 - D.26857;
            if (__s2_len > 2) goto <D.26858>; else goto <D.26859>;
            <D.26858>:
            if (__result == 0) goto <D.26860>; else goto <D.26861>;
            <D.26860>:
            D.26862 = &MEM[(void *)"verifiable" + 3B];
            D.26863 = *D.26862;
            D.26864 = (int) D.26863;
            D.26865 = __s2 + 3;
            D.26866 = *D.26865;
            D.26867 = (int) D.26866;
            __result = D.26864 - D.26867;
            <D.26861>:
            <D.26859>:
            <D.26851>:
            <D.26849>:
            <D.26841>:
            <D.26839>:
          }
          D.24561 = __result;
        }
        iftmp.63 = -D.24561;
        goto <D.26868>;
        <D.26832>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.25648 = D.25167 + 11;
        iftmp.63 = __builtin_strcmp (D.25648, "verifiable");
        <D.26868>:
        D.24562 = iftmp.63;
      }
      if (D.24562 == 0) goto <D.26869>; else goto <D.26870>;
      <D.26869>:
      mono_verifier_set_mode (2);
      goto <D.26871>;
      <D.26870>:
      stderr.29 = stderr;
      fprintf (stderr.29, "error: --security= option has invalid argument (cas, core-clr, verifiable or validil)\n");
      D.25390 = 1;
      return D.25390;
      <D.26871>:
      <D.26829>:
      <D.26787>:
      <D.26745>:
      <D.26703>:
      <D.26661>:
      goto <D.26872>;
      <D.26619>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26876 = "--desktop";
          D.26877 = MEM[(const unsigned char *)D.26876];
          D.26878 = (int) D.26877;
          D.26879 = *__s2;
          D.26880 = (int) D.26879;
          __result = D.26878 - D.26880;
          {
            if (__s2_len != 0) goto <D.26881>; else goto <D.26882>;
            <D.26881>:
            if (__result == 0) goto <D.26883>; else goto <D.26884>;
            <D.26883>:
            D.26885 = &MEM[(void *)"--desktop" + 1B];
            D.26886 = *D.26885;
            D.26887 = (int) D.26886;
            D.26888 = __s2 + 1;
            D.26889 = *D.26888;
            D.26890 = (int) D.26889;
            __result = D.26887 - D.26890;
            if (__s2_len > 1) goto <D.26891>; else goto <D.26892>;
            <D.26891>:
            if (__result == 0) goto <D.26893>; else goto <D.26894>;
            <D.26893>:
            D.26895 = &MEM[(void *)"--desktop" + 2B];
            D.26896 = *D.26895;
            D.26897 = (int) D.26896;
            D.26898 = __s2 + 2;
            D.26899 = *D.26898;
            D.26900 = (int) D.26899;
            __result = D.26897 - D.26900;
            if (__s2_len > 2) goto <D.26901>; else goto <D.26902>;
            <D.26901>:
            if (__result == 0) goto <D.26903>; else goto <D.26904>;
            <D.26903>:
            D.26905 = &MEM[(void *)"--desktop" + 3B];
            D.26906 = *D.26905;
            D.26907 = (int) D.26906;
            D.26908 = __s2 + 3;
            D.26909 = *D.26908;
            D.26910 = (int) D.26909;
            __result = D.26907 - D.26910;
            <D.26904>:
            <D.26902>:
            <D.26894>:
            <D.26892>:
            <D.26884>:
            <D.26882>:
          }
          D.24570 = __result;
        }
        iftmp.64 = -D.24570;
        goto <D.26911>;
        <D.26875>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.64 = __builtin_strcmp (D.25167, "--desktop");
        <D.26911>:
        D.24571 = iftmp.64;
      }
      if (D.24571 == 0) goto <D.26912>; else goto <D.26913>;
      <D.26912>:
      mono_gc_set_desktop_mode ();
      goto <D.26914>;
      <D.26913>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26918 = "--server";
          D.26919 = MEM[(const unsigned char *)D.26918];
          D.26920 = (int) D.26919;
          D.26921 = *__s2;
          D.26922 = (int) D.26921;
          __result = D.26920 - D.26922;
          {
            if (__s2_len != 0) goto <D.26923>; else goto <D.26924>;
            <D.26923>:
            if (__result == 0) goto <D.26925>; else goto <D.26926>;
            <D.26925>:
            D.26927 = &MEM[(void *)"--server" + 1B];
            D.26928 = *D.26927;
            D.26929 = (int) D.26928;
            D.26930 = __s2 + 1;
            D.26931 = *D.26930;
            D.26932 = (int) D.26931;
            __result = D.26929 - D.26932;
            if (__s2_len > 1) goto <D.26933>; else goto <D.26934>;
            <D.26933>:
            if (__result == 0) goto <D.26935>; else goto <D.26936>;
            <D.26935>:
            D.26937 = &MEM[(void *)"--server" + 2B];
            D.26938 = *D.26937;
            D.26939 = (int) D.26938;
            D.26940 = __s2 + 2;
            D.26941 = *D.26940;
            D.26942 = (int) D.26941;
            __result = D.26939 - D.26942;
            if (__s2_len > 2) goto <D.26943>; else goto <D.26944>;
            <D.26943>:
            if (__result == 0) goto <D.26945>; else goto <D.26946>;
            <D.26945>:
            D.26947 = &MEM[(void *)"--server" + 3B];
            D.26948 = *D.26947;
            D.26949 = (int) D.26948;
            D.26950 = __s2 + 3;
            D.26951 = *D.26950;
            D.26952 = (int) D.26951;
            __result = D.26949 - D.26952;
            <D.26946>:
            <D.26944>:
            <D.26936>:
            <D.26934>:
            <D.26926>:
            <D.26924>:
          }
          D.24579 = __result;
        }
        iftmp.65 = -D.24579;
        goto <D.26953>;
        <D.26917>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.65 = __builtin_strcmp (D.25167, "--server");
        <D.26953>:
        D.24580 = iftmp.65;
      }
      if (D.24580 == 0) goto <D.26954>; else goto <D.26955>;
      <D.26954>:
      mono_config_set_server_mode (1);
      goto <D.26956>;
      <D.26955>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.26960 = "--inside-mdb";
          D.26961 = MEM[(const unsigned char *)D.26960];
          D.26962 = (int) D.26961;
          D.26963 = *__s2;
          D.26964 = (int) D.26963;
          __result = D.26962 - D.26964;
          {
            if (__s2_len != 0) goto <D.26965>; else goto <D.26966>;
            <D.26965>:
            if (__result == 0) goto <D.26967>; else goto <D.26968>;
            <D.26967>:
            D.26969 = &MEM[(void *)"--inside-mdb" + 1B];
            D.26970 = *D.26969;
            D.26971 = (int) D.26970;
            D.26972 = __s2 + 1;
            D.26973 = *D.26972;
            D.26974 = (int) D.26973;
            __result = D.26971 - D.26974;
            if (__s2_len > 1) goto <D.26975>; else goto <D.26976>;
            <D.26975>:
            if (__result == 0) goto <D.26977>; else goto <D.26978>;
            <D.26977>:
            D.26979 = &MEM[(void *)"--inside-mdb" + 2B];
            D.26980 = *D.26979;
            D.26981 = (int) D.26980;
            D.26982 = __s2 + 2;
            D.26983 = *D.26982;
            D.26984 = (int) D.26983;
            __result = D.26981 - D.26984;
            if (__s2_len > 2) goto <D.26985>; else goto <D.26986>;
            <D.26985>:
            if (__result == 0) goto <D.26987>; else goto <D.26988>;
            <D.26987>:
            D.26989 = &MEM[(void *)"--inside-mdb" + 3B];
            D.26990 = *D.26989;
            D.26991 = (int) D.26990;
            D.26992 = __s2 + 3;
            D.26993 = *D.26992;
            D.26994 = (int) D.26993;
            __result = D.26991 - D.26994;
            <D.26988>:
            <D.26986>:
            <D.26978>:
            <D.26976>:
            <D.26968>:
            <D.26966>:
          }
          D.24588 = __result;
        }
        iftmp.66 = -D.24588;
        goto <D.26995>;
        <D.26959>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.66 = __builtin_strcmp (D.25167, "--inside-mdb");
        <D.26995>:
        D.24589 = iftmp.66;
      }
      if (D.24589 == 0) goto <D.26996>; else goto <D.26997>;
      <D.26996>:
      action = 6;
      goto <D.26998>;
      <D.26997>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      D.26999 = strncmp (D.25167, "--wapi=", 7);
      if (D.26999 == 0) goto <D.27000>; else goto <D.27001>;
      <D.27000>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 7;
          D.27005 = "hps";
          D.27006 = MEM[(const unsigned char *)D.27005];
          D.27007 = (int) D.27006;
          D.27008 = *__s2;
          D.27009 = (int) D.27008;
          __result = D.27007 - D.27009;
          {
            if (__s2_len != 0) goto <D.27010>; else goto <D.27011>;
            <D.27010>:
            if (__result == 0) goto <D.27012>; else goto <D.27013>;
            <D.27012>:
            D.27014 = &MEM[(void *)"hps" + 1B];
            D.27015 = *D.27014;
            D.27016 = (int) D.27015;
            D.27017 = __s2 + 1;
            D.27018 = *D.27017;
            D.27019 = (int) D.27018;
            __result = D.27016 - D.27019;
            if (__s2_len > 1) goto <D.27020>; else goto <D.27021>;
            <D.27020>:
            if (__result == 0) goto <D.27022>; else goto <D.27023>;
            <D.27022>:
            D.27024 = &MEM[(void *)"hps" + 2B];
            D.27025 = *D.27024;
            D.27026 = (int) D.27025;
            D.27027 = __s2 + 2;
            D.27028 = *D.27027;
            D.27029 = (int) D.27028;
            __result = D.27026 - D.27029;
            if (__s2_len > 2) goto <D.27030>; else goto <D.27031>;
            <D.27030>:
            if (__result == 0) goto <D.27032>; else goto <D.27033>;
            <D.27032>:
            D.27034 = &MEM[(void *)"hps" + 3B];
            D.27035 = *D.27034;
            D.27036 = (int) D.27035;
            D.27037 = __s2 + 3;
            D.27038 = *D.27037;
            D.27039 = (int) D.27038;
            __result = D.27036 - D.27039;
            <D.27033>:
            <D.27031>:
            <D.27023>:
            <D.27021>:
            <D.27013>:
            <D.27011>:
          }
          D.24606 = __result;
        }
        iftmp.67 = -D.24606;
        goto <D.27040>;
        <D.27004>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.27041 = D.25167 + 7;
        iftmp.67 = __builtin_strcmp (D.27041, "hps");
        <D.27040>:
        D.24607 = iftmp.67;
      }
      if (D.24607 == 0) goto <D.27042>; else goto <D.27043>;
      <D.27042>:
      D.27044 = argc - i;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25390 = mini_wapi_hps (D.27044, D.25166);
      return D.25390;
      <D.27043>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 7;
          D.27048 = "semdel";
          D.27049 = MEM[(const unsigned char *)D.27048];
          D.27050 = (int) D.27049;
          D.27051 = *__s2;
          D.27052 = (int) D.27051;
          __result = D.27050 - D.27052;
          {
            if (__s2_len != 0) goto <D.27053>; else goto <D.27054>;
            <D.27053>:
            if (__result == 0) goto <D.27055>; else goto <D.27056>;
            <D.27055>:
            D.27057 = &MEM[(void *)"semdel" + 1B];
            D.27058 = *D.27057;
            D.27059 = (int) D.27058;
            D.27060 = __s2 + 1;
            D.27061 = *D.27060;
            D.27062 = (int) D.27061;
            __result = D.27059 - D.27062;
            if (__s2_len > 1) goto <D.27063>; else goto <D.27064>;
            <D.27063>:
            if (__result == 0) goto <D.27065>; else goto <D.27066>;
            <D.27065>:
            D.27067 = &MEM[(void *)"semdel" + 2B];
            D.27068 = *D.27067;
            D.27069 = (int) D.27068;
            D.27070 = __s2 + 2;
            D.27071 = *D.27070;
            D.27072 = (int) D.27071;
            __result = D.27069 - D.27072;
            if (__s2_len > 2) goto <D.27073>; else goto <D.27074>;
            <D.27073>:
            if (__result == 0) goto <D.27075>; else goto <D.27076>;
            <D.27075>:
            D.27077 = &MEM[(void *)"semdel" + 3B];
            D.27078 = *D.27077;
            D.27079 = (int) D.27078;
            D.27080 = __s2 + 3;
            D.27081 = *D.27080;
            D.27082 = (int) D.27081;
            __result = D.27079 - D.27082;
            <D.27076>:
            <D.27074>:
            <D.27066>:
            <D.27064>:
            <D.27056>:
            <D.27054>:
          }
          D.24615 = __result;
        }
        iftmp.68 = -D.24615;
        goto <D.27083>;
        <D.27047>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.27041 = D.25167 + 7;
        iftmp.68 = __builtin_strcmp (D.27041, "semdel");
        <D.27083>:
        D.24616 = iftmp.68;
      }
      if (D.24616 == 0) goto <D.27084>; else goto <D.27085>;
      <D.27084>:
      D.27044 = argc - i;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25390 = mini_wapi_semdel (D.27044, D.25166);
      return D.25390;
      <D.27085>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          D.25167 = *D.25166;
          __s2 = D.25167 + 7;
          D.27089 = "seminfo";
          D.27090 = MEM[(const unsigned char *)D.27089];
          D.27091 = (int) D.27090;
          D.27092 = *__s2;
          D.27093 = (int) D.27092;
          __result = D.27091 - D.27093;
          {
            if (__s2_len != 0) goto <D.27094>; else goto <D.27095>;
            <D.27094>:
            if (__result == 0) goto <D.27096>; else goto <D.27097>;
            <D.27096>:
            D.27098 = &MEM[(void *)"seminfo" + 1B];
            D.27099 = *D.27098;
            D.27100 = (int) D.27099;
            D.27101 = __s2 + 1;
            D.27102 = *D.27101;
            D.27103 = (int) D.27102;
            __result = D.27100 - D.27103;
            if (__s2_len > 1) goto <D.27104>; else goto <D.27105>;
            <D.27104>:
            if (__result == 0) goto <D.27106>; else goto <D.27107>;
            <D.27106>:
            D.27108 = &MEM[(void *)"seminfo" + 2B];
            D.27109 = *D.27108;
            D.27110 = (int) D.27109;
            D.27111 = __s2 + 2;
            D.27112 = *D.27111;
            D.27113 = (int) D.27112;
            __result = D.27110 - D.27113;
            if (__s2_len > 2) goto <D.27114>; else goto <D.27115>;
            <D.27114>:
            if (__result == 0) goto <D.27116>; else goto <D.27117>;
            <D.27116>:
            D.27118 = &MEM[(void *)"seminfo" + 3B];
            D.27119 = *D.27118;
            D.27120 = (int) D.27119;
            D.27121 = __s2 + 3;
            D.27122 = *D.27121;
            D.27123 = (int) D.27122;
            __result = D.27120 - D.27123;
            <D.27117>:
            <D.27115>:
            <D.27107>:
            <D.27105>:
            <D.27097>:
            <D.27095>:
          }
          D.24624 = __result;
        }
        iftmp.69 = -D.24624;
        goto <D.27124>;
        <D.27088>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        D.27041 = D.25167 + 7;
        iftmp.69 = __builtin_strcmp (D.27041, "seminfo");
        <D.27124>:
        D.24625 = iftmp.69;
      }
      if (D.24625 == 0) goto <D.27125>; else goto <D.27126>;
      <D.27125>:
      D.27044 = argc - i;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25390 = mini_wapi_seminfo (D.27044, D.25166);
      return D.25390;
      <D.27126>:
      stderr.29 = stderr;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      fprintf (stderr.29, "Invalid --wapi suboption: \'%s\'\n", D.25167);
      D.25390 = 1;
      return D.25390;
      <D.27001>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.27130 = "--no-x86-stack-align";
          D.27131 = MEM[(const unsigned char *)D.27130];
          D.27132 = (int) D.27131;
          D.27133 = *__s2;
          D.27134 = (int) D.27133;
          __result = D.27132 - D.27134;
          {
            if (__s2_len != 0) goto <D.27135>; else goto <D.27136>;
            <D.27135>:
            if (__result == 0) goto <D.27137>; else goto <D.27138>;
            <D.27137>:
            D.27139 = &MEM[(void *)"--no-x86-stack-align" + 1B];
            D.27140 = *D.27139;
            D.27141 = (int) D.27140;
            D.27142 = __s2 + 1;
            D.27143 = *D.27142;
            D.27144 = (int) D.27143;
            __result = D.27141 - D.27144;
            if (__s2_len > 1) goto <D.27145>; else goto <D.27146>;
            <D.27145>:
            if (__result == 0) goto <D.27147>; else goto <D.27148>;
            <D.27147>:
            D.27149 = &MEM[(void *)"--no-x86-stack-align" + 2B];
            D.27150 = *D.27149;
            D.27151 = (int) D.27150;
            D.27152 = __s2 + 2;
            D.27153 = *D.27152;
            D.27154 = (int) D.27153;
            __result = D.27151 - D.27154;
            if (__s2_len > 2) goto <D.27155>; else goto <D.27156>;
            <D.27155>:
            if (__result == 0) goto <D.27157>; else goto <D.27158>;
            <D.27157>:
            D.27159 = &MEM[(void *)"--no-x86-stack-align" + 3B];
            D.27160 = *D.27159;
            D.27161 = (int) D.27160;
            D.27162 = __s2 + 3;
            D.27163 = *D.27162;
            D.27164 = (int) D.27163;
            __result = D.27161 - D.27164;
            <D.27158>:
            <D.27156>:
            <D.27148>:
            <D.27146>:
            <D.27138>:
            <D.27136>:
          }
          D.24633 = __result;
        }
        iftmp.70 = -D.24633;
        goto <D.27165>;
        <D.27129>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.70 = __builtin_strcmp (D.25167, "--no-x86-stack-align");
        <D.27165>:
        D.24634 = iftmp.70;
      }
      if (D.24634 == 0) goto <D.27166>; else goto <D.27167>;
      <D.27166>:
      mono_do_x86_stack_align = 0;
      goto <D.27168>;
      <D.27167>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.27172 = "--llvm";
          D.27173 = MEM[(const unsigned char *)D.27172];
          D.27174 = (int) D.27173;
          D.27175 = *__s2;
          D.27176 = (int) D.27175;
          __result = D.27174 - D.27176;
          {
            if (__s2_len != 0) goto <D.27177>; else goto <D.27178>;
            <D.27177>:
            if (__result == 0) goto <D.27179>; else goto <D.27180>;
            <D.27179>:
            D.27181 = &MEM[(void *)"--llvm" + 1B];
            D.27182 = *D.27181;
            D.27183 = (int) D.27182;
            D.27184 = __s2 + 1;
            D.27185 = *D.27184;
            D.27186 = (int) D.27185;
            __result = D.27183 - D.27186;
            if (__s2_len > 1) goto <D.27187>; else goto <D.27188>;
            <D.27187>:
            if (__result == 0) goto <D.27189>; else goto <D.27190>;
            <D.27189>:
            D.27191 = &MEM[(void *)"--llvm" + 2B];
            D.27192 = *D.27191;
            D.27193 = (int) D.27192;
            D.27194 = __s2 + 2;
            D.27195 = *D.27194;
            D.27196 = (int) D.27195;
            __result = D.27193 - D.27196;
            if (__s2_len > 2) goto <D.27197>; else goto <D.27198>;
            <D.27197>:
            if (__result == 0) goto <D.27199>; else goto <D.27200>;
            <D.27199>:
            D.27201 = &MEM[(void *)"--llvm" + 3B];
            D.27202 = *D.27201;
            D.27203 = (int) D.27202;
            D.27204 = __s2 + 3;
            D.27205 = *D.27204;
            D.27206 = (int) D.27205;
            __result = D.27203 - D.27206;
            <D.27200>:
            <D.27198>:
            <D.27190>:
            <D.27188>:
            <D.27180>:
            <D.27178>:
          }
          D.24642 = __result;
        }
        iftmp.71 = -D.24642;
        goto <D.27207>;
        <D.27171>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.71 = __builtin_strcmp (D.25167, "--llvm");
        <D.27207>:
        D.24643 = iftmp.71;
      }
      if (D.24643 == 0) goto <D.27208>; else goto <D.27209>;
      <D.27208>:
      stderr.29 = stderr;
      fprintf (stderr.29, "Mono Warning: --llvm not supported on this platform.\n");
      goto <D.27210>;
      <D.27209>:
      {
        size_t __s1_len;
        size_t __s2_len;

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

          D.25164 = (long unsigned int) i;
          D.25165 = D.25164 * 8;
          D.25166 = argv + D.25165;
          __s2 = *D.25166;
          D.27214 = "--nollvm";
          D.27215 = MEM[(const unsigned char *)D.27214];
          D.27216 = (int) D.27215;
          D.27217 = *__s2;
          D.27218 = (int) D.27217;
          __result = D.27216 - D.27218;
          {
            if (__s2_len != 0) goto <D.27219>; else goto <D.27220>;
            <D.27219>:
            if (__result == 0) goto <D.27221>; else goto <D.27222>;
            <D.27221>:
            D.27223 = &MEM[(void *)"--nollvm" + 1B];
            D.27224 = *D.27223;
            D.27225 = (int) D.27224;
            D.27226 = __s2 + 1;
            D.27227 = *D.27226;
            D.27228 = (int) D.27227;
            __result = D.27225 - D.27228;
            if (__s2_len > 1) goto <D.27229>; else goto <D.27230>;
            <D.27229>:
            if (__result == 0) goto <D.27231>; else goto <D.27232>;
            <D.27231>:
            D.27233 = &MEM[(void *)"--nollvm" + 2B];
            D.27234 = *D.27233;
            D.27235 = (int) D.27234;
            D.27236 = __s2 + 2;
            D.27237 = *D.27236;
            D.27238 = (int) D.27237;
            __result = D.27235 - D.27238;
            if (__s2_len > 2) goto <D.27239>; else goto <D.27240>;
            <D.27239>:
            if (__result == 0) goto <D.27241>; else goto <D.27242>;
            <D.27241>:
            D.27243 = &MEM[(void *)"--nollvm" + 3B];
            D.27244 = *D.27243;
            D.27245 = (int) D.27244;
            D.27246 = __s2 + 3;
            D.27247 = *D.27246;
            D.27248 = (int) D.27247;
            __result = D.27245 - D.27248;
            <D.27242>:
            <D.27240>:
            <D.27232>:
            <D.27230>:
            <D.27222>:
            <D.27220>:
          }
          D.24651 = __result;
        }
        iftmp.72 = -D.24651;
        goto <D.27249>;
        <D.27213>:
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        D.25167 = *D.25166;
        iftmp.72 = __builtin_strcmp (D.25167, "--nollvm");
        <D.27249>:
        D.24652 = iftmp.72;
      }
      if (D.24652 == 0) goto <D.27250>; else goto <D.27251>;
      <D.27250>:
      mono_use_llvm = 0;
      goto <D.27252>;
      <D.27251>:
      stderr.29 = stderr;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      fprintf (stderr.29, "Unknown command line option: \'%s\'\n", D.25167);
      D.25390 = 1;
      return D.25390;
      <D.27252>:
      <D.27210>:
      <D.27168>:
      <D.26998>:
      <D.26956>:
      <D.26914>:
      <D.26872>:
      <D.26616>:
      <D.26574>:
      <D.26569>:
      <D.26562>:
      <D.26520>:
      <D.26476>:
      <D.26469>:
      <D.26425>:
      <D.26421>:
      <D.26414>:
      <D.26410>:
      <D.26368>:
      <D.26326>:
      <D.26322>:
      <D.26280>:
      <D.26274>:
      <D.26270>:
      <D.26228>:
      <D.26186>:
      <D.26144>:
      <D.26102>:
      <D.26060>:
      <D.26011>:
      <D.25961>:
      <D.25914>:
      <D.25872>:
      <D.25868>:
      <D.25826>:
      <D.25782>:
      <D.25738>:
      <D.25696>:
      <D.25654>:
      <D.25649>:
      <D.25644>:
      <D.25220>:
      <D.25217>:
      <D.25211>:
      i = i + 1;
      <D.24654>:
      if (i < argc) goto <D.24653>; else goto <D.24078>;
      <D.24078>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      if (D.25167 == 0B) goto <D.27253>; else goto <D.27254>;
      <D.27253>:
      mini_usage ();
      D.25390 = 1;
      return D.25390;
      <D.27254>:
      D.27255 = monoeg_g_getenv ("MONO_XDEBUG");
      if (D.27255 != 0B) goto <D.27256>; else goto <D.27257>;
      <D.27256>:
      enable_debugging = 1;
      <D.27257>:
      mono_compile_aot.73 = mono_compile_aot;
      if (mono_compile_aot.73 != 0) goto <D.27258>; else goto <D.27261>;
      <D.27261>:
      if (action == 4) goto <D.27258>; else goto <D.27262>;
      <D.27262>:
      if (action == 6) goto <D.27258>; else goto <D.27259>;
      <D.27258>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      monoeg_g_set_prgname (D.25167);
      <D.27259>:
      if (enable_profile != 0) goto <D.27263>; else goto <D.27264>;
      <D.27263>:
      mono_profiler_load (profile_options);
      <D.27264>:
      mono_attach_parse_options (attach_options);
      if (trace_options != 0B) goto <D.27265>; else goto <D.27266>;
      <D.27265>:
      mono_jit_trace_calls.74 = mono_trace_parse_options (trace_options);
      mono_jit_trace_calls = mono_jit_trace_calls.74;
      mono_jit_trace_calls.75 = mono_jit_trace_calls;
      if (mono_jit_trace_calls.75 == 0B) goto <D.27269>; else goto <D.27270>;
      <D.27269>:
      exit (1);
      <D.27270>:
      <D.27266>:
      if (action == 6) goto <D.27271>; else goto <D.27272>;
      <D.27271>:
      enable_debugging = 1;
      monoeg_g_print ("The Mono Debugger is no longer supported.\n");
      D.25390 = 1;
      return D.25390;
      <D.27272>:
      enable_debugging.76 = enable_debugging;
      if (enable_debugging.76 != 0) goto <D.27274>; else goto <D.27275>;
      <D.27274>:
      mono_debug_init (1);
      <D.27275>:
      mono_set_defaults (mini_verbose, opt);
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.25167 = *D.25166;
      domain.77 = mini_init (D.25167, forced_version);
      domain = domain.77;
      mono_gc_set_stack_end (&domain);
      if (agents != 0B) goto <D.27277>; else goto <D.27278>;
      <D.27277>:
      {
        int i;

        i = 0;
        goto <D.24658>;
        <D.24657>:
        {
          int res;

          domain.78 = domain;
          D.27280 = agents->pdata;
          D.27281 = (long unsigned int) i;
          D.27282 = D.27281 * 8;
          D.27283 = D.27280 + D.27282;
          D.27284 = *D.27283;
          res = load_agent (domain.78, D.27284);
          if (res != 0) goto <D.27285>; else goto <D.27286>;
          <D.27285>:
          monoeg_g_ptr_array_free (agents, 1);
          domain.78 = domain;
          mini_cleanup (domain.78);
          D.25390 = 1;
          return D.25390;
          <D.27286>:
        }
        i = i + 1;
        <D.24658>:
        i.79 = (unsigned int) i;
        D.27288 = agents->len;
        if (i.79 < D.27288) goto <D.24657>; else goto <D.24659>;
        <D.24659>:
        monoeg_g_ptr_array_free (agents, 1);
      }
      <D.27278>:
      switch (action) <default: <D.24666>, case 0: <D.24662>, case 1: <D.24661>, case 2: <D.24660>, case 3: <D.24664>, case 5: <D.24665>>
      <D.24660>:
      mono_do_single_method_regression = 1;
      <D.24661>:
      D.27044 = argc - i;
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      D.27289 = mini_regression_list (mini_verbose, D.27044, D.25166);
      if (D.27289 != 0) goto <D.27290>; else goto <D.27291>;
      <D.27290>:
      monoeg_g_print ("Regression ERRORS!\n");
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 1;
      return D.25390;
      <D.27291>:
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 0;
      return D.25390;
      <D.24662>:
      D.27044 = argc - i;
      if (D.27044 != 1) goto <D.27292>; else goto <D.27294>;
      <D.27294>:
      if (mname == 0B) goto <D.27292>; else goto <D.27293>;
      <D.27292>:
      monoeg_g_print ("Usage: mini --ncompile num --compile method assembly\n");
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 1;
      return D.25390;
      <D.27293>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      aname = *D.25166;
      goto <D.24663>;
      <D.24664>:
      D.27044 = argc - i;
      if (D.27044 != 1) goto <D.27295>; else goto <D.27296>;
      <D.27295>:
      mini_usage ();
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 1;
      return D.25390;
      <D.27296>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      aname = *D.25166;
      goto <D.24663>;
      <D.24665>:
      D.27044 = argc - i;
      if (D.27044 != 1) goto <D.27297>; else goto <D.27299>;
      <D.27299>:
      if (mname == 0B) goto <D.27297>; else goto <D.27298>;
      <D.27297>:
      mini_usage ();
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 1;
      return D.25390;
      <D.27298>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      aname = *D.25166;
      goto <D.24663>;
      <D.24666>:
      D.27044 = argc - i;
      if (D.27044 <= 0) goto <D.27300>; else goto <D.27301>;
      <D.27300>:
      mini_usage ();
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 1;
      return D.25390;
      <D.27301>:
      D.25164 = (long unsigned int) i;
      D.25165 = D.25164 * 8;
      D.25166 = argv + D.25165;
      aname = *D.25166;
      goto <D.24663>;
      <D.24663>:
      mono_compile_aot.73 = mono_compile_aot;
      if (mono_compile_aot.73 != 0) goto <D.27302>; else goto <D.27304>;
      <D.27304>:
      if (action == 4) goto <D.27302>; else goto <D.27305>;
      <D.27305>:
      if (action == 6) goto <D.27302>; else goto <D.27303>;
      <D.27302>:
      mono_config_parse (config_file);
      <D.27303>:
      assembly = mono_assembly_open (aname, &open_status);
      if (assembly == 0B) goto <D.27306>; else goto <D.27307>;
      <D.27306>:
      stderr.29 = stderr;
      open_status.80 = open_status;
      D.27309 = mono_image_strerror (open_status.80);
      fprintf (stderr.29, "Cannot open assembly \'%s\': %s.\n", aname, D.27309);
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 2;
      return D.25390;
      <D.27307>:
      if (trace_options != 0B) goto <D.27310>; else goto <D.27311>;
      <D.27310>:
      mono_trace_set_assembly (assembly);
      <D.27311>:
      mono_compile_aot.73 = mono_compile_aot;
      if (mono_compile_aot.73 != 0) goto <D.27312>; else goto <D.27314>;
      <D.27314>:
      if (action == 4) goto <D.27312>; else goto <D.27313>;
      <D.27312>:
      {
        const char * error;

        error = mono_check_corlib_version ();
        if (error != 0B) goto <D.27315>; else goto <D.27316>;
        <D.27315>:
        stderr.29 = stderr;
        fprintf (stderr.29, "Corlib not in sync with this runtime: %s\n", error);
        stderr.29 = stderr;
        D.25384 = mono_defaults.corlib;
        if (D.25384 != 0B) goto <D.27318>; else goto <D.27319>;
        <D.27318>:
        D.25384 = mono_defaults.corlib;
        iftmp.81 = mono_image_get_filename (D.25384);
        goto <D.27320>;
        <D.27319>:
        iftmp.81 = "unknown";
        <D.27320>:
        fprintf (stderr.29, "Loaded from: %s\n", iftmp.81);
        stderr.29 = stderr;
        fprintf (stderr.29, "Download a newer corlib or a newer runtime at http://www.go-mono.com/daily.\n");
        exit (1);
        <D.27316>:
        domain.78 = domain;
        main_args.domain = domain.78;
        main_args.file = aname;
        D.27044 = argc - i;
        main_args.argc = D.27044;
        D.25164 = (long unsigned int) i;
        D.25165 = D.25164 * 8;
        D.25166 = argv + D.25165;
        main_args.argv = D.25166;
        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.78 = domain;
        mini_cleanup (domain.78);
        i = mono_environment_exitcode_get ();
        D.25390 = i;
        return D.25390;
      }
      <D.27313>:
      if (action == 3) goto <D.27321>; else goto <D.27322>;
      <D.27321>:
      compile_all_methods (assembly, mini_verbose, opt, recompilation_times);
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 0;
      return D.25390;
      <D.27322>:
      if (action == 6) goto <D.27323>; else goto <D.27324>;
      <D.27323>:
      D.25390 = 1;
      return D.25390;
      <D.27324>:
      desc = mono_method_desc_new (mname, 0);
      if (desc == 0B) goto <D.27325>; else goto <D.27326>;
      <D.27325>:
      monoeg_g_print ("Invalid method name %s\n", mname);
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 3;
      return D.25390;
      <D.27326>:
      D.27327 = mono_assembly_get_image (assembly);
      method = mono_method_desc_search_in_image (desc, D.27327);
      if (method == 0B) goto <D.27328>; else goto <D.27329>;
      <D.27328>:
      monoeg_g_print ("Cannot find method %s\n", mname);
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 3;
      return D.25390;
      <D.27329>:
      if (action == 5) goto <D.27330>; else goto <D.27331>;
      <D.27330>:
      {
        int part;

        part = 0;
        switch (mono_graph_options) <default: <D.24674>, case 2: <D.24669>, case 4: <D.24671>, case 8: <D.24672>, case 16: <D.24673>>
        <D.24669>:
        part = 1;
        opt = opt | 8192;
        goto <D.24670>;
        <D.24671>:
        part = 1;
        goto <D.24670>;
        <D.24672>:
        part = 2;
        goto <D.24670>;
        <D.24673>:
        part = 3;
        goto <D.24670>;
        <D.24674>:
        goto <D.24670>;
        <D.24670>:
        D.27335 = method->iflags;
        D.27336 = (int) D.27335;
        D.27337 = D.27336 & 4096;
        if (D.27337 != 0) goto <D.27332>; else goto <D.27338>;
        <D.27338>:
        D.27339 = method->flags;
        D.27340 = (int) D.27339;
        D.27341 = D.27340 & 8192;
        if (D.27341 != 0) goto <D.27332>; else goto <D.27333>;
        <D.27332>:
        {
          struct MonoMethod * nm;

          nm = mono_marshal_get_native_wrapper (method, 1, 0);
          D.27342 = mono_get_root_domain ();
          cfg = mini_method_compile (nm, opt, D.27342, 0, part);
        }
        goto <D.27334>;
        <D.27333>:
        D.27343 = mono_get_root_domain ();
        cfg = mini_method_compile (method, opt, D.27343, 0, part);
        <D.27334>:
        D.27344 = mono_graph_options & 8;
        if (D.27344 != 0) goto <D.27345>; else goto <D.27346>;
        <D.27345>:
        D.27347 = cfg->comp_done;
        D.27348 = D.27347 & 32;
        if (D.27348 == 0) goto <D.27349>; else goto <D.27350>;
        <D.27349>:
        monoeg_g_log (0B, 16, "no SSA info available (use -O=deadce)");
        D.25390 = 1;
        return D.25390;
        <D.27350>:
        <D.27346>:
        mono_draw_graph (cfg, mono_graph_options);
        mono_destroy_compile (cfg);
      }
      goto <D.27351>;
      <D.27331>:
      if (action == 0) goto <D.27352>; else goto <D.27353>;
      <D.27352>:
      mini_stats_fd.82 = mini_stats_fd;
      if (mini_stats_fd.82 != 0B) goto <D.27355>; else goto <D.27356>;
      <D.27355>:
      {
        const char * n;
        double no_opt_time;
        struct GTimer * timer;

        no_opt_time = 0.0;
        timer = monoeg_g_timer_new ();
        mini_stats_fd.82 = mini_stats_fd;
        D.27357 = mono_method_full_name (method, 1);
        fprintf (mini_stats_fd.82, "$stattitle = \'Compilations times for %s\';\n", D.27357);
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "@data = (\n");
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "[");
        i = 0;
        goto <D.24680>;
        <D.24679>:
        opt = opt_sets[i];
        n = opt_descr (opt);
        D.27358 = *n;
        if (D.27358 == 0) goto <D.27359>; else goto <D.27360>;
        <D.27359>:
        n = "none";
        <D.27360>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "\"%s\",", n);
        i = i + 1;
        <D.24680>:
        i.83 = (unsigned int) i;
        if (i.83 <= 23) goto <D.24679>; else goto <D.24681>;
        <D.24681>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "],\n[");
        i = 0;
        goto <D.24688>;
        <D.24687>:
        {
          int j;
          double elapsed;

          opt = opt_sets[i];
          monoeg_g_timer_start (timer);
          j = 0;
          goto <D.24685>;
          <D.24684>:
          D.27362 = mono_get_root_domain ();
          cfg = mini_method_compile (method, opt, D.27362, 0, 0);
          mono_destroy_compile (cfg);
          j = j + 1;
          <D.24685>:
          if (j < count) goto <D.24684>; else goto <D.24686>;
          <D.24686>:
          monoeg_g_timer_stop (timer);
          elapsed = monoeg_g_timer_elapsed (timer, 0B);
          if (opt == 0) goto <D.27363>; else goto <D.27364>;
          <D.27363>:
          no_opt_time = elapsed;
          <D.27364>:
          mini_stats_fd.82 = mini_stats_fd;
          fprintf (mini_stats_fd.82, "%f, ", elapsed);
        }
        i = i + 1;
        <D.24688>:
        i.83 = (unsigned int) i;
        if (i.83 <= 23) goto <D.24687>; else goto <D.24689>;
        <D.24689>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "]");
        if (no_opt_time > 0.0) goto <D.27365>; else goto <D.27366>;
        <D.27365>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, ", \n[");
        i = 0;
        goto <D.24691>;
        <D.24690>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "%f,", no_opt_time);
        i = i + 1;
        <D.24691>:
        i.83 = (unsigned int) i;
        if (i.83 <= 23) goto <D.24690>; else goto <D.24692>;
        <D.24692>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, "]");
        <D.27366>:
        mini_stats_fd.82 = mini_stats_fd;
        fprintf (mini_stats_fd.82, ");\n");
      }
      goto <D.27367>;
      <D.27356>:
      i = 0;
      goto <D.24694>;
      <D.24693>:
      D.27335 = method->iflags;
      D.27336 = (int) D.27335;
      D.27337 = D.27336 & 4096;
      if (D.27337 != 0) goto <D.27368>; else goto <D.27370>;
      <D.27370>:
      D.27339 = method->flags;
      D.27340 = (int) D.27339;
      D.27341 = D.27340 & 8192;
      if (D.27341 != 0) goto <D.27368>; else goto <D.27369>;
      <D.27368>:
      method = mono_marshal_get_native_wrapper (method, 1, 0);
      <D.27369>:
      D.27371 = mono_get_root_domain ();
      cfg = mini_method_compile (method, opt, D.27371, 0, 0);
      mono_destroy_compile (cfg);
      i = i + 1;
      <D.24694>:
      if (i < count) goto <D.24693>; else goto <D.24695>;
      <D.24695>:
      <D.27367>:
      goto <D.27372>;
      <D.27353>:
      D.27373 = mono_get_root_domain ();
      cfg = mini_method_compile (method, opt, D.27373, 0, 0);
      mono_destroy_compile (cfg);
      <D.27372>:
      <D.27351>:
      domain.78 = domain;
      mini_cleanup (domain.78);
      D.25390 = 0;
      return D.25390;
    }
  finally
    {
      main_args = {CLOBBER};
      domain = {CLOBBER};
      open_status = {CLOBBER};
    }
}


mono_set_use_smp (int use_smp)
{
  int D.27379;

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

    try
      {
        proc_mask = 1;
        D.27379 = getpid ();
        sched_setaffinity (D.27379, 8, &proc_mask);
      }
    finally
      {
        proc_mask = {CLOBBER};
      }
  }
  <D.27378>:
}


mini_trace_usage ()
{
  struct _IO_FILE * stdout.84;

  stdout.84 = stdout;
  fprintf (stdout.84, "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.85;
  const char[6] * D.27382;
  const char[18] * D.27383;
  unsigned int i.86;
  int i;

  stdout.85 = stdout;
  fprintf (stdout.85, "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.23888>;
  <D.23887>:
  stdout.85 = stdout;
  D.27382 = &graph_names[i].name;
  D.27383 = &graph_names[i].desc;
  fprintf (stdout.85, "                           %-10s %s\n", D.27382, D.27383);
  i = i + 1;
  <D.23888>:
  i.86 = (unsigned int) i;
  if (i.86 <= 4) goto <D.23887>; else goto <D.23889>;
  <D.23889>:
}


mini_debug_usage ()
{
  struct _IO_FILE * stdout.87;

  stdout.87 = stdout;
  fprintf (stdout.87, "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.88;
  short int D.27387;
  sizetype D.27388;
  const char * D.27389;
  long unsigned int D.27390;
  sizetype D.27391;
  sizetype D.27392;
  const char * D.27393;
  unsigned int i.89;
  int i;

  i = 0;
  goto <D.23895>;
  <D.23894>:
  stdout.88 = stdout;
  D.27387 = opt_names[i];
  D.27388 = (sizetype) D.27387;
  D.27389 = &opstr + D.27388;
  D.27387 = opt_names[i];
  D.27388 = (sizetype) D.27387;
  D.27387 = opt_names[i];
  D.27388 = (sizetype) D.27387;
  D.27389 = &opstr + D.27388;
  D.27390 = strlen (D.27389);
  D.27391 = D.27388 + D.27390;
  D.27392 = D.27391 + 1;
  D.27393 = &opstr + D.27392;
  fprintf (stdout.88, "                           %-10s %s\n", D.27389, D.27393);
  i = i + 1;
  <D.23895>:
  i.89 = (unsigned int) i;
  if (i.89 <= 28) goto <D.23894>; else goto <D.23896>;
  <D.23896>:
}


switch_gc (char * * argv, const char * target_gc)
{
  int D.24048;
  const char * D.27395;
  char * D.27398;
  char * D.27399;
  long unsigned int D.27402;
  long unsigned int D.27403;
  char * D.27405;
  long unsigned int D.27408;
  char * D.27409;
  struct GString * path;

  {
    size_t __s1_len;
    size_t __s2_len;

    D.27395 = mono_gc_get_gc_name ();
    D.24048 = __builtin_strcmp (D.27395, target_gc);
  }
  if (D.24048 == 0) goto <D.27396>; else goto <D.27397>;
  <D.27396>:
  return;
  <D.27397>:
  D.27398 = *argv;
  path = monoeg_g_string_new (D.27398);
  D.27398 = *argv;
  D.27399 = strstr (D.27398, "-sgen");
  if (D.27399 != 0B) goto <D.27400>; else goto <D.27401>;
  <D.27400>:
  D.27402 = path->len;
  D.27403 = D.27402 + 18446744073709551611;
  monoeg_g_string_truncate (path, D.27403);
  goto <D.27404>;
  <D.27401>:
  D.27398 = *argv;
  D.27405 = strstr (D.27398, "-boehm");
  if (D.27405 != 0B) goto <D.27406>; else goto <D.27407>;
  <D.27406>:
  D.27402 = path->len;
  D.27408 = D.27402 + 18446744073709551610;
  monoeg_g_string_truncate (path, D.27408);
  <D.27407>:
  <D.27404>:
  monoeg_g_string_append_c (path, 45);
  monoeg_g_string_append (path, target_gc);
  D.27409 = path->str;
  execvp (D.27409, argv);
}


atoi (const char * __nptr)
{
  int D.27411;
  long int D.27412;

  D.27412 = strtol (__nptr, 0B, 10);
  D.27411 = (int) D.27412;
  return D.27411;
}


mono_parse_graph_options (const char * p)
{
  long unsigned int D.27414;
  long unsigned int D.27415;
  int D.27416;
  MonoGraphOptions D.27419;
  unsigned int i.90;
  struct _IO_FILE * stderr.91;
  const char * n;
  int i;
  int len;

  i = 0;
  goto <D.23677>;
  <D.23676>:
  n = &graph_names[i].name;
  D.27414 = strlen (n);
  len = (int) D.27414;
  D.27415 = (long unsigned int) len;
  D.27416 = strncmp (p, n, D.27415);
  if (D.27416 == 0) goto <D.27417>; else goto <D.27418>;
  <D.27417>:
  D.27419 = graph_names[i].value;
  return D.27419;
  <D.27418>:
  i = i + 1;
  <D.23677>:
  i.90 = (unsigned int) i;
  if (i.90 <= 4) goto <D.23676>; else goto <D.23678>;
  <D.23678>:
  stderr.91 = stderr;
  fprintf (stderr.91, "Invalid graph name provided: %s\n", p);
  exit (1);
}


parse_debug_options (const char * p)
{
  char D.27423;
  struct _IO_FILE * stderr.92;
  gboolean D.27427;
  int D.27428;
  int D.27432;
  int D.27436;
  struct MonoDebugOptions * opt;

  opt = mini_get_debug_options ();
  <D.23653>:
  D.27423 = *p;
  if (D.27423 == 0) goto <D.27424>; else goto <D.27425>;
  <D.27424>:
  stderr.92 = stderr;
  fprintf (stderr.92, "Syntax error; expected debug option name\n");
  D.27427 = 0;
  return D.27427;
  <D.27425>:
  D.27428 = strncmp (p, "casts", 5);
  if (D.27428 == 0) goto <D.27429>; else goto <D.27430>;
  <D.27429>:
  opt->better_cast_details = 1;
  p = p + 5;
  goto <D.27431>;
  <D.27430>:
  D.27432 = strncmp (p, "mdb-optimizations", 17);
  if (D.27432 == 0) goto <D.27433>; else goto <D.27434>;
  <D.27433>:
  opt->mdb_optimizations = 1;
  p = p + 17;
  goto <D.27435>;
  <D.27434>:
  D.27436 = strncmp (p, "gdb", 3);
  if (D.27436 == 0) goto <D.27437>; else goto <D.27438>;
  <D.27437>:
  opt->gdb = 1;
  p = p + 3;
  goto <D.27439>;
  <D.27438>:
  stderr.92 = stderr;
  fprintf (stderr.92, "Invalid debug option `%s\', use --help-debug for details\n", p);
  D.27427 = 0;
  return D.27427;
  <D.27439>:
  <D.27435>:
  <D.27431>:
  D.27423 = *p;
  if (D.27423 == 44) goto <D.27440>; else goto <D.27441>;
  <D.27440>:
  p = p + 1;
  D.27423 = *p;
  if (D.27423 == 0) goto <D.27442>; else goto <D.27443>;
  <D.27442>:
  stderr.92 = stderr;
  fprintf (stderr.92, "Syntax error; expected debug option name\n");
  D.27427 = 0;
  return D.27427;
  <D.27443>:
  <D.27441>:
  D.27423 = *p;
  if (D.27423 != 0) goto <D.23653>; else goto <D.23654>;
  <D.23654>:
  D.27427 = 1;
  return D.27427;
}


load_agent (struct MonoDomain * domain, char * desc)
{
  long int col.93;
  long int desc.94;
  long int D.27449;
  unsigned int D.27450;
  unsigned int D.27451;
  sizetype D.27452;
  char * D.27453;
  struct _IO_FILE * stderr.95;
  <unnamed type> open_status.96;
  const char * D.27459;
  int D.27460;
  const char * D.27463;
  struct MonoThread * D.27466;
  struct MonoClass * D.27469;
  struct MonoString * D.27470;
  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.27445>; else goto <D.27446>;
      <D.27445>:
      col.93 = (long int) col;
      desc.94 = (long int) desc;
      D.27449 = col.93 - desc.94;
      D.27450 = (unsigned int) D.27449;
      D.27451 = D.27450 + 1;
      agent = monoeg_g_memdup (desc, D.27451);
      col.93 = (long int) col;
      desc.94 = (long int) desc;
      D.27449 = col.93 - desc.94;
      D.27452 = (sizetype) D.27449;
      D.27453 = agent + D.27452;
      *D.27453 = 0;
      args = col + 1;
      goto <D.27454>;
      <D.27446>:
      agent = monoeg_strdup (desc);
      args = 0B;
      <D.27454>:
      agent_assembly = mono_assembly_open (agent, &open_status);
      if (agent_assembly == 0B) goto <D.27455>; else goto <D.27456>;
      <D.27455>:
      stderr.95 = stderr;
      open_status.96 = open_status;
      D.27459 = mono_image_strerror (open_status.96);
      fprintf (stderr.95, "Cannot open agent assembly \'%s\': %s.\n", agent, D.27459);
      monoeg_g_free (agent);
      D.27460 = 2;
      return D.27460;
      <D.27456>:
      image = mono_assembly_get_image (agent_assembly);
      entry = mono_image_get_entry_point (image);
      if (entry == 0) goto <D.27461>; else goto <D.27462>;
      <D.27461>:
      D.27463 = mono_image_get_filename (image);
      monoeg_g_print ("Assembly \'%s\' doesn\'t have an entry point.\n", D.27463);
      monoeg_g_free (agent);
      D.27460 = 1;
      return D.27460;
      <D.27462>:
      method = mono_get_method (image, entry, 0B);
      if (method == 0B) goto <D.27464>; else goto <D.27465>;
      <D.27464>:
      monoeg_g_print ("The entry point method of assembly \'%s\' could not be loaded\n", agent);
      monoeg_g_free (agent);
      D.27460 = 1;
      return D.27460;
      <D.27465>:
      D.27466 = mono_thread_current ();
      mono_thread_set_main (D.27466);
      if (args != 0B) goto <D.27467>; else goto <D.27468>;
      <D.27467>:
      D.27469 = mono_defaults.string_class;
      main_args = mono_array_new (domain, D.27469, 1);
      {
        struct MonoString * * __p;

        __p = mono_array_addr_with_size (main_args, 8, 0);
        D.27470 = mono_string_new (domain, args);
        *__p = D.27470;
      }
      goto <D.27471>;
      <D.27468>:
      D.27469 = mono_defaults.string_class;
      main_args = mono_array_new (domain, D.27469, 0);
      <D.27471>:
      monoeg_g_free (agent);
      pa[0] = main_args;
      mono_runtime_invoke (method, 0B, &pa, 0B);
      D.27460 = 0;
      return D.27460;
    }
  finally
    {
      pa = {CLOBBER};
      open_status = {CLOBBER};
    }
}


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

  if (str != 0B) goto <D.27474>; else goto <D.27475>;
  <D.27474>:
  D.27476 = __strdup (str);
  return D.27476;
  <D.27475>:
  D.27476 = 0B;
  return D.27476;
}


mini_regression_list (int verbose, int count, char * * images)
{
  long unsigned int D.27478;
  long unsigned int D.27479;
  char * * D.27480;
  char * D.27481;
  struct MonoImage * D.27484;
  int D.27485;
  int run.97;
  int D.27489;
  double D.27490;
  double D.27491;
  double D.27492;
  double D.27493;
  int D.27495;
  int i;
  int total;
  int total_run;
  int run;
  struct MonoAssembly * ass;

  try
    {
      total = 0;
      total_run = total;
      i = 0;
      goto <D.23781>;
      <D.23780>:
      D.27478 = (long unsigned int) i;
      D.27479 = D.27478 * 8;
      D.27480 = images + D.27479;
      D.27481 = *D.27480;
      ass = mono_assembly_open (D.27481, 0B);
      if (ass == 0B) goto <D.27482>; else goto <D.27483>;
      <D.27482>:
      D.27478 = (long unsigned int) i;
      D.27479 = D.27478 * 8;
      D.27480 = images + D.27479;
      D.27481 = *D.27480;
      monoeg_g_log (0B, 16, "failed to load assembly: %s", D.27481);
      // predicted unlikely by continue predictor.
      goto <D.23779>;
      <D.27483>:
      D.27484 = mono_assembly_get_image (ass);
      D.27485 = mini_regression (D.27484, verbose, &run);
      total = D.27485 + total;
      run.97 = run;
      total_run = total_run + run.97;
      <D.23779>:
      i = i + 1;
      <D.23781>:
      if (i < count) goto <D.23780>; else goto <D.23782>;
      <D.23782>:
      if (total > 0) goto <D.27487>; else goto <D.27488>;
      <D.27487>:
      D.27489 = total_run - total;
      D.27490 = (double) D.27489;
      D.27491 = D.27490 * 1.0e+2;
      D.27492 = (double) total_run;
      D.27493 = D.27491 / D.27492;
      monoeg_g_print ("Overall results: tests: %d, failed: %d, opt combinations: %d (pass: %.2f%%)\n", total_run, total, 24, D.27493);
      goto <D.27494>;
      <D.27488>:
      monoeg_g_print ("Overall results: tests: %d, 100%% pass, opt combinations: %d\n", total_run, 24);
      <D.27494>:
      D.27495 = total;
      return D.27495;
    }
  finally
    {
      run = {CLOBBER};
    }
}


mini_regression (struct MonoImage * image, int verbose, int * total_run)
{
  struct FILE * mini_stats_fd.98;
  char D.27501;
  unsigned int D.27506;
  unsigned int D.27507;
  struct MonoClass * D.27510;
  const char * D.27511;
  int D.27512;
  int D.27517;
  unsigned int D.27518;
  int mono_do_single_method_regression.99;
  int total.100;
  int D.27527;
  struct GSList * mono_single_method_list.101;
  unsigned int D.27529;
  void * mono_current_single_method.102;
  struct MonoMethod * mono_current_single_method.103;
  struct GSList * iftmp.104;
  unsigned int D.27539;
  unsigned int exclude.105;
  unsigned int D.27541;
  unsigned int D.27542;
  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.98 = mini_stats_fd;
      if (mini_stats_fd.98 != 0B) goto <D.27499>; else goto <D.27500>;
      <D.27499>:
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "$stattitle = \'Mono Benchmark Results (various optimizations)\';\n");
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "$graph->set_legend(qw(");
      opt = 0;
      goto <D.23746>;
      <D.23745>:
      {
        guint32 opt_flags;

        opt_flags = opt_sets[opt];
        n = opt_descr (opt_flags);
        D.27501 = *n;
        if (D.27501 == 0) goto <D.27502>; else goto <D.27503>;
        <D.27502>:
        n = "none";
        <D.27503>:
        if (opt != 0) goto <D.27504>; else goto <D.27505>;
        <D.27504>:
        mini_stats_fd.98 = mini_stats_fd;
        fprintf (mini_stats_fd.98, " ");
        <D.27505>:
        mini_stats_fd.98 = mini_stats_fd;
        fprintf (mini_stats_fd.98, "%s", n);
      }
      opt = opt + 1;
      <D.23746>:
      if (opt <= 23) goto <D.23745>; else goto <D.23747>;
      <D.23747>:
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "));\n");
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "@data = (\n");
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "[");
      <D.27500>:
      i = 0;
      goto <D.23759>;
      <D.23758>:
      D.27506 = i + 1;
      D.27507 = D.27506 | 100663296;
      method = mono_get_method (image, D.27507, 0B);
      if (method == 0B) goto <D.27508>; else goto <D.27509>;
      <D.27508>:
      // predicted unlikely by continue predictor.
      goto <D.23748>;
      <D.27509>:
      D.27510 = method->klass;
      mono_class_init (D.27510);
      D.27511 = method->name;
      D.27512 = strncmp (D.27511, "test_", 5);
      if (D.27512 == 0) goto <D.27513>; else goto <D.27514>;
      <D.27513>:
      mini_stats_fd.98 = mini_stats_fd;
      if (mini_stats_fd.98 != 0B) goto <D.27515>; else goto <D.27516>;
      <D.27515>:
      mini_stats_fd.98 = mini_stats_fd;
      D.27511 = method->name;
      fprintf (mini_stats_fd.98, "\"%s\",", D.27511);
      <D.27516>:
      <D.27514>:
      <D.23748>:
      i = i + 1;
      <D.23759>:
      D.27517 = mono_image_get_table_rows (image, 6);
      D.27518 = (unsigned int) D.27517;
      if (D.27518 > i) goto <D.23758>; else goto <D.23760>;
      <D.23760>:
      mini_stats_fd.98 = mini_stats_fd;
      if (mini_stats_fd.98 != 0B) goto <D.27519>; else goto <D.27520>;
      <D.27519>:
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, "],\n");
      <D.27520>:
      total = 0;
      *total_run = 0;
      mono_do_single_method_regression.99 = mono_do_single_method_regression;
      if (mono_do_single_method_regression.99 != 0) goto <D.27522>; else goto <D.27523>;
      <D.27522>:
      {
        struct GSList * iter;

        mini_regression_step (image, verbose, total_run, &total, 0, timer, domain);
        total.100 = total;
        if (total.100 != 0) goto <D.27525>; else goto <D.27526>;
        <D.27525>:
        D.27527 = total;
        return D.27527;
        <D.27526>:
        mono_single_method_list.101 = mono_single_method_list;
        D.27529 = monoeg_g_slist_length (mono_single_method_list.101);
        monoeg_g_print ("Single method regression: %d methods\n", D.27529);
        iter = mono_single_method_list;
        goto <D.23764>;
        <D.23763>:
        {
          char * method_name;

          mono_current_single_method.102 = iter->data;
          mono_current_single_method = mono_current_single_method.102;
          mono_current_single_method.103 = mono_current_single_method;
          method_name = mono_method_full_name (mono_current_single_method.103, 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.100 = total;
          if (total.100 != 0) goto <D.27532>; else goto <D.27533>;
          <D.27532>:
          D.27527 = total;
          return D.27527;
          <D.27533>:
        }
        if (iter != 0B) goto <D.27535>; else goto <D.27536>;
        <D.27535>:
        iftmp.104 = iter->next;
        goto <D.27537>;
        <D.27536>:
        iftmp.104 = 0B;
        <D.27537>:
        iter = iftmp.104;
        <D.23764>:
        if (iter != 0B) goto <D.23763>; else goto <D.23765>;
        <D.23765>:
      }
      goto <D.27538>;
      <D.27523>:
      opt = 0;
      goto <D.23767>;
      <D.23766>:
      D.27539 = opt_sets[opt];
      exclude.105 = exclude;
      D.27541 = ~exclude.105;
      D.27542 = D.27539 & D.27541;
      mini_regression_step (image, verbose, total_run, &total, D.27542, timer, domain);
      opt = opt + 1;
      <D.23767>:
      if (opt <= 23) goto <D.23766>; else goto <D.23768>;
      <D.23768>:
      <D.27538>:
      mini_stats_fd.98 = mini_stats_fd;
      if (mini_stats_fd.98 != 0B) goto <D.27543>; else goto <D.27544>;
      <D.27543>:
      mini_stats_fd.98 = mini_stats_fd;
      fprintf (mini_stats_fd.98, ");\n");
      mini_stats_fd.98 = mini_stats_fd;
      fflush (mini_stats_fd.98);
      <D.27544>:
      monoeg_g_timer_destroy (timer);
      D.27527 = total;
      return D.27527;
    }
  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.27547;
  void * D.27548;
  struct GHashTable * D.27551;
  struct GHashTable * D.27552;
  struct MonoInternalHashTable * D.27553;
  struct FILE * mini_stats_fd.106;
  int D.27557;
  int D.27558;
  unsigned int D.27559;
  const char * D.27562;
  int D.27563;
  const char * D.27566;
  unsigned int D.27567;
  struct MonoDomain * D.27568;
  double D.27569;
  unsigned int D.27570;
  struct MonoDomain * D.27575;
  void * D.27576;
  unsigned char * D.27580;
  struct MonoDomain * D.27581;
  void * D.27582;
  unsigned int D.27585;
  unsigned int code_size.107;
  unsigned int D.27587;
  double D.27593;
  double D.27594;
  int D.27595;
  int D.27602;
  int D.27603;
  double D.27604;
  double D.27605;
  double D.27606;
  double D.27607;
  double D.27608;
  int D.27609;
  int D.27610;
  int D.27611;
  int D.27612;
  int D.27613;
  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.27547 = mono_image_get_filename (image);
  monoeg_g_print ("Test run: image=%s, opts=%s\n", D.27547, n);
  monoeg_g_free (n);
  code_size = 0;
  run = code_size;
  failed = run;
  cfailed = failed;
  elapsed = 0.0;
  comp_time = elapsed;
  D.27548 = domain->runtime_info;
  if (D.27548 != 0B) goto <D.27549>; else goto <D.27550>;
  <D.27549>:
  D.27548 = domain->runtime_info;
  D.27551 = MEM[(struct MonoJitDomainInfo *)D.27548].jit_trampoline_hash;
  monoeg_g_hash_table_destroy (D.27551);
  D.27548 = domain->runtime_info;
  D.27552 = monoeg_g_hash_table_new (mono_aligned_addr_hash, 0B);
  MEM[(struct MonoJitDomainInfo *)D.27548].jit_trampoline_hash = D.27552;
  D.27553 = &domain->jit_code_hash;
  mono_internal_hash_table_destroy (D.27553);
  D.27553 = &domain->jit_code_hash;
  mono_jit_code_hash_init (D.27553);
  <D.27550>:
  monoeg_g_timer_start (timer);
  mini_stats_fd.106 = mini_stats_fd;
  if (mini_stats_fd.106 != 0B) goto <D.27555>; else goto <D.27556>;
  <D.27555>:
  mini_stats_fd.106 = mini_stats_fd;
  fprintf (mini_stats_fd.106, "[");
  <D.27556>:
  i = 0;
  goto <D.23729>;
  <D.23728>:
  {
    struct MonoMethod * method;

    D.27557 = i + 1;
    D.27558 = D.27557 | 100663296;
    D.27559 = (unsigned int) D.27558;
    method = mono_get_method (image, D.27559, 0B);
    if (method == 0B) goto <D.27560>; else goto <D.27561>;
    <D.27560>:
    // predicted unlikely by continue predictor.
    goto <D.23717>;
    <D.27561>:
    D.27562 = method->name;
    D.27563 = strncmp (D.27562, "test_", 5);
    if (D.27563 == 0) goto <D.27564>; else goto <D.27565>;
    <D.27564>:
    {
      struct MonoCompile * cfg;

      D.27562 = method->name;
      D.27566 = D.27562 + 5;
      expected = atoi (D.27566);
      run = run + 1;
      start_time = monoeg_g_timer_elapsed (timer, 0B);
      comp_time = comp_time - start_time;
      D.27567 = mono_get_optimizations_for_method (method, opt_flags);
      D.27568 = mono_get_root_domain ();
      cfg = mini_method_compile (method, D.27567, D.27568, 1, 0);
      D.27569 = monoeg_g_timer_elapsed (timer, 0B);
      comp_time = D.27569 + comp_time;
      D.27570 = cfg->exception_type;
      if (D.27570 == 0) goto <D.27571>; else goto <D.27572>;
      <D.27571>:
      if (verbose > 1) goto <D.27573>; else goto <D.27574>;
      <D.27573>:
      D.27562 = method->name;
      monoeg_g_print ("Running \'%s\' ...\n", D.27562);
      <D.27574>:
      D.27575 = mono_get_root_domain ();
      D.27576 = mono_aot_get_method (D.27575, method);
      func = (int (*TestMethod) (void)) D.27576;
      if (func != 0B) goto <D.27577>; else goto <D.27578>;
      <D.27577>:
      goto <D.27579>;
      <D.27578>:
      D.27580 = cfg->native_code;
      func = (int (*TestMethod) (void)) D.27580;
      <D.27579>:
      D.27581 = mono_get_root_domain ();
      D.27582 = mono_create_ftnptr (D.27581, func);
      func = (int (*TestMethod) (void)) D.27582;
      result = func ();
      if (result != expected) goto <D.27583>; else goto <D.27584>;
      <D.27583>:
      failed = failed + 1;
      D.27562 = method->name;
      monoeg_g_print ("Test \'%s\' failed result (got %d, expected %d).\n", D.27562, result, expected);
      <D.27584>:
      D.27585 = cfg->code_len;
      code_size.107 = (unsigned int) code_size;
      D.27587 = D.27585 + code_size.107;
      code_size = (int) D.27587;
      mono_destroy_compile (cfg);
      goto <D.27588>;
      <D.27572>:
      cfailed = cfailed + 1;
      if (verbose != 0) goto <D.27589>; else goto <D.27590>;
      <D.27589>:
      D.27562 = method->name;
      monoeg_g_print ("Test \'%s\' failed compilation.\n", D.27562);
      <D.27590>:
      <D.27588>:
      mini_stats_fd.106 = mini_stats_fd;
      if (mini_stats_fd.106 != 0B) goto <D.27591>; else goto <D.27592>;
      <D.27591>:
      mini_stats_fd.106 = mini_stats_fd;
      D.27593 = monoeg_g_timer_elapsed (timer, 0B);
      D.27594 = D.27593 - start_time;
      fprintf (mini_stats_fd.106, "%f, ", D.27594);
      <D.27592>:
    }
    <D.27565>:
  }
  <D.23717>:
  i = i + 1;
  <D.23729>:
  D.27595 = mono_image_get_table_rows (image, 6);
  if (D.27595 > i) goto <D.23728>; else goto <D.23730>;
  <D.23730>:
  mini_stats_fd.106 = mini_stats_fd;
  if (mini_stats_fd.106 != 0B) goto <D.27596>; else goto <D.27597>;
  <D.27596>:
  mini_stats_fd.106 = mini_stats_fd;
  fprintf (mini_stats_fd.106, "],\n");
  <D.27597>:
  monoeg_g_timer_stop (timer);
  elapsed = monoeg_g_timer_elapsed (timer, 0B);
  if (failed > 0) goto <D.27598>; else goto <D.27601>;
  <D.27601>:
  if (cfailed > 0) goto <D.27598>; else goto <D.27599>;
  <D.27598>:
  D.27602 = run - failed;
  D.27603 = D.27602 - cfailed;
  D.27604 = (double) D.27603;
  D.27605 = D.27604 * 1.0e+2;
  D.27606 = (double) run;
  D.27607 = D.27605 / D.27606;
  monoeg_g_print ("Results: total tests: %d, failed: %d, cfailed: %d (pass: %.2f%%)\n", run, failed, cfailed, D.27607);
  goto <D.27600>;
  <D.27599>:
  monoeg_g_print ("Results: total tests: %d, all pass \n", run);
  <D.27600>:
  D.27608 = elapsed - comp_time;
  monoeg_g_print ("Elapsed time: %f secs (%f, %f), Code size: %d\n\n", elapsed, D.27608, comp_time, code_size);
  D.27609 = *total;
  D.27610 = failed + cfailed;
  D.27611 = D.27609 + D.27610;
  *total = D.27611;
  D.27612 = *total_run;
  D.27613 = D.27612 + run;
  *total_run = D.27613;
}


mini_usage ()
{
  struct _IO_FILE * stdout.108;

  stdout.108 = stdout;
  fprintf (stdout.108, "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.109;
  struct MonoDomain * D.27618;
  char * * D.27619;
  long unsigned int D.27620;
  long unsigned int D.27621;
  char * * D.27622;
  char * D.27623;
  struct _IO_FILE * stderr.110;
  int D.23864;
  char * D.27629;
  struct MonoImage * D.27630;
  char * D.27631;
  unsigned int D.27634;
  char * D.27635;
  int D.27638;
  const char * D.27640;
  unsigned int D.27643;
  struct MainThreadArgs * main_args;
  struct MonoAssembly * assembly;

  main_args = user_data;
  mono_compile_aot.109 = mono_compile_aot;
  if (mono_compile_aot.109 != 0) goto <D.27616>; else goto <D.27617>;
  <D.27616>:
  {
    int i;
    int res;

    i = 0;
    goto <D.23866>;
    <D.23865>:
    D.27618 = main_args->domain;
    D.27619 = main_args->argv;
    D.27620 = (long unsigned int) i;
    D.27621 = D.27620 * 8;
    D.27622 = D.27619 + D.27621;
    D.27623 = *D.27622;
    assembly = mono_domain_assembly_open (D.27618, D.27623);
    if (assembly == 0B) goto <D.27624>; else goto <D.27625>;
    <D.27624>:
    stderr.110 = stderr;
    D.27619 = main_args->argv;
    D.27620 = (long unsigned int) i;
    D.27621 = D.27620 * 8;
    D.27622 = D.27619 + D.27621;
    D.27623 = *D.27622;
    fprintf (stderr.110, "Can not open image %s\n", D.27623);
    exit (1);
    <D.27625>:
    {
      MonoImageOpenStatus status;
      struct MonoImage * img;

      try
        {
          D.27619 = main_args->argv;
          D.27620 = (long unsigned int) i;
          D.27621 = D.27620 * 8;
          D.27622 = D.27619 + D.27621;
          D.27623 = *D.27622;
          img = mono_image_open (D.27623, &status);
          if (img != 0B) goto <D.27627>; else goto <D.27628>;
          <D.27627>:
          {
            size_t __s1_len;
            size_t __s2_len;

            D.27629 = img->name;
            D.27630 = assembly->image;
            D.27631 = D.27630->name;
            D.23864 = __builtin_strcmp (D.27629, D.27631);
          }
          if (D.23864 != 0) goto <D.27632>; else goto <D.27633>;
          <D.27632>:
          stderr.110 = stderr;
          D.27630 = assembly->image;
          D.27631 = D.27630->name;
          D.27629 = img->name;
          fprintf (stderr.110, "Error: Loaded assembly \'%s\' doesn\'t match original file name \'%s\'. Set MONO_PATH to the assembly\'s location.\n", D.27631, D.27629);
          exit (1);
          <D.27633>:
          <D.27628>:
        }
      finally
        {
          status = {CLOBBER};
        }
    }
    D.27634 = main_args->opts;
    D.27635 = main_args->aot_options;
    res = mono_compile_assembly (assembly, D.27634, D.27635);
    if (res != 0) goto <D.27636>; else goto <D.27637>;
    <D.27636>:
    stderr.110 = stderr;
    D.27619 = main_args->argv;
    D.27620 = (long unsigned int) i;
    D.27621 = D.27620 * 8;
    D.27622 = D.27619 + D.27621;
    D.27623 = *D.27622;
    fprintf (stderr.110, "AOT of image %s failed.\n", D.27623);
    exit (1);
    <D.27637>:
    i = i + 1;
    <D.23866>:
    D.27638 = main_args->argc;
    if (D.27638 > i) goto <D.23865>; else goto <D.23867>;
    <D.23867>:
  }
  goto <D.27639>;
  <D.27617>:
  D.27618 = main_args->domain;
  D.27640 = main_args->file;
  assembly = mono_domain_assembly_open (D.27618, D.27640);
  if (assembly == 0B) goto <D.27641>; else goto <D.27642>;
  <D.27641>:
  stderr.110 = stderr;
  D.27640 = main_args->file;
  fprintf (stderr.110, "Can not open image %s\n", D.27640);
  exit (1);
  <D.27642>:
  D.27634 = main_args->opts;
  D.27643 = D.27634 & 131072;
  if (D.27643 != 0) goto <D.27644>; else goto <D.27645>;
  <D.27644>:
  mono_precompile_assemblies ();
  <D.27645>:
  D.27618 = main_args->domain;
  D.27638 = main_args->argc;
  D.27619 = main_args->argv;
  mono_jit_exec (D.27618, assembly, D.27638, D.27619);
  <D.27639>:
}


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

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


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

  i = 0;
  goto <D.23821>;
  <D.23820>:
  compile_all_methods_thread_main_inner (args);
  i = i + 1;
  <D.23821>:
  D.27647 = args->recompilation_times;
  if (D.27647 > i) goto <D.23820>; else goto <D.23822>;
  <D.23822>:
}


compile_all_methods_thread_main_inner (struct CompileAllThreadArgs * args)
{
  int D.27648;
  int D.27649;
  int D.27650;
  short unsigned int D.27657;
  int D.27658;
  int D.27659;
  short unsigned int D.27661;
  int D.27662;
  int D.27663;
  int D.27665;
  int D.27667;
  struct MonoClass * D.27668;
  struct MonoGenericContainer * D.27669;
  long unsigned int D.27674;
  long unsigned int D.27675;
  unsigned int D.27680;
  unsigned int D.27681;
  struct MonoDomain * D.27682;
  unsigned int D.27683;
  struct MonoMethod * D.27686;
  char * D.27687;
  char * D.27688;
  int D.27689;
  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.23814>;
  <D.23813>:
  {
    guint32 token;
    struct MonoMethodSignature * sig;

    D.27648 = i + 1;
    D.27649 = D.27648 | 100663296;
    token = (guint32) D.27649;
    D.27650 = mono_metadata_has_generic_params (image, token);
    if (D.27650 != 0) goto <D.27651>; else goto <D.27652>;
    <D.27651>:
    // predicted unlikely by continue predictor.
    goto <D.23810>;
    <D.27652>:
    method = mono_get_method (image, token, 0B);
    if (method == 0B) goto <D.27653>; else goto <D.27654>;
    <D.27653>:
    // predicted unlikely by continue predictor.
    goto <D.23810>;
    <D.27654>:
    D.27657 = method->iflags;
    D.27658 = (int) D.27657;
    D.27659 = D.27658 & 4096;
    if (D.27659 != 0) goto <D.27655>; else goto <D.27660>;
    <D.27660>:
    D.27661 = method->flags;
    D.27662 = (int) D.27661;
    D.27663 = D.27662 & 8192;
    if (D.27663 != 0) goto <D.27655>; else goto <D.27664>;
    <D.27664>:
    D.27657 = method->iflags;
    D.27658 = (int) D.27657;
    D.27665 = D.27658 & 3;
    if (D.27665 != 0) goto <D.27655>; else goto <D.27666>;
    <D.27666>:
    D.27661 = method->flags;
    D.27662 = (int) D.27661;
    D.27667 = D.27662 & 1024;
    if (D.27667 != 0) goto <D.27655>; else goto <D.27656>;
    <D.27655>:
    // predicted unlikely by continue predictor.
    goto <D.23810>;
    <D.27656>:
    D.27668 = method->klass;
    D.27669 = D.27668->generic_container;
    if (D.27669 != 0B) goto <D.27670>; else goto <D.27671>;
    <D.27670>:
    // predicted unlikely by continue predictor.
    goto <D.23810>;
    <D.27671>:
    sig = mono_method_signature (method);
    if (sig == 0B) goto <D.27672>; else goto <D.27673>;
    <D.27672>:
    {
      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.23810>;
    }
    <D.27673>:
    D.27674 = BIT_FIELD_REF <*sig, 64, 64>;
    D.27675 = D.27674 & 288230376151711744;
    if (D.27675 != 0) goto <D.27676>; else goto <D.27677>;
    <D.27676>:
    // predicted unlikely by continue predictor.
    goto <D.23810>;
    <D.27677>:
    count = count + 1;
    if (verbose != 0) goto <D.27678>; else goto <D.27679>;
    <D.27678>:
    {
      char * desc;

      desc = mono_method_full_name (method, 1);
      monoeg_g_print ("Compiling %d %s\n", count, desc);
      monoeg_g_free (desc);
    }
    <D.27679>:
    D.27680 = args->opts;
    D.27681 = mono_get_optimizations_for_method (method, D.27680);
    D.27682 = mono_get_root_domain ();
    cfg = mini_method_compile (method, D.27681, D.27682, 0, 0);
    D.27683 = cfg->exception_type;
    if (D.27683 != 0) goto <D.27684>; else goto <D.27685>;
    <D.27684>:
    D.27686 = cfg->method;
    D.27687 = mono_method_full_name (D.27686, 1);
    D.27688 = cfg->exception_message;
    printf ("Compilation of %s failed with exception \'%s\':\n", D.27687, D.27688);
    fail_count = fail_count + 1;
    <D.27685>:
    mono_destroy_compile (cfg);
  }
  <D.23810>:
  i = i + 1;
  <D.23814>:
  D.27689 = mono_image_get_table_rows (image, 6);
  if (D.27689 > i) goto <D.23813>; else goto <D.23815>;
  <D.23815>:
  if (fail_count != 0) goto <D.27690>; else goto <D.27691>;
  <D.27690>:
  exit (1);
  <D.27691>:
}


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

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


opt_descr (guint32 flags)
{
  int D.27694;
  unsigned int D.27695;
  unsigned int D.27696;
  short int D.27701;
  sizetype D.27702;
  const gchar * D.27703;
  unsigned int i.111;
  char * D.27705;
  struct GString * str;
  int i;
  int need_comma;

  str = monoeg_g_string_new ("");
  need_comma = 0;
  i = 0;
  goto <D.23690>;
  <D.23689>:
  D.27694 = 1 << i;
  D.27695 = (unsigned int) D.27694;
  D.27696 = D.27695 & flags;
  if (D.27696 != 0) goto <D.27697>; else goto <D.27698>;
  <D.27697>:
  if (need_comma != 0) goto <D.27699>; else goto <D.27700>;
  <D.27699>:
  monoeg_g_string_append_c (str, 44);
  <D.27700>:
  D.27701 = opt_names[i];
  D.27702 = (sizetype) D.27701;
  D.27703 = &opstr + D.27702;
  monoeg_g_string_append (str, D.27703);
  need_comma = 1;
  <D.27698>:
  i = i + 1;
  <D.23690>:
  i.111 = (unsigned int) i;
  if (i.111 <= 28) goto <D.23689>; else goto <D.23691>;
  <D.23691>:
  D.27705 = monoeg_g_string_free (str, 0);
  return D.27705;
}


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

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


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

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


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.27713;
  struct MonoTraceSpec * trace_opt;

  trace_opt = mono_trace_parse_options (options);
  if (trace_opt == 0B) goto <D.27711>; else goto <D.27712>;
  <D.27711>:
  D.27713 = 0;
  return D.27713;
  <D.27712>:
  mono_jit_trace_calls = trace_opt;
  D.27713 = 1;
  return D.27713;
}


mono_set_signal_chaining (gboolean chain_signals)
{
  mono_do_signal_chaining = chain_signals;
}


