mono_decompose_opcode (struct MonoCompile * cfg, struct MonoInst * ins)
{
  unsigned char D.23864;
  short unsigned int D.23865;
  int D.23866;
  struct MonoMemPool * D.23867;
  int D.23868;
  struct MonoInst * D.23869;
  int D.23870;
  int D.23871;
  const unsigned char * D.23872;
  int D.23873;
  struct MonoBasicBlock * D.23874;
  struct MonoInst * D.23875;
  int D.23879;
  struct MonoInst * D.23880;
  int D.23881;
  int D.23882;
  int D.23886;
  struct MonoInst * D.23887;
  int D.23888;
  int D.23889;
  int D.23893;
  struct MonoInst * D.23894;
  int D.23895;
  int D.23896;
  int D.23900;
  struct MonoInst * D.23901;
  int D.23902;
  int D.23903;
  int D.23904;
  int D.23908;
  int D.23909;
  int D.23910;
  struct MonoInst * D.23911;
  int D.23912;
  int D.23913;
  int D.23917;
  struct MonoInst * D.23918;
  int D.23919;
  int D.23920;
  int D.23924;
  struct MonoInst * D.23925;
  int D.23926;
  int D.23927;
  int D.23931;
  struct MonoInst * D.23932;
  int D.23933;
  int D.23934;
  int D.23938;
  struct MonoInst * D.23939;
  int D.23940;
  int D.23941;
  int D.23945;
  struct MonoInst * D.23946;
  int D.23947;
  int D.23948;
  int D.23952;
  struct MonoInst * D.23953;
  int D.23954;
  int D.23955;
  int D.23959;
  struct MonoInst * D.23960;
  int D.23961;
  int D.23962;
  int D.23966;
  struct MonoInst * D.23967;
  int D.23968;
  int D.23969;
  int D.23973;
  struct MonoInst * D.23974;
  int D.23975;
  int D.23976;
  int D.23980;
  struct MonoInst * D.23981;
  int D.23982;
  int D.23983;
  int D.23987;
  struct MonoInst * D.23988;
  int D.23989;
  int D.23990;
  int D.23994;
  struct MonoInst * D.23995;
  int D.23996;
  int D.23997;
  int D.24001;
  struct MonoInst * D.24002;
  int D.24003;
  int D.24004;
  int D.24008;
  struct MonoInst * D.24009;
  int D.24010;
  int D.24011;
  int D.24015;
  struct MonoInst * D.24016;
  int D.24017;
  int D.24018;
  int D.24022;
  struct MonoInst * D.24023;
  int D.24024;
  int D.24025;
  int D.24029;
  struct MonoInst * D.24030;
  int D.24031;
  int D.24032;
  int D.24036;
  struct MonoInst * D.24037;
  int D.24038;
  int D.24039;
  int D.24043;
  struct MonoInst * D.24044;
  int D.24045;
  int D.24046;
  gchar * D.24050;
  struct MonoMethodSignature * D.24059;
  unsigned int D.24060;
  unsigned int D.24061;
  _Bool D.24062;
  long int D.24063;
  long int D.24064;
  short unsigned int D.24067;
  _Bool D.24068;
  long int D.24069;
  long int D.24070;
  unsigned int D.24073;
  unsigned int D.24074;
  int D.24077;
  signed char D.24078;
  int D.24079;
  _Bool D.24080;
  long int D.24081;
  long int D.24082;
  unsigned int i.0;
  unsigned int D.24086;
  struct MonoInst * * D.24087;
  void * D.24088;
  struct MonoInst * D.24089;
  int D.24090;
  struct MonoInst * D.24091;
  int D.24092;
  int D.24093;
  int D.24094;
  const void * D.24095;
  struct MonoInst * repl.1;
  unsigned char D.24101;
  struct MonoInst * D.24102;
  _Bool D.24103;
  long int D.24104;
  long int D.24105;
  _Bool D.24108;
  long int D.24109;
  long int D.24110;
  struct MonoInst * repl;
  int type;
  int dreg;
  gboolean emulate;

  try
    {
      repl = 0B;
      D.23864 = ins->type;
      type = (int) D.23864;
      dreg = ins->dreg;
      emulate = 0;
      mono_arch_decompose_opts (cfg, ins);
      D.23865 = ins->opcode;
      D.23866 = (int) D.23865;
      switch (D.23866) <default: <D.23339>, case 582: <D.23320>, case 586: <D.23321>, case 589: <D.23327>, case 592: <D.23326>, case 593: <D.23324>, case 594: <D.23315>, case 601: <D.23289>, case 602: <D.23304>, case 603: <D.23314>, case 605: <D.23294>, case 606: <D.23309>, case 607: <D.23323>, case 609: <D.23316>, case 610: <D.23325>, case 611: <D.23282>, case 612: <D.23293>, case 613: <D.23298>, case 614: <D.23308>, case 615: <D.23322>, case 616: <D.23313>, case 682: <D.23328>, case 696: <D.23329>, case 697: <D.23330>, case 698: <D.23331>, case 699: <D.23332>, case 700: <D.23333>, case 701: <D.23334>, case 702: <D.23335>, case 703: <D.23336>, case 704: <D.23337>, case 705: <D.23338>>
      <D.23282>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23868 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23868;
        inst->prev = 0B;
        D.23869 = inst->prev;
        inst->next = D.23869;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23870 = inst->sreg3;
        inst->sreg2 = D.23870;
        D.23871 = inst->sreg2;
        inst->sreg1 = D.23871;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 127;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23876>; else goto <D.23877>;
        <D.23876>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23878>;
        <D.23877>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23878>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23879 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23879;
        inst->prev = 0B;
        D.23880 = inst->prev;
        inst->next = D.23880;
        inst->opcode = 467;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23881 = inst->sreg3;
        inst->sreg2 = D.23881;
        D.23882 = inst->sreg2;
        inst->sreg1 = D.23882;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23883>; else goto <D.23884>;
        <D.23883>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23885>;
        <D.23884>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23885>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23886 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23886;
        inst->prev = 0B;
        D.23887 = inst->prev;
        inst->next = D.23887;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23888 = inst->sreg3;
        inst->sreg2 = D.23888;
        D.23889 = inst->sreg2;
        inst->sreg1 = D.23889;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = -128;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23890>; else goto <D.23891>;
        <D.23890>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23892>;
        <D.23891>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23892>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23893 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23893;
        inst->prev = 0B;
        D.23894 = inst->prev;
        inst->next = D.23894;
        inst->opcode = 469;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23895 = inst->sreg3;
        inst->sreg2 = D.23895;
        D.23896 = inst->sreg2;
        inst->sreg1 = D.23896;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23897>; else goto <D.23898>;
        <D.23897>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23899>;
        <D.23898>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23899>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23900 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23900;
        inst->prev = 0B;
        D.23901 = inst->prev;
        inst->next = D.23901;
        inst->opcode = 580;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23902 = inst->sreg3;
        inst->sreg2 = D.23902;
        D.23903 = inst->sreg2;
        inst->sreg1 = D.23903;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23905>; else goto <D.23906>;
        <D.23905>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23907>;
        <D.23906>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23907>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23289>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23910 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23910;
        inst->prev = 0B;
        D.23911 = inst->prev;
        inst->next = D.23911;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23912 = inst->sreg3;
        inst->sreg2 = D.23912;
        D.23913 = inst->sreg2;
        inst->sreg1 = D.23913;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 127;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23914>; else goto <D.23915>;
        <D.23914>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23916>;
        <D.23915>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23916>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23917 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23917;
        inst->prev = 0B;
        D.23918 = inst->prev;
        inst->next = D.23918;
        inst->opcode = 472;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23919 = inst->sreg3;
        inst->sreg2 = D.23919;
        D.23920 = inst->sreg2;
        inst->sreg1 = D.23920;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23921>; else goto <D.23922>;
        <D.23921>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23923>;
        <D.23922>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23923>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23924 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23924;
        inst->prev = 0B;
        D.23925 = inst->prev;
        inst->next = D.23925;
        inst->opcode = 580;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23926 = inst->sreg3;
        inst->sreg2 = D.23926;
        D.23927 = inst->sreg2;
        inst->sreg1 = D.23927;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23928>; else goto <D.23929>;
        <D.23928>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23930>;
        <D.23929>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23930>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23293>:
      <D.23294>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23931 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23931;
        inst->prev = 0B;
        D.23932 = inst->prev;
        inst->next = D.23932;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23933 = inst->sreg3;
        inst->sreg2 = D.23933;
        D.23934 = inst->sreg2;
        inst->sreg1 = D.23934;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 255;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23935>; else goto <D.23936>;
        <D.23935>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23937>;
        <D.23936>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23937>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23938 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23938;
        inst->prev = 0B;
        D.23939 = inst->prev;
        inst->next = D.23939;
        inst->opcode = 472;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23940 = inst->sreg3;
        inst->sreg2 = D.23940;
        D.23941 = inst->sreg2;
        inst->sreg1 = D.23941;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23942>; else goto <D.23943>;
        <D.23942>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23944>;
        <D.23943>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23944>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23945 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23945;
        inst->prev = 0B;
        D.23946 = inst->prev;
        inst->next = D.23946;
        inst->opcode = 632;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23947 = inst->sreg3;
        inst->sreg2 = D.23947;
        D.23948 = inst->sreg2;
        inst->sreg1 = D.23948;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 255;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23949>; else goto <D.23950>;
        <D.23949>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23951>;
        <D.23950>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23951>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23298>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23952 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23952;
        inst->prev = 0B;
        D.23953 = inst->prev;
        inst->next = D.23953;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23954 = inst->sreg3;
        inst->sreg2 = D.23954;
        D.23955 = inst->sreg2;
        inst->sreg1 = D.23955;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 32767;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23956>; else goto <D.23957>;
        <D.23956>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23958>;
        <D.23957>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23958>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23959 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23959;
        inst->prev = 0B;
        D.23960 = inst->prev;
        inst->next = D.23960;
        inst->opcode = 467;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23961 = inst->sreg3;
        inst->sreg2 = D.23961;
        D.23962 = inst->sreg2;
        inst->sreg1 = D.23962;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23963>; else goto <D.23964>;
        <D.23963>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23965>;
        <D.23964>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23965>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23966 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23966;
        inst->prev = 0B;
        D.23967 = inst->prev;
        inst->next = D.23967;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23968 = inst->sreg3;
        inst->sreg2 = D.23968;
        D.23969 = inst->sreg2;
        inst->sreg1 = D.23969;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = -32768;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23970>; else goto <D.23971>;
        <D.23970>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23972>;
        <D.23971>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23972>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23973 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23973;
        inst->prev = 0B;
        D.23974 = inst->prev;
        inst->next = D.23974;
        inst->opcode = 469;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23975 = inst->sreg3;
        inst->sreg2 = D.23975;
        D.23976 = inst->sreg2;
        inst->sreg1 = D.23976;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23977>; else goto <D.23978>;
        <D.23977>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23979>;
        <D.23978>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23979>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23980 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23980;
        inst->prev = 0B;
        D.23981 = inst->prev;
        inst->next = D.23981;
        inst->opcode = 581;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23982 = inst->sreg3;
        inst->sreg2 = D.23982;
        D.23983 = inst->sreg2;
        inst->sreg1 = D.23983;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23984>; else goto <D.23985>;
        <D.23984>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23986>;
        <D.23985>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23986>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23304>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23987 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23987;
        inst->prev = 0B;
        D.23988 = inst->prev;
        inst->next = D.23988;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23989 = inst->sreg3;
        inst->sreg2 = D.23989;
        D.23990 = inst->sreg2;
        inst->sreg1 = D.23990;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 32767;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23991>; else goto <D.23992>;
        <D.23991>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.23993>;
        <D.23992>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.23993>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.23994 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.23994;
        inst->prev = 0B;
        D.23995 = inst->prev;
        inst->next = D.23995;
        inst->opcode = 472;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.23996 = inst->sreg3;
        inst->sreg2 = D.23996;
        D.23997 = inst->sreg2;
        inst->sreg1 = D.23997;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.23998>; else goto <D.23999>;
        <D.23998>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24000>;
        <D.23999>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24000>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24001 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24001;
        inst->prev = 0B;
        D.24002 = inst->prev;
        inst->next = D.24002;
        inst->opcode = 581;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24003 = inst->sreg3;
        inst->sreg2 = D.24003;
        D.24004 = inst->sreg2;
        inst->sreg1 = D.24004;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24005>; else goto <D.24006>;
        <D.24005>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24007>;
        <D.24006>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24007>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23308>:
      <D.23309>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24008 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24008;
        inst->prev = 0B;
        D.24009 = inst->prev;
        inst->next = D.24009;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24010 = inst->sreg3;
        inst->sreg2 = D.24010;
        D.24011 = inst->sreg2;
        inst->sreg1 = D.24011;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 65535;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24012>; else goto <D.24013>;
        <D.24012>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24014>;
        <D.24013>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24014>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24015 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24015;
        inst->prev = 0B;
        D.24016 = inst->prev;
        inst->next = D.24016;
        inst->opcode = 472;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24017 = inst->sreg3;
        inst->sreg2 = D.24017;
        D.24018 = inst->sreg2;
        inst->sreg1 = D.24018;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24019>; else goto <D.24020>;
        <D.24019>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24021>;
        <D.24020>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24021>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24022 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24022;
        inst->prev = 0B;
        D.24023 = inst->prev;
        inst->next = D.24023;
        inst->opcode = 632;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24024 = inst->sreg3;
        inst->sreg2 = D.24024;
        D.24025 = inst->sreg2;
        inst->sreg1 = D.24025;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 65535;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24026>; else goto <D.24027>;
        <D.24026>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24028>;
        <D.24027>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24028>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23313>:
      <D.23314>:
      <D.23315>:
      <D.23316>:
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24029 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24029;
        inst->prev = 0B;
        D.24030 = inst->prev;
        inst->next = D.24030;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24031 = inst->sreg3;
        inst->sreg2 = D.24031;
        D.24032 = inst->sreg2;
        inst->sreg1 = D.24032;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        inst->data.op[1].const_val = 0;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24033>; else goto <D.24034>;
        <D.24033>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24035>;
        <D.24034>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24035>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24036 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24036;
        inst->prev = 0B;
        D.24037 = inst->prev;
        inst->next = D.24037;
        inst->opcode = 469;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24038 = inst->sreg3;
        inst->sreg2 = D.24038;
        D.24039 = inst->sreg2;
        inst->sreg1 = D.24039;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        inst->data.op[1].p = "OverflowException";
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24040>; else goto <D.24041>;
        <D.24040>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24042>;
        <D.24041>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24042>:
      }
      {
        struct MonoInst * inst;

        D.23867 = cfg->mempool;
        inst = mono_mempool_alloc (D.23867, 56);
        inst->data.op[1].const_val = 0;
        D.24043 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24043;
        inst->prev = 0B;
        D.24044 = inst->prev;
        inst->next = D.24044;
        inst->opcode = 424;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24045 = inst->sreg3;
        inst->sreg2 = D.24045;
        D.24046 = inst->sreg2;
        inst->sreg1 = D.24046;
        D.23872 = cfg->ip;
        inst->cil_code = D.23872;
        D.23904 = ins->dreg;
        inst->dreg = D.23904;
        D.23873 = ins->sreg1;
        inst->sreg1 = D.23873;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        if (D.23875 != 0B) goto <D.24047>; else goto <D.24048>;
        <D.24047>:
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        D.23875->next = inst;
        D.23874 = cfg->cbb;
        D.23875 = D.23874->last_ins;
        inst->prev = D.23875;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        goto <D.24049>;
        <D.24048>:
        D.23874 = cfg->cbb;
        D.23874 = cfg->cbb;
        D.23874->last_ins = inst;
        D.23875 = D.23874->last_ins;
        D.23874->code = D.23875;
        <D.24049>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.23908 = ins->sreg3;
      ins->sreg2 = D.23908;
      D.23909 = ins->sreg2;
      ins->sreg1 = D.23909;
      goto <D.23288>;
      <D.23320>:
      <D.23321>:
      <D.23322>:
      <D.23323>:
      <D.23324>:
      <D.23325>:
      ins->opcode = 424;
      goto <D.23288>;
      <D.23326>:
      ins->opcode = 424;
      goto <D.23288>;
      <D.23327>:
      ins->opcode = 424;
      goto <D.23288>;
      <D.23328>:
      ins->opcode = 426;
      goto <D.23288>;
      <D.23329>:
      <D.23330>:
      <D.23331>:
      <D.23332>:
      <D.23333>:
      <D.23334>:
      <D.23335>:
      <D.23336>:
      <D.23337>:
      <D.23338>:
      cfg->exception_type = 3;
      D.24050 = monoeg_g_strdup_printf ("float conv.ovf.un opcodes not supported.");
      cfg->exception_message = D.24050;
      goto <D.23288>;
      <D.23339>:
      emulate = 1;
      goto <D.23288>;
      <D.23288>:
      if (emulate != 0) goto <D.24051>; else goto <D.24052>;
      <D.24051>:
      {
        struct MonoJitICallInfo * info;

        info = 0B;
        if (0 != 0) goto <D.24053>; else goto <D.24054>;
        <D.24053>:
        emulate = 0;
        <D.24054>:
        if (emulate != 0) goto <D.24055>; else goto <D.24056>;
        <D.24055>:
        D.23865 = ins->opcode;
        D.23866 = (int) D.23865;
        info = mono_find_jit_opcode_emulation (D.23866);
        <D.24056>:
        if (info != 0B) goto <D.24057>; else goto <D.24058>;
        <D.24057>:
        {
          struct MonoInst * * args;
          struct MonoInst * call;

          D.24059 = info->sig;
          D.24060 = BIT_FIELD_REF <*D.24059, 32, 64>;
          D.24061 = D.24060 & 4194304;
          D.24062 = D.24061 != 0;
          D.24063 = (long int) D.24062;
          D.24064 = __builtin_expect (D.24063, 0);
          if (D.24064 != 0) goto <D.24065>; else goto <D.24066>;
          <D.24065>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 468, "!info->sig->hasthis");
          <D.24066>:
          D.24059 = info->sig;
          D.24067 = D.24059->param_count;
          D.24068 = D.24067 > 3;
          D.24069 = (long int) D.24068;
          D.24070 = __builtin_expect (D.24069, 0);
          if (D.24070 != 0) goto <D.24071>; else goto <D.24072>;
          <D.24071>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 469, "info->sig->param_count <= MONO_MAX_SRC_REGS");
          <D.24072>:
          D.23867 = cfg->mempool;
          D.24059 = info->sig;
          D.24067 = D.24059->param_count;
          D.24073 = (unsigned int) D.24067;
          D.24074 = D.24073 * 4;
          args = mono_mempool_alloc0 (D.23867, D.24074);
          D.24059 = info->sig;
          D.24067 = D.24059->param_count;
          if (D.24067 != 0) goto <D.24075>; else goto <D.24076>;
          <D.24075>:
          {
            int sregs[3];
            int num_sregs;
            int i;

            try
              {
                D.23873 = ins->sreg1;
                sregs[0] = D.23873;
                D.23909 = ins->sreg2;
                sregs[1] = D.23909;
                D.23908 = ins->sreg3;
                sregs[2] = D.23908;
                D.23865 = ins->opcode;
                D.23866 = (int) D.23865;
                D.24077 = D.23866 + -313;
                D.24078 = ins_sreg_counts[D.24077];
                num_sregs = (int) D.24078;
                D.24059 = info->sig;
                D.24067 = D.24059->param_count;
                D.24079 = (int) D.24067;
                D.24080 = D.24079 != num_sregs;
                D.24081 = (long int) D.24080;
                D.24082 = __builtin_expect (D.24081, 0);
                if (D.24082 != 0) goto <D.24083>; else goto <D.24084>;
                <D.24083>:
                monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 476, "num_sregs == info->sig->param_count");
                <D.24084>:
                i = 0;
                goto <D.23347>;
                <D.23346>:
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.23867 = cfg->mempool;
                D.24088 = mono_mempool_alloc (D.23867, 56);
                *D.24087 = D.24088;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->data.op[1].const_val = 0;
                D.24090 = D.24089->data.op[1].const_val;
                D.24089->data.op[0].const_val = D.24090;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->prev = 0B;
                D.24091 = D.24089->prev;
                D.24089->next = D.24091;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->opcode = 330;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->flags = 0;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->type = 0;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->dreg = -1;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24089->sreg3 = -1;
                D.24092 = D.24089->sreg3;
                D.24089->sreg2 = D.24092;
                D.24093 = D.24089->sreg2;
                D.24089->sreg1 = D.24093;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.23872 = cfg->ip;
                D.24089->cil_code = D.23872;
                i.0 = (unsigned int) i;
                D.24086 = i.0 * 4;
                D.24087 = args + D.24086;
                D.24089 = *D.24087;
                D.24094 = sregs[i];
                D.24089->dreg = D.24094;
                i = i + 1;
                <D.23347>:
                if (i < num_sregs) goto <D.23346>; else goto <D.23348>;
                <D.23348>:
              }
            finally
              {
                sregs = {CLOBBER};
              }
          }
          <D.24076>:
          D.24095 = mono_icall_get_wrapper (info);
          D.24059 = info->sig;
          call = mono_emit_native_call (cfg, D.24095, D.24059, args);
          D.23904 = ins->dreg;
          call->dreg = D.23904;
          ins->opcode = 316;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.23908 = ins->sreg3;
          ins->sreg2 = D.23908;
          D.23909 = ins->sreg2;
          ins->sreg1 = D.23909;
        }
        <D.24058>:
      }
      <D.24052>:
      D.23865 = ins->opcode;
      if (D.23865 == 316) goto <D.24096>; else goto <D.24097>;
      <D.24096>:
      repl.1 = repl;
      if (repl.1 != 0B) goto <D.24099>; else goto <D.24100>;
      <D.24099>:
      repl.1 = repl;
      D.24101 = (unsigned char) type;
      repl.1->type = D.24101;
      D.24102 = repl;
      return D.24102;
      <D.24100>:
      D.23874 = cfg->cbb;
      ins = D.23874->last_ins;
      D.24103 = ins == 0B;
      D.24104 = (long int) D.24103;
      D.24105 = __builtin_expect (D.24104, 0);
      if (D.24105 != 0) goto <D.24106>; else goto <D.24107>;
      <D.24106>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 497, "ins");
      <D.24107>:
      D.24101 = (unsigned char) type;
      ins->type = D.24101;
      D.23904 = ins->dreg;
      D.24108 = D.23904 != dreg;
      D.24109 = (long int) D.24108;
      D.24110 = __builtin_expect (D.24109, 0);
      if (D.24110 != 0) goto <D.24111>; else goto <D.24112>;
      <D.24111>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 499, "ins->dreg == dreg");
      <D.24112>:
      D.24102 = ins;
      return D.24102;
      <D.24097>:
      D.24102 = ins;
      return D.24102;
    }
  finally
    {
      repl = {CLOBBER};
    }
}


mono_decompose_long_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.24115;
  void * D.24116;
  struct MonoBasicBlock * D.24117;
  struct MonoInst * D.24118;
  short unsigned int D.24119;
  int D.24120;
  int D.24121;
  struct MonoInst * D.24122;
  int D.24123;
  int D.24124;
  const unsigned char * D.24125;
  int D.24126;
  int D.24127;
  int D.24128;
  int D.24132;
  struct MonoInst * D.24133;
  int D.24134;
  int D.24135;
  int D.24136;
  int D.24137;
  int D.24141;
  struct MonoInst * D.24142;
  int D.24143;
  int D.24144;
  int D.24145;
  int D.24146;
  int D.24150;
  struct MonoInst * D.24151;
  int D.24152;
  int D.24153;
  int D.24154;
  int D.24158;
  struct MonoInst * D.24159;
  int D.24160;
  int D.24161;
  int D.24162;
  int D.24166;
  struct MonoInst * D.24167;
  int D.24168;
  int D.24169;
  int D.24173;
  struct MonoInst * D.24174;
  int D.24175;
  int D.24176;
  int D.24180;
  struct MonoInst * D.24181;
  int D.24182;
  int D.24183;
  int D.24187;
  struct MonoInst * D.24188;
  int D.24189;
  int D.24190;
  int D.24194;
  struct MonoInst * D.24195;
  int D.24196;
  int D.24197;
  int D.24201;
  struct MonoInst * D.24202;
  int D.24203;
  int D.24204;
  int tmpreg.2;
  int D.24209;
  struct MonoInst * D.24210;
  int D.24211;
  int D.24212;
  int D.24216;
  struct MonoInst * D.24217;
  int D.24218;
  int D.24219;
  int D.24223;
  struct MonoInst * D.24224;
  int D.24225;
  int D.24226;
  int D.24230;
  struct MonoInst * D.24231;
  int D.24232;
  int D.24233;
  int D.24237;
  struct MonoInst * D.24238;
  int D.24239;
  int D.24240;
  int D.24244;
  struct MonoInst * D.24245;
  int D.24246;
  int D.24247;
  int D.24251;
  struct MonoInst * D.24252;
  int D.24253;
  int D.24254;
  int D.24258;
  struct MonoInst * D.24259;
  int D.24260;
  int D.24261;
  int D.24265;
  struct MonoInst * D.24266;
  int D.24267;
  int D.24268;
  int D.24272;
  struct MonoInst * D.24273;
  int D.24274;
  int D.24275;
  int D.24279;
  struct MonoInst * D.24280;
  int D.24281;
  int D.24282;
  int D.24286;
  struct MonoInst * D.24287;
  int D.24288;
  int D.24289;
  int D.24293;
  struct MonoInst * D.24294;
  int D.24295;
  int D.24296;
  int D.24300;
  struct MonoInst * D.24301;
  int D.24302;
  int D.24303;
  int D.24307;
  struct MonoInst * D.24308;
  int D.24309;
  int D.24310;
  int D.24314;
  struct MonoInst * D.24315;
  int D.24316;
  int D.24317;
  int D.24321;
  struct MonoInst * D.24322;
  int D.24323;
  int D.24324;
  int D.24328;
  struct MonoInst * D.24329;
  int D.24330;
  int D.24331;
  int D.24335;
  struct MonoInst * D.24336;
  int D.24337;
  int D.24338;
  unsigned int D.24342;
  unsigned int D.24343;
  unsigned int D.24344;
  int D.24345;
  unsigned int D.24346;
  unsigned int D.24347;
  int D.24348;
  int D.24349;
  struct MonoInst * D.24350;
  int D.24351;
  int D.24352;
  int D.24356;
  struct MonoInst * D.24357;
  int D.24358;
  int D.24359;
  int D.24363;
  struct MonoInst * D.24364;
  int D.24365;
  int D.24366;
  int D.24370;
  struct MonoInst * D.24371;
  int D.24372;
  int D.24373;
  int D.24377;
  struct MonoInst * D.24378;
  int D.24379;
  int D.24380;
  int D.24384;
  struct MonoInst * D.24385;
  int D.24386;
  int D.24387;
  unsigned int D.24390;
  unsigned int D.24391;
  int D.24392;
  unsigned char * D.24396;
  struct MonoBasicBlock * * D.24399;
  int D.24400;
  unsigned char * D.24401;
  int D.24402;
  int D.24403;
  unsigned int D.24404;
  unsigned int D.24405;
  struct MonoBasicBlock * * D.24406;
  unsigned int D.24407;
  short unsigned int D.24412;
  short unsigned int D.24413;
  short unsigned int D.24415;
  short unsigned int D.24417;
  struct MonoBasicBlock * * D.24418;
  struct MonoBasicBlock * * D.24419;
  struct MonoBasicBlock * D.24420;
  void * D.24430;
  struct MonoBasicBlock * * D.24431;
  struct MonoBasicBlock * * D.24432;
  unsigned int D.24436;
  unsigned int D.24437;
  unsigned int D.24440;
  unsigned int D.24441;
  int D.24442;
  int D.24460;
  struct MonoInst * D.24461;
  int D.24462;
  int D.24463;
  int D.24467;
  struct MonoInst * D.24468;
  int D.24469;
  int D.24470;
  int D.24474;
  struct MonoInst * D.24475;
  int D.24476;
  int D.24477;
  unsigned int D.24480;
  unsigned int D.24481;
  int D.24482;
  unsigned char * D.24486;
  int D.24489;
  int D.24490;
  unsigned int D.24491;
  unsigned int D.24492;
  struct MonoBasicBlock * * D.24493;
  void * D.24509;
  struct MonoBasicBlock * * D.24510;
  struct MonoBasicBlock * * D.24511;
  unsigned int D.24517;
  unsigned int D.24518;
  int D.24519;
  unsigned char * D.24537;
  int D.24540;
  int D.24541;
  unsigned int D.24542;
  unsigned int D.24543;
  struct MonoBasicBlock * * D.24544;
  int D.24559;
  struct MonoInst * D.24560;
  int D.24561;
  int D.24562;
  int D.24566;
  struct MonoInst * D.24567;
  int D.24568;
  int D.24569;
  unsigned char * D.24573;
  int D.24576;
  int D.24577;
  unsigned int D.24578;
  unsigned int D.24579;
  struct MonoBasicBlock * * D.24580;
  int D.24595;
  struct MonoInst * D.24596;
  int D.24597;
  int D.24598;
  int D.24602;
  struct MonoInst * D.24603;
  int D.24604;
  int D.24605;
  int D.24609;
  struct MonoInst * D.24610;
  int D.24611;
  int D.24612;
  int D.24616;
  struct MonoInst * D.24617;
  int D.24618;
  int D.24619;
  int D.24623;
  struct MonoInst * D.24624;
  int D.24625;
  int D.24626;
  int D.24630;
  struct MonoInst * D.24631;
  int D.24632;
  int D.24633;
  int D.24637;
  struct MonoInst * D.24638;
  int D.24639;
  int D.24640;
  int D.24644;
  struct MonoInst * D.24645;
  int D.24646;
  int D.24647;
  int D.24651;
  struct MonoInst * D.24652;
  int D.24653;
  int D.24654;
  int D.24658;
  struct MonoInst * D.24659;
  int D.24660;
  int D.24661;
  int D.24665;
  struct MonoInst * D.24666;
  int D.24667;
  int D.24668;
  int D.24672;
  struct MonoInst * D.24673;
  int D.24674;
  int D.24675;
  int D.24679;
  struct MonoInst * D.24680;
  int D.24681;
  int D.24682;
  unsigned int D.24686;
  unsigned int D.24687;
  int D.24688;
  unsigned int D.24689;
  unsigned int D.24690;
  int D.24691;
  int D.24692;
  struct MonoInst * D.24693;
  int D.24694;
  int D.24695;
  int D.24699;
  struct MonoInst * D.24700;
  int D.24701;
  int D.24702;
  int D.24706;
  struct MonoInst * D.24707;
  int D.24708;
  int D.24709;
  int D.24713;
  struct MonoInst * D.24714;
  int D.24715;
  int D.24716;
  int D.24720;
  struct MonoInst * D.24721;
  int D.24722;
  int D.24723;
  int D.24727;
  struct MonoInst * D.24728;
  int D.24729;
  int D.24730;
  unsigned int D.24733;
  unsigned int D.24734;
  int D.24735;
  unsigned char * D.24739;
  int D.24742;
  int D.24743;
  unsigned int D.24744;
  unsigned int D.24745;
  struct MonoBasicBlock * * D.24746;
  void * D.24762;
  struct MonoBasicBlock * * D.24763;
  struct MonoBasicBlock * * D.24764;
  unsigned int D.24770;
  unsigned int D.24771;
  int D.24772;
  int D.24790;
  struct MonoInst * D.24791;
  int D.24792;
  int D.24793;
  int D.24797;
  struct MonoInst * D.24798;
  int D.24799;
  int D.24800;
  int D.24804;
  struct MonoInst * D.24805;
  int D.24806;
  int D.24807;
  unsigned int D.24810;
  unsigned int D.24811;
  int D.24812;
  unsigned char * D.24816;
  int D.24819;
  int D.24820;
  unsigned int D.24821;
  unsigned int D.24822;
  struct MonoBasicBlock * * D.24823;
  void * D.24839;
  struct MonoBasicBlock * * D.24840;
  struct MonoBasicBlock * * D.24841;
  unsigned int D.24847;
  unsigned int D.24848;
  int D.24849;
  unsigned char * D.24867;
  int D.24870;
  int D.24871;
  unsigned int D.24872;
  unsigned int D.24873;
  struct MonoBasicBlock * * D.24874;
  int D.24889;
  struct MonoInst * D.24890;
  int D.24891;
  int D.24892;
  int D.24896;
  struct MonoInst * D.24897;
  int D.24898;
  int D.24899;
  unsigned char * D.24903;
  int D.24906;
  int D.24907;
  unsigned int D.24908;
  unsigned int D.24909;
  struct MonoBasicBlock * * D.24910;
  int D.24925;
  struct MonoInst * D.24926;
  int D.24927;
  int D.24928;
  int D.24932;
  struct MonoInst * D.24933;
  int D.24934;
  int D.24935;
  int D.24939;
  struct MonoInst * D.24940;
  int D.24941;
  int D.24942;
  int D.24946;
  struct MonoInst * D.24947;
  int D.24948;
  int D.24949;
  int D.24953;
  struct MonoInst * D.24954;
  int D.24955;
  int D.24956;
  int D.24960;
  struct MonoInst * D.24961;
  int D.24962;
  int D.24963;
  int D.24967;
  struct MonoInst * D.24968;
  int D.24969;
  int D.24970;
  int D.24974;
  struct MonoInst * D.24975;
  int D.24976;
  int D.24977;
  int D.24981;
  struct MonoInst * D.24982;
  int D.24983;
  int D.24984;
  int D.24988;
  struct MonoInst * D.24989;
  int D.24990;
  int D.24991;
  int D.24995;
  struct MonoInst * D.24996;
  int D.24997;
  int D.24998;
  int D.25002;
  struct MonoInst * D.25003;
  int D.25004;
  int D.25005;
  int D.25009;
  struct MonoInst * D.25010;
  int D.25011;
  int D.25012;
  int D.25016;
  struct MonoInst * D.25017;
  int D.25018;
  int D.25019;
  int D.25023;
  struct MonoInst * D.25024;
  int D.25025;
  int D.25026;
  int D.25030;
  struct MonoInst * D.25031;
  int D.25032;
  int D.25033;
  int D.25037;
  struct MonoInst * D.25038;
  int D.25039;
  int D.25040;
  int D.25044;
  struct MonoInst * D.25045;
  int D.25046;
  int D.25047;
  int D.25051;
  struct MonoInst * D.25052;
  int D.25053;
  int D.25054;
  int D.25058;
  struct MonoInst * D.25059;
  int D.25060;
  int D.25061;
  int D.25065;
  struct MonoInst * D.25066;
  int D.25067;
  int D.25068;
  int D.25072;
  struct MonoInst * D.25073;
  int D.25074;
  int D.25075;
  int D.25079;
  struct MonoInst * D.25080;
  int D.25081;
  int D.25082;
  int D.25086;
  struct MonoInst * D.25087;
  int D.25088;
  int D.25089;
  int D.25093;
  struct MonoInst * D.25094;
  int D.25095;
  int D.25096;
  int D.25100;
  struct MonoInst * D.25101;
  int D.25102;
  int D.25103;
  int D.25107;
  struct MonoInst * D.25108;
  int D.25109;
  int D.25110;
  int D.25114;
  struct MonoInst * D.25115;
  int D.25116;
  int D.25117;
  int D.25121;
  struct MonoInst * D.25122;
  int D.25123;
  int D.25124;
  int D.25128;
  struct MonoInst * D.25129;
  int D.25130;
  int D.25131;
  int D.25135;
  struct MonoInst * D.25136;
  int D.25137;
  int D.25138;
  int D.25139;
  int D.25140;
  int D.25144;
  struct MonoInst * D.25145;
  int D.25146;
  int D.25147;
  int D.25148;
  int D.25152;
  struct MonoInst * D.25153;
  int D.25154;
  int D.25155;
  int D.25159;
  struct MonoInst * D.25160;
  int D.25161;
  int D.25162;
  int D.25166;
  struct MonoInst * D.25167;
  int D.25168;
  int D.25169;
  int D.25173;
  struct MonoInst * D.25174;
  int D.25175;
  int D.25176;
  int D.25180;
  struct MonoInst * D.25181;
  int D.25182;
  int D.25183;
  int D.25187;
  struct MonoInst * D.25188;
  int D.25189;
  int D.25190;
  int D.25194;
  struct MonoInst * D.25195;
  int D.25196;
  int D.25197;
  int D.25201;
  struct MonoInst * D.25202;
  int D.25203;
  int D.25204;
  int D.25208;
  struct MonoInst * D.25209;
  int D.25210;
  int D.25211;
  int D.25215;
  struct MonoInst * D.25216;
  int D.25217;
  int D.25218;
  int D.25222;
  struct MonoInst * D.25223;
  int D.25224;
  int D.25225;
  int D.25229;
  struct MonoInst * D.25230;
  int D.25231;
  int D.25232;
  int D.25236;
  struct MonoInst * D.25237;
  int D.25238;
  int D.25239;
  int D.25243;
  struct MonoInst * D.25244;
  int D.25245;
  int D.25246;
  int D.25250;
  struct MonoInst * D.25251;
  int D.25252;
  int D.25253;
  int D.25257;
  struct MonoInst * D.25258;
  int D.25259;
  int D.25260;
  int D.25264;
  struct MonoInst * D.25265;
  int D.25266;
  int D.25267;
  int D.25271;
  struct MonoInst * D.25272;
  int D.25273;
  int D.25274;
  int D.25278;
  struct MonoInst * D.25279;
  int D.25280;
  int D.25281;
  int D.25285;
  struct MonoInst * D.25286;
  int D.25287;
  int D.25288;
  int D.25292;
  struct MonoInst * D.25293;
  int D.25294;
  int D.25295;
  int D.25299;
  struct MonoInst * D.25300;
  int D.25301;
  int D.25302;
  int D.25306;
  struct MonoInst * D.25307;
  int D.25308;
  int D.25309;
  int D.25313;
  struct MonoInst * D.25314;
  int D.25315;
  int D.25316;
  int D.25320;
  struct MonoInst * D.25321;
  int D.25322;
  int D.25323;
  int D.25327;
  struct MonoInst * D.25328;
  int D.25329;
  int D.25330;
  int D.25334;
  struct MonoInst * D.25335;
  int D.25336;
  int D.25337;
  int D.25341;
  struct MonoInst * D.25342;
  int D.25343;
  int D.25344;
  int D.25348;
  struct MonoInst * D.25349;
  int D.25350;
  int D.25351;
  int D.25355;
  struct MonoInst * D.25356;
  int D.25357;
  int D.25358;
  int D.25362;
  struct MonoInst * D.25363;
  int D.25364;
  int D.25365;
  int D.25369;
  struct MonoInst * D.25370;
  int D.25371;
  int D.25372;
  int D.25378;
  struct MonoInst * D.25379;
  int D.25380;
  int D.25381;
  int D.25385;
  struct MonoInst * D.25386;
  int D.25387;
  int D.25388;
  int D.25394;
  struct MonoInst * D.25395;
  int D.25396;
  int D.25397;
  int D.25401;
  struct MonoInst * D.25402;
  int D.25403;
  int D.25404;
  _Bool D.25408;
  long int D.25409;
  long int D.25410;
  short unsigned int D.25413;
  int D.25414;
  unsigned int D.25415;
  unsigned int D.25416;
  int D.25417;
  struct MonoInst * D.25418;
  int D.25419;
  int D.25420;
  int D.25424;
  struct MonoInst * D.25425;
  int D.25426;
  int D.25427;
  int D.25431;
  struct MonoInst * D.25432;
  int D.25433;
  int D.25434;
  int D.25438;
  struct MonoInst * D.25439;
  int D.25440;
  int D.25441;
  int D.25445;
  struct MonoInst * D.25446;
  guint16 iftmp.3;
  int D.25451;
  int D.25452;
  void * D.25453;
  struct MonoBasicBlock * * D.25454;
  struct MonoBasicBlock * * D.25455;
  struct MonoBasicBlock * D.25456;
  struct MonoBasicBlock * * D.25457;
  struct MonoBasicBlock * D.25458;
  struct MonoBasicBlock * * D.25459;
  struct MonoBasicBlock * D.25460;
  int D.25464;
  struct MonoInst * D.25465;
  int D.25466;
  int D.25467;
  int D.25471;
  struct MonoInst * D.25472;
  int D.25473;
  int D.25474;
  short unsigned int D.25475;
  int D.25476;
  int D.25477;
  unsigned int D.25480;
  unsigned int D.25481;
  int D.25482;
  unsigned char * D.25486;
  int D.25489;
  int D.25490;
  unsigned int D.25491;
  unsigned int D.25492;
  struct MonoBasicBlock * * D.25493;
  void * D.25509;
  struct MonoBasicBlock * * D.25510;
  struct MonoBasicBlock * * D.25511;
  unsigned int D.25517;
  unsigned int D.25518;
  int D.25519;
  int D.25537;
  struct MonoInst * D.25538;
  int D.25539;
  int D.25540;
  int D.25544;
  struct MonoInst * D.25545;
  int D.25546;
  int D.25547;
  unsigned int D.25550;
  unsigned int D.25551;
  int D.25552;
  unsigned char * D.25556;
  int D.25559;
  int D.25560;
  unsigned int D.25561;
  unsigned int D.25562;
  struct MonoBasicBlock * * D.25563;
  void * D.25579;
  struct MonoBasicBlock * * D.25580;
  struct MonoBasicBlock * * D.25581;
  unsigned int D.25587;
  unsigned int D.25588;
  int D.25589;
  int D.25607;
  struct MonoInst * D.25608;
  int D.25609;
  int D.25610;
  int D.25614;
  struct MonoInst * D.25615;
  int D.25616;
  short unsigned int D.25617;
  int D.25618;
  int D.25619;
  void * D.25620;
  struct MonoBasicBlock * * D.25621;
  struct MonoBasicBlock * * D.25622;
  unsigned int D.25626;
  unsigned int D.25627;
  int D.25628;
  struct MonoInst * D.25629;
  int D.25630;
  int D.25631;
  int D.25635;
  struct MonoInst * D.25636;
  int D.25637;
  int D.25638;
  int D.25642;
  struct MonoInst * D.25643;
  int D.25644;
  int D.25645;
  int D.25649;
  struct MonoInst * D.25650;
  int D.25651;
  int D.25652;
  int D.25656;
  struct MonoInst * D.25657;
  int D.25658;
  int D.25659;
  int D.25660;
  unsigned int D.25664;
  unsigned int D.25665;
  int D.25666;
  unsigned int D.25667;
  unsigned int D.25668;
  int D.25669;
  int D.25670;
  struct MonoInst * D.25671;
  int D.25672;
  int D.25673;
  int D.25677;
  struct MonoInst * D.25678;
  int D.25679;
  int D.25680;
  int D.25684;
  struct MonoInst * D.25685;
  int D.25686;
  int D.25687;
  short unsigned int D.25688;
  int D.25689;
  int D.25690;
  unsigned int D.25693;
  unsigned int D.25694;
  int D.25695;
  unsigned char * D.25699;
  int D.25702;
  int D.25703;
  unsigned int D.25704;
  unsigned int D.25705;
  struct MonoBasicBlock * * D.25706;
  void * D.25722;
  struct MonoBasicBlock * * D.25723;
  struct MonoBasicBlock * * D.25724;
  unsigned int D.25730;
  unsigned int D.25731;
  int D.25732;
  int D.25750;
  struct MonoInst * D.25751;
  int D.25752;
  int D.25753;
  int D.25757;
  struct MonoInst * D.25758;
  int D.25759;
  int D.25760;
  unsigned int D.25763;
  unsigned int D.25764;
  int D.25765;
  unsigned char * D.25769;
  int D.25772;
  int D.25773;
  unsigned int D.25774;
  unsigned int D.25775;
  struct MonoBasicBlock * * D.25776;
  void * D.25792;
  struct MonoBasicBlock * * D.25793;
  struct MonoBasicBlock * * D.25794;
  unsigned int D.25800;
  unsigned int D.25801;
  int D.25802;
  int D.25820;
  struct MonoInst * D.25821;
  int D.25822;
  int D.25823;
  int D.25827;
  struct MonoInst * D.25828;
  int D.25829;
  short unsigned int D.25830;
  int D.25831;
  int D.25832;
  unsigned int D.25835;
  unsigned int D.25836;
  int D.25837;
  unsigned char * D.25841;
  int D.25844;
  int D.25845;
  unsigned int D.25846;
  unsigned int D.25847;
  struct MonoBasicBlock * * D.25848;
  void * D.25864;
  struct MonoBasicBlock * * D.25865;
  struct MonoBasicBlock * * D.25866;
  unsigned int D.25872;
  unsigned int D.25873;
  int D.25874;
  unsigned char * D.25892;
  int D.25895;
  int D.25896;
  unsigned int D.25897;
  unsigned int D.25898;
  struct MonoBasicBlock * * D.25899;
  int D.25914;
  struct MonoInst * D.25915;
  int D.25916;
  int D.25917;
  unsigned char * D.25921;
  int D.25924;
  int D.25925;
  unsigned int D.25926;
  unsigned int D.25927;
  struct MonoBasicBlock * * D.25928;
  _Bool D.25943;
  long int D.25944;
  long int D.25945;
  short unsigned int D.25948;
  int D.25949;
  unsigned int D.25950;
  unsigned int D.25951;
  int D.25952;
  struct MonoInst * D.25953;
  int D.25954;
  int D.25955;
  int low_imm.4;
  int D.25960;
  struct MonoInst * D.25961;
  int D.25962;
  int D.25963;
  int high_imm.5;
  int D.25968;
  struct MonoInst * D.25969;
  int D.25970;
  int D.25971;
  int D.25975;
  struct MonoInst * D.25976;
  int D.25977;
  int D.25978;
  int D.25982;
  struct MonoInst * D.25983;
  guint16 iftmp.6;
  int D.25988;
  int D.25989;
  void * D.25990;
  struct MonoBasicBlock * * D.25991;
  struct MonoBasicBlock * * D.25992;
  struct MonoBasicBlock * D.25993;
  struct MonoBasicBlock * * D.25994;
  struct MonoBasicBlock * D.25995;
  struct MonoBasicBlock * * D.25996;
  struct MonoBasicBlock * D.25997;
  int D.26001;
  struct MonoInst * D.26002;
  int D.26003;
  int D.26004;
  int D.26008;
  struct MonoInst * D.26009;
  int D.26010;
  int D.26011;
  short unsigned int D.26012;
  int D.26013;
  int D.26014;
  unsigned int D.26017;
  unsigned int D.26018;
  int D.26019;
  unsigned char * D.26023;
  int D.26026;
  int D.26027;
  unsigned int D.26028;
  unsigned int D.26029;
  struct MonoBasicBlock * * D.26030;
  void * D.26046;
  struct MonoBasicBlock * * D.26047;
  struct MonoBasicBlock * * D.26048;
  unsigned int D.26054;
  unsigned int D.26055;
  int D.26056;
  int D.26074;
  struct MonoInst * D.26075;
  int D.26076;
  int D.26077;
  int D.26081;
  struct MonoInst * D.26082;
  int D.26083;
  int D.26084;
  unsigned int D.26087;
  unsigned int D.26088;
  int D.26089;
  unsigned char * D.26093;
  int D.26096;
  int D.26097;
  unsigned int D.26098;
  unsigned int D.26099;
  struct MonoBasicBlock * * D.26100;
  void * D.26116;
  struct MonoBasicBlock * * D.26117;
  struct MonoBasicBlock * * D.26118;
  unsigned int D.26124;
  unsigned int D.26125;
  int D.26126;
  int D.26144;
  struct MonoInst * D.26145;
  int D.26146;
  int D.26147;
  int D.26151;
  struct MonoInst * D.26152;
  int D.26153;
  short unsigned int D.26154;
  int D.26155;
  int D.26156;
  void * D.26157;
  struct MonoBasicBlock * * D.26158;
  struct MonoBasicBlock * * D.26159;
  unsigned int D.26163;
  unsigned int D.26164;
  int D.26165;
  struct MonoInst * D.26166;
  int D.26167;
  int D.26168;
  int D.26172;
  struct MonoInst * D.26173;
  int D.26174;
  int D.26175;
  int D.26179;
  struct MonoInst * D.26180;
  int D.26181;
  int D.26182;
  int D.26186;
  struct MonoInst * D.26187;
  int D.26188;
  int D.26189;
  int D.26193;
  struct MonoInst * D.26194;
  int D.26195;
  int D.26196;
  int D.26197;
  unsigned int D.26201;
  unsigned int D.26202;
  int D.26203;
  unsigned int D.26204;
  unsigned int D.26205;
  int D.26206;
  int D.26207;
  struct MonoInst * D.26208;
  int D.26209;
  int D.26210;
  int D.26214;
  struct MonoInst * D.26215;
  int D.26216;
  int D.26217;
  int D.26221;
  struct MonoInst * D.26222;
  int D.26223;
  int D.26224;
  short unsigned int D.26225;
  int D.26226;
  int D.26227;
  unsigned int D.26230;
  unsigned int D.26231;
  int D.26232;
  unsigned char * D.26236;
  int D.26239;
  int D.26240;
  unsigned int D.26241;
  unsigned int D.26242;
  struct MonoBasicBlock * * D.26243;
  void * D.26259;
  struct MonoBasicBlock * * D.26260;
  struct MonoBasicBlock * * D.26261;
  unsigned int D.26267;
  unsigned int D.26268;
  int D.26269;
  int D.26287;
  struct MonoInst * D.26288;
  int D.26289;
  int D.26290;
  int D.26294;
  struct MonoInst * D.26295;
  int D.26296;
  int D.26297;
  unsigned int D.26300;
  unsigned int D.26301;
  int D.26302;
  unsigned char * D.26306;
  int D.26309;
  int D.26310;
  unsigned int D.26311;
  unsigned int D.26312;
  struct MonoBasicBlock * * D.26313;
  void * D.26329;
  struct MonoBasicBlock * * D.26330;
  struct MonoBasicBlock * * D.26331;
  unsigned int D.26337;
  unsigned int D.26338;
  int D.26339;
  int D.26357;
  struct MonoInst * D.26358;
  int D.26359;
  int D.26360;
  int D.26364;
  struct MonoInst * D.26365;
  int D.26366;
  short unsigned int D.26367;
  int D.26368;
  int D.26369;
  unsigned int D.26372;
  unsigned int D.26373;
  int D.26374;
  unsigned char * D.26378;
  int D.26381;
  int D.26382;
  unsigned int D.26383;
  unsigned int D.26384;
  struct MonoBasicBlock * * D.26385;
  void * D.26401;
  struct MonoBasicBlock * * D.26402;
  struct MonoBasicBlock * * D.26403;
  unsigned int D.26409;
  unsigned int D.26410;
  int D.26411;
  unsigned char * D.26429;
  int D.26432;
  int D.26433;
  unsigned int D.26434;
  unsigned int D.26435;
  struct MonoBasicBlock * * D.26436;
  int D.26451;
  struct MonoInst * D.26452;
  int D.26453;
  int D.26454;
  unsigned char * D.26458;
  int D.26461;
  int D.26462;
  unsigned int D.26463;
  unsigned int D.26464;
  struct MonoBasicBlock * * D.26465;
  struct MonoInst * D.26483;
  struct MonoInst * D.26488;
  short int D.26489;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.24115 = cfg->mempool;
  D.24116 = mono_mempool_alloc0 (D.24115, 172);
  cfg->cbb = D.24116;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.23681>;
  <D.23680>:
  {
    struct MonoInst * tree;
    struct MonoInst * prev;

    tree = bb->code;
    prev = 0B;
    tree = bb->code;
    D.24117 = cfg->cbb;
    D.24117 = cfg->cbb;
    D.24117->last_ins = 0B;
    D.24118 = D.24117->last_ins;
    D.24117->code = D.24118;
    goto <D.23678>;
    <D.23677>:
    mono_arch_decompose_long_opts (cfg, tree);
    D.24119 = tree->opcode;
    D.24120 = (int) D.24119;
    switch (D.24120) <default: <D.23675>, case 325: <D.23563>, case 328: <D.23617>, case 363: <D.23358>, case 378: <D.23369>, case 395: <D.23372>, case 425: <D.23362>, case 479: <D.23506>, case 480: <D.23509>, case 481: <D.23541>, case 486: <D.23528>, case 487: <D.23531>, case 488: <D.23534>, case 492: <D.23540>, case 493: <D.23537>, case 494: <D.23396>, case 495: <D.23400>, case 496: <D.23404>, case 497: <D.23364>, case 498: <D.23411>, case 499: <D.23409>, case 500: <D.23405>, case 501: <D.23363>, case 502: <D.23402>, case 503: <D.23398>, case 504: <D.23406>, case 505: <D.23480>, case 506: <D.23483>, case 507: <D.23512>, case 508: <D.23516>, case 511: <D.23520>, case 512: <D.23524>, case 513: <D.23432>, case 514: <D.23464>, case 515: <D.23490>, case 516: <D.23501>, case 517: <D.23441>, case 518: <D.23473>, case 519: <D.23484>, case 520: <D.23365>, case 521: <D.23489>, case 522: <D.23485>, case 523: <D.23415>, case 524: <D.23440>, case 525: <D.23447>, case 526: <D.23472>, case 527: <D.23479>, case 528: <D.23482>, case 529: <D.23366>, case 530: <D.23496>, case 536: <D.23413>, case 537: <D.23407>, case 538: <D.23542>, case 539: <D.23545>, case 541: <D.23548>, case 542: <D.23551>, case 543: <D.23554>, case 544: <D.23560>, case 546: <D.23557>, case 583: <D.23375>, case 587: <D.23381>, case 604: <D.23392>, case 608: <D.23393>, case 617: <D.23384>, case 618: <D.23387>>
    <D.23358>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24121 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24121;
      inst->prev = 0B;
      D.24122 = inst->prev;
      inst->next = D.24122;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24123 = inst->sreg3;
      inst->sreg2 = D.24123;
      D.24124 = inst->sreg2;
      inst->sreg1 = D.24124;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24129>; else goto <D.24130>;
      <D.24129>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24131>;
      <D.24130>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24131>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24132 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24132;
      inst->prev = 0B;
      D.24133 = inst->prev;
      inst->next = D.24133;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24134 = inst->sreg3;
      inst->sreg2 = D.24134;
      D.24135 = inst->sreg2;
      inst->sreg1 = D.24135;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[0].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24138>; else goto <D.24139>;
      <D.24138>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24140>;
      <D.24139>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24140>:
    }
    goto <D.23361>;
    <D.23362>:
    <D.23363>:
    <D.23364>:
    <D.23365>:
    <D.23366>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24141 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24141;
      inst->prev = 0B;
      D.24142 = inst->prev;
      inst->next = D.24142;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24143 = inst->sreg3;
      inst->sreg2 = D.24143;
      D.24144 = inst->sreg2;
      inst->sreg1 = D.24144;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24147>; else goto <D.24148>;
      <D.24147>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24149>;
      <D.24148>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24149>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24150 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24150;
      inst->prev = 0B;
      D.24151 = inst->prev;
      inst->next = D.24151;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24152 = inst->sreg3;
      inst->sreg2 = D.24152;
      D.24153 = inst->sreg2;
      inst->sreg1 = D.24153;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24155>; else goto <D.24156>;
      <D.24155>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24157>;
      <D.24156>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24157>:
    }
    goto <D.23361>;
    <D.23369>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24158 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24158;
      inst->prev = 0B;
      D.24159 = inst->prev;
      inst->next = D.24159;
      inst->opcode = 377;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24160 = inst->sreg3;
      inst->sreg2 = D.24160;
      D.24161 = inst->sreg2;
      inst->sreg1 = D.24161;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24128 = tree->data.op[0].const_val;
      D.24162 = D.24128 + 4;
      inst->data.op[0].const_val = D.24162;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24163>; else goto <D.24164>;
      <D.24163>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24165>;
      <D.24164>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24165>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24166 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24166;
      inst->prev = 0B;
      D.24167 = inst->prev;
      inst->next = D.24167;
      inst->opcode = 377;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24168 = inst->sreg3;
      inst->sreg2 = D.24168;
      D.24169 = inst->sreg2;
      inst->sreg1 = D.24169;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24170>; else goto <D.24171>;
      <D.24170>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24172>;
      <D.24171>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24172>:
    }
    goto <D.23361>;
    <D.23372>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24173 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24173;
      inst->prev = 0B;
      D.24174 = inst->prev;
      inst->next = D.24174;
      inst->opcode = 393;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24175 = inst->sreg3;
      inst->sreg2 = D.24175;
      D.24176 = inst->sreg2;
      inst->sreg1 = D.24176;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24128 = tree->data.op[0].const_val;
      D.24162 = D.24128 + 4;
      inst->data.op[0].const_val = D.24162;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24177>; else goto <D.24178>;
      <D.24177>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24179>;
      <D.24178>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24179>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24180 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24180;
      inst->prev = 0B;
      D.24181 = inst->prev;
      inst->next = D.24181;
      inst->opcode = 393;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24182 = inst->sreg3;
      inst->sreg2 = D.24182;
      D.24183 = inst->sreg2;
      inst->sreg1 = D.24183;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24184>; else goto <D.24185>;
      <D.24184>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24186>;
      <D.24185>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24186>:
    }
    goto <D.23361>;
    <D.23375>:
    {
      guint32 tmpreg;

      tmpreg = alloc_ireg (cfg);
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24187 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24187;
        inst->prev = 0B;
        D.24188 = inst->prev;
        inst->next = D.24188;
        inst->opcode = 424;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24189 = inst->sreg3;
        inst->sreg2 = D.24189;
        D.24190 = inst->sreg2;
        inst->sreg1 = D.24190;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24126 = tree->dreg;
        D.24127 = D.24126 + 1;
        inst->dreg = D.24127;
        D.24145 = tree->sreg1;
        inst->sreg1 = D.24145;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24191>; else goto <D.24192>;
        <D.24191>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24193>;
        <D.24192>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24193>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24194 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24194;
        inst->prev = 0B;
        D.24195 = inst->prev;
        inst->next = D.24195;
        inst->opcode = 327;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24196 = inst->sreg3;
        inst->sreg2 = D.24196;
        D.24197 = inst->sreg2;
        inst->sreg1 = D.24197;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24126 = tree->dreg;
        D.24127 = D.24126 + 1;
        inst->sreg1 = D.24127;
        inst->data.op[1].const_val = -1;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24198>; else goto <D.24199>;
        <D.24198>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24200>;
        <D.24199>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24200>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24201 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24201;
        inst->prev = 0B;
        D.24202 = inst->prev;
        inst->next = D.24202;
        inst->opcode = 639;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24203 = inst->sreg3;
        inst->sreg2 = D.24203;
        D.24204 = inst->sreg2;
        inst->sreg1 = D.24204;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        tmpreg.2 = (int) tmpreg;
        inst->dreg = tmpreg.2;
        inst->sreg1 = -1;
        inst->sreg2 = -1;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24206>; else goto <D.24207>;
        <D.24206>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24208>;
        <D.24207>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24208>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24209 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24209;
        inst->prev = 0B;
        D.24210 = inst->prev;
        inst->next = D.24210;
        inst->opcode = 626;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24211 = inst->sreg3;
        inst->sreg2 = D.24211;
        D.24212 = inst->sreg2;
        inst->sreg1 = D.24212;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24126 = tree->dreg;
        D.24136 = D.24126 + 2;
        inst->dreg = D.24136;
        tmpreg.2 = (int) tmpreg;
        inst->sreg1 = tmpreg.2;
        inst->data.op[1].const_val = 1;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24213>; else goto <D.24214>;
        <D.24213>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24215>;
        <D.24214>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24215>:
      }
      goto <D.23361>;
    }
    <D.23381>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24216 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24216;
      inst->prev = 0B;
      D.24217 = inst->prev;
      inst->next = D.24217;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24218 = inst->sreg3;
      inst->sreg2 = D.24218;
      D.24219 = inst->sreg2;
      inst->sreg1 = D.24219;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24220>; else goto <D.24221>;
      <D.24220>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24222>;
      <D.24221>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24222>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24223 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24223;
      inst->prev = 0B;
      D.24224 = inst->prev;
      inst->next = D.24224;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24225 = inst->sreg3;
      inst->sreg2 = D.24225;
      D.24226 = inst->sreg2;
      inst->sreg1 = D.24226;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      inst->data.op[0].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24227>; else goto <D.24228>;
      <D.24227>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24229>;
      <D.24228>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24229>:
    }
    goto <D.23361>;
    <D.23384>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24230 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24230;
      inst->prev = 0B;
      D.24231 = inst->prev;
      inst->next = D.24231;
      inst->opcode = 440;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24232 = inst->sreg3;
      inst->sreg2 = D.24232;
      D.24233 = inst->sreg2;
      inst->sreg1 = D.24233;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      inst->data.op[1].const_val = 31;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24234>; else goto <D.24235>;
      <D.24234>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24236>;
      <D.24235>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24236>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24237 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24237;
      inst->prev = 0B;
      D.24238 = inst->prev;
      inst->next = D.24238;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24239 = inst->sreg3;
      inst->sreg2 = D.24239;
      D.24240 = inst->sreg2;
      inst->sreg1 = D.24240;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24241>; else goto <D.24242>;
      <D.24241>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24243>;
      <D.24242>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24243>:
    }
    goto <D.23361>;
    <D.23387>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24244 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24244;
      inst->prev = 0B;
      D.24245 = inst->prev;
      inst->next = D.24245;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24246 = inst->sreg3;
      inst->sreg2 = D.24246;
      D.24247 = inst->sreg2;
      inst->sreg1 = D.24247;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24248>; else goto <D.24249>;
      <D.24248>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24250>;
      <D.24249>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24250>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24251 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24251;
      inst->prev = 0B;
      D.24252 = inst->prev;
      inst->next = D.24252;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24253 = inst->sreg3;
      inst->sreg2 = D.24253;
      D.24254 = inst->sreg2;
      inst->sreg1 = D.24254;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24255>; else goto <D.24256>;
      <D.24255>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24257>;
      <D.24256>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24257>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24258 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24258;
      inst->prev = 0B;
      D.24259 = inst->prev;
      inst->next = D.24259;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24260 = inst->sreg3;
      inst->sreg2 = D.24260;
      D.24261 = inst->sreg2;
      inst->sreg1 = D.24261;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      inst->data.op[0].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24262>; else goto <D.24263>;
      <D.24262>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24264>;
      <D.24263>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24264>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24265 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24265;
      inst->prev = 0B;
      D.24266 = inst->prev;
      inst->next = D.24266;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24267 = inst->sreg3;
      inst->sreg2 = D.24267;
      D.24268 = inst->sreg2;
      inst->sreg1 = D.24268;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24269>; else goto <D.24270>;
      <D.24269>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24271>;
      <D.24270>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24271>:
    }
    goto <D.23361>;
    <D.23392>:
    <D.23393>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24272 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24272;
      inst->prev = 0B;
      D.24273 = inst->prev;
      inst->next = D.24273;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24274 = inst->sreg3;
      inst->sreg2 = D.24274;
      D.24275 = inst->sreg2;
      inst->sreg1 = D.24275;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      inst->data.op[0].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24276>; else goto <D.24277>;
      <D.24276>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24278>;
      <D.24277>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24278>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24279 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24279;
      inst->prev = 0B;
      D.24280 = inst->prev;
      inst->next = D.24280;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24281 = inst->sreg3;
      inst->sreg2 = D.24281;
      D.24282 = inst->sreg2;
      inst->sreg1 = D.24282;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      inst->sreg1 = D.24145;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24283>; else goto <D.24284>;
      <D.24283>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24285>;
      <D.24284>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24285>:
    }
    goto <D.23361>;
    <D.23396>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24286 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24286;
      inst->prev = 0B;
      D.24287 = inst->prev;
      inst->next = D.24287;
      inst->opcode = 580;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24288 = inst->sreg3;
      inst->sreg2 = D.24288;
      D.24289 = inst->sreg2;
      inst->sreg1 = D.24289;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24290>; else goto <D.24291>;
      <D.24290>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24292>;
      <D.24291>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24292>:
    }
    goto <D.23361>;
    <D.23398>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24293 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24293;
      inst->prev = 0B;
      D.24294 = inst->prev;
      inst->next = D.24294;
      inst->opcode = 591;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24295 = inst->sreg3;
      inst->sreg2 = D.24295;
      D.24296 = inst->sreg2;
      inst->sreg1 = D.24296;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24297>; else goto <D.24298>;
      <D.24297>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24299>;
      <D.24298>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24299>:
    }
    goto <D.23361>;
    <D.23400>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24300 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24300;
      inst->prev = 0B;
      D.24301 = inst->prev;
      inst->next = D.24301;
      inst->opcode = 581;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24302 = inst->sreg3;
      inst->sreg2 = D.24302;
      D.24303 = inst->sreg2;
      inst->sreg1 = D.24303;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24304>; else goto <D.24305>;
      <D.24304>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24306>;
      <D.24305>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24306>:
    }
    goto <D.23361>;
    <D.23402>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24307 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24307;
      inst->prev = 0B;
      D.24308 = inst->prev;
      inst->next = D.24308;
      inst->opcode = 590;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24309 = inst->sreg3;
      inst->sreg2 = D.24309;
      D.24310 = inst->sreg2;
      inst->sreg1 = D.24310;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24311>; else goto <D.24312>;
      <D.24311>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24313>;
      <D.24312>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24313>:
    }
    goto <D.23361>;
    <D.23404>:
    <D.23405>:
    <D.23406>:
    <D.23407>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24314 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24314;
      inst->prev = 0B;
      D.24315 = inst->prev;
      inst->next = D.24315;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24316 = inst->sreg3;
      inst->sreg2 = D.24316;
      D.24317 = inst->sreg2;
      inst->sreg1 = D.24317;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24318>; else goto <D.24319>;
      <D.24318>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24320>;
      <D.24319>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24320>:
    }
    goto <D.23361>;
    <D.23409>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24321 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24321;
      inst->prev = 0B;
      D.24322 = inst->prev;
      inst->next = D.24322;
      inst->opcode = 561;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24323 = inst->sreg3;
      inst->sreg2 = D.24323;
      D.24324 = inst->sreg2;
      inst->sreg1 = D.24324;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg2 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24325>; else goto <D.24326>;
      <D.24325>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24327>;
      <D.24326>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24327>:
    }
    goto <D.23361>;
    <D.23411>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24328 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24328;
      inst->prev = 0B;
      D.24329 = inst->prev;
      inst->next = D.24329;
      inst->opcode = 562;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24330 = inst->sreg3;
      inst->sreg2 = D.24330;
      D.24331 = inst->sreg2;
      inst->sreg1 = D.24331;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg2 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24332>; else goto <D.24333>;
      <D.24332>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24334>;
      <D.24333>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24334>:
    }
    goto <D.23361>;
    <D.23413>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24335 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24335;
      inst->prev = 0B;
      D.24336 = inst->prev;
      inst->next = D.24336;
      inst->opcode = 563;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24337 = inst->sreg3;
      inst->sreg2 = D.24337;
      D.24338 = inst->sreg2;
      inst->sreg1 = D.24338;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg2 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24339>; else goto <D.24340>;
      <D.24339>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24341>;
      <D.24340>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24341>:
    }
    goto <D.23361>;
    <D.23415>:
    {
      struct MonoBasicBlock * is_negative;
      struct MonoBasicBlock * end_label;

      D.24115 = cfg->mempool;
      is_negative = mono_mempool_alloc0 (D.24115, 172);
      D.24342 = cfg->num_bblocks;
      D.24343 = D.24342;
      D.24344 = D.24343 + 1;
      cfg->num_bblocks = D.24344;
      D.24345 = (int) D.24343;
      is_negative->block_num = D.24345;
      D.24115 = cfg->mempool;
      end_label = mono_mempool_alloc0 (D.24115, 172);
      D.24342 = cfg->num_bblocks;
      D.24346 = D.24342;
      D.24347 = D.24346 + 1;
      cfg->num_bblocks = D.24347;
      D.24348 = (int) D.24346;
      end_label->block_num = D.24348;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24349 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24349;
        inst->prev = 0B;
        D.24350 = inst->prev;
        inst->next = D.24350;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24351 = inst->sreg3;
        inst->sreg2 = D.24351;
        D.24352 = inst->sreg2;
        inst->sreg1 = D.24352;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = 0;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24353>; else goto <D.24354>;
        <D.24353>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24355>;
        <D.24354>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24355>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24356 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24356;
        inst->prev = 0B;
        D.24357 = inst->prev;
        inst->next = D.24357;
        inst->opcode = 453;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24358 = inst->sreg3;
        inst->sreg2 = D.24358;
        D.24359 = inst->sreg2;
        inst->sreg1 = D.24359;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24360>; else goto <D.24361>;
        <D.24360>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24362>;
        <D.24361>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24362>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24363 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24363;
        inst->prev = 0B;
        D.24364 = inst->prev;
        inst->next = D.24364;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24365 = inst->sreg3;
        inst->sreg2 = D.24365;
        D.24366 = inst->sreg2;
        inst->sreg1 = D.24366;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = -1;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24367>; else goto <D.24368>;
        <D.24367>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24369>;
        <D.24368>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24369>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24370 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24370;
        inst->prev = 0B;
        D.24371 = inst->prev;
        inst->next = D.24371;
        inst->opcode = 455;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24372 = inst->sreg3;
        inst->sreg2 = D.24372;
        D.24373 = inst->sreg2;
        inst->sreg1 = D.24373;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24374>; else goto <D.24375>;
        <D.24374>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24376>;
        <D.24375>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24376>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24377 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24377;
        inst->prev = 0B;
        D.24378 = inst->prev;
        inst->next = D.24378;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24379 = inst->sreg3;
        inst->sreg2 = D.24379;
        D.24380 = inst->sreg2;
        inst->sreg1 = D.24380;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = 0;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24381>; else goto <D.24382>;
        <D.24381>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24383>;
        <D.24382>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24383>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.24384 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24384;
        ins->prev = 0B;
        D.24385 = ins->prev;
        ins->next = D.24385;
        ins->opcode = 652;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24386 = ins->sreg3;
        ins->sreg2 = D.24386;
        D.24387 = ins->sreg2;
        ins->sreg1 = D.24387;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (0 != 0) goto <D.24388>; else goto <D.24389>;
        <D.24388>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24390 = D.24342;
        D.24391 = D.24390 + 1;
        cfg->num_bblocks = D.24391;
        D.24392 = (int) D.24390;
        falsebb->block_num = D.24392;
        ins->data.op[0].target_block = is_negative;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, is_negative);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24393>; else goto <D.24394>;
        <D.24393>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24395>;
        <D.24394>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24395>:
        D.24396 = falsebb->cil_code;
        if (D.24396 != 0B) goto <D.24397>; else goto <D.24398>;
        <D.24397>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24396 = falsebb->cil_code;
        D.24400 = (int) D.24396;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24403 = D.24400 - D.24402;
        D.24404 = (unsigned int) D.24403;
        D.24405 = D.24404 * 4;
        D.24406 = D.24399 + D.24405;
        *D.24406 = falsebb;
        <D.24398>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24411>; else goto <D.24408>;
        <D.24411>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24409>; else goto <D.24414>;
        <D.24414>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24409>; else goto <D.24416>;
        <D.24416>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24409>; else goto <D.24408>;
        <D.24409>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24421>; else goto <D.24408>;
        <D.24421>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24410>;
        <D.24408>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24422>; else goto <D.24424>;
        <D.24424>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24425>; else goto <D.24423>;
        <D.24425>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24426>; else goto <D.24423>;
        <D.24426>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24427>; else goto <D.24423>;
        <D.24427>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24428>; else goto <D.24423>;
        <D.24428>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24422>; else goto <D.24423>;
        <D.24422>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24423>:
        <D.24410>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24429>;
        <D.24389>:
        D.24115 = cfg->mempool;
        D.24430 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.24430;
        D.24431 = ins->data.op[1].many_blocks;
        *D.24431 = is_negative;
        D.24431 = ins->data.op[1].many_blocks;
        D.24432 = D.24431 + 4;
        *D.24432 = 0B;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, is_negative);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24433>; else goto <D.24434>;
        <D.24433>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24435>;
        <D.24434>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24435>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.24438>; else goto <D.24439>;
        <D.24438>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24440 = D.24342;
        D.24441 = D.24440 + 1;
        cfg->num_bblocks = D.24441;
        D.24442 = (int) D.24440;
        falsebb->block_num = D.24442;
        D.24431 = ins->data.op[1].many_blocks;
        D.24432 = D.24431 + 4;
        *D.24432 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.24396 = falsebb->cil_code;
        if (D.24396 != 0B) goto <D.24443>; else goto <D.24444>;
        <D.24443>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24396 = falsebb->cil_code;
        D.24400 = (int) D.24396;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24403 = D.24400 - D.24402;
        D.24404 = (unsigned int) D.24403;
        D.24405 = D.24404 * 4;
        D.24406 = D.24399 + D.24405;
        *D.24406 = falsebb;
        <D.24444>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24448>; else goto <D.24445>;
        <D.24448>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24446>; else goto <D.24449>;
        <D.24449>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24446>; else goto <D.24450>;
        <D.24450>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24446>; else goto <D.24445>;
        <D.24446>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24451>; else goto <D.24445>;
        <D.24451>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24447>;
        <D.24445>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24452>; else goto <D.24454>;
        <D.24454>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24455>; else goto <D.24453>;
        <D.24455>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24456>; else goto <D.24453>;
        <D.24456>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24457>; else goto <D.24453>;
        <D.24457>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24458>; else goto <D.24453>;
        <D.24458>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24452>; else goto <D.24453>;
        <D.24452>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24453>:
        <D.24447>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24459>;
        <D.24439>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.24459>:
        <D.24429>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24460 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24460;
        inst->prev = 0B;
        D.24461 = inst->prev;
        inst->next = D.24461;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24462 = inst->sreg3;
        inst->sreg2 = D.24462;
        D.24463 = inst->sreg2;
        inst->sreg1 = D.24463;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        inst->data.op[1].const_val = 127;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24464>; else goto <D.24465>;
        <D.24464>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24466>;
        <D.24465>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24466>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24467 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24467;
        inst->prev = 0B;
        D.24468 = inst->prev;
        inst->next = D.24468;
        inst->opcode = 458;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24469 = inst->sreg3;
        inst->sreg2 = D.24469;
        D.24470 = inst->sreg2;
        inst->sreg1 = D.24470;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24471>; else goto <D.24472>;
        <D.24471>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24473>;
        <D.24472>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24473>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.24474 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24474;
        ins->prev = 0B;
        D.24475 = ins->prev;
        ins->next = D.24475;
        ins->opcode = 442;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24476 = ins->sreg3;
        ins->sreg2 = D.24476;
        D.24477 = ins->sreg2;
        ins->sreg1 = D.24477;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (1 != 0) goto <D.24478>; else goto <D.24479>;
        <D.24478>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24480 = D.24342;
        D.24481 = D.24480 + 1;
        cfg->num_bblocks = D.24481;
        D.24482 = (int) D.24480;
        falsebb->block_num = D.24482;
        ins->data.op[0].target_block = end_label;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, end_label);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24483>; else goto <D.24484>;
        <D.24483>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24485>;
        <D.24484>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24485>:
        D.24486 = falsebb->cil_code;
        if (D.24486 != 0B) goto <D.24487>; else goto <D.24488>;
        <D.24487>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24486 = falsebb->cil_code;
        D.24489 = (int) D.24486;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24490 = D.24489 - D.24402;
        D.24491 = (unsigned int) D.24490;
        D.24492 = D.24491 * 4;
        D.24493 = D.24399 + D.24492;
        *D.24493 = falsebb;
        <D.24488>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24497>; else goto <D.24494>;
        <D.24497>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24495>; else goto <D.24498>;
        <D.24498>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24495>; else goto <D.24499>;
        <D.24499>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24495>; else goto <D.24494>;
        <D.24495>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24500>; else goto <D.24494>;
        <D.24500>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24496>;
        <D.24494>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24501>; else goto <D.24503>;
        <D.24503>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24504>; else goto <D.24502>;
        <D.24504>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24505>; else goto <D.24502>;
        <D.24505>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24506>; else goto <D.24502>;
        <D.24506>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24507>; else goto <D.24502>;
        <D.24507>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24501>; else goto <D.24502>;
        <D.24501>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24502>:
        <D.24496>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24508>;
        <D.24479>:
        D.24115 = cfg->mempool;
        D.24509 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.24509;
        D.24510 = ins->data.op[1].many_blocks;
        *D.24510 = end_label;
        D.24510 = ins->data.op[1].many_blocks;
        D.24511 = D.24510 + 4;
        *D.24511 = 0B;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, end_label);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24512>; else goto <D.24513>;
        <D.24512>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24514>;
        <D.24513>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24514>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.24515>; else goto <D.24516>;
        <D.24515>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24517 = D.24342;
        D.24518 = D.24517 + 1;
        cfg->num_bblocks = D.24518;
        D.24519 = (int) D.24517;
        falsebb->block_num = D.24519;
        D.24510 = ins->data.op[1].many_blocks;
        D.24511 = D.24510 + 4;
        *D.24511 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.24486 = falsebb->cil_code;
        if (D.24486 != 0B) goto <D.24520>; else goto <D.24521>;
        <D.24520>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24486 = falsebb->cil_code;
        D.24489 = (int) D.24486;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24490 = D.24489 - D.24402;
        D.24491 = (unsigned int) D.24490;
        D.24492 = D.24491 * 4;
        D.24493 = D.24399 + D.24492;
        *D.24493 = falsebb;
        <D.24521>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24525>; else goto <D.24522>;
        <D.24525>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24523>; else goto <D.24526>;
        <D.24526>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24523>; else goto <D.24527>;
        <D.24527>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24523>; else goto <D.24522>;
        <D.24523>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24528>; else goto <D.24522>;
        <D.24528>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24524>;
        <D.24522>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24529>; else goto <D.24531>;
        <D.24531>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24532>; else goto <D.24530>;
        <D.24532>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24533>; else goto <D.24530>;
        <D.24533>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24534>; else goto <D.24530>;
        <D.24534>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24535>; else goto <D.24530>;
        <D.24535>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24529>; else goto <D.24530>;
        <D.24529>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24530>:
        <D.24524>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24536>;
        <D.24516>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.24536>:
        <D.24508>:
      }
      D.24537 = is_negative->cil_code;
      if (D.24537 != 0B) goto <D.24538>; else goto <D.24539>;
      <D.24538>:
      D.24399 = cfg->cil_offset_to_bb;
      D.24537 = is_negative->cil_code;
      D.24540 = (int) D.24537;
      D.24401 = cfg->cil_start;
      D.24402 = (int) D.24401;
      D.24541 = D.24540 - D.24402;
      D.24542 = (unsigned int) D.24541;
      D.24543 = D.24542 * 4;
      D.24544 = D.24399 + D.24543;
      *D.24544 = is_negative;
      <D.24539>:
      D.24407 = cfg->real_offset;
      is_negative->real_offset = D.24407;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24548>; else goto <D.24545>;
      <D.24548>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 <= 9) goto <D.24546>; else goto <D.24549>;
      <D.24549>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 <= 9) goto <D.24546>; else goto <D.24550>;
      <D.24550>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 <= 9) goto <D.24546>; else goto <D.24545>;
      <D.24546>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      D.24420 = *D.24419;
      if (D.24420 == 0B) goto <D.24551>; else goto <D.24545>;
      <D.24551>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      *D.24419 = is_negative;
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, is_negative);
      goto <D.24547>;
      <D.24545>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 == 0B) goto <D.24552>; else goto <D.24554>;
      <D.24554>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 442) goto <D.24555>; else goto <D.24553>;
      <D.24555>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 759) goto <D.24556>; else goto <D.24553>;
      <D.24556>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 > 9) goto <D.24557>; else goto <D.24553>;
      <D.24557>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 > 9) goto <D.24558>; else goto <D.24553>;
      <D.24558>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 > 9) goto <D.24552>; else goto <D.24553>;
      <D.24552>:
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, is_negative);
      <D.24553>:
      <D.24547>:
      D.24117 = cfg->cbb;
      D.24117->next_bb = is_negative;
      cfg->cbb = is_negative;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24559 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24559;
        inst->prev = 0B;
        D.24560 = inst->prev;
        inst->next = D.24560;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24561 = inst->sreg3;
        inst->sreg2 = D.24561;
        D.24562 = inst->sreg2;
        inst->sreg1 = D.24562;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        inst->data.op[1].const_val = -128;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24563>; else goto <D.24564>;
        <D.24563>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24565>;
        <D.24564>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24565>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24566 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24566;
        inst->prev = 0B;
        D.24567 = inst->prev;
        inst->next = D.24567;
        inst->opcode = 460;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24568 = inst->sreg3;
        inst->sreg2 = D.24568;
        D.24569 = inst->sreg2;
        inst->sreg1 = D.24569;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24570>; else goto <D.24571>;
        <D.24570>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24572>;
        <D.24571>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24572>:
      }
      D.24573 = end_label->cil_code;
      if (D.24573 != 0B) goto <D.24574>; else goto <D.24575>;
      <D.24574>:
      D.24399 = cfg->cil_offset_to_bb;
      D.24573 = end_label->cil_code;
      D.24576 = (int) D.24573;
      D.24401 = cfg->cil_start;
      D.24402 = (int) D.24401;
      D.24577 = D.24576 - D.24402;
      D.24578 = (unsigned int) D.24577;
      D.24579 = D.24578 * 4;
      D.24580 = D.24399 + D.24579;
      *D.24580 = end_label;
      <D.24575>:
      D.24407 = cfg->real_offset;
      end_label->real_offset = D.24407;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24584>; else goto <D.24581>;
      <D.24584>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 <= 9) goto <D.24582>; else goto <D.24585>;
      <D.24585>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 <= 9) goto <D.24582>; else goto <D.24586>;
      <D.24586>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 <= 9) goto <D.24582>; else goto <D.24581>;
      <D.24582>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      D.24420 = *D.24419;
      if (D.24420 == 0B) goto <D.24587>; else goto <D.24581>;
      <D.24587>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      *D.24419 = end_label;
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, end_label);
      goto <D.24583>;
      <D.24581>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 == 0B) goto <D.24588>; else goto <D.24590>;
      <D.24590>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 442) goto <D.24591>; else goto <D.24589>;
      <D.24591>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 759) goto <D.24592>; else goto <D.24589>;
      <D.24592>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 > 9) goto <D.24593>; else goto <D.24589>;
      <D.24593>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 > 9) goto <D.24594>; else goto <D.24589>;
      <D.24594>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 > 9) goto <D.24588>; else goto <D.24589>;
      <D.24588>:
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, end_label);
      <D.24589>:
      <D.24583>:
      D.24117 = cfg->cbb;
      D.24117->next_bb = end_label;
      cfg->cbb = end_label;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24595 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24595;
        inst->prev = 0B;
        D.24596 = inst->prev;
        inst->next = D.24596;
        inst->opcode = 580;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24597 = inst->sreg3;
        inst->sreg2 = D.24597;
        D.24598 = inst->sreg2;
        inst->sreg1 = D.24598;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24126 = tree->dreg;
        inst->dreg = D.24126;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24599>; else goto <D.24600>;
        <D.24599>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24601>;
        <D.24600>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24601>:
      }
      goto <D.23361>;
    }
    <D.23432>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24602 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24602;
      inst->prev = 0B;
      D.24603 = inst->prev;
      inst->next = D.24603;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24604 = inst->sreg3;
      inst->sreg2 = D.24604;
      D.24605 = inst->sreg2;
      inst->sreg1 = D.24605;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24606>; else goto <D.24607>;
      <D.24606>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24608>;
      <D.24607>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24608>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24609 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24609;
      inst->prev = 0B;
      D.24610 = inst->prev;
      inst->next = D.24610;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24611 = inst->sreg3;
      inst->sreg2 = D.24611;
      D.24612 = inst->sreg2;
      inst->sreg1 = D.24612;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24613>; else goto <D.24614>;
      <D.24613>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24615>;
      <D.24614>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24615>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24616 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24616;
      inst->prev = 0B;
      D.24617 = inst->prev;
      inst->next = D.24617;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24618 = inst->sreg3;
      inst->sreg2 = D.24618;
      D.24619 = inst->sreg2;
      inst->sreg1 = D.24619;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 127;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24620>; else goto <D.24621>;
      <D.24620>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24622>;
      <D.24621>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24622>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24623 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24623;
      inst->prev = 0B;
      D.24624 = inst->prev;
      inst->next = D.24624;
      inst->opcode = 453;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24625 = inst->sreg3;
      inst->sreg2 = D.24625;
      D.24626 = inst->sreg2;
      inst->sreg1 = D.24626;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24627>; else goto <D.24628>;
      <D.24627>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24629>;
      <D.24628>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24629>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24630 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24630;
      inst->prev = 0B;
      D.24631 = inst->prev;
      inst->next = D.24631;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24632 = inst->sreg3;
      inst->sreg2 = D.24632;
      D.24633 = inst->sreg2;
      inst->sreg1 = D.24633;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = -128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24634>; else goto <D.24635>;
      <D.24634>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24636>;
      <D.24635>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24636>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24637 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24637;
      inst->prev = 0B;
      D.24638 = inst->prev;
      inst->next = D.24638;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24639 = inst->sreg3;
      inst->sreg2 = D.24639;
      D.24640 = inst->sreg2;
      inst->sreg1 = D.24640;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24641>; else goto <D.24642>;
      <D.24641>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24643>;
      <D.24642>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24643>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24644 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24644;
      inst->prev = 0B;
      D.24645 = inst->prev;
      inst->next = D.24645;
      inst->opcode = 580;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24646 = inst->sreg3;
      inst->sreg2 = D.24646;
      D.24647 = inst->sreg2;
      inst->sreg1 = D.24647;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24648>; else goto <D.24649>;
      <D.24648>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24650>;
      <D.24649>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24650>:
    }
    goto <D.23361>;
    <D.23440>:
    <D.23441>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24651 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24651;
      inst->prev = 0B;
      D.24652 = inst->prev;
      inst->next = D.24652;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24653 = inst->sreg3;
      inst->sreg2 = D.24653;
      D.24654 = inst->sreg2;
      inst->sreg1 = D.24654;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24655>; else goto <D.24656>;
      <D.24655>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24657>;
      <D.24656>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24657>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24658 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24658;
      inst->prev = 0B;
      D.24659 = inst->prev;
      inst->next = D.24659;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24660 = inst->sreg3;
      inst->sreg2 = D.24660;
      D.24661 = inst->sreg2;
      inst->sreg1 = D.24661;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24662>; else goto <D.24663>;
      <D.24662>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24664>;
      <D.24663>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24664>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24665 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24665;
      inst->prev = 0B;
      D.24666 = inst->prev;
      inst->next = D.24666;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24667 = inst->sreg3;
      inst->sreg2 = D.24667;
      D.24668 = inst->sreg2;
      inst->sreg1 = D.24668;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 255;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24669>; else goto <D.24670>;
      <D.24669>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24671>;
      <D.24670>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24671>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24672 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24672;
      inst->prev = 0B;
      D.24673 = inst->prev;
      inst->next = D.24673;
      inst->opcode = 458;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24674 = inst->sreg3;
      inst->sreg2 = D.24674;
      D.24675 = inst->sreg2;
      inst->sreg1 = D.24675;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24676>; else goto <D.24677>;
      <D.24676>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24678>;
      <D.24677>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24678>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24679 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24679;
      inst->prev = 0B;
      D.24680 = inst->prev;
      inst->next = D.24680;
      inst->opcode = 436;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24681 = inst->sreg3;
      inst->sreg2 = D.24681;
      D.24682 = inst->sreg2;
      inst->sreg1 = D.24682;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 255;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24683>; else goto <D.24684>;
      <D.24683>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24685>;
      <D.24684>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24685>:
    }
    goto <D.23361>;
    <D.23447>:
    {
      struct MonoBasicBlock * is_negative;
      struct MonoBasicBlock * end_label;

      D.24115 = cfg->mempool;
      is_negative = mono_mempool_alloc0 (D.24115, 172);
      D.24342 = cfg->num_bblocks;
      D.24686 = D.24342;
      D.24687 = D.24686 + 1;
      cfg->num_bblocks = D.24687;
      D.24688 = (int) D.24686;
      is_negative->block_num = D.24688;
      D.24115 = cfg->mempool;
      end_label = mono_mempool_alloc0 (D.24115, 172);
      D.24342 = cfg->num_bblocks;
      D.24689 = D.24342;
      D.24690 = D.24689 + 1;
      cfg->num_bblocks = D.24690;
      D.24691 = (int) D.24689;
      end_label->block_num = D.24691;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24692 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24692;
        inst->prev = 0B;
        D.24693 = inst->prev;
        inst->next = D.24693;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24694 = inst->sreg3;
        inst->sreg2 = D.24694;
        D.24695 = inst->sreg2;
        inst->sreg1 = D.24695;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = 0;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24696>; else goto <D.24697>;
        <D.24696>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24698>;
        <D.24697>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24698>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24699 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24699;
        inst->prev = 0B;
        D.24700 = inst->prev;
        inst->next = D.24700;
        inst->opcode = 453;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24701 = inst->sreg3;
        inst->sreg2 = D.24701;
        D.24702 = inst->sreg2;
        inst->sreg1 = D.24702;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24703>; else goto <D.24704>;
        <D.24703>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24705>;
        <D.24704>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24705>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24706 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24706;
        inst->prev = 0B;
        D.24707 = inst->prev;
        inst->next = D.24707;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24708 = inst->sreg3;
        inst->sreg2 = D.24708;
        D.24709 = inst->sreg2;
        inst->sreg1 = D.24709;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = -1;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24710>; else goto <D.24711>;
        <D.24710>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24712>;
        <D.24711>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24712>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24713 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24713;
        inst->prev = 0B;
        D.24714 = inst->prev;
        inst->next = D.24714;
        inst->opcode = 455;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24715 = inst->sreg3;
        inst->sreg2 = D.24715;
        D.24716 = inst->sreg2;
        inst->sreg1 = D.24716;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24717>; else goto <D.24718>;
        <D.24717>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24719>;
        <D.24718>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24719>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24720 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24720;
        inst->prev = 0B;
        D.24721 = inst->prev;
        inst->next = D.24721;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24722 = inst->sreg3;
        inst->sreg2 = D.24722;
        D.24723 = inst->sreg2;
        inst->sreg1 = D.24723;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        inst->data.op[1].const_val = 0;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24724>; else goto <D.24725>;
        <D.24724>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24726>;
        <D.24725>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24726>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.24727 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24727;
        ins->prev = 0B;
        D.24728 = ins->prev;
        ins->next = D.24728;
        ins->opcode = 652;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24729 = ins->sreg3;
        ins->sreg2 = D.24729;
        D.24730 = ins->sreg2;
        ins->sreg1 = D.24730;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (0 != 0) goto <D.24731>; else goto <D.24732>;
        <D.24731>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24733 = D.24342;
        D.24734 = D.24733 + 1;
        cfg->num_bblocks = D.24734;
        D.24735 = (int) D.24733;
        falsebb->block_num = D.24735;
        ins->data.op[0].target_block = is_negative;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, is_negative);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24736>; else goto <D.24737>;
        <D.24736>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24738>;
        <D.24737>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24738>:
        D.24739 = falsebb->cil_code;
        if (D.24739 != 0B) goto <D.24740>; else goto <D.24741>;
        <D.24740>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24739 = falsebb->cil_code;
        D.24742 = (int) D.24739;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24743 = D.24742 - D.24402;
        D.24744 = (unsigned int) D.24743;
        D.24745 = D.24744 * 4;
        D.24746 = D.24399 + D.24745;
        *D.24746 = falsebb;
        <D.24741>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24750>; else goto <D.24747>;
        <D.24750>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24748>; else goto <D.24751>;
        <D.24751>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24748>; else goto <D.24752>;
        <D.24752>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24748>; else goto <D.24747>;
        <D.24748>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24753>; else goto <D.24747>;
        <D.24753>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24749>;
        <D.24747>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24754>; else goto <D.24756>;
        <D.24756>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24757>; else goto <D.24755>;
        <D.24757>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24758>; else goto <D.24755>;
        <D.24758>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24759>; else goto <D.24755>;
        <D.24759>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24760>; else goto <D.24755>;
        <D.24760>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24754>; else goto <D.24755>;
        <D.24754>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24755>:
        <D.24749>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24761>;
        <D.24732>:
        D.24115 = cfg->mempool;
        D.24762 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.24762;
        D.24763 = ins->data.op[1].many_blocks;
        *D.24763 = is_negative;
        D.24763 = ins->data.op[1].many_blocks;
        D.24764 = D.24763 + 4;
        *D.24764 = 0B;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, is_negative);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24765>; else goto <D.24766>;
        <D.24765>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24767>;
        <D.24766>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24767>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.24768>; else goto <D.24769>;
        <D.24768>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24770 = D.24342;
        D.24771 = D.24770 + 1;
        cfg->num_bblocks = D.24771;
        D.24772 = (int) D.24770;
        falsebb->block_num = D.24772;
        D.24763 = ins->data.op[1].many_blocks;
        D.24764 = D.24763 + 4;
        *D.24764 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.24739 = falsebb->cil_code;
        if (D.24739 != 0B) goto <D.24773>; else goto <D.24774>;
        <D.24773>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24739 = falsebb->cil_code;
        D.24742 = (int) D.24739;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24743 = D.24742 - D.24402;
        D.24744 = (unsigned int) D.24743;
        D.24745 = D.24744 * 4;
        D.24746 = D.24399 + D.24745;
        *D.24746 = falsebb;
        <D.24774>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24778>; else goto <D.24775>;
        <D.24778>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24776>; else goto <D.24779>;
        <D.24779>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24776>; else goto <D.24780>;
        <D.24780>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24776>; else goto <D.24775>;
        <D.24776>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24781>; else goto <D.24775>;
        <D.24781>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24777>;
        <D.24775>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24782>; else goto <D.24784>;
        <D.24784>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24785>; else goto <D.24783>;
        <D.24785>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24786>; else goto <D.24783>;
        <D.24786>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24787>; else goto <D.24783>;
        <D.24787>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24788>; else goto <D.24783>;
        <D.24788>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24782>; else goto <D.24783>;
        <D.24782>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24783>:
        <D.24777>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24789>;
        <D.24769>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.24789>:
        <D.24761>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24790 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24790;
        inst->prev = 0B;
        D.24791 = inst->prev;
        inst->next = D.24791;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24792 = inst->sreg3;
        inst->sreg2 = D.24792;
        D.24793 = inst->sreg2;
        inst->sreg1 = D.24793;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        inst->data.op[1].const_val = 32767;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24794>; else goto <D.24795>;
        <D.24794>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24796>;
        <D.24795>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24796>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24797 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24797;
        inst->prev = 0B;
        D.24798 = inst->prev;
        inst->next = D.24798;
        inst->opcode = 458;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24799 = inst->sreg3;
        inst->sreg2 = D.24799;
        D.24800 = inst->sreg2;
        inst->sreg1 = D.24800;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24801>; else goto <D.24802>;
        <D.24801>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24803>;
        <D.24802>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24803>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.24804 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24804;
        ins->prev = 0B;
        D.24805 = ins->prev;
        ins->next = D.24805;
        ins->opcode = 442;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24806 = ins->sreg3;
        ins->sreg2 = D.24806;
        D.24807 = ins->sreg2;
        ins->sreg1 = D.24807;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (1 != 0) goto <D.24808>; else goto <D.24809>;
        <D.24808>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24810 = D.24342;
        D.24811 = D.24810 + 1;
        cfg->num_bblocks = D.24811;
        D.24812 = (int) D.24810;
        falsebb->block_num = D.24812;
        ins->data.op[0].target_block = end_label;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, end_label);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24813>; else goto <D.24814>;
        <D.24813>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24815>;
        <D.24814>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24815>:
        D.24816 = falsebb->cil_code;
        if (D.24816 != 0B) goto <D.24817>; else goto <D.24818>;
        <D.24817>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24816 = falsebb->cil_code;
        D.24819 = (int) D.24816;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24820 = D.24819 - D.24402;
        D.24821 = (unsigned int) D.24820;
        D.24822 = D.24821 * 4;
        D.24823 = D.24399 + D.24822;
        *D.24823 = falsebb;
        <D.24818>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24827>; else goto <D.24824>;
        <D.24827>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24825>; else goto <D.24828>;
        <D.24828>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24825>; else goto <D.24829>;
        <D.24829>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24825>; else goto <D.24824>;
        <D.24825>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24830>; else goto <D.24824>;
        <D.24830>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24826>;
        <D.24824>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24831>; else goto <D.24833>;
        <D.24833>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24834>; else goto <D.24832>;
        <D.24834>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24835>; else goto <D.24832>;
        <D.24835>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24836>; else goto <D.24832>;
        <D.24836>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24837>; else goto <D.24832>;
        <D.24837>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24831>; else goto <D.24832>;
        <D.24831>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24832>:
        <D.24826>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24838>;
        <D.24809>:
        D.24115 = cfg->mempool;
        D.24839 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.24839;
        D.24840 = ins->data.op[1].many_blocks;
        *D.24840 = end_label;
        D.24840 = ins->data.op[1].many_blocks;
        D.24841 = D.24840 + 4;
        *D.24841 = 0B;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, end_label);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24842>; else goto <D.24843>;
        <D.24842>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.24844>;
        <D.24843>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24844>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.24845>; else goto <D.24846>;
        <D.24845>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.24847 = D.24342;
        D.24848 = D.24847 + 1;
        cfg->num_bblocks = D.24848;
        D.24849 = (int) D.24847;
        falsebb->block_num = D.24849;
        D.24840 = ins->data.op[1].many_blocks;
        D.24841 = D.24840 + 4;
        *D.24841 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.24816 = falsebb->cil_code;
        if (D.24816 != 0B) goto <D.24850>; else goto <D.24851>;
        <D.24850>:
        D.24399 = cfg->cil_offset_to_bb;
        D.24816 = falsebb->cil_code;
        D.24819 = (int) D.24816;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.24820 = D.24819 - D.24402;
        D.24821 = (unsigned int) D.24820;
        D.24822 = D.24821 * 4;
        D.24823 = D.24399 + D.24822;
        *D.24823 = falsebb;
        <D.24851>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24855>; else goto <D.24852>;
        <D.24855>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.24853>; else goto <D.24856>;
        <D.24856>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.24853>; else goto <D.24857>;
        <D.24857>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.24853>; else goto <D.24852>;
        <D.24853>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.24858>; else goto <D.24852>;
        <D.24858>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.24854>;
        <D.24852>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.24859>; else goto <D.24861>;
        <D.24861>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.24862>; else goto <D.24860>;
        <D.24862>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.24863>; else goto <D.24860>;
        <D.24863>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.24864>; else goto <D.24860>;
        <D.24864>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.24865>; else goto <D.24860>;
        <D.24865>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.24859>; else goto <D.24860>;
        <D.24859>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.24860>:
        <D.24854>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24866>;
        <D.24846>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.24866>:
        <D.24838>:
      }
      D.24867 = is_negative->cil_code;
      if (D.24867 != 0B) goto <D.24868>; else goto <D.24869>;
      <D.24868>:
      D.24399 = cfg->cil_offset_to_bb;
      D.24867 = is_negative->cil_code;
      D.24870 = (int) D.24867;
      D.24401 = cfg->cil_start;
      D.24402 = (int) D.24401;
      D.24871 = D.24870 - D.24402;
      D.24872 = (unsigned int) D.24871;
      D.24873 = D.24872 * 4;
      D.24874 = D.24399 + D.24873;
      *D.24874 = is_negative;
      <D.24869>:
      D.24407 = cfg->real_offset;
      is_negative->real_offset = D.24407;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24878>; else goto <D.24875>;
      <D.24878>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 <= 9) goto <D.24876>; else goto <D.24879>;
      <D.24879>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 <= 9) goto <D.24876>; else goto <D.24880>;
      <D.24880>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 <= 9) goto <D.24876>; else goto <D.24875>;
      <D.24876>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      D.24420 = *D.24419;
      if (D.24420 == 0B) goto <D.24881>; else goto <D.24875>;
      <D.24881>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      *D.24419 = is_negative;
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, is_negative);
      goto <D.24877>;
      <D.24875>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 == 0B) goto <D.24882>; else goto <D.24884>;
      <D.24884>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 442) goto <D.24885>; else goto <D.24883>;
      <D.24885>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 759) goto <D.24886>; else goto <D.24883>;
      <D.24886>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 > 9) goto <D.24887>; else goto <D.24883>;
      <D.24887>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 > 9) goto <D.24888>; else goto <D.24883>;
      <D.24888>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 > 9) goto <D.24882>; else goto <D.24883>;
      <D.24882>:
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, is_negative);
      <D.24883>:
      <D.24877>:
      D.24117 = cfg->cbb;
      D.24117->next_bb = is_negative;
      cfg->cbb = is_negative;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24889 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24889;
        inst->prev = 0B;
        D.24890 = inst->prev;
        inst->next = D.24890;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24891 = inst->sreg3;
        inst->sreg2 = D.24891;
        D.24892 = inst->sreg2;
        inst->sreg1 = D.24892;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        inst->data.op[1].const_val = -32768;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24893>; else goto <D.24894>;
        <D.24893>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24895>;
        <D.24894>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24895>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24896 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24896;
        inst->prev = 0B;
        D.24897 = inst->prev;
        inst->next = D.24897;
        inst->opcode = 460;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24898 = inst->sreg3;
        inst->sreg2 = D.24898;
        D.24899 = inst->sreg2;
        inst->sreg1 = D.24899;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->data.op[1].p = "OverflowException";
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24900>; else goto <D.24901>;
        <D.24900>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24902>;
        <D.24901>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24902>:
      }
      D.24903 = end_label->cil_code;
      if (D.24903 != 0B) goto <D.24904>; else goto <D.24905>;
      <D.24904>:
      D.24399 = cfg->cil_offset_to_bb;
      D.24903 = end_label->cil_code;
      D.24906 = (int) D.24903;
      D.24401 = cfg->cil_start;
      D.24402 = (int) D.24401;
      D.24907 = D.24906 - D.24402;
      D.24908 = (unsigned int) D.24907;
      D.24909 = D.24908 * 4;
      D.24910 = D.24399 + D.24909;
      *D.24910 = end_label;
      <D.24905>:
      D.24407 = cfg->real_offset;
      end_label->real_offset = D.24407;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24914>; else goto <D.24911>;
      <D.24914>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 <= 9) goto <D.24912>; else goto <D.24915>;
      <D.24915>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 <= 9) goto <D.24912>; else goto <D.24916>;
      <D.24916>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 <= 9) goto <D.24912>; else goto <D.24911>;
      <D.24912>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      D.24420 = *D.24419;
      if (D.24420 == 0B) goto <D.24917>; else goto <D.24911>;
      <D.24917>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24418 = D.24118->data.op[1].many_blocks;
      D.24419 = D.24418 + 4;
      *D.24419 = end_label;
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, end_label);
      goto <D.24913>;
      <D.24911>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 == 0B) goto <D.24918>; else goto <D.24920>;
      <D.24920>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 442) goto <D.24921>; else goto <D.24919>;
      <D.24921>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      if (D.24412 != 759) goto <D.24922>; else goto <D.24919>;
      <D.24922>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24413 = D.24412 + 64985;
      if (D.24413 > 9) goto <D.24923>; else goto <D.24919>;
      <D.24923>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24415 = D.24412 + 64878;
      if (D.24415 > 9) goto <D.24924>; else goto <D.24919>;
      <D.24924>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24412 = D.24118->opcode;
      D.24417 = D.24412 + 64888;
      if (D.24417 > 9) goto <D.24918>; else goto <D.24919>;
      <D.24918>:
      D.24117 = cfg->cbb;
      mono_link_bblock (cfg, D.24117, end_label);
      <D.24919>:
      <D.24913>:
      D.24117 = cfg->cbb;
      D.24117->next_bb = end_label;
      cfg->cbb = end_label;
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.24925 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24925;
        inst->prev = 0B;
        D.24926 = inst->prev;
        inst->next = D.24926;
        inst->opcode = 581;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24927 = inst->sreg3;
        inst->sreg2 = D.24927;
        D.24928 = inst->sreg2;
        inst->sreg1 = D.24928;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        D.24126 = tree->dreg;
        inst->dreg = D.24126;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.24929>; else goto <D.24930>;
        <D.24929>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.24931>;
        <D.24930>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.24931>:
      }
      goto <D.23361>;
    }
    <D.23464>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24932 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24932;
      inst->prev = 0B;
      D.24933 = inst->prev;
      inst->next = D.24933;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24934 = inst->sreg3;
      inst->sreg2 = D.24934;
      D.24935 = inst->sreg2;
      inst->sreg1 = D.24935;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24936>; else goto <D.24937>;
      <D.24936>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24938>;
      <D.24937>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24938>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24939 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24939;
      inst->prev = 0B;
      D.24940 = inst->prev;
      inst->next = D.24940;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24941 = inst->sreg3;
      inst->sreg2 = D.24941;
      D.24942 = inst->sreg2;
      inst->sreg1 = D.24942;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24943>; else goto <D.24944>;
      <D.24943>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24945>;
      <D.24944>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24945>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24946 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24946;
      inst->prev = 0B;
      D.24947 = inst->prev;
      inst->next = D.24947;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24948 = inst->sreg3;
      inst->sreg2 = D.24948;
      D.24949 = inst->sreg2;
      inst->sreg1 = D.24949;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 32767;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24950>; else goto <D.24951>;
      <D.24950>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24952>;
      <D.24951>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24952>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24953 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24953;
      inst->prev = 0B;
      D.24954 = inst->prev;
      inst->next = D.24954;
      inst->opcode = 453;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24955 = inst->sreg3;
      inst->sreg2 = D.24955;
      D.24956 = inst->sreg2;
      inst->sreg1 = D.24956;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24957>; else goto <D.24958>;
      <D.24957>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24959>;
      <D.24958>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24959>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24960 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24960;
      inst->prev = 0B;
      D.24961 = inst->prev;
      inst->next = D.24961;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24962 = inst->sreg3;
      inst->sreg2 = D.24962;
      D.24963 = inst->sreg2;
      inst->sreg1 = D.24963;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = -32768;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24964>; else goto <D.24965>;
      <D.24964>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24966>;
      <D.24965>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24966>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24967 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24967;
      inst->prev = 0B;
      D.24968 = inst->prev;
      inst->next = D.24968;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24969 = inst->sreg3;
      inst->sreg2 = D.24969;
      D.24970 = inst->sreg2;
      inst->sreg1 = D.24970;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24971>; else goto <D.24972>;
      <D.24971>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24973>;
      <D.24972>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24973>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24974 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24974;
      inst->prev = 0B;
      D.24975 = inst->prev;
      inst->next = D.24975;
      inst->opcode = 581;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24976 = inst->sreg3;
      inst->sreg2 = D.24976;
      D.24977 = inst->sreg2;
      inst->sreg1 = D.24977;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24978>; else goto <D.24979>;
      <D.24978>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24980>;
      <D.24979>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24980>:
    }
    goto <D.23361>;
    <D.23472>:
    <D.23473>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24981 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24981;
      inst->prev = 0B;
      D.24982 = inst->prev;
      inst->next = D.24982;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24983 = inst->sreg3;
      inst->sreg2 = D.24983;
      D.24984 = inst->sreg2;
      inst->sreg1 = D.24984;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24985>; else goto <D.24986>;
      <D.24985>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24987>;
      <D.24986>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24987>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24988 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24988;
      inst->prev = 0B;
      D.24989 = inst->prev;
      inst->next = D.24989;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24990 = inst->sreg3;
      inst->sreg2 = D.24990;
      D.24991 = inst->sreg2;
      inst->sreg1 = D.24991;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24992>; else goto <D.24993>;
      <D.24992>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.24994>;
      <D.24993>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.24994>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.24995 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24995;
      inst->prev = 0B;
      D.24996 = inst->prev;
      inst->next = D.24996;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24997 = inst->sreg3;
      inst->sreg2 = D.24997;
      D.24998 = inst->sreg2;
      inst->sreg1 = D.24998;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 65535;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.24999>; else goto <D.25000>;
      <D.24999>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25001>;
      <D.25000>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25001>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25002 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25002;
      inst->prev = 0B;
      D.25003 = inst->prev;
      inst->next = D.25003;
      inst->opcode = 458;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25004 = inst->sreg3;
      inst->sreg2 = D.25004;
      D.25005 = inst->sreg2;
      inst->sreg1 = D.25005;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25006>; else goto <D.25007>;
      <D.25006>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25008>;
      <D.25007>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25008>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25009 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25009;
      inst->prev = 0B;
      D.25010 = inst->prev;
      inst->next = D.25010;
      inst->opcode = 436;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25011 = inst->sreg3;
      inst->sreg2 = D.25011;
      D.25012 = inst->sreg2;
      inst->sreg1 = D.25012;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 65535;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25013>; else goto <D.25014>;
      <D.25013>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25015>;
      <D.25014>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25015>:
    }
    goto <D.23361>;
    <D.23479>:
    <D.23480>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25016 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25016;
      inst->prev = 0B;
      D.25017 = inst->prev;
      inst->next = D.25017;
      inst->opcode = 564;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25018 = inst->sreg3;
      inst->sreg2 = D.25018;
      D.25019 = inst->sreg2;
      inst->sreg1 = D.25019;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg2 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25020>; else goto <D.25021>;
      <D.25020>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25022>;
      <D.25021>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25022>:
    }
    goto <D.23361>;
    <D.23482>:
    <D.23483>:
    <D.23484>:
    <D.23485>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25023 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25023;
      inst->prev = 0B;
      D.25024 = inst->prev;
      inst->next = D.25024;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25025 = inst->sreg3;
      inst->sreg2 = D.25025;
      D.25026 = inst->sreg2;
      inst->sreg1 = D.25026;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25027>; else goto <D.25028>;
      <D.25027>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25029>;
      <D.25028>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25029>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25030 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25030;
      inst->prev = 0B;
      D.25031 = inst->prev;
      inst->next = D.25031;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25032 = inst->sreg3;
      inst->sreg2 = D.25032;
      D.25033 = inst->sreg2;
      inst->sreg1 = D.25033;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25034>; else goto <D.25035>;
      <D.25034>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25036>;
      <D.25035>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25036>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25037 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25037;
      inst->prev = 0B;
      D.25038 = inst->prev;
      inst->next = D.25038;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25039 = inst->sreg3;
      inst->sreg2 = D.25039;
      D.25040 = inst->sreg2;
      inst->sreg1 = D.25040;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25041>; else goto <D.25042>;
      <D.25041>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25043>;
      <D.25042>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25043>:
    }
    goto <D.23361>;
    <D.23489>:
    <D.23490>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25044 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25044;
      inst->prev = 0B;
      D.25045 = inst->prev;
      inst->next = D.25045;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25046 = inst->sreg3;
      inst->sreg2 = D.25046;
      D.25047 = inst->sreg2;
      inst->sreg1 = D.25047;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25048>; else goto <D.25049>;
      <D.25048>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25050>;
      <D.25049>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25050>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25051 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25051;
      inst->prev = 0B;
      D.25052 = inst->prev;
      inst->next = D.25052;
      inst->opcode = 456;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25053 = inst->sreg3;
      inst->sreg2 = D.25053;
      D.25054 = inst->sreg2;
      inst->sreg1 = D.25054;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25055>; else goto <D.25056>;
      <D.25055>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25057>;
      <D.25056>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25057>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25058 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25058;
      inst->prev = 0B;
      D.25059 = inst->prev;
      inst->next = D.25059;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25060 = inst->sreg3;
      inst->sreg2 = D.25060;
      D.25061 = inst->sreg2;
      inst->sreg1 = D.25061;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25062>; else goto <D.25063>;
      <D.25062>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25064>;
      <D.25063>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25064>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25065 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25065;
      inst->prev = 0B;
      D.25066 = inst->prev;
      inst->next = D.25066;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25067 = inst->sreg3;
      inst->sreg2 = D.25067;
      D.25068 = inst->sreg2;
      inst->sreg1 = D.25068;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25069>; else goto <D.25070>;
      <D.25069>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25071>;
      <D.25070>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25071>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25072 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25072;
      inst->prev = 0B;
      D.25073 = inst->prev;
      inst->next = D.25073;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25074 = inst->sreg3;
      inst->sreg2 = D.25074;
      D.25075 = inst->sreg2;
      inst->sreg1 = D.25075;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      inst->dreg = D.24126;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25076>; else goto <D.25077>;
      <D.25076>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25078>;
      <D.25077>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25078>:
    }
    goto <D.23361>;
    <D.23496>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25079 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25079;
      inst->prev = 0B;
      D.25080 = inst->prev;
      inst->next = D.25080;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25081 = inst->sreg3;
      inst->sreg2 = D.25081;
      D.25082 = inst->sreg2;
      inst->sreg1 = D.25082;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25083>; else goto <D.25084>;
      <D.25083>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25085>;
      <D.25084>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25085>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25086 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25086;
      inst->prev = 0B;
      D.25087 = inst->prev;
      inst->next = D.25087;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25088 = inst->sreg3;
      inst->sreg2 = D.25088;
      D.25089 = inst->sreg2;
      inst->sreg1 = D.25089;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25090>; else goto <D.25091>;
      <D.25090>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25092>;
      <D.25091>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25092>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25093 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25093;
      inst->prev = 0B;
      D.25094 = inst->prev;
      inst->next = D.25094;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25095 = inst->sreg3;
      inst->sreg2 = D.25095;
      D.25096 = inst->sreg2;
      inst->sreg1 = D.25096;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25097>; else goto <D.25098>;
      <D.25097>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25099>;
      <D.25098>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25099>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25100 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25100;
      inst->prev = 0B;
      D.25101 = inst->prev;
      inst->next = D.25101;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25102 = inst->sreg3;
      inst->sreg2 = D.25102;
      D.25103 = inst->sreg2;
      inst->sreg1 = D.25103;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25104>; else goto <D.25105>;
      <D.25104>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25106>;
      <D.25105>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25106>:
    }
    goto <D.23361>;
    <D.23501>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25107 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25107;
      inst->prev = 0B;
      D.25108 = inst->prev;
      inst->next = D.25108;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25109 = inst->sreg3;
      inst->sreg2 = D.25109;
      D.25110 = inst->sreg2;
      inst->sreg1 = D.25110;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->dreg = -1;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      inst->data.op[1].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25111>; else goto <D.25112>;
      <D.25111>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25113>;
      <D.25112>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25113>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25114 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25114;
      inst->prev = 0B;
      D.25115 = inst->prev;
      inst->next = D.25115;
      inst->opcode = 455;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25116 = inst->sreg3;
      inst->sreg2 = D.25116;
      D.25117 = inst->sreg2;
      inst->sreg1 = D.25117;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25118>; else goto <D.25119>;
      <D.25118>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25120>;
      <D.25119>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25120>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25121 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25121;
      inst->prev = 0B;
      D.25122 = inst->prev;
      inst->next = D.25122;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25123 = inst->sreg3;
      inst->sreg2 = D.25123;
      D.25124 = inst->sreg2;
      inst->sreg1 = D.25124;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25125>; else goto <D.25126>;
      <D.25125>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25127>;
      <D.25126>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25127>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25128 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25128;
      inst->prev = 0B;
      D.25129 = inst->prev;
      inst->next = D.25129;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25130 = inst->sreg3;
      inst->sreg2 = D.25130;
      D.25131 = inst->sreg2;
      inst->sreg1 = D.25131;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25132>; else goto <D.25133>;
      <D.25132>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25134>;
      <D.25133>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25134>:
    }
    goto <D.23361>;
    <D.23506>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25135 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25135;
      inst->prev = 0B;
      D.25136 = inst->prev;
      inst->next = D.25136;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25137 = inst->sreg3;
      inst->sreg2 = D.25137;
      D.25138 = inst->sreg2;
      inst->sreg1 = D.25138;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25141>; else goto <D.25142>;
      <D.25141>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25143>;
      <D.25142>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25143>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25144 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25144;
      inst->prev = 0B;
      D.25145 = inst->prev;
      inst->next = D.25145;
      inst->opcode = 619;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25146 = inst->sreg3;
      inst->sreg2 = D.25146;
      D.25147 = inst->sreg2;
      inst->sreg1 = D.25147;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25149>; else goto <D.25150>;
      <D.25149>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25151>;
      <D.25150>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25151>:
    }
    goto <D.23361>;
    <D.23509>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25152 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25152;
      inst->prev = 0B;
      D.25153 = inst->prev;
      inst->next = D.25153;
      inst->opcode = 624;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25154 = inst->sreg3;
      inst->sreg2 = D.25154;
      D.25155 = inst->sreg2;
      inst->sreg1 = D.25155;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25156>; else goto <D.25157>;
      <D.25156>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25158>;
      <D.25157>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25158>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25159 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25159;
      inst->prev = 0B;
      D.25160 = inst->prev;
      inst->next = D.25160;
      inst->opcode = 621;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25161 = inst->sreg3;
      inst->sreg2 = D.25161;
      D.25162 = inst->sreg2;
      inst->sreg1 = D.25162;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25163>; else goto <D.25164>;
      <D.25163>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25165>;
      <D.25164>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25165>:
    }
    goto <D.23361>;
    <D.23512>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25166 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25166;
      inst->prev = 0B;
      D.25167 = inst->prev;
      inst->next = D.25167;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25168 = inst->sreg3;
      inst->sreg2 = D.25168;
      D.25169 = inst->sreg2;
      inst->sreg1 = D.25169;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25170>; else goto <D.25171>;
      <D.25170>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25172>;
      <D.25171>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25172>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25173 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25173;
      inst->prev = 0B;
      D.25174 = inst->prev;
      inst->next = D.25174;
      inst->opcode = 619;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25175 = inst->sreg3;
      inst->sreg2 = D.25175;
      D.25176 = inst->sreg2;
      inst->sreg1 = D.25176;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25177>; else goto <D.25178>;
      <D.25177>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25179>;
      <D.25178>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25179>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25180 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25180;
      inst->prev = 0B;
      D.25181 = inst->prev;
      inst->next = D.25181;
      inst->opcode = 461;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25182 = inst->sreg3;
      inst->sreg2 = D.25182;
      D.25183 = inst->sreg2;
      inst->sreg1 = D.25183;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25184>; else goto <D.25185>;
      <D.25184>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25186>;
      <D.25185>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25186>:
    }
    goto <D.23361>;
    <D.23516>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25187 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25187;
      inst->prev = 0B;
      D.25188 = inst->prev;
      inst->next = D.25188;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25189 = inst->sreg3;
      inst->sreg2 = D.25189;
      D.25190 = inst->sreg2;
      inst->sreg1 = D.25190;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25191>; else goto <D.25192>;
      <D.25191>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25193>;
      <D.25192>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25193>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25194 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25194;
      inst->prev = 0B;
      D.25195 = inst->prev;
      inst->next = D.25195;
      inst->opcode = 619;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25196 = inst->sreg3;
      inst->sreg2 = D.25196;
      D.25197 = inst->sreg2;
      inst->sreg1 = D.25197;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25198>; else goto <D.25199>;
      <D.25198>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25200>;
      <D.25199>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25200>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25201 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25201;
      inst->prev = 0B;
      D.25202 = inst->prev;
      inst->next = D.25202;
      inst->opcode = 463;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25203 = inst->sreg3;
      inst->sreg2 = D.25203;
      D.25204 = inst->sreg2;
      inst->sreg1 = D.25204;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25205>; else goto <D.25206>;
      <D.25205>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25207>;
      <D.25206>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25207>:
    }
    goto <D.23361>;
    <D.23520>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25208 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25208;
      inst->prev = 0B;
      D.25209 = inst->prev;
      inst->next = D.25209;
      inst->opcode = 624;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25210 = inst->sreg3;
      inst->sreg2 = D.25210;
      D.25211 = inst->sreg2;
      inst->sreg1 = D.25211;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25212>; else goto <D.25213>;
      <D.25212>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25214>;
      <D.25213>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25214>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25215 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25215;
      inst->prev = 0B;
      D.25216 = inst->prev;
      inst->next = D.25216;
      inst->opcode = 621;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25217 = inst->sreg3;
      inst->sreg2 = D.25217;
      D.25218 = inst->sreg2;
      inst->sreg1 = D.25218;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25219>; else goto <D.25220>;
      <D.25219>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25221>;
      <D.25220>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25221>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25222 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25222;
      inst->prev = 0B;
      D.25223 = inst->prev;
      inst->next = D.25223;
      inst->opcode = 461;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25224 = inst->sreg3;
      inst->sreg2 = D.25224;
      D.25225 = inst->sreg2;
      inst->sreg1 = D.25225;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25226>; else goto <D.25227>;
      <D.25226>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25228>;
      <D.25227>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25228>:
    }
    goto <D.23361>;
    <D.23524>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25229 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25229;
      inst->prev = 0B;
      D.25230 = inst->prev;
      inst->next = D.25230;
      inst->opcode = 624;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25231 = inst->sreg3;
      inst->sreg2 = D.25231;
      D.25232 = inst->sreg2;
      inst->sreg1 = D.25232;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25233>; else goto <D.25234>;
      <D.25233>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25235>;
      <D.25234>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25235>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25236 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25236;
      inst->prev = 0B;
      D.25237 = inst->prev;
      inst->next = D.25237;
      inst->opcode = 621;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25238 = inst->sreg3;
      inst->sreg2 = D.25238;
      D.25239 = inst->sreg2;
      inst->sreg1 = D.25239;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25240>; else goto <D.25241>;
      <D.25240>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25242>;
      <D.25241>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25242>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25243 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25243;
      inst->prev = 0B;
      D.25244 = inst->prev;
      inst->next = D.25244;
      inst->opcode = 463;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25245 = inst->sreg3;
      inst->sreg2 = D.25245;
      D.25246 = inst->sreg2;
      inst->sreg1 = D.25246;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      inst->data.op[1].p = "OverflowException";
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25247>; else goto <D.25248>;
      <D.25247>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25249>;
      <D.25248>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25249>:
    }
    goto <D.23361>;
    <D.23528>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25250 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25250;
      inst->prev = 0B;
      D.25251 = inst->prev;
      inst->next = D.25251;
      inst->opcode = 572;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25252 = inst->sreg3;
      inst->sreg2 = D.25252;
      D.25253 = inst->sreg2;
      inst->sreg1 = D.25253;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25254>; else goto <D.25255>;
      <D.25254>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25256>;
      <D.25255>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25256>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25257 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25257;
      inst->prev = 0B;
      D.25258 = inst->prev;
      inst->next = D.25258;
      inst->opcode = 572;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25259 = inst->sreg3;
      inst->sreg2 = D.25259;
      D.25260 = inst->sreg2;
      inst->sreg1 = D.25260;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25261>; else goto <D.25262>;
      <D.25261>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25263>;
      <D.25262>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25263>:
    }
    goto <D.23361>;
    <D.23531>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25264 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25264;
      inst->prev = 0B;
      D.25265 = inst->prev;
      inst->next = D.25265;
      inst->opcode = 573;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25266 = inst->sreg3;
      inst->sreg2 = D.25266;
      D.25267 = inst->sreg2;
      inst->sreg1 = D.25267;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25268>; else goto <D.25269>;
      <D.25268>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25270>;
      <D.25269>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25270>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25271 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25271;
      inst->prev = 0B;
      D.25272 = inst->prev;
      inst->next = D.25272;
      inst->opcode = 573;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25273 = inst->sreg3;
      inst->sreg2 = D.25273;
      D.25274 = inst->sreg2;
      inst->sreg1 = D.25274;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25275>; else goto <D.25276>;
      <D.25275>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25277>;
      <D.25276>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25277>:
    }
    goto <D.23361>;
    <D.23534>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25278 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25278;
      inst->prev = 0B;
      D.25279 = inst->prev;
      inst->next = D.25279;
      inst->opcode = 574;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25280 = inst->sreg3;
      inst->sreg2 = D.25280;
      D.25281 = inst->sreg2;
      inst->sreg1 = D.25281;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.25139 = tree->sreg2;
      D.25140 = D.25139 + 1;
      inst->sreg2 = D.25140;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25282>; else goto <D.25283>;
      <D.25282>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25284>;
      <D.25283>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25284>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25285 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25285;
      inst->prev = 0B;
      D.25286 = inst->prev;
      inst->next = D.25286;
      inst->opcode = 574;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25287 = inst->sreg3;
      inst->sreg2 = D.25287;
      D.25288 = inst->sreg2;
      inst->sreg1 = D.25288;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.25139 = tree->sreg2;
      D.25148 = D.25139 + 2;
      inst->sreg2 = D.25148;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25289>; else goto <D.25290>;
      <D.25289>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25291>;
      <D.25290>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25291>:
    }
    goto <D.23361>;
    <D.23537>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25292 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25292;
      inst->prev = 0B;
      D.25293 = inst->prev;
      inst->next = D.25293;
      inst->opcode = 579;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25294 = inst->sreg3;
      inst->sreg2 = D.25294;
      D.25295 = inst->sreg2;
      inst->sreg1 = D.25295;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25296>; else goto <D.25297>;
      <D.25296>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25298>;
      <D.25297>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25298>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25299 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25299;
      inst->prev = 0B;
      D.25300 = inst->prev;
      inst->next = D.25300;
      inst->opcode = 579;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25301 = inst->sreg3;
      inst->sreg2 = D.25301;
      D.25302 = inst->sreg2;
      inst->sreg1 = D.25302;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25303>; else goto <D.25304>;
      <D.25303>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25305>;
      <D.25304>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25305>:
    }
    goto <D.23361>;
    <D.23540>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 840);
    <D.23541>:
    goto <D.23361>;
    <D.23542>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25306 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25306;
      inst->prev = 0B;
      D.25307 = inst->prev;
      inst->next = D.25307;
      inst->opcode = 756;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25308 = inst->sreg3;
      inst->sreg2 = D.25308;
      D.25309 = inst->sreg2;
      inst->sreg1 = D.25309;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25310>; else goto <D.25311>;
      <D.25310>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25312>;
      <D.25311>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25312>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25313 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25313;
      inst->prev = 0B;
      D.25314 = inst->prev;
      inst->next = D.25314;
      inst->opcode = 752;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25315 = inst->sreg3;
      inst->sreg2 = D.25315;
      D.25316 = inst->sreg2;
      inst->sreg1 = D.25316;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25317>; else goto <D.25318>;
      <D.25317>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25319>;
      <D.25318>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25319>:
    }
    goto <D.23361>;
    <D.23545>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25320 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25320;
      inst->prev = 0B;
      D.25321 = inst->prev;
      inst->next = D.25321;
      inst->opcode = 758;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25322 = inst->sreg3;
      inst->sreg2 = D.25322;
      D.25323 = inst->sreg2;
      inst->sreg1 = D.25323;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25324>; else goto <D.25325>;
      <D.25324>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25326>;
      <D.25325>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25326>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25327 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25327;
      inst->prev = 0B;
      D.25328 = inst->prev;
      inst->next = D.25328;
      inst->opcode = 754;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25329 = inst->sreg3;
      inst->sreg2 = D.25329;
      D.25330 = inst->sreg2;
      inst->sreg1 = D.25330;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25331>; else goto <D.25332>;
      <D.25331>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25333>;
      <D.25332>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25333>:
    }
    goto <D.23361>;
    <D.23548>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25334 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25334;
      inst->prev = 0B;
      D.25335 = inst->prev;
      inst->next = D.25335;
      inst->opcode = 436;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25336 = inst->sreg3;
      inst->sreg2 = D.25336;
      D.25337 = inst->sreg2;
      inst->sreg1 = D.25337;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25338>; else goto <D.25339>;
      <D.25338>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25340>;
      <D.25339>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25340>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25341 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25341;
      inst->prev = 0B;
      D.25342 = inst->prev;
      inst->next = D.25342;
      inst->opcode = 436;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25343 = inst->sreg3;
      inst->sreg2 = D.25343;
      D.25344 = inst->sreg2;
      inst->sreg1 = D.25344;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25345>; else goto <D.25346>;
      <D.25345>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25347>;
      <D.25346>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25347>:
    }
    goto <D.23361>;
    <D.23551>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25348 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25348;
      inst->prev = 0B;
      D.25349 = inst->prev;
      inst->next = D.25349;
      inst->opcode = 437;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25350 = inst->sreg3;
      inst->sreg2 = D.25350;
      D.25351 = inst->sreg2;
      inst->sreg1 = D.25351;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25352>; else goto <D.25353>;
      <D.25352>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25354>;
      <D.25353>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25354>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25355 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25355;
      inst->prev = 0B;
      D.25356 = inst->prev;
      inst->next = D.25356;
      inst->opcode = 437;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25357 = inst->sreg3;
      inst->sreg2 = D.25357;
      D.25358 = inst->sreg2;
      inst->sreg1 = D.25358;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25359>; else goto <D.25360>;
      <D.25359>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25361>;
      <D.25360>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25361>:
    }
    goto <D.23361>;
    <D.23554>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25362 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25362;
      inst->prev = 0B;
      D.25363 = inst->prev;
      inst->next = D.25363;
      inst->opcode = 438;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25364 = inst->sreg3;
      inst->sreg2 = D.25364;
      D.25365 = inst->sreg2;
      inst->sreg1 = D.25365;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24128 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24128;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25366>; else goto <D.25367>;
      <D.25366>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25368>;
      <D.25367>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25368>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25369 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25369;
      inst->prev = 0B;
      D.25370 = inst->prev;
      inst->next = D.25370;
      inst->opcode = 438;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25371 = inst->sreg3;
      inst->sreg2 = D.25371;
      D.25372 = inst->sreg2;
      inst->sreg1 = D.25372;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24137 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24137;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25373>; else goto <D.25374>;
      <D.25373>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25375>;
      <D.25374>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25375>:
    }
    goto <D.23361>;
    <D.23557>:
    D.24137 = tree->data.op[1].const_val;
    if (D.24137 == 32) goto <D.25376>; else goto <D.25377>;
    <D.25376>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25378 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25378;
      inst->prev = 0B;
      D.25379 = inst->prev;
      inst->next = D.25379;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25380 = inst->sreg3;
      inst->sreg2 = D.25380;
      D.25381 = inst->sreg2;
      inst->sreg1 = D.25381;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      D.24145 = tree->sreg1;
      D.24154 = D.24145 + 2;
      inst->sreg1 = D.24154;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25382>; else goto <D.25383>;
      <D.25382>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25384>;
      <D.25383>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25384>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25385 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25385;
      inst->prev = 0B;
      D.25386 = inst->prev;
      inst->next = D.25386;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25387 = inst->sreg3;
      inst->sreg2 = D.25387;
      D.25388 = inst->sreg2;
      inst->sreg1 = D.25388;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      inst->data.op[0].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25389>; else goto <D.25390>;
      <D.25389>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25391>;
      <D.25390>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25391>:
    }
    <D.25377>:
    goto <D.23361>;
    <D.23560>:
    D.24137 = tree->data.op[1].const_val;
    if (D.24137 == 32) goto <D.25392>; else goto <D.25393>;
    <D.25392>:
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25394 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25394;
      inst->prev = 0B;
      D.25395 = inst->prev;
      inst->next = D.25395;
      inst->opcode = 424;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25396 = inst->sreg3;
      inst->sreg2 = D.25396;
      D.25397 = inst->sreg2;
      inst->sreg1 = D.25397;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24136 = D.24126 + 2;
      inst->dreg = D.24136;
      D.24145 = tree->sreg1;
      D.24146 = D.24145 + 1;
      inst->sreg1 = D.24146;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25398>; else goto <D.25399>;
      <D.25398>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25400>;
      <D.25399>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25400>:
    }
    {
      struct MonoInst * inst;

      D.24115 = cfg->mempool;
      inst = mono_mempool_alloc (D.24115, 56);
      inst->data.op[1].const_val = 0;
      D.25401 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25401;
      inst->prev = 0B;
      D.25402 = inst->prev;
      inst->next = D.25402;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25403 = inst->sreg3;
      inst->sreg2 = D.25403;
      D.25404 = inst->sreg2;
      inst->sreg1 = D.25404;
      D.24125 = cfg->ip;
      inst->cil_code = D.24125;
      D.24126 = tree->dreg;
      D.24127 = D.24126 + 1;
      inst->dreg = D.24127;
      inst->data.op[0].const_val = 0;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      if (D.24118 != 0B) goto <D.25405>; else goto <D.25406>;
      <D.25405>:
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      D.24118->next = inst;
      D.24117 = cfg->cbb;
      D.24118 = D.24117->last_ins;
      inst->prev = D.24118;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      goto <D.25407>;
      <D.25406>:
      D.24117 = cfg->cbb;
      D.24117 = cfg->cbb;
      D.24117->last_ins = inst;
      D.24118 = D.24117->last_ins;
      D.24117->code = D.24118;
      <D.25407>:
    }
    <D.25393>:
    goto <D.23361>;
    <D.23563>:
    {
      struct MonoInst * next;

      next = tree->next;
      D.25408 = next == 0B;
      D.25409 = (long int) D.25408;
      D.25410 = __builtin_expect (D.25409, 0);
      if (D.25410 != 0) goto <D.25411>; else goto <D.25412>;
      <D.25411>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 892, "next");
      <D.25412>:
      D.25413 = next->opcode;
      D.25414 = (int) D.25413;
      switch (D.25414) <default: <D.23616>, case 531: <D.23591>, case 532: <D.23601>, case 533: <D.23602>, case 534: <D.23599>, case 535: <D.23600>, case 551: <D.23565>, case 552: <D.23575>, case 553: <D.23576>, case 554: <D.23577>, case 555: <D.23578>, case 556: <D.23566>, case 557: <D.23579>, case 558: <D.23580>, case 559: <D.23581>, case 560: <D.23582>>
      <D.23565>:
      <D.23566>:
      {
        int d1;
        int d2;

        D.25415 = alloc_ireg (cfg);
        d1 = (int) D.25415;
        D.25416 = alloc_ireg (cfg);
        d2 = (int) D.25416;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25417 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25417;
          inst->prev = 0B;
          D.25418 = inst->prev;
          inst->next = D.25418;
          inst->opcode = 574;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25419 = inst->sreg3;
          inst->sreg2 = D.25419;
          D.25420 = inst->sreg2;
          inst->sreg1 = D.25420;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          D.24145 = tree->sreg1;
          D.24146 = D.24145 + 1;
          inst->sreg1 = D.24146;
          D.25139 = tree->sreg2;
          D.25140 = D.25139 + 1;
          inst->sreg2 = D.25140;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25421>; else goto <D.25422>;
          <D.25421>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25423>;
          <D.25422>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25423>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25424 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25424;
          inst->prev = 0B;
          D.25425 = inst->prev;
          inst->next = D.25425;
          inst->opcode = 574;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25426 = inst->sreg3;
          inst->sreg2 = D.25426;
          D.25427 = inst->sreg2;
          inst->sreg1 = D.25427;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d2;
          D.24145 = tree->sreg1;
          D.24154 = D.24145 + 2;
          inst->sreg1 = D.24154;
          D.25139 = tree->sreg2;
          D.25148 = D.25139 + 2;
          inst->sreg2 = D.25148;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25428>; else goto <D.25429>;
          <D.25428>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25430>;
          <D.25429>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25430>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25431 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25431;
          inst->prev = 0B;
          D.25432 = inst->prev;
          inst->next = D.25432;
          inst->opcode = 573;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25433 = inst->sreg3;
          inst->sreg2 = D.25433;
          D.25434 = inst->sreg2;
          inst->sreg1 = D.25434;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25435>; else goto <D.25436>;
          <D.25435>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25437>;
          <D.25436>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25437>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25438 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25438;
          inst->prev = 0B;
          D.25439 = inst->prev;
          inst->next = D.25439;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25440 = inst->sreg3;
          inst->sreg2 = D.25440;
          D.25441 = inst->sreg2;
          inst->sreg1 = D.25441;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25442>; else goto <D.25443>;
          <D.25442>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25444>;
          <D.25443>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25444>:
        }
        {
          struct MonoInst * ins;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.25445 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25445;
          ins->prev = 0B;
          D.25446 = ins->prev;
          ins->next = D.25446;
          D.25413 = next->opcode;
          if (D.25413 == 551) goto <D.25448>; else goto <D.25449>;
          <D.25448>:
          iftmp.3 = 648;
          goto <D.25450>;
          <D.25449>:
          iftmp.3 = 653;
          <D.25450>:
          ins->opcode = iftmp.3;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25451 = ins->sreg3;
          ins->sreg2 = D.25451;
          D.25452 = ins->sreg2;
          ins->sreg1 = D.25452;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.24115 = cfg->mempool;
          D.25453 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.25453;
          D.25454 = ins->data.op[1].many_blocks;
          D.25455 = next->data.op[1].many_blocks;
          D.25456 = *D.25455;
          *D.25454 = D.25456;
          D.25454 = ins->data.op[1].many_blocks;
          D.25457 = D.25454 + 4;
          D.25455 = next->data.op[1].many_blocks;
          D.25458 = MEM[(struct MonoBasicBlock * *)D.25455 + 4B];
          *D.25457 = D.25458;
          D.24117 = cfg->cbb;
          D.25455 = next->data.op[1].many_blocks;
          D.25456 = *D.25455;
          mono_link_bblock (cfg, D.24117, D.25456);
          D.24117 = cfg->cbb;
          D.25455 = next->data.op[1].many_blocks;
          D.25459 = D.25455 + 4;
          D.25460 = *D.25459;
          mono_link_bblock (cfg, D.24117, D.25460);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25461>; else goto <D.25462>;
          <D.25461>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25463>;
          <D.25462>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25463>:
        }
        next->opcode = 316;
        goto <D.23574>;
      }
      <D.23575>:
      <D.23576>:
      <D.23577>:
      <D.23578>:
      <D.23579>:
      <D.23580>:
      <D.23581>:
      <D.23582>:
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.25464 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25464;
        inst->prev = 0B;
        D.25465 = inst->prev;
        inst->next = D.25465;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25466 = inst->sreg3;
        inst->sreg2 = D.25466;
        D.25467 = inst->sreg2;
        inst->sreg1 = D.25467;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        D.25139 = tree->sreg2;
        D.25148 = D.25139 + 2;
        inst->sreg2 = D.25148;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25468>; else goto <D.25469>;
        <D.25468>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.25470>;
        <D.25469>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25470>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.25471 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.25471;
        ins->prev = 0B;
        D.25472 = ins->prev;
        ins->next = D.25472;
        D.25413 = next->opcode;
        D.25414 = (int) D.25413;
        D.25473 = D.25414 + -551;
        D.25474 = lbr_decomp[D.25473][0];
        D.25475 = (short unsigned int) D.25474;
        ins->opcode = D.25475;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.25476 = ins->sreg3;
        ins->sreg2 = D.25476;
        D.25477 = ins->sreg2;
        ins->sreg1 = D.25477;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        D.25413 = next->opcode;
        D.25414 = (int) D.25413;
        D.25473 = D.25414 + -551;
        D.25474 = lbr_decomp[D.25473][0];
        if (D.25474 == 442) goto <D.25478>; else goto <D.25479>;
        <D.25478>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25480 = D.24342;
        D.25481 = D.25480 + 1;
        cfg->num_bblocks = D.25481;
        D.25482 = (int) D.25480;
        falsebb->block_num = D.25482;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        ins->data.op[0].target_block = D.25456;
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        mono_link_bblock (cfg, D.24117, D.25456);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25483>; else goto <D.25484>;
        <D.25483>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.25485>;
        <D.25484>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25485>:
        D.25486 = falsebb->cil_code;
        if (D.25486 != 0B) goto <D.25487>; else goto <D.25488>;
        <D.25487>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25486 = falsebb->cil_code;
        D.25489 = (int) D.25486;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25490 = D.25489 - D.24402;
        D.25491 = (unsigned int) D.25490;
        D.25492 = D.25491 * 4;
        D.25493 = D.24399 + D.25492;
        *D.25493 = falsebb;
        <D.25488>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25497>; else goto <D.25494>;
        <D.25497>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25495>; else goto <D.25498>;
        <D.25498>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25495>; else goto <D.25499>;
        <D.25499>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25495>; else goto <D.25494>;
        <D.25495>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25500>; else goto <D.25494>;
        <D.25500>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.25496>;
        <D.25494>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25501>; else goto <D.25503>;
        <D.25503>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25504>; else goto <D.25502>;
        <D.25504>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25505>; else goto <D.25502>;
        <D.25505>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25506>; else goto <D.25502>;
        <D.25506>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25507>; else goto <D.25502>;
        <D.25507>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25501>; else goto <D.25502>;
        <D.25501>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.25502>:
        <D.25496>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25508>;
        <D.25479>:
        D.24115 = cfg->mempool;
        D.25509 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.25509;
        D.25510 = ins->data.op[1].many_blocks;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        *D.25510 = D.25456;
        D.25510 = ins->data.op[1].many_blocks;
        D.25511 = D.25510 + 4;
        *D.25511 = 0B;
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        mono_link_bblock (cfg, D.24117, D.25456);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25512>; else goto <D.25513>;
        <D.25512>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.25514>;
        <D.25513>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25514>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.25515>; else goto <D.25516>;
        <D.25515>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25517 = D.24342;
        D.25518 = D.25517 + 1;
        cfg->num_bblocks = D.25518;
        D.25519 = (int) D.25517;
        falsebb->block_num = D.25519;
        D.25510 = ins->data.op[1].many_blocks;
        D.25511 = D.25510 + 4;
        *D.25511 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.25486 = falsebb->cil_code;
        if (D.25486 != 0B) goto <D.25520>; else goto <D.25521>;
        <D.25520>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25486 = falsebb->cil_code;
        D.25489 = (int) D.25486;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25490 = D.25489 - D.24402;
        D.25491 = (unsigned int) D.25490;
        D.25492 = D.25491 * 4;
        D.25493 = D.24399 + D.25492;
        *D.25493 = falsebb;
        <D.25521>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25525>; else goto <D.25522>;
        <D.25525>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25523>; else goto <D.25526>;
        <D.25526>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25523>; else goto <D.25527>;
        <D.25527>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25523>; else goto <D.25522>;
        <D.25523>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25528>; else goto <D.25522>;
        <D.25528>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.25524>;
        <D.25522>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25529>; else goto <D.25531>;
        <D.25531>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25532>; else goto <D.25530>;
        <D.25532>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25533>; else goto <D.25530>;
        <D.25533>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25534>; else goto <D.25530>;
        <D.25534>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25535>; else goto <D.25530>;
        <D.25535>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25529>; else goto <D.25530>;
        <D.25529>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.25530>:
        <D.25524>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25536>;
        <D.25516>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.25536>:
        <D.25508>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.25537 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25537;
        inst->prev = 0B;
        D.25538 = inst->prev;
        inst->next = D.25538;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25539 = inst->sreg3;
        inst->sreg2 = D.25539;
        D.25540 = inst->sreg2;
        inst->sreg1 = D.25540;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24154 = D.24145 + 2;
        inst->sreg1 = D.24154;
        D.25139 = tree->sreg2;
        D.25148 = D.25139 + 2;
        inst->sreg2 = D.25148;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25541>; else goto <D.25542>;
        <D.25541>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.25543>;
        <D.25542>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25543>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.25544 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.25544;
        ins->prev = 0B;
        D.25545 = ins->prev;
        ins->next = D.25545;
        ins->opcode = 653;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.25546 = ins->sreg3;
        ins->sreg2 = D.25546;
        D.25547 = ins->sreg2;
        ins->sreg1 = D.25547;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (0 != 0) goto <D.25548>; else goto <D.25549>;
        <D.25548>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25550 = D.24342;
        D.25551 = D.25550 + 1;
        cfg->num_bblocks = D.25551;
        D.25552 = (int) D.25550;
        falsebb->block_num = D.25552;
        D.25455 = next->data.op[1].many_blocks;
        D.25458 = MEM[(struct MonoBasicBlock * *)D.25455 + 4B];
        ins->data.op[0].target_block = D.25458;
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25459 = D.25455 + 4;
        D.25460 = *D.25459;
        mono_link_bblock (cfg, D.24117, D.25460);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25553>; else goto <D.25554>;
        <D.25553>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.25555>;
        <D.25554>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25555>:
        D.25556 = falsebb->cil_code;
        if (D.25556 != 0B) goto <D.25557>; else goto <D.25558>;
        <D.25557>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25556 = falsebb->cil_code;
        D.25559 = (int) D.25556;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25560 = D.25559 - D.24402;
        D.25561 = (unsigned int) D.25560;
        D.25562 = D.25561 * 4;
        D.25563 = D.24399 + D.25562;
        *D.25563 = falsebb;
        <D.25558>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25567>; else goto <D.25564>;
        <D.25567>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25565>; else goto <D.25568>;
        <D.25568>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25565>; else goto <D.25569>;
        <D.25569>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25565>; else goto <D.25564>;
        <D.25565>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25570>; else goto <D.25564>;
        <D.25570>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.25566>;
        <D.25564>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25571>; else goto <D.25573>;
        <D.25573>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25574>; else goto <D.25572>;
        <D.25574>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25575>; else goto <D.25572>;
        <D.25575>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25576>; else goto <D.25572>;
        <D.25576>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25577>; else goto <D.25572>;
        <D.25577>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25571>; else goto <D.25572>;
        <D.25571>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.25572>:
        <D.25566>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25578>;
        <D.25549>:
        D.24115 = cfg->mempool;
        D.25579 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.25579;
        D.25580 = ins->data.op[1].many_blocks;
        D.25455 = next->data.op[1].many_blocks;
        D.25458 = MEM[(struct MonoBasicBlock * *)D.25455 + 4B];
        *D.25580 = D.25458;
        D.25580 = ins->data.op[1].many_blocks;
        D.25581 = D.25580 + 4;
        *D.25581 = 0B;
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25459 = D.25455 + 4;
        D.25460 = *D.25459;
        mono_link_bblock (cfg, D.24117, D.25460);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25582>; else goto <D.25583>;
        <D.25582>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.25584>;
        <D.25583>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25584>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.25585>; else goto <D.25586>;
        <D.25585>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25587 = D.24342;
        D.25588 = D.25587 + 1;
        cfg->num_bblocks = D.25588;
        D.25589 = (int) D.25587;
        falsebb->block_num = D.25589;
        D.25580 = ins->data.op[1].many_blocks;
        D.25581 = D.25580 + 4;
        *D.25581 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.25556 = falsebb->cil_code;
        if (D.25556 != 0B) goto <D.25590>; else goto <D.25591>;
        <D.25590>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25556 = falsebb->cil_code;
        D.25559 = (int) D.25556;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25560 = D.25559 - D.24402;
        D.25561 = (unsigned int) D.25560;
        D.25562 = D.25561 * 4;
        D.25563 = D.24399 + D.25562;
        *D.25563 = falsebb;
        <D.25591>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25595>; else goto <D.25592>;
        <D.25595>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25593>; else goto <D.25596>;
        <D.25596>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25593>; else goto <D.25597>;
        <D.25597>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25593>; else goto <D.25592>;
        <D.25593>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25598>; else goto <D.25592>;
        <D.25598>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.25594>;
        <D.25592>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25599>; else goto <D.25601>;
        <D.25601>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25602>; else goto <D.25600>;
        <D.25602>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25603>; else goto <D.25600>;
        <D.25603>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25604>; else goto <D.25600>;
        <D.25604>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25605>; else goto <D.25600>;
        <D.25605>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25599>; else goto <D.25600>;
        <D.25599>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.25600>:
        <D.25594>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25606>;
        <D.25586>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.25606>:
        <D.25578>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.25607 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25607;
        inst->prev = 0B;
        D.25608 = inst->prev;
        inst->next = D.25608;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25609 = inst->sreg3;
        inst->sreg2 = D.25609;
        D.25610 = inst->sreg2;
        inst->sreg1 = D.25610;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        D.24145 = tree->sreg1;
        D.24146 = D.24145 + 1;
        inst->sreg1 = D.24146;
        D.25139 = tree->sreg2;
        D.25140 = D.25139 + 1;
        inst->sreg2 = D.25140;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25611>; else goto <D.25612>;
        <D.25611>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.25613>;
        <D.25612>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25613>:
      }
      {
        struct MonoInst * ins;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.25614 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.25614;
        ins->prev = 0B;
        D.25615 = ins->prev;
        ins->next = D.25615;
        D.25413 = next->opcode;
        D.25414 = (int) D.25413;
        D.25473 = D.25414 + -551;
        D.25616 = lbr_decomp[D.25473][1];
        D.25617 = (short unsigned int) D.25616;
        ins->opcode = D.25617;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.25618 = ins->sreg3;
        ins->sreg2 = D.25618;
        D.25619 = ins->sreg2;
        ins->sreg1 = D.25619;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        D.24115 = cfg->mempool;
        D.25620 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.25620;
        D.25621 = ins->data.op[1].many_blocks;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        *D.25621 = D.25456;
        D.25621 = ins->data.op[1].many_blocks;
        D.25622 = D.25621 + 4;
        D.25455 = next->data.op[1].many_blocks;
        D.25458 = MEM[(struct MonoBasicBlock * *)D.25455 + 4B];
        *D.25622 = D.25458;
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25456 = *D.25455;
        mono_link_bblock (cfg, D.24117, D.25456);
        D.24117 = cfg->cbb;
        D.25455 = next->data.op[1].many_blocks;
        D.25459 = D.25455 + 4;
        D.25460 = *D.25459;
        mono_link_bblock (cfg, D.24117, D.25460);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25623>; else goto <D.25624>;
        <D.25623>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.25625>;
        <D.25624>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.25625>:
      }
      next->opcode = 316;
      goto <D.23574>;
      <D.23591>:
      {
        int d1;
        int d2;

        D.25626 = alloc_ireg (cfg);
        d1 = (int) D.25626;
        D.25627 = alloc_ireg (cfg);
        d2 = (int) D.25627;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25628 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25628;
          inst->prev = 0B;
          D.25629 = inst->prev;
          inst->next = D.25629;
          inst->opcode = 574;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25630 = inst->sreg3;
          inst->sreg2 = D.25630;
          D.25631 = inst->sreg2;
          inst->sreg1 = D.25631;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          D.24145 = tree->sreg1;
          D.24146 = D.24145 + 1;
          inst->sreg1 = D.24146;
          D.25139 = tree->sreg2;
          D.25140 = D.25139 + 1;
          inst->sreg2 = D.25140;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25632>; else goto <D.25633>;
          <D.25632>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25634>;
          <D.25633>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25634>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25635 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25635;
          inst->prev = 0B;
          D.25636 = inst->prev;
          inst->next = D.25636;
          inst->opcode = 574;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25637 = inst->sreg3;
          inst->sreg2 = D.25637;
          D.25638 = inst->sreg2;
          inst->sreg1 = D.25638;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d2;
          D.24145 = tree->sreg1;
          D.24154 = D.24145 + 2;
          inst->sreg1 = D.24154;
          D.25139 = tree->sreg2;
          D.25148 = D.25139 + 2;
          inst->sreg2 = D.25148;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25639>; else goto <D.25640>;
          <D.25639>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25641>;
          <D.25640>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25641>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25642 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25642;
          inst->prev = 0B;
          D.25643 = inst->prev;
          inst->next = D.25643;
          inst->opcode = 573;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25644 = inst->sreg3;
          inst->sreg2 = D.25644;
          D.25645 = inst->sreg2;
          inst->sreg1 = D.25645;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25646>; else goto <D.25647>;
          <D.25646>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25648>;
          <D.25647>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25648>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25649 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25649;
          inst->prev = 0B;
          D.25650 = inst->prev;
          inst->next = D.25650;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25651 = inst->sreg3;
          inst->sreg2 = D.25651;
          D.25652 = inst->sreg2;
          inst->sreg1 = D.25652;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25653>; else goto <D.25654>;
          <D.25653>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25655>;
          <D.25654>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25655>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25656 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25656;
          inst->prev = 0B;
          D.25657 = inst->prev;
          inst->next = D.25657;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25658 = inst->sreg3;
          inst->sreg2 = D.25658;
          D.25659 = inst->sreg2;
          inst->sreg1 = D.25659;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.25660 = next->dreg;
          inst->dreg = D.25660;
          inst->sreg1 = -1;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25661>; else goto <D.25662>;
          <D.25661>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25663>;
          <D.25662>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25663>:
        }
        next->opcode = 316;
        goto <D.23574>;
      }
      <D.23599>:
      <D.23600>:
      <D.23601>:
      <D.23602>:
      {
        struct MonoBasicBlock * set_to_0;
        struct MonoBasicBlock * set_to_1;

        D.24115 = cfg->mempool;
        set_to_0 = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25664 = D.24342;
        D.25665 = D.25664 + 1;
        cfg->num_bblocks = D.25665;
        D.25666 = (int) D.25664;
        set_to_0->block_num = D.25666;
        D.24115 = cfg->mempool;
        set_to_1 = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.25667 = D.24342;
        D.25668 = D.25667 + 1;
        cfg->num_bblocks = D.25668;
        D.25669 = (int) D.25667;
        set_to_1->block_num = D.25669;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25670 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25670;
          inst->prev = 0B;
          D.25671 = inst->prev;
          inst->next = D.25671;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25672 = inst->sreg3;
          inst->sreg2 = D.25672;
          D.25673 = inst->sreg2;
          inst->sreg1 = D.25673;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.25660 = next->dreg;
          inst->dreg = D.25660;
          inst->data.op[0].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25674>; else goto <D.25675>;
          <D.25674>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25676>;
          <D.25675>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25676>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25677 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25677;
          inst->prev = 0B;
          D.25678 = inst->prev;
          inst->next = D.25678;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25679 = inst->sreg3;
          inst->sreg2 = D.25679;
          D.25680 = inst->sreg2;
          inst->sreg1 = D.25680;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          D.24145 = tree->sreg1;
          D.24154 = D.24145 + 2;
          inst->sreg1 = D.24154;
          D.25139 = tree->sreg2;
          D.25148 = D.25139 + 2;
          inst->sreg2 = D.25148;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25681>; else goto <D.25682>;
          <D.25681>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25683>;
          <D.25682>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25683>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.25684 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25684;
          ins->prev = 0B;
          D.25685 = ins->prev;
          ins->next = D.25685;
          D.25413 = next->opcode;
          D.25414 = (int) D.25413;
          D.25686 = D.25414 + -531;
          D.25687 = lcset_decomp[D.25686][0];
          D.25688 = (short unsigned int) D.25687;
          ins->opcode = D.25688;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25689 = ins->sreg3;
          ins->sreg2 = D.25689;
          D.25690 = ins->sreg2;
          ins->sreg1 = D.25690;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.25413 = next->opcode;
          D.25414 = (int) D.25413;
          D.25686 = D.25414 + -531;
          D.25687 = lcset_decomp[D.25686][0];
          if (D.25687 == 442) goto <D.25691>; else goto <D.25692>;
          <D.25691>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25693 = D.24342;
          D.25694 = D.25693 + 1;
          cfg->num_bblocks = D.25694;
          D.25695 = (int) D.25693;
          falsebb->block_num = D.25695;
          ins->data.op[0].target_block = set_to_0;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25696>; else goto <D.25697>;
          <D.25696>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25698>;
          <D.25697>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25698>:
          D.25699 = falsebb->cil_code;
          if (D.25699 != 0B) goto <D.25700>; else goto <D.25701>;
          <D.25700>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25699 = falsebb->cil_code;
          D.25702 = (int) D.25699;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25703 = D.25702 - D.24402;
          D.25704 = (unsigned int) D.25703;
          D.25705 = D.25704 * 4;
          D.25706 = D.24399 + D.25705;
          *D.25706 = falsebb;
          <D.25701>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25710>; else goto <D.25707>;
          <D.25710>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25708>; else goto <D.25711>;
          <D.25711>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25708>; else goto <D.25712>;
          <D.25712>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25708>; else goto <D.25707>;
          <D.25708>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25713>; else goto <D.25707>;
          <D.25713>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25709>;
          <D.25707>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25714>; else goto <D.25716>;
          <D.25716>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25717>; else goto <D.25715>;
          <D.25717>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25718>; else goto <D.25715>;
          <D.25718>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25719>; else goto <D.25715>;
          <D.25719>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25720>; else goto <D.25715>;
          <D.25720>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25714>; else goto <D.25715>;
          <D.25714>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25715>:
          <D.25709>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25721>;
          <D.25692>:
          D.24115 = cfg->mempool;
          D.25722 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.25722;
          D.25723 = ins->data.op[1].many_blocks;
          *D.25723 = set_to_0;
          D.25723 = ins->data.op[1].many_blocks;
          D.25724 = D.25723 + 4;
          *D.25724 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25725>; else goto <D.25726>;
          <D.25725>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25727>;
          <D.25726>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25727>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.25728>; else goto <D.25729>;
          <D.25728>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25730 = D.24342;
          D.25731 = D.25730 + 1;
          cfg->num_bblocks = D.25731;
          D.25732 = (int) D.25730;
          falsebb->block_num = D.25732;
          D.25723 = ins->data.op[1].many_blocks;
          D.25724 = D.25723 + 4;
          *D.25724 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.25699 = falsebb->cil_code;
          if (D.25699 != 0B) goto <D.25733>; else goto <D.25734>;
          <D.25733>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25699 = falsebb->cil_code;
          D.25702 = (int) D.25699;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25703 = D.25702 - D.24402;
          D.25704 = (unsigned int) D.25703;
          D.25705 = D.25704 * 4;
          D.25706 = D.24399 + D.25705;
          *D.25706 = falsebb;
          <D.25734>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25738>; else goto <D.25735>;
          <D.25738>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25736>; else goto <D.25739>;
          <D.25739>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25736>; else goto <D.25740>;
          <D.25740>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25736>; else goto <D.25735>;
          <D.25736>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25741>; else goto <D.25735>;
          <D.25741>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25737>;
          <D.25735>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25742>; else goto <D.25744>;
          <D.25744>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25745>; else goto <D.25743>;
          <D.25745>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25746>; else goto <D.25743>;
          <D.25746>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25747>; else goto <D.25743>;
          <D.25747>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25748>; else goto <D.25743>;
          <D.25748>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25742>; else goto <D.25743>;
          <D.25742>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25743>:
          <D.25737>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25749>;
          <D.25729>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.25749>:
          <D.25721>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25750 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25750;
          inst->prev = 0B;
          D.25751 = inst->prev;
          inst->next = D.25751;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25752 = inst->sreg3;
          inst->sreg2 = D.25752;
          D.25753 = inst->sreg2;
          inst->sreg1 = D.25753;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          D.24145 = tree->sreg1;
          D.24154 = D.24145 + 2;
          inst->sreg1 = D.24154;
          D.25139 = tree->sreg2;
          D.25148 = D.25139 + 2;
          inst->sreg2 = D.25148;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25754>; else goto <D.25755>;
          <D.25754>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25756>;
          <D.25755>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25756>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.25757 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25757;
          ins->prev = 0B;
          D.25758 = ins->prev;
          ins->next = D.25758;
          ins->opcode = 653;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25759 = ins->sreg3;
          ins->sreg2 = D.25759;
          D.25760 = ins->sreg2;
          ins->sreg1 = D.25760;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          if (0 != 0) goto <D.25761>; else goto <D.25762>;
          <D.25761>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25763 = D.24342;
          D.25764 = D.25763 + 1;
          cfg->num_bblocks = D.25764;
          D.25765 = (int) D.25763;
          falsebb->block_num = D.25765;
          ins->data.op[0].target_block = set_to_1;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_1);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25766>; else goto <D.25767>;
          <D.25766>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25768>;
          <D.25767>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25768>:
          D.25769 = falsebb->cil_code;
          if (D.25769 != 0B) goto <D.25770>; else goto <D.25771>;
          <D.25770>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25769 = falsebb->cil_code;
          D.25772 = (int) D.25769;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25773 = D.25772 - D.24402;
          D.25774 = (unsigned int) D.25773;
          D.25775 = D.25774 * 4;
          D.25776 = D.24399 + D.25775;
          *D.25776 = falsebb;
          <D.25771>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25780>; else goto <D.25777>;
          <D.25780>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25778>; else goto <D.25781>;
          <D.25781>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25778>; else goto <D.25782>;
          <D.25782>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25778>; else goto <D.25777>;
          <D.25778>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25783>; else goto <D.25777>;
          <D.25783>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25779>;
          <D.25777>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25784>; else goto <D.25786>;
          <D.25786>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25787>; else goto <D.25785>;
          <D.25787>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25788>; else goto <D.25785>;
          <D.25788>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25789>; else goto <D.25785>;
          <D.25789>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25790>; else goto <D.25785>;
          <D.25790>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25784>; else goto <D.25785>;
          <D.25784>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25785>:
          <D.25779>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25791>;
          <D.25762>:
          D.24115 = cfg->mempool;
          D.25792 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.25792;
          D.25793 = ins->data.op[1].many_blocks;
          *D.25793 = set_to_1;
          D.25793 = ins->data.op[1].many_blocks;
          D.25794 = D.25793 + 4;
          *D.25794 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_1);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25795>; else goto <D.25796>;
          <D.25795>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25797>;
          <D.25796>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25797>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.25798>; else goto <D.25799>;
          <D.25798>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25800 = D.24342;
          D.25801 = D.25800 + 1;
          cfg->num_bblocks = D.25801;
          D.25802 = (int) D.25800;
          falsebb->block_num = D.25802;
          D.25793 = ins->data.op[1].many_blocks;
          D.25794 = D.25793 + 4;
          *D.25794 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.25769 = falsebb->cil_code;
          if (D.25769 != 0B) goto <D.25803>; else goto <D.25804>;
          <D.25803>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25769 = falsebb->cil_code;
          D.25772 = (int) D.25769;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25773 = D.25772 - D.24402;
          D.25774 = (unsigned int) D.25773;
          D.25775 = D.25774 * 4;
          D.25776 = D.24399 + D.25775;
          *D.25776 = falsebb;
          <D.25804>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25808>; else goto <D.25805>;
          <D.25808>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25806>; else goto <D.25809>;
          <D.25809>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25806>; else goto <D.25810>;
          <D.25810>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25806>; else goto <D.25805>;
          <D.25806>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25811>; else goto <D.25805>;
          <D.25811>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25807>;
          <D.25805>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25812>; else goto <D.25814>;
          <D.25814>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25815>; else goto <D.25813>;
          <D.25815>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25816>; else goto <D.25813>;
          <D.25816>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25817>; else goto <D.25813>;
          <D.25817>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25818>; else goto <D.25813>;
          <D.25818>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25812>; else goto <D.25813>;
          <D.25812>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25813>:
          <D.25807>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25819>;
          <D.25799>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.25819>:
          <D.25791>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25820 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25820;
          inst->prev = 0B;
          D.25821 = inst->prev;
          inst->next = D.25821;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25822 = inst->sreg3;
          inst->sreg2 = D.25822;
          D.25823 = inst->sreg2;
          inst->sreg1 = D.25823;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          D.24145 = tree->sreg1;
          D.24146 = D.24145 + 1;
          inst->sreg1 = D.24146;
          D.25139 = tree->sreg2;
          D.25140 = D.25139 + 1;
          inst->sreg2 = D.25140;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25824>; else goto <D.25825>;
          <D.25824>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25826>;
          <D.25825>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25826>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.25827 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25827;
          ins->prev = 0B;
          D.25828 = ins->prev;
          ins->next = D.25828;
          D.25413 = next->opcode;
          D.25414 = (int) D.25413;
          D.25686 = D.25414 + -531;
          D.25829 = lcset_decomp[D.25686][1];
          D.25830 = (short unsigned int) D.25829;
          ins->opcode = D.25830;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25831 = ins->sreg3;
          ins->sreg2 = D.25831;
          D.25832 = ins->sreg2;
          ins->sreg1 = D.25832;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.25413 = next->opcode;
          D.25414 = (int) D.25413;
          D.25686 = D.25414 + -531;
          D.25829 = lcset_decomp[D.25686][1];
          if (D.25829 == 442) goto <D.25833>; else goto <D.25834>;
          <D.25833>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25835 = D.24342;
          D.25836 = D.25835 + 1;
          cfg->num_bblocks = D.25836;
          D.25837 = (int) D.25835;
          falsebb->block_num = D.25837;
          ins->data.op[0].target_block = set_to_0;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25838>; else goto <D.25839>;
          <D.25838>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25840>;
          <D.25839>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25840>:
          D.25841 = falsebb->cil_code;
          if (D.25841 != 0B) goto <D.25842>; else goto <D.25843>;
          <D.25842>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25841 = falsebb->cil_code;
          D.25844 = (int) D.25841;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25845 = D.25844 - D.24402;
          D.25846 = (unsigned int) D.25845;
          D.25847 = D.25846 * 4;
          D.25848 = D.24399 + D.25847;
          *D.25848 = falsebb;
          <D.25843>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25852>; else goto <D.25849>;
          <D.25852>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25850>; else goto <D.25853>;
          <D.25853>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25850>; else goto <D.25854>;
          <D.25854>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25850>; else goto <D.25849>;
          <D.25850>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25855>; else goto <D.25849>;
          <D.25855>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25851>;
          <D.25849>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25856>; else goto <D.25858>;
          <D.25858>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25859>; else goto <D.25857>;
          <D.25859>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25860>; else goto <D.25857>;
          <D.25860>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25861>; else goto <D.25857>;
          <D.25861>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25862>; else goto <D.25857>;
          <D.25862>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25856>; else goto <D.25857>;
          <D.25856>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25857>:
          <D.25851>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25863>;
          <D.25834>:
          D.24115 = cfg->mempool;
          D.25864 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.25864;
          D.25865 = ins->data.op[1].many_blocks;
          *D.25865 = set_to_0;
          D.25865 = ins->data.op[1].many_blocks;
          D.25866 = D.25865 + 4;
          *D.25866 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25867>; else goto <D.25868>;
          <D.25867>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.25869>;
          <D.25868>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25869>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.25870>; else goto <D.25871>;
          <D.25870>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.25872 = D.24342;
          D.25873 = D.25872 + 1;
          cfg->num_bblocks = D.25873;
          D.25874 = (int) D.25872;
          falsebb->block_num = D.25874;
          D.25865 = ins->data.op[1].many_blocks;
          D.25866 = D.25865 + 4;
          *D.25866 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.25841 = falsebb->cil_code;
          if (D.25841 != 0B) goto <D.25875>; else goto <D.25876>;
          <D.25875>:
          D.24399 = cfg->cil_offset_to_bb;
          D.25841 = falsebb->cil_code;
          D.25844 = (int) D.25841;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.25845 = D.25844 - D.24402;
          D.25846 = (unsigned int) D.25845;
          D.25847 = D.25846 * 4;
          D.25848 = D.24399 + D.25847;
          *D.25848 = falsebb;
          <D.25876>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25880>; else goto <D.25877>;
          <D.25880>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.25878>; else goto <D.25881>;
          <D.25881>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.25878>; else goto <D.25882>;
          <D.25882>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.25878>; else goto <D.25877>;
          <D.25878>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.25883>; else goto <D.25877>;
          <D.25883>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.25879>;
          <D.25877>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.25884>; else goto <D.25886>;
          <D.25886>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.25887>; else goto <D.25885>;
          <D.25887>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.25888>; else goto <D.25885>;
          <D.25888>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.25889>; else goto <D.25885>;
          <D.25889>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.25890>; else goto <D.25885>;
          <D.25890>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.25884>; else goto <D.25885>;
          <D.25884>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.25885>:
          <D.25879>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.25891>;
          <D.25871>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.25891>:
          <D.25863>:
        }
        D.25892 = set_to_1->cil_code;
        if (D.25892 != 0B) goto <D.25893>; else goto <D.25894>;
        <D.25893>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25892 = set_to_1->cil_code;
        D.25895 = (int) D.25892;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25896 = D.25895 - D.24402;
        D.25897 = (unsigned int) D.25896;
        D.25898 = D.25897 * 4;
        D.25899 = D.24399 + D.25898;
        *D.25899 = set_to_1;
        <D.25894>:
        D.24407 = cfg->real_offset;
        set_to_1->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25903>; else goto <D.25900>;
        <D.25903>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25901>; else goto <D.25904>;
        <D.25904>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25901>; else goto <D.25905>;
        <D.25905>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25901>; else goto <D.25900>;
        <D.25901>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25906>; else goto <D.25900>;
        <D.25906>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = set_to_1;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_1);
        goto <D.25902>;
        <D.25900>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25907>; else goto <D.25909>;
        <D.25909>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25910>; else goto <D.25908>;
        <D.25910>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25911>; else goto <D.25908>;
        <D.25911>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25912>; else goto <D.25908>;
        <D.25912>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25913>; else goto <D.25908>;
        <D.25913>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25907>; else goto <D.25908>;
        <D.25907>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_1);
        <D.25908>:
        <D.25902>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = set_to_1;
        cfg->cbb = set_to_1;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25914 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25914;
          inst->prev = 0B;
          D.25915 = inst->prev;
          inst->next = D.25915;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25916 = inst->sreg3;
          inst->sreg2 = D.25916;
          D.25917 = inst->sreg2;
          inst->sreg1 = D.25917;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.25660 = next->dreg;
          inst->dreg = D.25660;
          inst->data.op[0].const_val = 1;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25918>; else goto <D.25919>;
          <D.25918>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25920>;
          <D.25919>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25920>:
        }
        D.25921 = set_to_0->cil_code;
        if (D.25921 != 0B) goto <D.25922>; else goto <D.25923>;
        <D.25922>:
        D.24399 = cfg->cil_offset_to_bb;
        D.25921 = set_to_0->cil_code;
        D.25924 = (int) D.25921;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.25925 = D.25924 - D.24402;
        D.25926 = (unsigned int) D.25925;
        D.25927 = D.25926 * 4;
        D.25928 = D.24399 + D.25927;
        *D.25928 = set_to_0;
        <D.25923>:
        D.24407 = cfg->real_offset;
        set_to_0->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.25932>; else goto <D.25929>;
        <D.25932>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.25930>; else goto <D.25933>;
        <D.25933>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.25930>; else goto <D.25934>;
        <D.25934>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.25930>; else goto <D.25929>;
        <D.25930>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.25935>; else goto <D.25929>;
        <D.25935>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = set_to_0;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_0);
        goto <D.25931>;
        <D.25929>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.25936>; else goto <D.25938>;
        <D.25938>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.25939>; else goto <D.25937>;
        <D.25939>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.25940>; else goto <D.25937>;
        <D.25940>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.25941>; else goto <D.25937>;
        <D.25941>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.25942>; else goto <D.25937>;
        <D.25942>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.25936>; else goto <D.25937>;
        <D.25936>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_0);
        <D.25937>:
        <D.25931>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = set_to_0;
        cfg->cbb = set_to_0;
        next->opcode = 316;
        goto <D.23574>;
      }
      <D.23616>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 965);
      <D.23574>:
      goto <D.23361>;
    }
    <D.23617>:
    {
      struct MonoInst * next;
      guint32 low_imm;
      guint32 high_imm;
      int low_reg;
      int high_reg;

      next = tree->next;
      D.24128 = tree->data.op[0].const_val;
      low_imm = (guint32) D.24128;
      D.24137 = tree->data.op[1].const_val;
      high_imm = (guint32) D.24137;
      D.24145 = tree->sreg1;
      low_reg = D.24145 + 1;
      D.24145 = tree->sreg1;
      high_reg = D.24145 + 2;
      D.25943 = next == 0B;
      D.25944 = (long int) D.25943;
      D.25945 = __builtin_expect (D.25944, 0);
      if (D.25945 != 0) goto <D.25946>; else goto <D.25947>;
      <D.25946>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 978, "next");
      <D.25947>:
      D.25948 = next->opcode;
      D.25949 = (int) D.25948;
      switch (D.25949) <default: <D.23674>, case 531: <D.23649>, case 532: <D.23659>, case 533: <D.23660>, case 534: <D.23657>, case 535: <D.23658>, case 551: <D.23623>, case 552: <D.23633>, case 553: <D.23634>, case 554: <D.23635>, case 555: <D.23636>, case 556: <D.23624>, case 557: <D.23637>, case 558: <D.23638>, case 559: <D.23639>, case 560: <D.23640>>
      <D.23623>:
      <D.23624>:
      {
        int d1;
        int d2;

        D.25950 = alloc_ireg (cfg);
        d1 = (int) D.25950;
        D.25951 = alloc_ireg (cfg);
        d2 = (int) D.25951;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25952 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25952;
          inst->prev = 0B;
          D.25953 = inst->prev;
          inst->next = D.25953;
          inst->opcode = 634;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25954 = inst->sreg3;
          inst->sreg2 = D.25954;
          D.25955 = inst->sreg2;
          inst->sreg1 = D.25955;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25957>; else goto <D.25958>;
          <D.25957>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25959>;
          <D.25958>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25959>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25960 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25960;
          inst->prev = 0B;
          D.25961 = inst->prev;
          inst->next = D.25961;
          inst->opcode = 634;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25962 = inst->sreg3;
          inst->sreg2 = D.25962;
          D.25963 = inst->sreg2;
          inst->sreg1 = D.25963;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d2;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25965>; else goto <D.25966>;
          <D.25965>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25967>;
          <D.25966>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25967>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25968 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25968;
          inst->prev = 0B;
          D.25969 = inst->prev;
          inst->next = D.25969;
          inst->opcode = 573;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25970 = inst->sreg3;
          inst->sreg2 = D.25970;
          D.25971 = inst->sreg2;
          inst->sreg1 = D.25971;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25972>; else goto <D.25973>;
          <D.25972>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25974>;
          <D.25973>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25974>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.25975 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.25975;
          inst->prev = 0B;
          D.25976 = inst->prev;
          inst->next = D.25976;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.25977 = inst->sreg3;
          inst->sreg2 = D.25977;
          D.25978 = inst->sreg2;
          inst->sreg1 = D.25978;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25979>; else goto <D.25980>;
          <D.25979>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.25981>;
          <D.25980>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.25981>:
        }
        {
          struct MonoInst * ins;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.25982 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.25982;
          ins->prev = 0B;
          D.25983 = ins->prev;
          ins->next = D.25983;
          D.25948 = next->opcode;
          if (D.25948 == 551) goto <D.25985>; else goto <D.25986>;
          <D.25985>:
          iftmp.6 = 648;
          goto <D.25987>;
          <D.25986>:
          iftmp.6 = 653;
          <D.25987>:
          ins->opcode = iftmp.6;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.25988 = ins->sreg3;
          ins->sreg2 = D.25988;
          D.25989 = ins->sreg2;
          ins->sreg1 = D.25989;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.24115 = cfg->mempool;
          D.25990 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.25990;
          D.25991 = ins->data.op[1].many_blocks;
          D.25992 = next->data.op[1].many_blocks;
          D.25993 = *D.25992;
          *D.25991 = D.25993;
          D.25991 = ins->data.op[1].many_blocks;
          D.25994 = D.25991 + 4;
          D.25992 = next->data.op[1].many_blocks;
          D.25995 = MEM[(struct MonoBasicBlock * *)D.25992 + 4B];
          *D.25994 = D.25995;
          D.24117 = cfg->cbb;
          D.25992 = next->data.op[1].many_blocks;
          D.25993 = *D.25992;
          mono_link_bblock (cfg, D.24117, D.25993);
          D.24117 = cfg->cbb;
          D.25992 = next->data.op[1].many_blocks;
          D.25996 = D.25992 + 4;
          D.25997 = *D.25996;
          mono_link_bblock (cfg, D.24117, D.25997);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.25998>; else goto <D.25999>;
          <D.25998>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26000>;
          <D.25999>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26000>:
        }
        next->opcode = 316;
        goto <D.23632>;
      }
      <D.23633>:
      <D.23634>:
      <D.23635>:
      <D.23636>:
      <D.23637>:
      <D.23638>:
      <D.23639>:
      <D.23640>:
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.26001 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26001;
        inst->prev = 0B;
        D.26002 = inst->prev;
        inst->next = D.26002;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26003 = inst->sreg3;
        inst->sreg2 = D.26003;
        D.26004 = inst->sreg2;
        inst->sreg1 = D.26004;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        inst->sreg1 = high_reg;
        high_imm.5 = (int) high_imm;
        inst->data.op[1].const_val = high_imm.5;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26005>; else goto <D.26006>;
        <D.26005>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.26007>;
        <D.26006>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26007>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.26008 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26008;
        ins->prev = 0B;
        D.26009 = ins->prev;
        ins->next = D.26009;
        D.25948 = next->opcode;
        D.25949 = (int) D.25948;
        D.26010 = D.25949 + -551;
        D.26011 = lbr_decomp[D.26010][0];
        D.26012 = (short unsigned int) D.26011;
        ins->opcode = D.26012;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26013 = ins->sreg3;
        ins->sreg2 = D.26013;
        D.26014 = ins->sreg2;
        ins->sreg1 = D.26014;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        D.25948 = next->opcode;
        D.25949 = (int) D.25948;
        D.26010 = D.25949 + -551;
        D.26011 = lbr_decomp[D.26010][0];
        if (D.26011 == 442) goto <D.26015>; else goto <D.26016>;
        <D.26015>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26017 = D.24342;
        D.26018 = D.26017 + 1;
        cfg->num_bblocks = D.26018;
        D.26019 = (int) D.26017;
        falsebb->block_num = D.26019;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        ins->data.op[0].target_block = D.25993;
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        mono_link_bblock (cfg, D.24117, D.25993);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26020>; else goto <D.26021>;
        <D.26020>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.26022>;
        <D.26021>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26022>:
        D.26023 = falsebb->cil_code;
        if (D.26023 != 0B) goto <D.26024>; else goto <D.26025>;
        <D.26024>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26023 = falsebb->cil_code;
        D.26026 = (int) D.26023;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26027 = D.26026 - D.24402;
        D.26028 = (unsigned int) D.26027;
        D.26029 = D.26028 * 4;
        D.26030 = D.24399 + D.26029;
        *D.26030 = falsebb;
        <D.26025>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26034>; else goto <D.26031>;
        <D.26034>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26032>; else goto <D.26035>;
        <D.26035>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26032>; else goto <D.26036>;
        <D.26036>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26032>; else goto <D.26031>;
        <D.26032>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26037>; else goto <D.26031>;
        <D.26037>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.26033>;
        <D.26031>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26038>; else goto <D.26040>;
        <D.26040>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26041>; else goto <D.26039>;
        <D.26041>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26042>; else goto <D.26039>;
        <D.26042>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26043>; else goto <D.26039>;
        <D.26043>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26044>; else goto <D.26039>;
        <D.26044>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26038>; else goto <D.26039>;
        <D.26038>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.26039>:
        <D.26033>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26045>;
        <D.26016>:
        D.24115 = cfg->mempool;
        D.26046 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.26046;
        D.26047 = ins->data.op[1].many_blocks;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        *D.26047 = D.25993;
        D.26047 = ins->data.op[1].many_blocks;
        D.26048 = D.26047 + 4;
        *D.26048 = 0B;
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        mono_link_bblock (cfg, D.24117, D.25993);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26049>; else goto <D.26050>;
        <D.26049>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.26051>;
        <D.26050>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26051>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.26052>; else goto <D.26053>;
        <D.26052>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26054 = D.24342;
        D.26055 = D.26054 + 1;
        cfg->num_bblocks = D.26055;
        D.26056 = (int) D.26054;
        falsebb->block_num = D.26056;
        D.26047 = ins->data.op[1].many_blocks;
        D.26048 = D.26047 + 4;
        *D.26048 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.26023 = falsebb->cil_code;
        if (D.26023 != 0B) goto <D.26057>; else goto <D.26058>;
        <D.26057>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26023 = falsebb->cil_code;
        D.26026 = (int) D.26023;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26027 = D.26026 - D.24402;
        D.26028 = (unsigned int) D.26027;
        D.26029 = D.26028 * 4;
        D.26030 = D.24399 + D.26029;
        *D.26030 = falsebb;
        <D.26058>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26062>; else goto <D.26059>;
        <D.26062>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26060>; else goto <D.26063>;
        <D.26063>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26060>; else goto <D.26064>;
        <D.26064>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26060>; else goto <D.26059>;
        <D.26060>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26065>; else goto <D.26059>;
        <D.26065>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.26061>;
        <D.26059>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26066>; else goto <D.26068>;
        <D.26068>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26069>; else goto <D.26067>;
        <D.26069>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26070>; else goto <D.26067>;
        <D.26070>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26071>; else goto <D.26067>;
        <D.26071>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26072>; else goto <D.26067>;
        <D.26072>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26066>; else goto <D.26067>;
        <D.26066>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.26067>:
        <D.26061>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26073>;
        <D.26053>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.26073>:
        <D.26045>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.26074 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26074;
        inst->prev = 0B;
        D.26075 = inst->prev;
        inst->next = D.26075;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26076 = inst->sreg3;
        inst->sreg2 = D.26076;
        D.26077 = inst->sreg2;
        inst->sreg1 = D.26077;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        inst->sreg1 = high_reg;
        high_imm.5 = (int) high_imm;
        inst->data.op[1].const_val = high_imm.5;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26078>; else goto <D.26079>;
        <D.26078>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.26080>;
        <D.26079>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26080>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.26081 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26081;
        ins->prev = 0B;
        D.26082 = ins->prev;
        ins->next = D.26082;
        ins->opcode = 653;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26083 = ins->sreg3;
        ins->sreg2 = D.26083;
        D.26084 = ins->sreg2;
        ins->sreg1 = D.26084;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        if (0 != 0) goto <D.26085>; else goto <D.26086>;
        <D.26085>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26087 = D.24342;
        D.26088 = D.26087 + 1;
        cfg->num_bblocks = D.26088;
        D.26089 = (int) D.26087;
        falsebb->block_num = D.26089;
        D.25992 = next->data.op[1].many_blocks;
        D.25995 = MEM[(struct MonoBasicBlock * *)D.25992 + 4B];
        ins->data.op[0].target_block = D.25995;
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25996 = D.25992 + 4;
        D.25997 = *D.25996;
        mono_link_bblock (cfg, D.24117, D.25997);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26090>; else goto <D.26091>;
        <D.26090>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.26092>;
        <D.26091>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26092>:
        D.26093 = falsebb->cil_code;
        if (D.26093 != 0B) goto <D.26094>; else goto <D.26095>;
        <D.26094>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26093 = falsebb->cil_code;
        D.26096 = (int) D.26093;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26097 = D.26096 - D.24402;
        D.26098 = (unsigned int) D.26097;
        D.26099 = D.26098 * 4;
        D.26100 = D.24399 + D.26099;
        *D.26100 = falsebb;
        <D.26095>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26104>; else goto <D.26101>;
        <D.26104>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26102>; else goto <D.26105>;
        <D.26105>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26102>; else goto <D.26106>;
        <D.26106>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26102>; else goto <D.26101>;
        <D.26102>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26107>; else goto <D.26101>;
        <D.26107>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.26103>;
        <D.26101>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26108>; else goto <D.26110>;
        <D.26110>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26111>; else goto <D.26109>;
        <D.26111>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26112>; else goto <D.26109>;
        <D.26112>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26113>; else goto <D.26109>;
        <D.26113>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26114>; else goto <D.26109>;
        <D.26114>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26108>; else goto <D.26109>;
        <D.26108>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.26109>:
        <D.26103>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26115>;
        <D.26086>:
        D.24115 = cfg->mempool;
        D.26116 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.26116;
        D.26117 = ins->data.op[1].many_blocks;
        D.25992 = next->data.op[1].many_blocks;
        D.25995 = MEM[(struct MonoBasicBlock * *)D.25992 + 4B];
        *D.26117 = D.25995;
        D.26117 = ins->data.op[1].many_blocks;
        D.26118 = D.26117 + 4;
        *D.26118 = 0B;
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25996 = D.25992 + 4;
        D.25997 = *D.25996;
        mono_link_bblock (cfg, D.24117, D.25997);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26119>; else goto <D.26120>;
        <D.26119>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.26121>;
        <D.26120>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26121>:
        D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.24437 = D.24436 & 8;
        if (D.24437 == 0) goto <D.26122>; else goto <D.26123>;
        <D.26122>:
        D.24115 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26124 = D.24342;
        D.26125 = D.26124 + 1;
        cfg->num_bblocks = D.26125;
        D.26126 = (int) D.26124;
        falsebb->block_num = D.26126;
        D.26117 = ins->data.op[1].many_blocks;
        D.26118 = D.26117 + 4;
        *D.26118 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        D.26093 = falsebb->cil_code;
        if (D.26093 != 0B) goto <D.26127>; else goto <D.26128>;
        <D.26127>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26093 = falsebb->cil_code;
        D.26096 = (int) D.26093;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26097 = D.26096 - D.24402;
        D.26098 = (unsigned int) D.26097;
        D.26099 = D.26098 * 4;
        D.26100 = D.24399 + D.26099;
        *D.26100 = falsebb;
        <D.26128>:
        D.24407 = cfg->real_offset;
        falsebb->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26132>; else goto <D.26129>;
        <D.26132>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26130>; else goto <D.26133>;
        <D.26133>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26130>; else goto <D.26134>;
        <D.26134>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26130>; else goto <D.26129>;
        <D.26130>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26135>; else goto <D.26129>;
        <D.26135>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = falsebb;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        goto <D.26131>;
        <D.26129>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26136>; else goto <D.26138>;
        <D.26138>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26139>; else goto <D.26137>;
        <D.26139>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26140>; else goto <D.26137>;
        <D.26140>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26141>; else goto <D.26137>;
        <D.26141>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26142>; else goto <D.26137>;
        <D.26142>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26136>; else goto <D.26137>;
        <D.26136>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, falsebb);
        <D.26137>:
        <D.26131>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26143>;
        <D.26123>:
        D.24117 = cfg->cbb;
        D.24117->extended = 1;
        <D.26143>:
        <D.26115>:
      }
      {
        struct MonoInst * inst;

        D.24115 = cfg->mempool;
        inst = mono_mempool_alloc (D.24115, 56);
        inst->data.op[1].const_val = 0;
        D.26144 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26144;
        inst->prev = 0B;
        D.26145 = inst->prev;
        inst->next = D.26145;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26146 = inst->sreg3;
        inst->sreg2 = D.26146;
        D.26147 = inst->sreg2;
        inst->sreg1 = D.26147;
        D.24125 = cfg->ip;
        inst->cil_code = D.24125;
        inst->dreg = -1;
        inst->sreg1 = low_reg;
        low_imm.4 = (int) low_imm;
        inst->data.op[1].const_val = low_imm.4;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26148>; else goto <D.26149>;
        <D.26148>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = inst;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        inst->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        goto <D.26150>;
        <D.26149>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = inst;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26150>:
      }
      {
        struct MonoInst * ins;

        D.24115 = cfg->mempool;
        ins = mono_mempool_alloc (D.24115, 56);
        ins->data.op[1].const_val = 0;
        D.26151 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26151;
        ins->prev = 0B;
        D.26152 = ins->prev;
        ins->next = D.26152;
        D.25948 = next->opcode;
        D.25949 = (int) D.25948;
        D.26010 = D.25949 + -551;
        D.26153 = lbr_decomp[D.26010][1];
        D.26154 = (short unsigned int) D.26153;
        ins->opcode = D.26154;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26155 = ins->sreg3;
        ins->sreg2 = D.26155;
        D.26156 = ins->sreg2;
        ins->sreg1 = D.26156;
        D.24125 = cfg->ip;
        ins->cil_code = D.24125;
        D.24115 = cfg->mempool;
        D.26157 = mono_mempool_alloc (D.24115, 8);
        ins->data.op[1].many_blocks = D.26157;
        D.26158 = ins->data.op[1].many_blocks;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        *D.26158 = D.25993;
        D.26158 = ins->data.op[1].many_blocks;
        D.26159 = D.26158 + 4;
        D.25992 = next->data.op[1].many_blocks;
        D.25995 = MEM[(struct MonoBasicBlock * *)D.25992 + 4B];
        *D.26159 = D.25995;
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25993 = *D.25992;
        mono_link_bblock (cfg, D.24117, D.25993);
        D.24117 = cfg->cbb;
        D.25992 = next->data.op[1].many_blocks;
        D.25996 = D.25992 + 4;
        D.25997 = *D.25996;
        mono_link_bblock (cfg, D.24117, D.25997);
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26160>; else goto <D.26161>;
        <D.26160>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24118->next = ins;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        ins->prev = D.24118;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        goto <D.26162>;
        <D.26161>:
        D.24117 = cfg->cbb;
        D.24117 = cfg->cbb;
        D.24117->last_ins = ins;
        D.24118 = D.24117->last_ins;
        D.24117->code = D.24118;
        <D.26162>:
      }
      next->opcode = 316;
      goto <D.23632>;
      <D.23649>:
      {
        int d1;
        int d2;

        D.26163 = alloc_ireg (cfg);
        d1 = (int) D.26163;
        D.26164 = alloc_ireg (cfg);
        d2 = (int) D.26164;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26165 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26165;
          inst->prev = 0B;
          D.26166 = inst->prev;
          inst->next = D.26166;
          inst->opcode = 634;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26167 = inst->sreg3;
          inst->sreg2 = D.26167;
          D.26168 = inst->sreg2;
          inst->sreg1 = D.26168;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26169>; else goto <D.26170>;
          <D.26169>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26171>;
          <D.26170>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26171>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26172 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26172;
          inst->prev = 0B;
          D.26173 = inst->prev;
          inst->next = D.26173;
          inst->opcode = 634;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26174 = inst->sreg3;
          inst->sreg2 = D.26174;
          D.26175 = inst->sreg2;
          inst->sreg1 = D.26175;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d2;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26176>; else goto <D.26177>;
          <D.26176>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26178>;
          <D.26177>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26178>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26179 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26179;
          inst->prev = 0B;
          D.26180 = inst->prev;
          inst->next = D.26180;
          inst->opcode = 573;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26181 = inst->sreg3;
          inst->sreg2 = D.26181;
          D.26182 = inst->sreg2;
          inst->sreg1 = D.26182;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26183>; else goto <D.26184>;
          <D.26183>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26185>;
          <D.26184>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26185>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26186 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26186;
          inst->prev = 0B;
          D.26187 = inst->prev;
          inst->next = D.26187;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26188 = inst->sreg3;
          inst->sreg2 = D.26188;
          D.26189 = inst->sreg2;
          inst->sreg1 = D.26189;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26190>; else goto <D.26191>;
          <D.26190>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26192>;
          <D.26191>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26192>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26193 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26193;
          inst->prev = 0B;
          D.26194 = inst->prev;
          inst->next = D.26194;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26195 = inst->sreg3;
          inst->sreg2 = D.26195;
          D.26196 = inst->sreg2;
          inst->sreg1 = D.26196;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.26197 = next->dreg;
          inst->dreg = D.26197;
          inst->sreg1 = -1;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26198>; else goto <D.26199>;
          <D.26198>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26200>;
          <D.26199>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26200>:
        }
        next->opcode = 316;
        goto <D.23632>;
      }
      <D.23657>:
      <D.23658>:
      <D.23659>:
      <D.23660>:
      {
        struct MonoBasicBlock * set_to_0;
        struct MonoBasicBlock * set_to_1;

        D.24115 = cfg->mempool;
        set_to_0 = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26201 = D.24342;
        D.26202 = D.26201 + 1;
        cfg->num_bblocks = D.26202;
        D.26203 = (int) D.26201;
        set_to_0->block_num = D.26203;
        D.24115 = cfg->mempool;
        set_to_1 = mono_mempool_alloc0 (D.24115, 172);
        D.24342 = cfg->num_bblocks;
        D.26204 = D.24342;
        D.26205 = D.26204 + 1;
        cfg->num_bblocks = D.26205;
        D.26206 = (int) D.26204;
        set_to_1->block_num = D.26206;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26207 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26207;
          inst->prev = 0B;
          D.26208 = inst->prev;
          inst->next = D.26208;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26209 = inst->sreg3;
          inst->sreg2 = D.26209;
          D.26210 = inst->sreg2;
          inst->sreg1 = D.26210;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.26197 = next->dreg;
          inst->dreg = D.26197;
          inst->data.op[0].const_val = 0;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26211>; else goto <D.26212>;
          <D.26211>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26213>;
          <D.26212>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26213>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26214 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26214;
          inst->prev = 0B;
          D.26215 = inst->prev;
          inst->next = D.26215;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26216 = inst->sreg3;
          inst->sreg2 = D.26216;
          D.26217 = inst->sreg2;
          inst->sreg1 = D.26217;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26218>; else goto <D.26219>;
          <D.26218>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26220>;
          <D.26219>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26220>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.26221 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26221;
          ins->prev = 0B;
          D.26222 = ins->prev;
          ins->next = D.26222;
          D.25948 = next->opcode;
          D.25949 = (int) D.25948;
          D.26223 = D.25949 + -531;
          D.26224 = lcset_decomp[D.26223][0];
          D.26225 = (short unsigned int) D.26224;
          ins->opcode = D.26225;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26226 = ins->sreg3;
          ins->sreg2 = D.26226;
          D.26227 = ins->sreg2;
          ins->sreg1 = D.26227;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.25948 = next->opcode;
          D.25949 = (int) D.25948;
          D.26223 = D.25949 + -531;
          D.26224 = lcset_decomp[D.26223][0];
          if (D.26224 == 442) goto <D.26228>; else goto <D.26229>;
          <D.26228>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26230 = D.24342;
          D.26231 = D.26230 + 1;
          cfg->num_bblocks = D.26231;
          D.26232 = (int) D.26230;
          falsebb->block_num = D.26232;
          ins->data.op[0].target_block = set_to_0;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26233>; else goto <D.26234>;
          <D.26233>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26235>;
          <D.26234>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26235>:
          D.26236 = falsebb->cil_code;
          if (D.26236 != 0B) goto <D.26237>; else goto <D.26238>;
          <D.26237>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26236 = falsebb->cil_code;
          D.26239 = (int) D.26236;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26240 = D.26239 - D.24402;
          D.26241 = (unsigned int) D.26240;
          D.26242 = D.26241 * 4;
          D.26243 = D.24399 + D.26242;
          *D.26243 = falsebb;
          <D.26238>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26247>; else goto <D.26244>;
          <D.26247>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26245>; else goto <D.26248>;
          <D.26248>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26245>; else goto <D.26249>;
          <D.26249>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26245>; else goto <D.26244>;
          <D.26245>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26250>; else goto <D.26244>;
          <D.26250>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26246>;
          <D.26244>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26251>; else goto <D.26253>;
          <D.26253>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26254>; else goto <D.26252>;
          <D.26254>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26255>; else goto <D.26252>;
          <D.26255>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26256>; else goto <D.26252>;
          <D.26256>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26257>; else goto <D.26252>;
          <D.26257>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26251>; else goto <D.26252>;
          <D.26251>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26252>:
          <D.26246>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26258>;
          <D.26229>:
          D.24115 = cfg->mempool;
          D.26259 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.26259;
          D.26260 = ins->data.op[1].many_blocks;
          *D.26260 = set_to_0;
          D.26260 = ins->data.op[1].many_blocks;
          D.26261 = D.26260 + 4;
          *D.26261 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26262>; else goto <D.26263>;
          <D.26262>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26264>;
          <D.26263>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26264>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.26265>; else goto <D.26266>;
          <D.26265>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26267 = D.24342;
          D.26268 = D.26267 + 1;
          cfg->num_bblocks = D.26268;
          D.26269 = (int) D.26267;
          falsebb->block_num = D.26269;
          D.26260 = ins->data.op[1].many_blocks;
          D.26261 = D.26260 + 4;
          *D.26261 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.26236 = falsebb->cil_code;
          if (D.26236 != 0B) goto <D.26270>; else goto <D.26271>;
          <D.26270>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26236 = falsebb->cil_code;
          D.26239 = (int) D.26236;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26240 = D.26239 - D.24402;
          D.26241 = (unsigned int) D.26240;
          D.26242 = D.26241 * 4;
          D.26243 = D.24399 + D.26242;
          *D.26243 = falsebb;
          <D.26271>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26275>; else goto <D.26272>;
          <D.26275>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26273>; else goto <D.26276>;
          <D.26276>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26273>; else goto <D.26277>;
          <D.26277>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26273>; else goto <D.26272>;
          <D.26273>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26278>; else goto <D.26272>;
          <D.26278>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26274>;
          <D.26272>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26279>; else goto <D.26281>;
          <D.26281>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26282>; else goto <D.26280>;
          <D.26282>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26283>; else goto <D.26280>;
          <D.26283>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26284>; else goto <D.26280>;
          <D.26284>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26285>; else goto <D.26280>;
          <D.26285>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26279>; else goto <D.26280>;
          <D.26279>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26280>:
          <D.26274>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26286>;
          <D.26266>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.26286>:
          <D.26258>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26287 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26287;
          inst->prev = 0B;
          D.26288 = inst->prev;
          inst->next = D.26288;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26289 = inst->sreg3;
          inst->sreg2 = D.26289;
          D.26290 = inst->sreg2;
          inst->sreg1 = D.26290;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26291>; else goto <D.26292>;
          <D.26291>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26293>;
          <D.26292>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26293>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.26294 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26294;
          ins->prev = 0B;
          D.26295 = ins->prev;
          ins->next = D.26295;
          ins->opcode = 653;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26296 = ins->sreg3;
          ins->sreg2 = D.26296;
          D.26297 = ins->sreg2;
          ins->sreg1 = D.26297;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          if (0 != 0) goto <D.26298>; else goto <D.26299>;
          <D.26298>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26300 = D.24342;
          D.26301 = D.26300 + 1;
          cfg->num_bblocks = D.26301;
          D.26302 = (int) D.26300;
          falsebb->block_num = D.26302;
          ins->data.op[0].target_block = set_to_1;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_1);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26303>; else goto <D.26304>;
          <D.26303>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26305>;
          <D.26304>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26305>:
          D.26306 = falsebb->cil_code;
          if (D.26306 != 0B) goto <D.26307>; else goto <D.26308>;
          <D.26307>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26306 = falsebb->cil_code;
          D.26309 = (int) D.26306;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26310 = D.26309 - D.24402;
          D.26311 = (unsigned int) D.26310;
          D.26312 = D.26311 * 4;
          D.26313 = D.24399 + D.26312;
          *D.26313 = falsebb;
          <D.26308>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26317>; else goto <D.26314>;
          <D.26317>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26315>; else goto <D.26318>;
          <D.26318>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26315>; else goto <D.26319>;
          <D.26319>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26315>; else goto <D.26314>;
          <D.26315>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26320>; else goto <D.26314>;
          <D.26320>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26316>;
          <D.26314>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26321>; else goto <D.26323>;
          <D.26323>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26324>; else goto <D.26322>;
          <D.26324>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26325>; else goto <D.26322>;
          <D.26325>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26326>; else goto <D.26322>;
          <D.26326>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26327>; else goto <D.26322>;
          <D.26327>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26321>; else goto <D.26322>;
          <D.26321>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26322>:
          <D.26316>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26328>;
          <D.26299>:
          D.24115 = cfg->mempool;
          D.26329 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.26329;
          D.26330 = ins->data.op[1].many_blocks;
          *D.26330 = set_to_1;
          D.26330 = ins->data.op[1].many_blocks;
          D.26331 = D.26330 + 4;
          *D.26331 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_1);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26332>; else goto <D.26333>;
          <D.26332>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26334>;
          <D.26333>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26334>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.26335>; else goto <D.26336>;
          <D.26335>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26337 = D.24342;
          D.26338 = D.26337 + 1;
          cfg->num_bblocks = D.26338;
          D.26339 = (int) D.26337;
          falsebb->block_num = D.26339;
          D.26330 = ins->data.op[1].many_blocks;
          D.26331 = D.26330 + 4;
          *D.26331 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.26306 = falsebb->cil_code;
          if (D.26306 != 0B) goto <D.26340>; else goto <D.26341>;
          <D.26340>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26306 = falsebb->cil_code;
          D.26309 = (int) D.26306;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26310 = D.26309 - D.24402;
          D.26311 = (unsigned int) D.26310;
          D.26312 = D.26311 * 4;
          D.26313 = D.24399 + D.26312;
          *D.26313 = falsebb;
          <D.26341>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26345>; else goto <D.26342>;
          <D.26345>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26343>; else goto <D.26346>;
          <D.26346>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26343>; else goto <D.26347>;
          <D.26347>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26343>; else goto <D.26342>;
          <D.26343>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26348>; else goto <D.26342>;
          <D.26348>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26344>;
          <D.26342>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26349>; else goto <D.26351>;
          <D.26351>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26352>; else goto <D.26350>;
          <D.26352>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26353>; else goto <D.26350>;
          <D.26353>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26354>; else goto <D.26350>;
          <D.26354>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26355>; else goto <D.26350>;
          <D.26355>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26349>; else goto <D.26350>;
          <D.26349>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26350>:
          <D.26344>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26356>;
          <D.26336>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.26356>:
          <D.26328>:
        }
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26357 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26357;
          inst->prev = 0B;
          D.26358 = inst->prev;
          inst->next = D.26358;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26359 = inst->sreg3;
          inst->sreg2 = D.26359;
          D.26360 = inst->sreg2;
          inst->sreg1 = D.26360;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          inst->dreg = -1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26361>; else goto <D.26362>;
          <D.26361>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26363>;
          <D.26362>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26363>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24115 = cfg->mempool;
          ins = mono_mempool_alloc (D.24115, 56);
          ins->data.op[1].const_val = 0;
          D.26364 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26364;
          ins->prev = 0B;
          D.26365 = ins->prev;
          ins->next = D.26365;
          D.25948 = next->opcode;
          D.25949 = (int) D.25948;
          D.26223 = D.25949 + -531;
          D.26366 = lcset_decomp[D.26223][1];
          D.26367 = (short unsigned int) D.26366;
          ins->opcode = D.26367;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26368 = ins->sreg3;
          ins->sreg2 = D.26368;
          D.26369 = ins->sreg2;
          ins->sreg1 = D.26369;
          D.24125 = cfg->ip;
          ins->cil_code = D.24125;
          D.25948 = next->opcode;
          D.25949 = (int) D.25948;
          D.26223 = D.25949 + -531;
          D.26366 = lcset_decomp[D.26223][1];
          if (D.26366 == 442) goto <D.26370>; else goto <D.26371>;
          <D.26370>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26372 = D.24342;
          D.26373 = D.26372 + 1;
          cfg->num_bblocks = D.26373;
          D.26374 = (int) D.26372;
          falsebb->block_num = D.26374;
          ins->data.op[0].target_block = set_to_0;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26375>; else goto <D.26376>;
          <D.26375>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26377>;
          <D.26376>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26377>:
          D.26378 = falsebb->cil_code;
          if (D.26378 != 0B) goto <D.26379>; else goto <D.26380>;
          <D.26379>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26378 = falsebb->cil_code;
          D.26381 = (int) D.26378;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26382 = D.26381 - D.24402;
          D.26383 = (unsigned int) D.26382;
          D.26384 = D.26383 * 4;
          D.26385 = D.24399 + D.26384;
          *D.26385 = falsebb;
          <D.26380>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26389>; else goto <D.26386>;
          <D.26389>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26387>; else goto <D.26390>;
          <D.26390>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26387>; else goto <D.26391>;
          <D.26391>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26387>; else goto <D.26386>;
          <D.26387>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26392>; else goto <D.26386>;
          <D.26392>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26388>;
          <D.26386>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26393>; else goto <D.26395>;
          <D.26395>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26396>; else goto <D.26394>;
          <D.26396>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26397>; else goto <D.26394>;
          <D.26397>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26398>; else goto <D.26394>;
          <D.26398>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26399>; else goto <D.26394>;
          <D.26399>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26393>; else goto <D.26394>;
          <D.26393>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26394>:
          <D.26388>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26400>;
          <D.26371>:
          D.24115 = cfg->mempool;
          D.26401 = mono_mempool_alloc (D.24115, 8);
          ins->data.op[1].many_blocks = D.26401;
          D.26402 = ins->data.op[1].many_blocks;
          *D.26402 = set_to_0;
          D.26402 = ins->data.op[1].many_blocks;
          D.26403 = D.26402 + 4;
          *D.26403 = 0B;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, set_to_0);
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26404>; else goto <D.26405>;
          <D.26404>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = ins;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          ins->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          goto <D.26406>;
          <D.26405>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = ins;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26406>:
          D.24436 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.24437 = D.24436 & 8;
          if (D.24437 == 0) goto <D.26407>; else goto <D.26408>;
          <D.26407>:
          D.24115 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24115, 172);
          D.24342 = cfg->num_bblocks;
          D.26409 = D.24342;
          D.26410 = D.26409 + 1;
          cfg->num_bblocks = D.26410;
          D.26411 = (int) D.26409;
          falsebb->block_num = D.26411;
          D.26402 = ins->data.op[1].many_blocks;
          D.26403 = D.26402 + 4;
          *D.26403 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          D.26378 = falsebb->cil_code;
          if (D.26378 != 0B) goto <D.26412>; else goto <D.26413>;
          <D.26412>:
          D.24399 = cfg->cil_offset_to_bb;
          D.26378 = falsebb->cil_code;
          D.26381 = (int) D.26378;
          D.24401 = cfg->cil_start;
          D.24402 = (int) D.24401;
          D.26382 = D.26381 - D.24402;
          D.26383 = (unsigned int) D.26382;
          D.26384 = D.26383 * 4;
          D.26385 = D.24399 + D.26384;
          *D.26385 = falsebb;
          <D.26413>:
          D.24407 = cfg->real_offset;
          falsebb->real_offset = D.24407;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26417>; else goto <D.26414>;
          <D.26417>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 <= 9) goto <D.26415>; else goto <D.26418>;
          <D.26418>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 <= 9) goto <D.26415>; else goto <D.26419>;
          <D.26419>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 <= 9) goto <D.26415>; else goto <D.26414>;
          <D.26415>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          D.24420 = *D.24419;
          if (D.24420 == 0B) goto <D.26420>; else goto <D.26414>;
          <D.26420>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24418 = D.24118->data.op[1].many_blocks;
          D.24419 = D.24418 + 4;
          *D.24419 = falsebb;
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          goto <D.26416>;
          <D.26414>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 == 0B) goto <D.26421>; else goto <D.26423>;
          <D.26423>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 442) goto <D.26424>; else goto <D.26422>;
          <D.26424>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          if (D.24412 != 759) goto <D.26425>; else goto <D.26422>;
          <D.26425>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24413 = D.24412 + 64985;
          if (D.24413 > 9) goto <D.26426>; else goto <D.26422>;
          <D.26426>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24415 = D.24412 + 64878;
          if (D.24415 > 9) goto <D.26427>; else goto <D.26422>;
          <D.26427>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24412 = D.24118->opcode;
          D.24417 = D.24412 + 64888;
          if (D.24417 > 9) goto <D.26421>; else goto <D.26422>;
          <D.26421>:
          D.24117 = cfg->cbb;
          mono_link_bblock (cfg, D.24117, falsebb);
          <D.26422>:
          <D.26416>:
          D.24117 = cfg->cbb;
          D.24117->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26428>;
          <D.26408>:
          D.24117 = cfg->cbb;
          D.24117->extended = 1;
          <D.26428>:
          <D.26400>:
        }
        D.26429 = set_to_1->cil_code;
        if (D.26429 != 0B) goto <D.26430>; else goto <D.26431>;
        <D.26430>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26429 = set_to_1->cil_code;
        D.26432 = (int) D.26429;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26433 = D.26432 - D.24402;
        D.26434 = (unsigned int) D.26433;
        D.26435 = D.26434 * 4;
        D.26436 = D.24399 + D.26435;
        *D.26436 = set_to_1;
        <D.26431>:
        D.24407 = cfg->real_offset;
        set_to_1->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26440>; else goto <D.26437>;
        <D.26440>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26438>; else goto <D.26441>;
        <D.26441>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26438>; else goto <D.26442>;
        <D.26442>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26438>; else goto <D.26437>;
        <D.26438>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26443>; else goto <D.26437>;
        <D.26443>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = set_to_1;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_1);
        goto <D.26439>;
        <D.26437>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26444>; else goto <D.26446>;
        <D.26446>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26447>; else goto <D.26445>;
        <D.26447>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26448>; else goto <D.26445>;
        <D.26448>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26449>; else goto <D.26445>;
        <D.26449>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26450>; else goto <D.26445>;
        <D.26450>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26444>; else goto <D.26445>;
        <D.26444>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_1);
        <D.26445>:
        <D.26439>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = set_to_1;
        cfg->cbb = set_to_1;
        {
          struct MonoInst * inst;

          D.24115 = cfg->mempool;
          inst = mono_mempool_alloc (D.24115, 56);
          inst->data.op[1].const_val = 0;
          D.26451 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26451;
          inst->prev = 0B;
          D.26452 = inst->prev;
          inst->next = D.26452;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26453 = inst->sreg3;
          inst->sreg2 = D.26453;
          D.26454 = inst->sreg2;
          inst->sreg1 = D.26454;
          D.24125 = cfg->ip;
          inst->cil_code = D.24125;
          D.26197 = next->dreg;
          inst->dreg = D.26197;
          inst->data.op[0].const_val = 1;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          if (D.24118 != 0B) goto <D.26455>; else goto <D.26456>;
          <D.26455>:
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          D.24118->next = inst;
          D.24117 = cfg->cbb;
          D.24118 = D.24117->last_ins;
          inst->prev = D.24118;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          goto <D.26457>;
          <D.26456>:
          D.24117 = cfg->cbb;
          D.24117 = cfg->cbb;
          D.24117->last_ins = inst;
          D.24118 = D.24117->last_ins;
          D.24117->code = D.24118;
          <D.26457>:
        }
        D.26458 = set_to_0->cil_code;
        if (D.26458 != 0B) goto <D.26459>; else goto <D.26460>;
        <D.26459>:
        D.24399 = cfg->cil_offset_to_bb;
        D.26458 = set_to_0->cil_code;
        D.26461 = (int) D.26458;
        D.24401 = cfg->cil_start;
        D.24402 = (int) D.24401;
        D.26462 = D.26461 - D.24402;
        D.26463 = (unsigned int) D.26462;
        D.26464 = D.26463 * 4;
        D.26465 = D.24399 + D.26464;
        *D.26465 = set_to_0;
        <D.26460>:
        D.24407 = cfg->real_offset;
        set_to_0->real_offset = D.24407;
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 != 0B) goto <D.26469>; else goto <D.26466>;
        <D.26469>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 <= 9) goto <D.26467>; else goto <D.26470>;
        <D.26470>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 <= 9) goto <D.26467>; else goto <D.26471>;
        <D.26471>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 <= 9) goto <D.26467>; else goto <D.26466>;
        <D.26467>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        D.24420 = *D.24419;
        if (D.24420 == 0B) goto <D.26472>; else goto <D.26466>;
        <D.26472>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24418 = D.24118->data.op[1].many_blocks;
        D.24419 = D.24418 + 4;
        *D.24419 = set_to_0;
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_0);
        goto <D.26468>;
        <D.26466>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        if (D.24118 == 0B) goto <D.26473>; else goto <D.26475>;
        <D.26475>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 442) goto <D.26476>; else goto <D.26474>;
        <D.26476>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        if (D.24412 != 759) goto <D.26477>; else goto <D.26474>;
        <D.26477>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24413 = D.24412 + 64985;
        if (D.24413 > 9) goto <D.26478>; else goto <D.26474>;
        <D.26478>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24415 = D.24412 + 64878;
        if (D.24415 > 9) goto <D.26479>; else goto <D.26474>;
        <D.26479>:
        D.24117 = cfg->cbb;
        D.24118 = D.24117->last_ins;
        D.24412 = D.24118->opcode;
        D.24417 = D.24412 + 64888;
        if (D.24417 > 9) goto <D.26473>; else goto <D.26474>;
        <D.26473>:
        D.24117 = cfg->cbb;
        mono_link_bblock (cfg, D.24117, set_to_0);
        <D.26474>:
        <D.26468>:
        D.24117 = cfg->cbb;
        D.24117->next_bb = set_to_0;
        cfg->cbb = set_to_0;
        next->opcode = 316;
        goto <D.23632>;
      }
      <D.23674>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 1052);
      <D.23632>:
      goto <D.23361>;
    }
    <D.23675>:
    goto <D.23361>;
    <D.23361>:
    D.24117 = cfg->cbb;
    D.26483 = D.24117->code;
    if (D.26483 != 0B) goto <D.26480>; else goto <D.26484>;
    <D.26484>:
    D.24117 = cfg->cbb;
    if (D.24117 != first_bb) goto <D.26480>; else goto <D.26481>;
    <D.26480>:
    {
      struct MonoInst * new_prev;

      try
        {
          new_prev = prev;
          D.24117 = cfg->cbb;
          mono_replace_ins (cfg, bb, tree, &new_prev, first_bb, D.24117);
          if (prev != 0B) goto <D.26485>; else goto <D.26486>;
          <D.26485>:
          tree = prev->next;
          goto <D.26487>;
          <D.26486>:
          tree = bb->code;
          <D.26487>:
          first_bb->last_ins = 0B;
          D.26488 = first_bb->last_ins;
          first_bb->code = D.26488;
          first_bb->out_count = 0;
          D.26489 = first_bb->out_count;
          first_bb->in_count = D.26489;
          cfg->cbb = first_bb;
        }
      finally
        {
          new_prev = {CLOBBER};
        }
    }
    goto <D.26482>;
    <D.26481>:
    prev = tree;
    tree = tree->next;
    <D.26482>:
    <D.23678>:
    if (tree != 0B) goto <D.23677>; else goto <D.23679>;
    <D.23679>:
  }
  bb = bb->next_bb;
  <D.23681>:
  if (bb != 0B) goto <D.23680>; else goto <D.23682>;
  <D.23682>:
}


alloc_ireg (struct MonoCompile * cfg)
{
  guint32 D.26491;
  unsigned int D.26492;
  unsigned int D.26493;
  unsigned int D.26494;

  D.26492 = cfg->next_vreg;
  D.26493 = D.26492;
  D.26494 = D.26493 + 1;
  cfg->next_vreg = D.26494;
  D.26491 = D.26493;
  return D.26491;
}


mono_decompose_vtype_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.26496;
  void * D.26497;
  unsigned int D.26498;
  struct MonoBasicBlock * D.26501;
  struct MonoInst * D.26502;
  short unsigned int D.26503;
  int D.26504;
  struct MonoInst * iftmp.7;
  int D.26506;
  unsigned int D.26507;
  unsigned int D.26508;
  struct MonoInst * * D.26511;
  unsigned int D.26512;
  unsigned int D.26513;
  struct MonoInst * * D.26514;
  struct MonoInst * iftmp.8;
  int D.26517;
  unsigned int D.26518;
  unsigned int D.26521;
  unsigned int D.26522;
  struct MonoInst * * D.26523;
  struct MonoClass * D.26525;
  _Bool D.26526;
  long int D.26527;
  long int D.26528;
  struct MonoType * D.26533;
  int D.26536;
  int D.26539;
  struct MonoInst * D.26540;
  int D.26541;
  int D.26542;
  const unsigned char * D.26543;
  unsigned char D.26544;
  unsigned char D.26545;
  struct MonoClass * D.26546;
  unsigned int D.26547;
  int D.26548;
  int D.26549;
  _Bool D.26550;
  long int D.26551;
  long int D.26552;
  struct MonoType * D.26555;
  int D.26556;
  _Bool iftmp.9;
  int D.26560;
  int iftmp.10;
  unsigned char D.26567;
  struct MonoInst * iftmp.11;
  int D.26573;
  int D.26574;
  unsigned int D.26575;
  sizetype D.26578;
  sizetype D.26579;
  sizetype D.26580;
  struct MonoInst * * D.26581;
  struct MonoInst * iftmp.12;
  int D.26584;
  unsigned int D.26585;
  sizetype D.26588;
  sizetype D.26589;
  struct MonoInst * * D.26590;
  _Bool D.26592;
  long int D.26593;
  long int D.26594;
  _Bool D.26597;
  long int D.26598;
  long int D.26599;
  unsigned char D.26602;
  unsigned char D.26603;
  unsigned char D.26604;
  unsigned char D.26605;
  int D.26609;
  struct MonoInst * D.26610;
  int D.26611;
  int D.26612;
  unsigned char D.26613;
  unsigned char D.26614;
  struct MonoClass * D.26615;
  unsigned int D.26616;
  int D.26617;
  struct MonoType * D.26620;
  int D.26621;
  _Bool iftmp.13;
  int D.26625;
  int iftmp.14;
  unsigned char D.26632;
  struct MonoInst * iftmp.15;
  int D.26638;
  int D.26639;
  unsigned int D.26640;
  sizetype D.26643;
  sizetype D.26644;
  sizetype D.26645;
  struct MonoInst * * D.26646;
  struct MonoInst * iftmp.16;
  int D.26649;
  unsigned int D.26650;
  sizetype D.26653;
  sizetype D.26654;
  struct MonoInst * * D.26655;
  _Bool D.26657;
  long int D.26658;
  long int D.26659;
  _Bool D.26662;
  long int D.26663;
  long int D.26664;
  unsigned char D.26667;
  unsigned char D.26668;
  unsigned char D.26669;
  unsigned char D.26670;
  struct MonoInst * iftmp.17;
  unsigned char D.26682;
  unsigned char D.26683;
  struct MonoClass * D.26684;
  unsigned int D.26685;
  int D.26686;
  struct MonoType * D.26689;
  int D.26690;
  _Bool iftmp.18;
  int D.26694;
  int iftmp.19;
  unsigned char D.26701;
  struct MonoInst * iftmp.20;
  int D.26707;
  int D.26708;
  unsigned int D.26709;
  sizetype D.26712;
  sizetype D.26713;
  sizetype D.26714;
  struct MonoInst * * D.26715;
  struct MonoInst * iftmp.21;
  int D.26718;
  unsigned int D.26719;
  sizetype D.26722;
  sizetype D.26723;
  struct MonoInst * * D.26724;
  _Bool D.26726;
  long int D.26727;
  long int D.26728;
  _Bool D.26731;
  long int D.26732;
  long int D.26733;
  unsigned char D.26736;
  unsigned char D.26737;
  unsigned char D.26738;
  unsigned char D.26739;
  unsigned int D.26743;
  unsigned int D.26744;
  int D.26747;
  struct MonoInst * D.26748;
  int D.26749;
  int D.26750;
  struct MonoInst * iftmp.22;
  struct MonoInst * iftmp.23;
  unsigned char D.26768;
  unsigned char D.26769;
  struct MonoClass * D.26770;
  unsigned int D.26771;
  int D.26772;
  struct MonoType * D.26775;
  int D.26776;
  _Bool iftmp.24;
  int D.26780;
  int iftmp.25;
  unsigned char D.26787;
  struct MonoInst * iftmp.26;
  int D.26793;
  int D.26794;
  unsigned int D.26795;
  sizetype D.26798;
  sizetype D.26799;
  sizetype D.26800;
  struct MonoInst * * D.26801;
  struct MonoInst * iftmp.27;
  int D.26804;
  unsigned int D.26805;
  sizetype D.26808;
  sizetype D.26809;
  struct MonoInst * * D.26810;
  _Bool D.26812;
  long int D.26813;
  long int D.26814;
  _Bool D.26817;
  long int D.26818;
  long int D.26819;
  unsigned char D.26822;
  unsigned char D.26823;
  unsigned char D.26824;
  unsigned char D.26825;
  unsigned int D.26829;
  int D.26830;
  struct MonoInst * iftmp.28;
  unsigned int D.26842;
  unsigned int D.26846;
  int D.26847;
  int D.26850;
  _Bool iftmp.29;
  int D.26854;
  int iftmp.30;
  struct MonoInst * iftmp.31;
  struct MonoInst * iftmp.32;
  _Bool D.26873;
  long int D.26874;
  long int D.26875;
  _Bool D.26878;
  long int D.26879;
  long int D.26880;
  unsigned char D.26883;
  unsigned char D.26884;
  unsigned char D.26885;
  unsigned char D.26886;
  int D.26890;
  struct MonoInst * iftmp.33;
  unsigned int D.26899;
  int D.26900;
  int D.26903;
  _Bool iftmp.34;
  int D.26907;
  int iftmp.35;
  struct MonoInst * iftmp.36;
  struct MonoInst * iftmp.37;
  _Bool D.26926;
  long int D.26927;
  long int D.26928;
  _Bool D.26931;
  long int D.26932;
  long int D.26933;
  unsigned char D.26936;
  unsigned char D.26937;
  unsigned char D.26938;
  unsigned char D.26939;
  struct MonoInst * iftmp.38;
  int D.26944;
  unsigned int D.26945;
  unsigned int D.26948;
  unsigned int D.26949;
  struct MonoInst * * D.26950;
  struct MonoMethodSignature * D.26954;
  struct MonoType * D.26955;
  unsigned int D.26956;
  int D.26957;
  int D.26960;
  _Bool iftmp.39;
  int D.26964;
  int iftmp.40;
  struct MonoInst * iftmp.41;
  struct MonoInst * iftmp.42;
  _Bool D.26983;
  long int D.26984;
  long int D.26985;
  _Bool D.26988;
  long int D.26989;
  long int D.26990;
  unsigned char D.26993;
  unsigned char D.26994;
  unsigned char D.26995;
  unsigned char D.26996;
  unsigned int D.27000;
  unsigned int D.27001;
  int D.27004;
  int D.27005;
  unsigned int D.27007;
  int D.27008;
  struct MonoInst * iftmp.43;
  int D.27013;
  unsigned int D.27014;
  unsigned int D.27017;
  unsigned int D.27018;
  struct MonoInst * * D.27019;
  struct MonoMethodSignature * D.27023;
  struct MonoType * D.27024;
  unsigned int D.27025;
  int D.27026;
  int D.27029;
  _Bool iftmp.44;
  int D.27033;
  int iftmp.45;
  struct MonoInst * iftmp.46;
  struct MonoInst * iftmp.47;
  _Bool D.27052;
  long int D.27053;
  long int D.27054;
  _Bool D.27057;
  long int D.27058;
  long int D.27059;
  unsigned char D.27062;
  unsigned char D.27063;
  unsigned char D.27064;
  unsigned char D.27065;
  struct MonoClass * D.27071;
  int D.27073;
  struct MonoInst * D.27074;
  int D.27075;
  int D.27076;
  int D.27077;
  int D.27078;
  int D.27082;
  struct MonoInst * D.27083;
  int D.27084;
  int D.27085;
  int D.27089;
  struct MonoInst * D.27090;
  int D.27091;
  int D.27092;
  short unsigned int D.27096;
  int D.27097;
  unsigned int D.27099;
  int D.27100;
  int D.27101;
  struct MonoInst * D.27102;
  int D.27103;
  int D.27104;
  int D.27105;
  int D.27109;
  struct MonoInst * D.27110;
  int D.27111;
  int D.27112;
  int D.27113;
  int D.27117;
  struct MonoInst * D.27118;
  int D.27119;
  int D.27120;
  _Bool D.27126;
  long int D.27127;
  long int D.27128;
  struct MonoInst * D.27134;
  struct MonoInst * D.27136;
  short int D.27137;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.26496 = cfg->mempool;
  D.26497 = mono_mempool_alloc0 (D.26496, 172);
  cfg->cbb = D.26497;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.23765>;
  <D.23764>:
  {
    struct MonoInst * ins;
    struct MonoInst * prev;
    struct MonoInst * src_var;
    struct MonoInst * dest_var;
    struct MonoInst * src;
    struct MonoInst * dest;
    gboolean restart;
    int dreg;

    try
      {
        prev = 0B;
        D.26498 = cfg->verbose_level;
        if (D.26498 > 2) goto <D.26499>; else goto <D.26500>;
        <D.26499>:
        mono_print_bb (bb, "BEFORE LOWER-VTYPE-OPTS ");
        <D.26500>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = 0B;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        restart = 1;
        goto <D.23762>;
        <D.23761>:
        restart = 0;
        ins = bb->code;
        goto <D.23759>;
        <D.23758>:
        D.26503 = ins->opcode;
        D.26504 = (int) D.26503;
        switch (D.26504) <default: <D.23757>, case 333: <D.23714>, case 334: <D.23717>, case 355: <D.23721>, case 356: <D.23722>, case 357: <D.23723>, case 387: <D.23707>, case 399: <D.23711>, case 427: <D.23696>, case 428: <D.23702>>
        <D.23696>:
        D.26506 = ins->sreg1;
        D.26507 = (unsigned int) D.26506;
        D.26508 = cfg->vreg_to_inst_len;
        if (D.26507 < D.26508) goto <D.26509>; else goto <D.26510>;
        <D.26509>:
        D.26511 = cfg->vreg_to_inst;
        D.26506 = ins->sreg1;
        D.26512 = (unsigned int) D.26506;
        D.26513 = D.26512 * 4;
        D.26514 = D.26511 + D.26513;
        iftmp.7 = *D.26514;
        goto <D.26515>;
        <D.26510>:
        iftmp.7 = 0B;
        <D.26515>:
        src_var = iftmp.7;
        D.26517 = ins->dreg;
        D.26518 = (unsigned int) D.26517;
        D.26508 = cfg->vreg_to_inst_len;
        if (D.26518 < D.26508) goto <D.26519>; else goto <D.26520>;
        <D.26519>:
        D.26511 = cfg->vreg_to_inst;
        D.26517 = ins->dreg;
        D.26521 = (unsigned int) D.26517;
        D.26522 = D.26521 * 4;
        D.26523 = D.26511 + D.26522;
        iftmp.8 = *D.26523;
        goto <D.26524>;
        <D.26520>:
        iftmp.8 = 0B;
        <D.26524>:
        dest_var = iftmp.8;
        D.26525 = ins->klass;
        D.26526 = D.26525 == 0B;
        D.26527 = (long int) D.26526;
        D.26528 = __builtin_expect (D.26527, 0);
        if (D.26528 != 0) goto <D.26529>; else goto <D.26530>;
        <D.26529>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1153, "ins->klass");
        <D.26530>:
        if (src_var == 0B) goto <D.26531>; else goto <D.26532>;
        <D.26531>:
        D.26525 = ins->klass;
        D.26533 = &D.26525->byval_arg;
        D.26517 = ins->dreg;
        src_var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26517);
        <D.26532>:
        if (dest_var == 0B) goto <D.26534>; else goto <D.26535>;
        <D.26534>:
        D.26525 = ins->klass;
        D.26533 = &D.26525->byval_arg;
        D.26517 = ins->dreg;
        dest_var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26517);
        <D.26535>:
        D.26536 = src_var->backend.is_pinvoke;
        if (D.26536 != 0) goto <D.26537>; else goto <D.26538>;
        <D.26537>:
        dest_var->backend.is_pinvoke = 1;
        <D.26538>:
        D.26496 = cfg->mempool;
        src = mono_mempool_alloc (D.26496, 56);
        src->data.op[1].const_val = 0;
        D.26539 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.26539;
        src->prev = 0B;
        D.26540 = src->prev;
        src->next = D.26540;
        src->opcode = 314;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.26541 = src->sreg3;
        src->sreg2 = D.26541;
        D.26542 = src->sreg2;
        src->sreg1 = D.26542;
        D.26543 = cfg->ip;
        src->cil_code = D.26543;
        src->data.op[0].p = src_var;
        D.26544 = src_var->flags;
        D.26545 = D.26544 | 16;
        src_var->flags = D.26545;
        src->type = 5;
        D.26546 = src_var->klass;
        src->klass = D.26546;
        D.26547 = alloc_dreg (cfg, 5);
        D.26548 = (int) D.26547;
        src->dreg = D.26548;
        cfg->has_indirection = 1;
        D.26549 = cfg->gsharedvt;
        D.26550 = D.26549 != 0;
        D.26551 = (long int) D.26550;
        D.26552 = __builtin_expect (D.26551, 0);
        if (D.26552 != 0) goto <D.26553>; else goto <D.26554>;
        <D.26553>:
        D.26555 = src_var->data.op[1].vtype;
        D.26556 = mini_is_gsharedvt_variable_type (cfg, D.26555);
        if (D.26556 != 0) goto <D.26557>; else goto <D.26558>;
        <D.26557>:
        handle_gsharedvt_ldaddr (cfg);
        <D.26558>:
        <D.26554>:
        D.26560 = mono_arch_is_soft_float ();
        if (D.26560 != 0) goto <D.26561>; else goto <D.26562>;
        <D.26561>:
        D.26567 = src_var->type;
        if (D.26567 == 2) goto <D.26564>; else goto <D.26568>;
        <D.26568>:
        D.26567 = src_var->type;
        if (D.26567 == 4) goto <D.26564>; else goto <D.26565>;
        <D.26564>:
        iftmp.10 = 1;
        goto <D.26566>;
        <D.26565>:
        iftmp.10 = 0;
        <D.26566>:
        iftmp.9 = (_Bool) iftmp.10;
        goto <D.26569>;
        <D.26562>:
        D.26567 = src_var->type;
        iftmp.9 = D.26567 == 2;
        <D.26569>:
        if (iftmp.9 != 0) goto <D.26570>; else goto <D.26571>;
        <D.26570>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.26573 = src_var->dreg;
          D.26574 = D.26573 + 1;
          D.26575 = (unsigned int) D.26574;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26575 < D.26508) goto <D.26576>; else goto <D.26577>;
          <D.26576>:
          D.26511 = cfg->vreg_to_inst;
          D.26573 = src_var->dreg;
          D.26578 = (sizetype) D.26573;
          D.26579 = D.26578 + 1;
          D.26580 = D.26579 * 4;
          D.26581 = D.26511 + D.26580;
          iftmp.11 = *D.26581;
          goto <D.26582>;
          <D.26577>:
          iftmp.11 = 0B;
          <D.26582>:
          var1 = iftmp.11;
          D.26573 = src_var->dreg;
          D.26584 = D.26573 + 2;
          D.26585 = (unsigned int) D.26584;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26585 < D.26508) goto <D.26586>; else goto <D.26587>;
          <D.26586>:
          D.26511 = cfg->vreg_to_inst;
          D.26573 = src_var->dreg;
          D.26578 = (sizetype) D.26573;
          D.26588 = D.26578 + 2;
          D.26589 = D.26588 * 4;
          D.26590 = D.26511 + D.26589;
          iftmp.12 = *D.26590;
          goto <D.26591>;
          <D.26587>:
          iftmp.12 = 0B;
          <D.26591>:
          var2 = iftmp.12;
          D.26592 = var1 == 0B;
          D.26593 = (long int) D.26592;
          D.26594 = __builtin_expect (D.26593, 0);
          if (D.26594 != 0) goto <D.26595>; else goto <D.26596>;
          <D.26595>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1165, "var1");
          <D.26596>:
          D.26597 = var2 == 0B;
          D.26598 = (long int) D.26597;
          D.26599 = __builtin_expect (D.26598, 0);
          if (D.26599 != 0) goto <D.26600>; else goto <D.26601>;
          <D.26600>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1165, "var2");
          <D.26601>:
          D.26602 = var1->flags;
          D.26603 = D.26602 | 16;
          var1->flags = D.26603;
          D.26604 = var2->flags;
          D.26605 = D.26604 | 16;
          var2->flags = D.26605;
        }
        <D.26571>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26606>; else goto <D.26607>;
        <D.26606>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = src;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        src->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        goto <D.26608>;
        <D.26607>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26608>:
        D.26496 = cfg->mempool;
        dest = mono_mempool_alloc (D.26496, 56);
        dest->data.op[1].const_val = 0;
        D.26609 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.26609;
        dest->prev = 0B;
        D.26610 = dest->prev;
        dest->next = D.26610;
        dest->opcode = 314;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.26611 = dest->sreg3;
        dest->sreg2 = D.26611;
        D.26612 = dest->sreg2;
        dest->sreg1 = D.26612;
        D.26543 = cfg->ip;
        dest->cil_code = D.26543;
        dest->data.op[0].p = dest_var;
        D.26613 = dest_var->flags;
        D.26614 = D.26613 | 16;
        dest_var->flags = D.26614;
        dest->type = 5;
        D.26615 = dest_var->klass;
        dest->klass = D.26615;
        D.26616 = alloc_dreg (cfg, 5);
        D.26617 = (int) D.26616;
        dest->dreg = D.26617;
        cfg->has_indirection = 1;
        D.26549 = cfg->gsharedvt;
        D.26550 = D.26549 != 0;
        D.26551 = (long int) D.26550;
        D.26552 = __builtin_expect (D.26551, 0);
        if (D.26552 != 0) goto <D.26618>; else goto <D.26619>;
        <D.26618>:
        D.26620 = dest_var->data.op[1].vtype;
        D.26621 = mini_is_gsharedvt_variable_type (cfg, D.26620);
        if (D.26621 != 0) goto <D.26622>; else goto <D.26623>;
        <D.26622>:
        handle_gsharedvt_ldaddr (cfg);
        <D.26623>:
        <D.26619>:
        D.26625 = mono_arch_is_soft_float ();
        if (D.26625 != 0) goto <D.26626>; else goto <D.26627>;
        <D.26626>:
        D.26632 = dest_var->type;
        if (D.26632 == 2) goto <D.26629>; else goto <D.26633>;
        <D.26633>:
        D.26632 = dest_var->type;
        if (D.26632 == 4) goto <D.26629>; else goto <D.26630>;
        <D.26629>:
        iftmp.14 = 1;
        goto <D.26631>;
        <D.26630>:
        iftmp.14 = 0;
        <D.26631>:
        iftmp.13 = (_Bool) iftmp.14;
        goto <D.26634>;
        <D.26627>:
        D.26632 = dest_var->type;
        iftmp.13 = D.26632 == 2;
        <D.26634>:
        if (iftmp.13 != 0) goto <D.26635>; else goto <D.26636>;
        <D.26635>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.26638 = dest_var->dreg;
          D.26639 = D.26638 + 1;
          D.26640 = (unsigned int) D.26639;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26640 < D.26508) goto <D.26641>; else goto <D.26642>;
          <D.26641>:
          D.26511 = cfg->vreg_to_inst;
          D.26638 = dest_var->dreg;
          D.26643 = (sizetype) D.26638;
          D.26644 = D.26643 + 1;
          D.26645 = D.26644 * 4;
          D.26646 = D.26511 + D.26645;
          iftmp.15 = *D.26646;
          goto <D.26647>;
          <D.26642>:
          iftmp.15 = 0B;
          <D.26647>:
          var1 = iftmp.15;
          D.26638 = dest_var->dreg;
          D.26649 = D.26638 + 2;
          D.26650 = (unsigned int) D.26649;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26650 < D.26508) goto <D.26651>; else goto <D.26652>;
          <D.26651>:
          D.26511 = cfg->vreg_to_inst;
          D.26638 = dest_var->dreg;
          D.26643 = (sizetype) D.26638;
          D.26653 = D.26643 + 2;
          D.26654 = D.26653 * 4;
          D.26655 = D.26511 + D.26654;
          iftmp.16 = *D.26655;
          goto <D.26656>;
          <D.26652>:
          iftmp.16 = 0B;
          <D.26656>:
          var2 = iftmp.16;
          D.26657 = var1 == 0B;
          D.26658 = (long int) D.26657;
          D.26659 = __builtin_expect (D.26658, 0);
          if (D.26659 != 0) goto <D.26660>; else goto <D.26661>;
          <D.26660>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1166, "var1");
          <D.26661>:
          D.26662 = var2 == 0B;
          D.26663 = (long int) D.26662;
          D.26664 = __builtin_expect (D.26663, 0);
          if (D.26664 != 0) goto <D.26665>; else goto <D.26666>;
          <D.26665>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1166, "var2");
          <D.26666>:
          D.26667 = var1->flags;
          D.26668 = D.26667 | 16;
          var1->flags = D.26668;
          D.26669 = var2->flags;
          D.26670 = D.26669 | 16;
          var2->flags = D.26670;
        }
        <D.26636>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26671>; else goto <D.26672>;
        <D.26671>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = dest;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        dest->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        goto <D.26673>;
        <D.26672>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26673>:
        D.26546 = src_var->klass;
        D.26536 = src_var->backend.is_pinvoke;
        mini_emit_stobj (cfg, dest, src, D.26546, D.26536);
        goto <D.23701>;
        <D.23702>:
        D.26525 = ins->klass;
        D.26526 = D.26525 == 0B;
        D.26527 = (long int) D.26526;
        D.26528 = __builtin_expect (D.26527, 0);
        if (D.26528 != 0) goto <D.26674>; else goto <D.26675>;
        <D.26674>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1172, "ins->klass");
        <D.26675>:
        {
          struct MonoInst * var;

          D.26517 = ins->dreg;
          D.26518 = (unsigned int) D.26517;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26518 < D.26508) goto <D.26677>; else goto <D.26678>;
          <D.26677>:
          D.26511 = cfg->vreg_to_inst;
          D.26517 = ins->dreg;
          D.26521 = (unsigned int) D.26517;
          D.26522 = D.26521 * 4;
          D.26523 = D.26511 + D.26522;
          iftmp.17 = *D.26523;
          goto <D.26679>;
          <D.26678>:
          iftmp.17 = 0B;
          <D.26679>:
          var = iftmp.17;
          if (var == 0B) goto <D.26680>; else goto <D.26681>;
          <D.26680>:
          D.26525 = ins->klass;
          D.26533 = &D.26525->byval_arg;
          D.26517 = ins->dreg;
          var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26517);
          <D.26681>:
          D.26496 = cfg->mempool;
          dest = mono_mempool_alloc (D.26496, 56);
          dest->data.op[1].const_val = 0;
          D.26609 = dest->data.op[1].const_val;
          dest->data.op[0].const_val = D.26609;
          dest->prev = 0B;
          D.26610 = dest->prev;
          dest->next = D.26610;
          dest->opcode = 314;
          dest->flags = 0;
          dest->type = 0;
          dest->dreg = -1;
          dest->sreg3 = -1;
          D.26611 = dest->sreg3;
          dest->sreg2 = D.26611;
          D.26612 = dest->sreg2;
          dest->sreg1 = D.26612;
          D.26543 = cfg->ip;
          dest->cil_code = D.26543;
          dest->data.op[0].p = var;
          D.26682 = var->flags;
          D.26683 = D.26682 | 16;
          var->flags = D.26683;
          dest->type = 5;
          D.26684 = var->klass;
          dest->klass = D.26684;
          D.26685 = alloc_dreg (cfg, 5);
          D.26686 = (int) D.26685;
          dest->dreg = D.26686;
          cfg->has_indirection = 1;
          D.26549 = cfg->gsharedvt;
          D.26550 = D.26549 != 0;
          D.26551 = (long int) D.26550;
          D.26552 = __builtin_expect (D.26551, 0);
          if (D.26552 != 0) goto <D.26687>; else goto <D.26688>;
          <D.26687>:
          D.26689 = var->data.op[1].vtype;
          D.26690 = mini_is_gsharedvt_variable_type (cfg, D.26689);
          if (D.26690 != 0) goto <D.26691>; else goto <D.26692>;
          <D.26691>:
          handle_gsharedvt_ldaddr (cfg);
          <D.26692>:
          <D.26688>:
          D.26694 = mono_arch_is_soft_float ();
          if (D.26694 != 0) goto <D.26695>; else goto <D.26696>;
          <D.26695>:
          D.26701 = var->type;
          if (D.26701 == 2) goto <D.26698>; else goto <D.26702>;
          <D.26702>:
          D.26701 = var->type;
          if (D.26701 == 4) goto <D.26698>; else goto <D.26699>;
          <D.26698>:
          iftmp.19 = 1;
          goto <D.26700>;
          <D.26699>:
          iftmp.19 = 0;
          <D.26700>:
          iftmp.18 = (_Bool) iftmp.19;
          goto <D.26703>;
          <D.26696>:
          D.26701 = var->type;
          iftmp.18 = D.26701 == 2;
          <D.26703>:
          if (iftmp.18 != 0) goto <D.26704>; else goto <D.26705>;
          <D.26704>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.26707 = var->dreg;
            D.26708 = D.26707 + 1;
            D.26709 = (unsigned int) D.26708;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26709 < D.26508) goto <D.26710>; else goto <D.26711>;
            <D.26710>:
            D.26511 = cfg->vreg_to_inst;
            D.26707 = var->dreg;
            D.26712 = (sizetype) D.26707;
            D.26713 = D.26712 + 1;
            D.26714 = D.26713 * 4;
            D.26715 = D.26511 + D.26714;
            iftmp.20 = *D.26715;
            goto <D.26716>;
            <D.26711>:
            iftmp.20 = 0B;
            <D.26716>:
            var1 = iftmp.20;
            D.26707 = var->dreg;
            D.26718 = D.26707 + 2;
            D.26719 = (unsigned int) D.26718;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26719 < D.26508) goto <D.26720>; else goto <D.26721>;
            <D.26720>:
            D.26511 = cfg->vreg_to_inst;
            D.26707 = var->dreg;
            D.26712 = (sizetype) D.26707;
            D.26722 = D.26712 + 2;
            D.26723 = D.26722 * 4;
            D.26724 = D.26511 + D.26723;
            iftmp.21 = *D.26724;
            goto <D.26725>;
            <D.26721>:
            iftmp.21 = 0B;
            <D.26725>:
            var2 = iftmp.21;
            D.26726 = var1 == 0B;
            D.26727 = (long int) D.26726;
            D.26728 = __builtin_expect (D.26727, 0);
            if (D.26728 != 0) goto <D.26729>; else goto <D.26730>;
            <D.26729>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1174, "var1");
            <D.26730>:
            D.26731 = var2 == 0B;
            D.26732 = (long int) D.26731;
            D.26733 = __builtin_expect (D.26732, 0);
            if (D.26733 != 0) goto <D.26734>; else goto <D.26735>;
            <D.26734>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1174, "var2");
            <D.26735>:
            D.26736 = var1->flags;
            D.26737 = D.26736 | 16;
            var1->flags = D.26737;
            D.26738 = var2->flags;
            D.26739 = D.26738 | 16;
            var2->flags = D.26739;
          }
          <D.26705>:
        }
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26740>; else goto <D.26741>;
        <D.26740>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = dest;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        dest->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        goto <D.26742>;
        <D.26741>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26742>:
        D.26525 = ins->klass;
        mini_emit_initobj (cfg, dest, 0B, D.26525);
        D.26743 = BIT_FIELD_REF <*cfg, 32, 3424>;
        D.26744 = D.26743 & 128;
        if (D.26744 != 0) goto <D.26745>; else goto <D.26746>;
        <D.26745>:
        {
          struct MonoInst * tmp;

          D.26496 = cfg->mempool;
          tmp = mono_mempool_alloc (D.26496, 56);
          tmp->data.op[1].const_val = 0;
          D.26747 = tmp->data.op[1].const_val;
          tmp->data.op[0].const_val = D.26747;
          tmp->prev = 0B;
          D.26748 = tmp->prev;
          tmp->next = D.26748;
          tmp->opcode = 838;
          tmp->flags = 0;
          tmp->type = 0;
          tmp->dreg = -1;
          tmp->sreg3 = -1;
          D.26749 = tmp->sreg3;
          tmp->sreg2 = D.26749;
          D.26750 = tmp->sreg2;
          tmp->sreg1 = D.26750;
          D.26543 = cfg->ip;
          tmp->cil_code = D.26543;
          D.26517 = ins->dreg;
          tmp->data.op[1].const_val = D.26517;
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          if (D.26502 != 0B) goto <D.26751>; else goto <D.26752>;
          <D.26751>:
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          D.26502->next = tmp;
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          tmp->prev = D.26502;
          D.26501 = cfg->cbb;
          D.26501->last_ins = tmp;
          goto <D.26753>;
          <D.26752>:
          D.26501 = cfg->cbb;
          D.26501 = cfg->cbb;
          D.26501->last_ins = tmp;
          D.26502 = D.26501->last_ins;
          D.26501->code = D.26502;
          <D.26753>:
        }
        <D.26746>:
        goto <D.23701>;
        <D.23707>:
        D.26506 = ins->sreg1;
        D.26507 = (unsigned int) D.26506;
        D.26508 = cfg->vreg_to_inst_len;
        if (D.26507 < D.26508) goto <D.26755>; else goto <D.26756>;
        <D.26755>:
        D.26511 = cfg->vreg_to_inst;
        D.26506 = ins->sreg1;
        D.26512 = (unsigned int) D.26506;
        D.26513 = D.26512 * 4;
        D.26514 = D.26511 + D.26513;
        iftmp.22 = *D.26514;
        goto <D.26757>;
        <D.26756>:
        iftmp.22 = 0B;
        <D.26757>:
        src_var = iftmp.22;
        if (src_var == 0B) goto <D.26758>; else goto <D.26759>;
        <D.26758>:
        D.26525 = ins->klass;
        D.26526 = D.26525 == 0B;
        D.26527 = (long int) D.26526;
        D.26528 = __builtin_expect (D.26527, 0);
        if (D.26528 != 0) goto <D.26760>; else goto <D.26761>;
        <D.26760>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1193, "ins->klass");
        <D.26761>:
        D.26525 = ins->klass;
        D.26533 = &D.26525->byval_arg;
        D.26506 = ins->sreg1;
        src_var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26506);
        <D.26759>:
        {
          struct MonoInst * var;

          D.26506 = ins->sreg1;
          D.26507 = (unsigned int) D.26506;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26507 < D.26508) goto <D.26763>; else goto <D.26764>;
          <D.26763>:
          D.26511 = cfg->vreg_to_inst;
          D.26506 = ins->sreg1;
          D.26512 = (unsigned int) D.26506;
          D.26513 = D.26512 * 4;
          D.26514 = D.26511 + D.26513;
          iftmp.23 = *D.26514;
          goto <D.26765>;
          <D.26764>:
          iftmp.23 = 0B;
          <D.26765>:
          var = iftmp.23;
          if (var == 0B) goto <D.26766>; else goto <D.26767>;
          <D.26766>:
          D.26525 = ins->klass;
          D.26533 = &D.26525->byval_arg;
          D.26506 = ins->sreg1;
          var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26506);
          <D.26767>:
          D.26496 = cfg->mempool;
          src = mono_mempool_alloc (D.26496, 56);
          src->data.op[1].const_val = 0;
          D.26539 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.26539;
          src->prev = 0B;
          D.26540 = src->prev;
          src->next = D.26540;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.26541 = src->sreg3;
          src->sreg2 = D.26541;
          D.26542 = src->sreg2;
          src->sreg1 = D.26542;
          D.26543 = cfg->ip;
          src->cil_code = D.26543;
          src->data.op[0].p = var;
          D.26768 = var->flags;
          D.26769 = D.26768 | 16;
          var->flags = D.26769;
          src->type = 5;
          D.26770 = var->klass;
          src->klass = D.26770;
          D.26771 = alloc_dreg (cfg, 5);
          D.26772 = (int) D.26771;
          src->dreg = D.26772;
          cfg->has_indirection = 1;
          D.26549 = cfg->gsharedvt;
          D.26550 = D.26549 != 0;
          D.26551 = (long int) D.26550;
          D.26552 = __builtin_expect (D.26551, 0);
          if (D.26552 != 0) goto <D.26773>; else goto <D.26774>;
          <D.26773>:
          D.26775 = var->data.op[1].vtype;
          D.26776 = mini_is_gsharedvt_variable_type (cfg, D.26775);
          if (D.26776 != 0) goto <D.26777>; else goto <D.26778>;
          <D.26777>:
          handle_gsharedvt_ldaddr (cfg);
          <D.26778>:
          <D.26774>:
          D.26780 = mono_arch_is_soft_float ();
          if (D.26780 != 0) goto <D.26781>; else goto <D.26782>;
          <D.26781>:
          D.26787 = var->type;
          if (D.26787 == 2) goto <D.26784>; else goto <D.26788>;
          <D.26788>:
          D.26787 = var->type;
          if (D.26787 == 4) goto <D.26784>; else goto <D.26785>;
          <D.26784>:
          iftmp.25 = 1;
          goto <D.26786>;
          <D.26785>:
          iftmp.25 = 0;
          <D.26786>:
          iftmp.24 = (_Bool) iftmp.25;
          goto <D.26789>;
          <D.26782>:
          D.26787 = var->type;
          iftmp.24 = D.26787 == 2;
          <D.26789>:
          if (iftmp.24 != 0) goto <D.26790>; else goto <D.26791>;
          <D.26790>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.26793 = var->dreg;
            D.26794 = D.26793 + 1;
            D.26795 = (unsigned int) D.26794;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26795 < D.26508) goto <D.26796>; else goto <D.26797>;
            <D.26796>:
            D.26511 = cfg->vreg_to_inst;
            D.26793 = var->dreg;
            D.26798 = (sizetype) D.26793;
            D.26799 = D.26798 + 1;
            D.26800 = D.26799 * 4;
            D.26801 = D.26511 + D.26800;
            iftmp.26 = *D.26801;
            goto <D.26802>;
            <D.26797>:
            iftmp.26 = 0B;
            <D.26802>:
            var1 = iftmp.26;
            D.26793 = var->dreg;
            D.26804 = D.26793 + 2;
            D.26805 = (unsigned int) D.26804;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26805 < D.26508) goto <D.26806>; else goto <D.26807>;
            <D.26806>:
            D.26511 = cfg->vreg_to_inst;
            D.26793 = var->dreg;
            D.26798 = (sizetype) D.26793;
            D.26808 = D.26798 + 2;
            D.26809 = D.26808 * 4;
            D.26810 = D.26511 + D.26809;
            iftmp.27 = *D.26810;
            goto <D.26811>;
            <D.26807>:
            iftmp.27 = 0B;
            <D.26811>:
            var2 = iftmp.27;
            D.26812 = var1 == 0B;
            D.26813 = (long int) D.26812;
            D.26814 = __builtin_expect (D.26813, 0);
            if (D.26814 != 0) goto <D.26815>; else goto <D.26816>;
            <D.26815>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1197, "var1");
            <D.26816>:
            D.26817 = var2 == 0B;
            D.26818 = (long int) D.26817;
            D.26819 = __builtin_expect (D.26818, 0);
            if (D.26819 != 0) goto <D.26820>; else goto <D.26821>;
            <D.26820>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1197, "var2");
            <D.26821>:
            D.26822 = var1->flags;
            D.26823 = D.26822 | 16;
            var1->flags = D.26823;
            D.26824 = var2->flags;
            D.26825 = D.26824 | 16;
            var2->flags = D.26825;
          }
          <D.26791>:
        }
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26826>; else goto <D.26827>;
        <D.26826>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = src;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        src->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        goto <D.26828>;
        <D.26827>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26828>:
        D.26829 = alloc_preg (cfg);
        dreg = (int) D.26829;
        D.26496 = cfg->mempool;
        dest = mono_mempool_alloc (D.26496, 56);
        dest->data.op[1].const_val = 0;
        D.26609 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.26609;
        dest->prev = 0B;
        D.26610 = dest->prev;
        dest->next = D.26610;
        dest->opcode = 429;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.26611 = dest->sreg3;
        dest->sreg2 = D.26611;
        D.26612 = dest->sreg2;
        dest->sreg1 = D.26612;
        D.26543 = cfg->ip;
        dest->cil_code = D.26543;
        dest->dreg = dreg;
        D.26517 = ins->dreg;
        dest->sreg1 = D.26517;
        D.26830 = ins->data.op[0].const_val;
        dest->data.op[1].const_val = D.26830;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26831>; else goto <D.26832>;
        <D.26831>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = dest;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        dest->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        goto <D.26833>;
        <D.26832>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26833>:
        D.26546 = src_var->klass;
        D.26536 = src_var->backend.is_pinvoke;
        mini_emit_stobj (cfg, dest, src, D.26546, D.26536);
        goto <D.23701>;
        <D.23711>:
        D.26525 = ins->klass;
        D.26526 = D.26525 == 0B;
        D.26527 = (long int) D.26526;
        D.26528 = __builtin_expect (D.26527, 0);
        if (D.26528 != 0) goto <D.26834>; else goto <D.26835>;
        <D.26834>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1205, "ins->klass");
        <D.26835>:
        D.26517 = ins->dreg;
        D.26518 = (unsigned int) D.26517;
        D.26508 = cfg->vreg_to_inst_len;
        if (D.26518 < D.26508) goto <D.26837>; else goto <D.26838>;
        <D.26837>:
        D.26511 = cfg->vreg_to_inst;
        D.26517 = ins->dreg;
        D.26521 = (unsigned int) D.26517;
        D.26522 = D.26521 * 4;
        D.26523 = D.26511 + D.26522;
        iftmp.28 = *D.26523;
        goto <D.26839>;
        <D.26838>:
        iftmp.28 = 0B;
        <D.26839>:
        dest_var = iftmp.28;
        if (dest_var == 0B) goto <D.26840>; else goto <D.26841>;
        <D.26840>:
        D.26525 = ins->klass;
        D.26533 = &D.26525->byval_arg;
        D.26517 = ins->dreg;
        dest_var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26517);
        <D.26841>:
        D.26842 = alloc_preg (cfg);
        dreg = (int) D.26842;
        D.26496 = cfg->mempool;
        src = mono_mempool_alloc (D.26496, 56);
        src->data.op[1].const_val = 0;
        D.26539 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.26539;
        src->prev = 0B;
        D.26540 = src->prev;
        src->next = D.26540;
        src->opcode = 429;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.26541 = src->sreg3;
        src->sreg2 = D.26541;
        D.26542 = src->sreg2;
        src->sreg1 = D.26542;
        D.26543 = cfg->ip;
        src->cil_code = D.26543;
        src->dreg = dreg;
        D.26506 = ins->sreg1;
        src->sreg1 = D.26506;
        D.26830 = ins->data.op[0].const_val;
        src->data.op[1].const_val = D.26830;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26843>; else goto <D.26844>;
        <D.26843>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = src;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        src->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        goto <D.26845>;
        <D.26844>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26845>:
        D.26496 = cfg->mempool;
        dest = mono_mempool_alloc (D.26496, 56);
        dest->data.op[1].const_val = 0;
        D.26609 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.26609;
        dest->prev = 0B;
        D.26610 = dest->prev;
        dest->next = D.26610;
        dest->opcode = 314;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.26611 = dest->sreg3;
        dest->sreg2 = D.26611;
        D.26612 = dest->sreg2;
        dest->sreg1 = D.26612;
        D.26543 = cfg->ip;
        dest->cil_code = D.26543;
        dest->data.op[0].p = dest_var;
        D.26613 = dest_var->flags;
        D.26614 = D.26613 | 16;
        dest_var->flags = D.26614;
        dest->type = 5;
        D.26615 = dest_var->klass;
        dest->klass = D.26615;
        D.26846 = alloc_dreg (cfg, 5);
        D.26847 = (int) D.26846;
        dest->dreg = D.26847;
        cfg->has_indirection = 1;
        D.26549 = cfg->gsharedvt;
        D.26550 = D.26549 != 0;
        D.26551 = (long int) D.26550;
        D.26552 = __builtin_expect (D.26551, 0);
        if (D.26552 != 0) goto <D.26848>; else goto <D.26849>;
        <D.26848>:
        D.26620 = dest_var->data.op[1].vtype;
        D.26850 = mini_is_gsharedvt_variable_type (cfg, D.26620);
        if (D.26850 != 0) goto <D.26851>; else goto <D.26852>;
        <D.26851>:
        handle_gsharedvt_ldaddr (cfg);
        <D.26852>:
        <D.26849>:
        D.26854 = mono_arch_is_soft_float ();
        if (D.26854 != 0) goto <D.26855>; else goto <D.26856>;
        <D.26855>:
        D.26632 = dest_var->type;
        if (D.26632 == 2) goto <D.26858>; else goto <D.26861>;
        <D.26861>:
        D.26632 = dest_var->type;
        if (D.26632 == 4) goto <D.26858>; else goto <D.26859>;
        <D.26858>:
        iftmp.30 = 1;
        goto <D.26860>;
        <D.26859>:
        iftmp.30 = 0;
        <D.26860>:
        iftmp.29 = (_Bool) iftmp.30;
        goto <D.26862>;
        <D.26856>:
        D.26632 = dest_var->type;
        iftmp.29 = D.26632 == 2;
        <D.26862>:
        if (iftmp.29 != 0) goto <D.26863>; else goto <D.26864>;
        <D.26863>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.26638 = dest_var->dreg;
          D.26639 = D.26638 + 1;
          D.26640 = (unsigned int) D.26639;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26640 < D.26508) goto <D.26866>; else goto <D.26867>;
          <D.26866>:
          D.26511 = cfg->vreg_to_inst;
          D.26638 = dest_var->dreg;
          D.26643 = (sizetype) D.26638;
          D.26644 = D.26643 + 1;
          D.26645 = D.26644 * 4;
          D.26646 = D.26511 + D.26645;
          iftmp.31 = *D.26646;
          goto <D.26868>;
          <D.26867>:
          iftmp.31 = 0B;
          <D.26868>:
          var1 = iftmp.31;
          D.26638 = dest_var->dreg;
          D.26649 = D.26638 + 2;
          D.26650 = (unsigned int) D.26649;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26650 < D.26508) goto <D.26870>; else goto <D.26871>;
          <D.26870>:
          D.26511 = cfg->vreg_to_inst;
          D.26638 = dest_var->dreg;
          D.26643 = (sizetype) D.26638;
          D.26653 = D.26643 + 2;
          D.26654 = D.26653 * 4;
          D.26655 = D.26511 + D.26654;
          iftmp.32 = *D.26655;
          goto <D.26872>;
          <D.26871>:
          iftmp.32 = 0B;
          <D.26872>:
          var2 = iftmp.32;
          D.26873 = var1 == 0B;
          D.26874 = (long int) D.26873;
          D.26875 = __builtin_expect (D.26874, 0);
          if (D.26875 != 0) goto <D.26876>; else goto <D.26877>;
          <D.26876>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1215, "var1");
          <D.26877>:
          D.26878 = var2 == 0B;
          D.26879 = (long int) D.26878;
          D.26880 = __builtin_expect (D.26879, 0);
          if (D.26880 != 0) goto <D.26881>; else goto <D.26882>;
          <D.26881>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1215, "var2");
          <D.26882>:
          D.26883 = var1->flags;
          D.26884 = D.26883 | 16;
          var1->flags = D.26884;
          D.26885 = var2->flags;
          D.26886 = D.26885 | 16;
          var2->flags = D.26886;
        }
        <D.26864>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26887>; else goto <D.26888>;
        <D.26887>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = dest;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        dest->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        goto <D.26889>;
        <D.26888>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = dest;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26889>:
        D.26615 = dest_var->klass;
        D.26890 = dest_var->backend.is_pinvoke;
        mini_emit_stobj (cfg, dest, src, D.26615, D.26890);
        goto <D.23701>;
        <D.23714>:
        D.26525 = ins->klass;
        D.26526 = D.26525 == 0B;
        D.26527 = (long int) D.26526;
        D.26528 = __builtin_expect (D.26527, 0);
        if (D.26528 != 0) goto <D.26891>; else goto <D.26892>;
        <D.26891>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1220, "ins->klass");
        <D.26892>:
        D.26506 = ins->sreg1;
        D.26507 = (unsigned int) D.26506;
        D.26508 = cfg->vreg_to_inst_len;
        if (D.26507 < D.26508) goto <D.26894>; else goto <D.26895>;
        <D.26894>:
        D.26511 = cfg->vreg_to_inst;
        D.26506 = ins->sreg1;
        D.26512 = (unsigned int) D.26506;
        D.26513 = D.26512 * 4;
        D.26514 = D.26511 + D.26513;
        iftmp.33 = *D.26514;
        goto <D.26896>;
        <D.26895>:
        iftmp.33 = 0B;
        <D.26896>:
        src_var = iftmp.33;
        if (src_var == 0B) goto <D.26897>; else goto <D.26898>;
        <D.26897>:
        D.26525 = ins->klass;
        D.26533 = &D.26525->byval_arg;
        D.26506 = ins->sreg1;
        src_var = mono_compile_create_var_for_vreg (cfg, D.26533, 329, D.26506);
        <D.26898>:
        D.26496 = cfg->mempool;
        src = mono_mempool_alloc (D.26496, 56);
        src->data.op[1].const_val = 0;
        D.26539 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.26539;
        src->prev = 0B;
        D.26540 = src->prev;
        src->next = D.26540;
        src->opcode = 314;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.26541 = src->sreg3;
        src->sreg2 = D.26541;
        D.26542 = src->sreg2;
        src->sreg1 = D.26542;
        D.26543 = cfg->ip;
        src->cil_code = D.26543;
        src->data.op[0].p = src_var;
        D.26544 = src_var->flags;
        D.26545 = D.26544 | 16;
        src_var->flags = D.26545;
        src->type = 5;
        D.26546 = src_var->klass;
        src->klass = D.26546;
        D.26899 = alloc_dreg (cfg, 5);
        D.26900 = (int) D.26899;
        src->dreg = D.26900;
        cfg->has_indirection = 1;
        D.26549 = cfg->gsharedvt;
        D.26550 = D.26549 != 0;
        D.26551 = (long int) D.26550;
        D.26552 = __builtin_expect (D.26551, 0);
        if (D.26552 != 0) goto <D.26901>; else goto <D.26902>;
        <D.26901>:
        D.26555 = src_var->data.op[1].vtype;
        D.26903 = mini_is_gsharedvt_variable_type (cfg, D.26555);
        if (D.26903 != 0) goto <D.26904>; else goto <D.26905>;
        <D.26904>:
        handle_gsharedvt_ldaddr (cfg);
        <D.26905>:
        <D.26902>:
        D.26907 = mono_arch_is_soft_float ();
        if (D.26907 != 0) goto <D.26908>; else goto <D.26909>;
        <D.26908>:
        D.26567 = src_var->type;
        if (D.26567 == 2) goto <D.26911>; else goto <D.26914>;
        <D.26914>:
        D.26567 = src_var->type;
        if (D.26567 == 4) goto <D.26911>; else goto <D.26912>;
        <D.26911>:
        iftmp.35 = 1;
        goto <D.26913>;
        <D.26912>:
        iftmp.35 = 0;
        <D.26913>:
        iftmp.34 = (_Bool) iftmp.35;
        goto <D.26915>;
        <D.26909>:
        D.26567 = src_var->type;
        iftmp.34 = D.26567 == 2;
        <D.26915>:
        if (iftmp.34 != 0) goto <D.26916>; else goto <D.26917>;
        <D.26916>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.26573 = src_var->dreg;
          D.26574 = D.26573 + 1;
          D.26575 = (unsigned int) D.26574;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26575 < D.26508) goto <D.26919>; else goto <D.26920>;
          <D.26919>:
          D.26511 = cfg->vreg_to_inst;
          D.26573 = src_var->dreg;
          D.26578 = (sizetype) D.26573;
          D.26579 = D.26578 + 1;
          D.26580 = D.26579 * 4;
          D.26581 = D.26511 + D.26580;
          iftmp.36 = *D.26581;
          goto <D.26921>;
          <D.26920>:
          iftmp.36 = 0B;
          <D.26921>:
          var1 = iftmp.36;
          D.26573 = src_var->dreg;
          D.26584 = D.26573 + 2;
          D.26585 = (unsigned int) D.26584;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26585 < D.26508) goto <D.26923>; else goto <D.26924>;
          <D.26923>:
          D.26511 = cfg->vreg_to_inst;
          D.26573 = src_var->dreg;
          D.26578 = (sizetype) D.26573;
          D.26588 = D.26578 + 2;
          D.26589 = D.26588 * 4;
          D.26590 = D.26511 + D.26589;
          iftmp.37 = *D.26590;
          goto <D.26925>;
          <D.26924>:
          iftmp.37 = 0B;
          <D.26925>:
          var2 = iftmp.37;
          D.26926 = var1 == 0B;
          D.26927 = (long int) D.26926;
          D.26928 = __builtin_expect (D.26927, 0);
          if (D.26928 != 0) goto <D.26929>; else goto <D.26930>;
          <D.26929>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1225, "var1");
          <D.26930>:
          D.26931 = var2 == 0B;
          D.26932 = (long int) D.26931;
          D.26933 = __builtin_expect (D.26932, 0);
          if (D.26933 != 0) goto <D.26934>; else goto <D.26935>;
          <D.26934>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1225, "var2");
          <D.26935>:
          D.26936 = var1->flags;
          D.26937 = D.26936 | 16;
          var1->flags = D.26937;
          D.26938 = var2->flags;
          D.26939 = D.26938 | 16;
          var2->flags = D.26939;
        }
        <D.26917>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        if (D.26502 != 0B) goto <D.26940>; else goto <D.26941>;
        <D.26940>:
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        D.26502->next = src;
        D.26501 = cfg->cbb;
        D.26502 = D.26501->last_ins;
        src->prev = D.26502;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        goto <D.26942>;
        <D.26941>:
        D.26501 = cfg->cbb;
        D.26501 = cfg->cbb;
        D.26501->last_ins = src;
        D.26502 = D.26501->last_ins;
        D.26501->code = D.26502;
        <D.26942>:
        mono_arch_emit_outarg_vt (cfg, ins, src);
        restart = 1;
        goto <D.23701>;
        <D.23717>:
        {
          struct MonoCallInst * call;

          call = ins->data.op[1].p;
          D.26944 = call->inst.dreg;
          D.26945 = (unsigned int) D.26944;
          D.26508 = cfg->vreg_to_inst_len;
          if (D.26945 < D.26508) goto <D.26946>; else goto <D.26947>;
          <D.26946>:
          D.26511 = cfg->vreg_to_inst;
          D.26944 = call->inst.dreg;
          D.26948 = (unsigned int) D.26944;
          D.26949 = D.26948 * 4;
          D.26950 = D.26511 + D.26949;
          iftmp.38 = *D.26950;
          goto <D.26951>;
          <D.26947>:
          iftmp.38 = 0B;
          <D.26951>:
          src_var = iftmp.38;
          if (src_var == 0B) goto <D.26952>; else goto <D.26953>;
          <D.26952>:
          D.26954 = call->signature;
          D.26955 = D.26954->ret;
          D.26944 = call->inst.dreg;
          src_var = mono_compile_create_var_for_vreg (cfg, D.26955, 329, D.26944);
          <D.26953>:
          D.26496 = cfg->mempool;
          src = mono_mempool_alloc (D.26496, 56);
          src->data.op[1].const_val = 0;
          D.26539 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.26539;
          src->prev = 0B;
          D.26540 = src->prev;
          src->next = D.26540;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.26541 = src->sreg3;
          src->sreg2 = D.26541;
          D.26542 = src->sreg2;
          src->sreg1 = D.26542;
          D.26543 = cfg->ip;
          src->cil_code = D.26543;
          src->data.op[0].p = src_var;
          D.26544 = src_var->flags;
          D.26545 = D.26544 | 16;
          src_var->flags = D.26545;
          src->type = 5;
          D.26546 = src_var->klass;
          src->klass = D.26546;
          D.26956 = alloc_dreg (cfg, 5);
          D.26957 = (int) D.26956;
          src->dreg = D.26957;
          cfg->has_indirection = 1;
          D.26549 = cfg->gsharedvt;
          D.26550 = D.26549 != 0;
          D.26551 = (long int) D.26550;
          D.26552 = __builtin_expect (D.26551, 0);
          if (D.26552 != 0) goto <D.26958>; else goto <D.26959>;
          <D.26958>:
          D.26555 = src_var->data.op[1].vtype;
          D.26960 = mini_is_gsharedvt_variable_type (cfg, D.26555);
          if (D.26960 != 0) goto <D.26961>; else goto <D.26962>;
          <D.26961>:
          handle_gsharedvt_ldaddr (cfg);
          <D.26962>:
          <D.26959>:
          D.26964 = mono_arch_is_soft_float ();
          if (D.26964 != 0) goto <D.26965>; else goto <D.26966>;
          <D.26965>:
          D.26567 = src_var->type;
          if (D.26567 == 2) goto <D.26968>; else goto <D.26971>;
          <D.26971>:
          D.26567 = src_var->type;
          if (D.26567 == 4) goto <D.26968>; else goto <D.26969>;
          <D.26968>:
          iftmp.40 = 1;
          goto <D.26970>;
          <D.26969>:
          iftmp.40 = 0;
          <D.26970>:
          iftmp.39 = (_Bool) iftmp.40;
          goto <D.26972>;
          <D.26966>:
          D.26567 = src_var->type;
          iftmp.39 = D.26567 == 2;
          <D.26972>:
          if (iftmp.39 != 0) goto <D.26973>; else goto <D.26974>;
          <D.26973>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.26573 = src_var->dreg;
            D.26574 = D.26573 + 1;
            D.26575 = (unsigned int) D.26574;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26575 < D.26508) goto <D.26976>; else goto <D.26977>;
            <D.26976>:
            D.26511 = cfg->vreg_to_inst;
            D.26573 = src_var->dreg;
            D.26578 = (sizetype) D.26573;
            D.26579 = D.26578 + 1;
            D.26580 = D.26579 * 4;
            D.26581 = D.26511 + D.26580;
            iftmp.41 = *D.26581;
            goto <D.26978>;
            <D.26977>:
            iftmp.41 = 0B;
            <D.26978>:
            var1 = iftmp.41;
            D.26573 = src_var->dreg;
            D.26584 = D.26573 + 2;
            D.26585 = (unsigned int) D.26584;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.26585 < D.26508) goto <D.26980>; else goto <D.26981>;
            <D.26980>:
            D.26511 = cfg->vreg_to_inst;
            D.26573 = src_var->dreg;
            D.26578 = (sizetype) D.26573;
            D.26588 = D.26578 + 2;
            D.26589 = D.26588 * 4;
            D.26590 = D.26511 + D.26589;
            iftmp.42 = *D.26590;
            goto <D.26982>;
            <D.26981>:
            iftmp.42 = 0B;
            <D.26982>:
            var2 = iftmp.42;
            D.26983 = var1 == 0B;
            D.26984 = (long int) D.26983;
            D.26985 = __builtin_expect (D.26984, 0);
            if (D.26985 != 0) goto <D.26986>; else goto <D.26987>;
            <D.26986>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1241, "var1");
            <D.26987>:
            D.26988 = var2 == 0B;
            D.26989 = (long int) D.26988;
            D.26990 = __builtin_expect (D.26989, 0);
            if (D.26990 != 0) goto <D.26991>; else goto <D.26992>;
            <D.26991>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1241, "var2");
            <D.26992>:
            D.26993 = var1->flags;
            D.26994 = D.26993 | 16;
            var1->flags = D.26994;
            D.26995 = var2->flags;
            D.26996 = D.26995 | 16;
            var2->flags = D.26996;
          }
          <D.26974>:
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          if (D.26502 != 0B) goto <D.26997>; else goto <D.26998>;
          <D.26997>:
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          D.26502->next = src;
          D.26501 = cfg->cbb;
          D.26502 = D.26501->last_ins;
          src->prev = D.26502;
          D.26501 = cfg->cbb;
          D.26501->last_ins = src;
          goto <D.26999>;
          <D.26998>:
          D.26501 = cfg->cbb;
          D.26501 = cfg->cbb;
          D.26501->last_ins = src;
          D.26502 = D.26501->last_ins;
          D.26501->code = D.26502;
          <D.26999>:
          D.26517 = ins->dreg;
          src->dreg = D.26517;
          goto <D.23701>;
        }
        <D.23721>:
        <D.23722>:
        <D.23723>:
        {
          struct MonoCallInst * call;
          int size;

          call = ins;
          D.27000 = BIT_FIELD_REF <*call, 32, 704>;
          D.27001 = D.27000 & 8;
          if (D.27001 != 0) goto <D.27002>; else goto <D.27003>;
          <D.27002>:
          {
            struct MonoCallInst * call2;

            D.26496 = cfg->mempool;
            call2 = mono_mempool_alloc0 (D.26496, 120);
            call2->inst.opcode = 316;
            call2->inst.dreg = -1;
            call2->inst.sreg3 = -1;
            D.27004 = call2->inst.sreg3;
            call2->inst.sreg2 = D.27004;
            D.27005 = call2->inst.sreg2;
            call2->inst.sreg1 = D.27005;
            D.26543 = cfg->ip;
            call2->inst.cil_code = D.26543;
            memcpy (call2, call, 120);
            D.26503 = ins->opcode;
            D.26504 = (int) D.26503;
            switch (D.26504) <default: <D.27006>, case 355: <D.23727>, case 356: <D.23729>, case 357: <D.23730>>
            <D.23727>:
            call2->inst.opcode = 346;
            goto <D.23728>;
            <D.23729>:
            call2->inst.opcode = 347;
            goto <D.23728>;
            <D.23730>:
            call2->inst.opcode = 348;
            goto <D.23728>;
            <D.27006>:
            <D.23728>:
            D.27007 = alloc_preg (cfg);
            D.27008 = (int) D.27007;
            call2->inst.dreg = D.27008;
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            if (D.26502 != 0B) goto <D.27009>; else goto <D.27010>;
            <D.27009>:
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            D.26502->next = call2;
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            MEM[(struct MonoInst *)call2].prev = D.26502;
            D.26501 = cfg->cbb;
            D.26501->last_ins = call2;
            goto <D.27011>;
            <D.27010>:
            D.26501 = cfg->cbb;
            D.26501 = cfg->cbb;
            D.26501->last_ins = call2;
            D.26502 = D.26501->last_ins;
            D.26501->code = D.26502;
            <D.27011>:
            D.27013 = call->inst.dreg;
            D.27014 = (unsigned int) D.27013;
            D.26508 = cfg->vreg_to_inst_len;
            if (D.27014 < D.26508) goto <D.27015>; else goto <D.27016>;
            <D.27015>:
            D.26511 = cfg->vreg_to_inst;
            D.27013 = call->inst.dreg;
            D.27017 = (unsigned int) D.27013;
            D.27018 = D.27017 * 4;
            D.27019 = D.26511 + D.27018;
            iftmp.43 = *D.27019;
            goto <D.27020>;
            <D.27016>:
            iftmp.43 = 0B;
            <D.27020>:
            dest_var = iftmp.43;
            if (dest_var == 0B) goto <D.27021>; else goto <D.27022>;
            <D.27021>:
            D.27023 = call->signature;
            D.27024 = D.27023->ret;
            D.27013 = call->inst.dreg;
            dest_var = mono_compile_create_var_for_vreg (cfg, D.27024, 329, D.27013);
            <D.27022>:
            D.26496 = cfg->mempool;
            dest = mono_mempool_alloc (D.26496, 56);
            dest->data.op[1].const_val = 0;
            D.26609 = dest->data.op[1].const_val;
            dest->data.op[0].const_val = D.26609;
            dest->prev = 0B;
            D.26610 = dest->prev;
            dest->next = D.26610;
            dest->opcode = 314;
            dest->flags = 0;
            dest->type = 0;
            dest->dreg = -1;
            dest->sreg3 = -1;
            D.26611 = dest->sreg3;
            dest->sreg2 = D.26611;
            D.26612 = dest->sreg2;
            dest->sreg1 = D.26612;
            D.26543 = cfg->ip;
            dest->cil_code = D.26543;
            dest->data.op[0].p = dest_var;
            D.26613 = dest_var->flags;
            D.26614 = D.26613 | 16;
            dest_var->flags = D.26614;
            dest->type = 5;
            D.26615 = dest_var->klass;
            dest->klass = D.26615;
            D.27025 = alloc_dreg (cfg, 5);
            D.27026 = (int) D.27025;
            dest->dreg = D.27026;
            cfg->has_indirection = 1;
            D.26549 = cfg->gsharedvt;
            D.26550 = D.26549 != 0;
            D.26551 = (long int) D.26550;
            D.26552 = __builtin_expect (D.26551, 0);
            if (D.26552 != 0) goto <D.27027>; else goto <D.27028>;
            <D.27027>:
            D.26620 = dest_var->data.op[1].vtype;
            D.27029 = mini_is_gsharedvt_variable_type (cfg, D.26620);
            if (D.27029 != 0) goto <D.27030>; else goto <D.27031>;
            <D.27030>:
            handle_gsharedvt_ldaddr (cfg);
            <D.27031>:
            <D.27028>:
            D.27033 = mono_arch_is_soft_float ();
            if (D.27033 != 0) goto <D.27034>; else goto <D.27035>;
            <D.27034>:
            D.26632 = dest_var->type;
            if (D.26632 == 2) goto <D.27037>; else goto <D.27040>;
            <D.27040>:
            D.26632 = dest_var->type;
            if (D.26632 == 4) goto <D.27037>; else goto <D.27038>;
            <D.27037>:
            iftmp.45 = 1;
            goto <D.27039>;
            <D.27038>:
            iftmp.45 = 0;
            <D.27039>:
            iftmp.44 = (_Bool) iftmp.45;
            goto <D.27041>;
            <D.27035>:
            D.26632 = dest_var->type;
            iftmp.44 = D.26632 == 2;
            <D.27041>:
            if (iftmp.44 != 0) goto <D.27042>; else goto <D.27043>;
            <D.27042>:
            {
              struct MonoInst * var1;
              struct MonoInst * var2;

              D.26638 = dest_var->dreg;
              D.26639 = D.26638 + 1;
              D.26640 = (unsigned int) D.26639;
              D.26508 = cfg->vreg_to_inst_len;
              if (D.26640 < D.26508) goto <D.27045>; else goto <D.27046>;
              <D.27045>:
              D.26511 = cfg->vreg_to_inst;
              D.26638 = dest_var->dreg;
              D.26643 = (sizetype) D.26638;
              D.26644 = D.26643 + 1;
              D.26645 = D.26644 * 4;
              D.26646 = D.26511 + D.26645;
              iftmp.46 = *D.26646;
              goto <D.27047>;
              <D.27046>:
              iftmp.46 = 0B;
              <D.27047>:
              var1 = iftmp.46;
              D.26638 = dest_var->dreg;
              D.26649 = D.26638 + 2;
              D.26650 = (unsigned int) D.26649;
              D.26508 = cfg->vreg_to_inst_len;
              if (D.26650 < D.26508) goto <D.27049>; else goto <D.27050>;
              <D.27049>:
              D.26511 = cfg->vreg_to_inst;
              D.26638 = dest_var->dreg;
              D.26643 = (sizetype) D.26638;
              D.26653 = D.26643 + 2;
              D.26654 = D.26653 * 4;
              D.26655 = D.26511 + D.26654;
              iftmp.47 = *D.26655;
              goto <D.27051>;
              <D.27050>:
              iftmp.47 = 0B;
              <D.27051>:
              var2 = iftmp.47;
              D.27052 = var1 == 0B;
              D.27053 = (long int) D.27052;
              D.27054 = __builtin_expect (D.27053, 0);
              if (D.27054 != 0) goto <D.27055>; else goto <D.27056>;
              <D.27055>:
              monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1275, "var1");
              <D.27056>:
              D.27057 = var2 == 0B;
              D.27058 = (long int) D.27057;
              D.27059 = __builtin_expect (D.27058, 0);
              if (D.27059 != 0) goto <D.27060>; else goto <D.27061>;
              <D.27060>:
              monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1275, "var2");
              <D.27061>:
              D.27062 = var1->flags;
              D.27063 = D.27062 | 16;
              var1->flags = D.27063;
              D.27064 = var2->flags;
              D.27065 = D.27064 | 16;
              var2->flags = D.27065;
            }
            <D.27043>:
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            if (D.26502 != 0B) goto <D.27066>; else goto <D.27067>;
            <D.27066>:
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            D.26502->next = dest;
            D.26501 = cfg->cbb;
            D.26502 = D.26501->last_ins;
            dest->prev = D.26502;
            D.26501 = cfg->cbb;
            D.26501->last_ins = dest;
            goto <D.27068>;
            <D.27067>:
            D.26501 = cfg->cbb;
            D.26501 = cfg->cbb;
            D.26501->last_ins = dest;
            D.26502 = D.26501->last_ins;
            D.26501->code = D.26502;
            <D.27068>:
            D.26890 = dest_var->backend.is_pinvoke;
            if (D.26890 != 0) goto <D.27069>; else goto <D.27070>;
            <D.27069>:
            D.26620 = dest_var->data.op[1].vtype;
            D.27071 = mono_class_from_mono_type (D.26620);
            size = mono_class_native_size (D.27071, 0B);
            goto <D.27072>;
            <D.27070>:
            D.26620 = dest_var->data.op[1].vtype;
            size = mono_type_size (D.26620, 0B);
            <D.27072>:
            switch (size) <default: <D.23751>, case 1: <D.23733>, case 2: <D.23736>, case 3: <D.23738>, case 4: <D.23739>, case 5: <D.23741>, case 6: <D.23742>, case 7: <D.23743>, case 8: <D.23744>>
            <D.23733>:
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27073 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27073;
              inst->prev = 0B;
              D.27074 = inst->prev;
              inst->next = D.27074;
              inst->opcode = 375;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27075 = inst->sreg3;
              inst->sreg2 = D.27075;
              D.27076 = inst->sreg2;
              inst->sreg1 = D.27076;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              inst->sreg1 = D.27077;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 0;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27079>; else goto <D.27080>;
              <D.27079>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27081>;
              <D.27080>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27081>:
            }
            goto <D.23735>;
            <D.23736>:
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27082 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27082;
              inst->prev = 0B;
              D.27083 = inst->prev;
              inst->next = D.27083;
              inst->opcode = 376;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27084 = inst->sreg3;
              inst->sreg2 = D.27084;
              D.27085 = inst->sreg2;
              inst->sreg1 = D.27085;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              inst->sreg1 = D.27077;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 0;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27086>; else goto <D.27087>;
              <D.27086>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27088>;
              <D.27087>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27088>:
            }
            goto <D.23735>;
            <D.23738>:
            <D.23739>:
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27089 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27089;
              inst->prev = 0B;
              D.27090 = inst->prev;
              inst->next = D.27090;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27091 = inst->sreg3;
              inst->sreg2 = D.27091;
              D.27092 = inst->sreg2;
              inst->sreg1 = D.27092;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              inst->sreg1 = D.27077;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 0;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27093>; else goto <D.27094>;
              <D.27093>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27095>;
              <D.27094>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27095>:
            }
            goto <D.23735>;
            <D.23741>:
            <D.23742>:
            <D.23743>:
            <D.23744>:
            D.27096 = call2->inst.opcode;
            D.27097 = (int) D.27096;
            switch (D.27097) <default: <D.27098>, case 346: <D.23745>, case 347: <D.23747>, case 348: <D.23748>>
            <D.23745>:
            call2->inst.opcode = 352;
            goto <D.23746>;
            <D.23747>:
            call2->inst.opcode = 353;
            goto <D.23746>;
            <D.23748>:
            call2->inst.opcode = 354;
            goto <D.23746>;
            <D.27098>:
            <D.23746>:
            D.27099 = alloc_lreg (cfg);
            D.27100 = (int) D.27099;
            call2->inst.dreg = D.27100;
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27101 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27101;
              inst->prev = 0B;
              D.27102 = inst->prev;
              inst->next = D.27102;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27103 = inst->sreg3;
              inst->sreg2 = D.27103;
              D.27104 = inst->sreg2;
              inst->sreg1 = D.27104;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              D.27105 = D.27077 + 2;
              inst->sreg1 = D.27105;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 4;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27106>; else goto <D.27107>;
              <D.27106>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27108>;
              <D.27107>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27108>:
            }
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27109 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27109;
              inst->prev = 0B;
              D.27110 = inst->prev;
              inst->next = D.27110;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27111 = inst->sreg3;
              inst->sreg2 = D.27111;
              D.27112 = inst->sreg2;
              inst->sreg1 = D.27112;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              D.27113 = D.27077 + 1;
              inst->sreg1 = D.27113;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 0;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27114>; else goto <D.27115>;
              <D.27114>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27116>;
              <D.27115>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27116>:
            }
            goto <D.23735>;
            <D.23751>:
            {
              struct MonoInst * inst;

              D.26496 = cfg->mempool;
              inst = mono_mempool_alloc (D.26496, 56);
              inst->data.op[1].const_val = 0;
              D.27117 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27117;
              inst->prev = 0B;
              D.27118 = inst->prev;
              inst->next = D.27118;
              inst->opcode = 374;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27119 = inst->sreg3;
              inst->sreg2 = D.27119;
              D.27120 = inst->sreg2;
              inst->sreg1 = D.27120;
              D.26543 = cfg->ip;
              inst->cil_code = D.26543;
              D.27077 = call2->inst.dreg;
              inst->sreg1 = D.27077;
              D.27078 = dest->dreg;
              inst->dreg = D.27078;
              inst->data.op[0].const_val = 0;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              if (D.26502 != 0B) goto <D.27121>; else goto <D.27122>;
              <D.27121>:
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              D.26502->next = inst;
              D.26501 = cfg->cbb;
              D.26502 = D.26501->last_ins;
              inst->prev = D.26502;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              goto <D.27123>;
              <D.27122>:
              D.26501 = cfg->cbb;
              D.26501 = cfg->cbb;
              D.26501->last_ins = inst;
              D.26502 = D.26501->last_ins;
              D.26501->code = D.26502;
              <D.27123>:
            }
            goto <D.23735>;
            <D.23735>:
          }
          goto <D.27124>;
          <D.27003>:
          D.26503 = ins->opcode;
          D.26504 = (int) D.26503;
          switch (D.26504) <default: <D.27125>, case 355: <D.23753>, case 356: <D.23755>, case 357: <D.23756>>
          <D.23753>:
          ins->opcode = 358;
          goto <D.23754>;
          <D.23755>:
          ins->opcode = 359;
          goto <D.23754>;
          <D.23756>:
          ins->opcode = 360;
          goto <D.23754>;
          <D.27125>:
          <D.23754>:
          ins->dreg = -1;
          <D.27124>:
          goto <D.23701>;
        }
        <D.23757>:
        goto <D.23701>;
        <D.23701>:
        D.26501 = cfg->cbb;
        D.27126 = D.26501 != first_bb;
        D.27127 = (long int) D.27126;
        D.27128 = __builtin_expect (D.27127, 0);
        if (D.27128 != 0) goto <D.27129>; else goto <D.27130>;
        <D.27129>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1345, "cfg->cbb == first_bb");
        <D.27130>:
        D.26501 = cfg->cbb;
        D.27134 = D.26501->code;
        if (D.27134 != 0B) goto <D.27131>; else goto <D.27135>;
        <D.27135>:
        D.26501 = cfg->cbb;
        if (D.26501 != first_bb) goto <D.27131>; else goto <D.27132>;
        <D.27131>:
        D.26501 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.26501);
        first_bb->last_ins = 0B;
        D.27136 = first_bb->last_ins;
        first_bb->code = D.27136;
        first_bb->out_count = 0;
        D.27137 = first_bb->out_count;
        first_bb->in_count = D.27137;
        cfg->cbb = first_bb;
        goto <D.27133>;
        <D.27132>:
        prev = ins;
        <D.27133>:
        ins = ins->next;
        <D.23759>:
        if (ins != 0B) goto <D.23758>; else goto <D.23760>;
        <D.23760>:
        <D.23762>:
        if (restart != 0) goto <D.23761>; else goto <D.23763>;
        <D.23763>:
        D.26498 = cfg->verbose_level;
        if (D.26498 > 2) goto <D.27138>; else goto <D.27139>;
        <D.27138>:
        mono_print_bb (bb, "AFTER LOWER-VTYPE-OPTS ");
        <D.27139>:
      }
    finally
      {
        prev = {CLOBBER};
      }
  }
  bb = bb->next_bb;
  <D.23765>:
  if (bb != 0B) goto <D.23764>; else goto <D.23766>;
  <D.23766>:
}


memcpy (void * restrict __dest, const void * restrict __src, size_t __len)
{
  void * D.27141;
  unsigned int D.27142;

  D.27142 = __builtin_object_size (__dest, 0);
  D.27141 = __builtin___memcpy_chk (__dest, __src, __len, D.27142);
  return D.27141;
}


alloc_preg (struct MonoCompile * cfg)
{
  guint32 D.27144;

  D.27144 = alloc_ireg (cfg);
  return D.27144;
}


alloc_dreg (struct MonoCompile * cfg, MonoStackType stack_type)
{
  guint32 D.27146;

  switch (stack_type) <default: <D.21490>, case 1: <D.21483>, case 2: <D.21488>, case 3: <D.21484>, case 4: <D.21487>, case 5: <D.21485>, case 6: <D.21486>, case 7: <D.21489>>
  <D.21483>:
  <D.21484>:
  D.27146 = alloc_ireg (cfg);
  return D.27146;
  <D.21485>:
  D.27146 = alloc_ireg_mp (cfg);
  return D.27146;
  <D.21486>:
  D.27146 = alloc_ireg_ref (cfg);
  return D.27146;
  <D.21487>:
  D.27146 = alloc_freg (cfg);
  return D.27146;
  <D.21488>:
  D.27146 = alloc_lreg (cfg);
  return D.27146;
  <D.21489>:
  D.27146 = alloc_ireg (cfg);
  return D.27146;
  <D.21490>:
  monoeg_g_log (0B, 16, "Unknown stack type %x\n", stack_type);
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "ir-emit.h", 97);
  D.27146 = 4294967295;
  return D.27146;
}


alloc_ireg_mp (struct MonoCompile * cfg)
{
  unsigned int D.27148;
  unsigned int D.27149;
  unsigned int D.27150;
  guint32 D.27153;
  int vreg;

  D.27148 = alloc_ireg (cfg);
  vreg = (int) D.27148;
  D.27149 = BIT_FIELD_REF <*cfg, 32, 3424>;
  D.27150 = D.27149 & 128;
  if (D.27150 != 0) goto <D.27151>; else goto <D.27152>;
  <D.27151>:
  mono_mark_vreg_as_mp (cfg, vreg);
  <D.27152>:
  D.27153 = (guint32) vreg;
  return D.27153;
}


alloc_ireg_ref (struct MonoCompile * cfg)
{
  unsigned int D.27155;
  unsigned int D.27156;
  unsigned int D.27157;
  guint32 D.27160;
  int vreg;

  D.27155 = alloc_ireg (cfg);
  vreg = (int) D.27155;
  D.27156 = BIT_FIELD_REF <*cfg, 32, 3424>;
  D.27157 = D.27156 & 128;
  if (D.27157 != 0) goto <D.27158>; else goto <D.27159>;
  <D.27158>:
  mono_mark_vreg_as_ref (cfg, vreg);
  <D.27159>:
  D.27160 = (guint32) vreg;
  return D.27160;
}


alloc_freg (struct MonoCompile * cfg)
{
  int D.27162;
  guint32 D.27165;
  unsigned int D.27166;
  unsigned int D.27167;
  unsigned int D.27168;

  D.27162 = mono_arch_is_soft_float ();
  if (D.27162 != 0) goto <D.27163>; else goto <D.27164>;
  <D.27163>:
  D.27165 = alloc_lreg (cfg);
  return D.27165;
  <D.27164>:
  D.27166 = cfg->next_vreg;
  D.27167 = D.27166;
  D.27168 = D.27167 + 1;
  cfg->next_vreg = D.27168;
  D.27165 = D.27167;
  return D.27165;
}


handle_gsharedvt_ldaddr (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.27170;
  int D.27171;
  struct MonoInst * D.27172;
  int D.27173;
  int D.27174;
  const unsigned char * D.27175;
  struct MonoInst * D.27176;
  int D.27177;
  struct MonoBasicBlock * D.27178;
  struct MonoInst * D.27179;
  struct MonoInst * D.27183;
  int D.27184;
  struct MonoInst * use;

  D.27170 = cfg->mempool;
  use = mono_mempool_alloc (D.27170, 56);
  use->data.op[1].const_val = 0;
  D.27171 = use->data.op[1].const_val;
  use->data.op[0].const_val = D.27171;
  use->prev = 0B;
  D.27172 = use->prev;
  use->next = D.27172;
  use->opcode = 796;
  use->flags = 0;
  use->type = 0;
  use->dreg = -1;
  use->sreg3 = -1;
  D.27173 = use->sreg3;
  use->sreg2 = D.27173;
  D.27174 = use->sreg2;
  use->sreg1 = D.27174;
  D.27175 = cfg->ip;
  use->cil_code = D.27175;
  D.27176 = cfg->gsharedvt_info_var;
  D.27177 = D.27176->dreg;
  use->sreg1 = D.27177;
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  if (D.27179 != 0B) goto <D.27180>; else goto <D.27181>;
  <D.27180>:
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  D.27179->next = use;
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  use->prev = D.27179;
  D.27178 = cfg->cbb;
  D.27178->last_ins = use;
  goto <D.27182>;
  <D.27181>:
  D.27178 = cfg->cbb;
  D.27178 = cfg->cbb;
  D.27178->last_ins = use;
  D.27179 = D.27178->last_ins;
  D.27178->code = D.27179;
  <D.27182>:
  D.27170 = cfg->mempool;
  use = mono_mempool_alloc (D.27170, 56);
  use->data.op[1].const_val = 0;
  D.27171 = use->data.op[1].const_val;
  use->data.op[0].const_val = D.27171;
  use->prev = 0B;
  D.27172 = use->prev;
  use->next = D.27172;
  use->opcode = 796;
  use->flags = 0;
  use->type = 0;
  use->dreg = -1;
  use->sreg3 = -1;
  D.27173 = use->sreg3;
  use->sreg2 = D.27173;
  D.27174 = use->sreg2;
  use->sreg1 = D.27174;
  D.27175 = cfg->ip;
  use->cil_code = D.27175;
  D.27183 = cfg->gsharedvt_locals_var;
  D.27184 = D.27183->dreg;
  use->sreg1 = D.27184;
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  if (D.27179 != 0B) goto <D.27185>; else goto <D.27186>;
  <D.27185>:
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  D.27179->next = use;
  D.27178 = cfg->cbb;
  D.27179 = D.27178->last_ins;
  use->prev = D.27179;
  D.27178 = cfg->cbb;
  D.27178->last_ins = use;
  goto <D.27187>;
  <D.27186>:
  D.27178 = cfg->cbb;
  D.27178 = cfg->cbb;
  D.27178->last_ins = use;
  D.27179 = D.27178->last_ins;
  D.27178->code = D.27179;
  <D.27187>:
}


mono_arch_is_soft_float ()
{
  gboolean D.27188;

  D.27188 = 0;
  return D.27188;
}


alloc_lreg (struct MonoCompile * cfg)
{
  unsigned int D.27190;
  unsigned int D.27191;
  guint32 D.27192;
  guint32 res;

  res = cfg->next_vreg;
  D.27190 = cfg->next_vreg;
  D.27191 = D.27190 + 3;
  cfg->next_vreg = D.27191;
  D.27192 = res;
  return D.27192;
}


mono_decompose_vtype_opts_llvm (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.27194;
  void * D.27195;
  unsigned int D.27196;
  struct MonoBasicBlock * D.27199;
  struct MonoInst * D.27200;
  short unsigned int D.27201;
  int D.27202;
  struct MonoInst * iftmp.48;
  int D.27204;
  unsigned int D.27205;
  unsigned int D.27206;
  struct MonoInst * * D.27209;
  unsigned int D.27210;
  unsigned int D.27211;
  struct MonoInst * * D.27212;
  struct MonoClass * D.27216;
  _Bool D.27217;
  long int D.27218;
  long int D.27219;
  struct MonoType * D.27222;
  struct MonoInst * iftmp.49;
  int D.27229;
  struct MonoInst * D.27230;
  int D.27231;
  int D.27232;
  const unsigned char * D.27233;
  unsigned char D.27234;
  unsigned char D.27235;
  struct MonoClass * D.27236;
  unsigned int D.27237;
  int D.27238;
  int D.27239;
  _Bool D.27240;
  long int D.27241;
  long int D.27242;
  struct MonoType * D.27245;
  int D.27246;
  _Bool iftmp.50;
  int D.27250;
  int iftmp.51;
  unsigned char D.27257;
  struct MonoInst * iftmp.52;
  int D.27263;
  int D.27264;
  unsigned int D.27265;
  sizetype D.27268;
  sizetype D.27269;
  sizetype D.27270;
  struct MonoInst * * D.27271;
  struct MonoInst * iftmp.53;
  int D.27274;
  unsigned int D.27275;
  sizetype D.27278;
  sizetype D.27279;
  struct MonoInst * * D.27280;
  _Bool D.27282;
  long int D.27283;
  long int D.27284;
  _Bool D.27287;
  long int D.27288;
  long int D.27289;
  unsigned char D.27292;
  unsigned char D.27293;
  unsigned char D.27294;
  unsigned char D.27295;
  unsigned int D.27299;
  int D.27300;
  struct MonoInst * D.27301;
  int D.27302;
  int D.27303;
  int D.27304;
  int D.27305;
  struct MonoClass * D.27309;
  int D.27310;
  _Bool D.27311;
  long int D.27312;
  long int D.27313;
  struct MonoInst * D.27319;
  struct MonoInst * D.27321;
  short int D.27322;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.27194 = cfg->mempool;
  D.27195 = mono_mempool_alloc0 (D.27194, 172);
  cfg->cbb = D.27195;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.23792>;
  <D.23791>:
  {
    struct MonoInst * ins;
    struct MonoInst * prev;
    struct MonoInst * src_var;
    struct MonoInst * src;
    struct MonoInst * dest;
    gboolean restart;
    int dreg;

    try
      {
        prev = 0B;
        D.27196 = cfg->verbose_level;
        if (D.27196 > 2) goto <D.27197>; else goto <D.27198>;
        <D.27197>:
        mono_print_bb (bb, "BEFORE LOWER-VTYPE-OPTS(LLVM) ");
        <D.27198>:
        D.27199 = cfg->cbb;
        D.27199 = cfg->cbb;
        D.27199->last_ins = 0B;
        D.27200 = D.27199->last_ins;
        D.27199->code = D.27200;
        restart = 1;
        goto <D.23789>;
        <D.23788>:
        restart = 0;
        ins = bb->code;
        goto <D.23786>;
        <D.23785>:
        D.27201 = ins->opcode;
        D.27202 = (int) D.27201;
        switch (D.27202) <default: <D.23784>, case 387: <D.23779>>
        <D.23779>:
        D.27204 = ins->sreg1;
        D.27205 = (unsigned int) D.27204;
        D.27206 = cfg->vreg_to_inst_len;
        if (D.27205 < D.27206) goto <D.27207>; else goto <D.27208>;
        <D.27207>:
        D.27209 = cfg->vreg_to_inst;
        D.27204 = ins->sreg1;
        D.27210 = (unsigned int) D.27204;
        D.27211 = D.27210 * 4;
        D.27212 = D.27209 + D.27211;
        iftmp.48 = *D.27212;
        goto <D.27213>;
        <D.27208>:
        iftmp.48 = 0B;
        <D.27213>:
        src_var = iftmp.48;
        if (src_var == 0B) goto <D.27214>; else goto <D.27215>;
        <D.27214>:
        D.27216 = ins->klass;
        D.27217 = D.27216 == 0B;
        D.27218 = (long int) D.27217;
        D.27219 = __builtin_expect (D.27218, 0);
        if (D.27219 != 0) goto <D.27220>; else goto <D.27221>;
        <D.27220>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1395, "ins->klass");
        <D.27221>:
        D.27216 = ins->klass;
        D.27222 = &D.27216->byval_arg;
        D.27204 = ins->sreg1;
        src_var = mono_compile_create_var_for_vreg (cfg, D.27222, 329, D.27204);
        <D.27215>:
        {
          struct MonoInst * var;

          D.27204 = ins->sreg1;
          D.27205 = (unsigned int) D.27204;
          D.27206 = cfg->vreg_to_inst_len;
          if (D.27205 < D.27206) goto <D.27224>; else goto <D.27225>;
          <D.27224>:
          D.27209 = cfg->vreg_to_inst;
          D.27204 = ins->sreg1;
          D.27210 = (unsigned int) D.27204;
          D.27211 = D.27210 * 4;
          D.27212 = D.27209 + D.27211;
          iftmp.49 = *D.27212;
          goto <D.27226>;
          <D.27225>:
          iftmp.49 = 0B;
          <D.27226>:
          var = iftmp.49;
          if (var == 0B) goto <D.27227>; else goto <D.27228>;
          <D.27227>:
          D.27216 = ins->klass;
          D.27222 = &D.27216->byval_arg;
          D.27204 = ins->sreg1;
          var = mono_compile_create_var_for_vreg (cfg, D.27222, 329, D.27204);
          <D.27228>:
          D.27194 = cfg->mempool;
          src = mono_mempool_alloc (D.27194, 56);
          src->data.op[1].const_val = 0;
          D.27229 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.27229;
          src->prev = 0B;
          D.27230 = src->prev;
          src->next = D.27230;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.27231 = src->sreg3;
          src->sreg2 = D.27231;
          D.27232 = src->sreg2;
          src->sreg1 = D.27232;
          D.27233 = cfg->ip;
          src->cil_code = D.27233;
          src->data.op[0].p = var;
          D.27234 = var->flags;
          D.27235 = D.27234 | 16;
          var->flags = D.27235;
          src->type = 5;
          D.27236 = var->klass;
          src->klass = D.27236;
          D.27237 = alloc_dreg (cfg, 5);
          D.27238 = (int) D.27237;
          src->dreg = D.27238;
          cfg->has_indirection = 1;
          D.27239 = cfg->gsharedvt;
          D.27240 = D.27239 != 0;
          D.27241 = (long int) D.27240;
          D.27242 = __builtin_expect (D.27241, 0);
          if (D.27242 != 0) goto <D.27243>; else goto <D.27244>;
          <D.27243>:
          D.27245 = var->data.op[1].vtype;
          D.27246 = mini_is_gsharedvt_variable_type (cfg, D.27245);
          if (D.27246 != 0) goto <D.27247>; else goto <D.27248>;
          <D.27247>:
          handle_gsharedvt_ldaddr (cfg);
          <D.27248>:
          <D.27244>:
          D.27250 = mono_arch_is_soft_float ();
          if (D.27250 != 0) goto <D.27251>; else goto <D.27252>;
          <D.27251>:
          D.27257 = var->type;
          if (D.27257 == 2) goto <D.27254>; else goto <D.27258>;
          <D.27258>:
          D.27257 = var->type;
          if (D.27257 == 4) goto <D.27254>; else goto <D.27255>;
          <D.27254>:
          iftmp.51 = 1;
          goto <D.27256>;
          <D.27255>:
          iftmp.51 = 0;
          <D.27256>:
          iftmp.50 = (_Bool) iftmp.51;
          goto <D.27259>;
          <D.27252>:
          D.27257 = var->type;
          iftmp.50 = D.27257 == 2;
          <D.27259>:
          if (iftmp.50 != 0) goto <D.27260>; else goto <D.27261>;
          <D.27260>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.27263 = var->dreg;
            D.27264 = D.27263 + 1;
            D.27265 = (unsigned int) D.27264;
            D.27206 = cfg->vreg_to_inst_len;
            if (D.27265 < D.27206) goto <D.27266>; else goto <D.27267>;
            <D.27266>:
            D.27209 = cfg->vreg_to_inst;
            D.27263 = var->dreg;
            D.27268 = (sizetype) D.27263;
            D.27269 = D.27268 + 1;
            D.27270 = D.27269 * 4;
            D.27271 = D.27209 + D.27270;
            iftmp.52 = *D.27271;
            goto <D.27272>;
            <D.27267>:
            iftmp.52 = 0B;
            <D.27272>:
            var1 = iftmp.52;
            D.27263 = var->dreg;
            D.27274 = D.27263 + 2;
            D.27275 = (unsigned int) D.27274;
            D.27206 = cfg->vreg_to_inst_len;
            if (D.27275 < D.27206) goto <D.27276>; else goto <D.27277>;
            <D.27276>:
            D.27209 = cfg->vreg_to_inst;
            D.27263 = var->dreg;
            D.27268 = (sizetype) D.27263;
            D.27278 = D.27268 + 2;
            D.27279 = D.27278 * 4;
            D.27280 = D.27209 + D.27279;
            iftmp.53 = *D.27280;
            goto <D.27281>;
            <D.27277>:
            iftmp.53 = 0B;
            <D.27281>:
            var2 = iftmp.53;
            D.27282 = var1 == 0B;
            D.27283 = (long int) D.27282;
            D.27284 = __builtin_expect (D.27283, 0);
            if (D.27284 != 0) goto <D.27285>; else goto <D.27286>;
            <D.27285>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1399, "var1");
            <D.27286>:
            D.27287 = var2 == 0B;
            D.27288 = (long int) D.27287;
            D.27289 = __builtin_expect (D.27288, 0);
            if (D.27289 != 0) goto <D.27290>; else goto <D.27291>;
            <D.27290>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1399, "var2");
            <D.27291>:
            D.27292 = var1->flags;
            D.27293 = D.27292 | 16;
            var1->flags = D.27293;
            D.27294 = var2->flags;
            D.27295 = D.27294 | 16;
            var2->flags = D.27295;
          }
          <D.27261>:
        }
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        if (D.27200 != 0B) goto <D.27296>; else goto <D.27297>;
        <D.27296>:
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        D.27200->next = src;
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        src->prev = D.27200;
        D.27199 = cfg->cbb;
        D.27199->last_ins = src;
        goto <D.27298>;
        <D.27297>:
        D.27199 = cfg->cbb;
        D.27199 = cfg->cbb;
        D.27199->last_ins = src;
        D.27200 = D.27199->last_ins;
        D.27199->code = D.27200;
        <D.27298>:
        D.27299 = alloc_preg (cfg);
        dreg = (int) D.27299;
        D.27194 = cfg->mempool;
        dest = mono_mempool_alloc (D.27194, 56);
        dest->data.op[1].const_val = 0;
        D.27300 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.27300;
        dest->prev = 0B;
        D.27301 = dest->prev;
        dest->next = D.27301;
        dest->opcode = 429;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.27302 = dest->sreg3;
        dest->sreg2 = D.27302;
        D.27303 = dest->sreg2;
        dest->sreg1 = D.27303;
        D.27233 = cfg->ip;
        dest->cil_code = D.27233;
        dest->dreg = dreg;
        D.27304 = ins->dreg;
        dest->sreg1 = D.27304;
        D.27305 = ins->data.op[0].const_val;
        dest->data.op[1].const_val = D.27305;
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        if (D.27200 != 0B) goto <D.27306>; else goto <D.27307>;
        <D.27306>:
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        D.27200->next = dest;
        D.27199 = cfg->cbb;
        D.27200 = D.27199->last_ins;
        dest->prev = D.27200;
        D.27199 = cfg->cbb;
        D.27199->last_ins = dest;
        goto <D.27308>;
        <D.27307>:
        D.27199 = cfg->cbb;
        D.27199 = cfg->cbb;
        D.27199->last_ins = dest;
        D.27200 = D.27199->last_ins;
        D.27199->code = D.27200;
        <D.27308>:
        D.27309 = src_var->klass;
        D.27310 = src_var->backend.is_pinvoke;
        mini_emit_stobj (cfg, dest, src, D.27309, D.27310);
        goto <D.23783>;
        <D.23784>:
        goto <D.23783>;
        <D.23783>:
        D.27199 = cfg->cbb;
        D.27311 = D.27199 != first_bb;
        D.27312 = (long int) D.27311;
        D.27313 = __builtin_expect (D.27312, 0);
        if (D.27313 != 0) goto <D.27314>; else goto <D.27315>;
        <D.27314>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1410, "cfg->cbb == first_bb");
        <D.27315>:
        D.27199 = cfg->cbb;
        D.27319 = D.27199->code;
        if (D.27319 != 0B) goto <D.27316>; else goto <D.27320>;
        <D.27320>:
        D.27199 = cfg->cbb;
        if (D.27199 != first_bb) goto <D.27316>; else goto <D.27317>;
        <D.27316>:
        D.27199 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.27199);
        first_bb->last_ins = 0B;
        D.27321 = first_bb->last_ins;
        first_bb->code = D.27321;
        first_bb->out_count = 0;
        D.27322 = first_bb->out_count;
        first_bb->in_count = D.27322;
        cfg->cbb = first_bb;
        goto <D.27318>;
        <D.27317>:
        prev = ins;
        <D.27318>:
        ins = ins->next;
        <D.23786>:
        if (ins != 0B) goto <D.23785>; else goto <D.23787>;
        <D.23787>:
        <D.23789>:
        if (restart != 0) goto <D.23788>; else goto <D.23790>;
        <D.23790>:
        D.27196 = cfg->verbose_level;
        if (D.27196 > 2) goto <D.27323>; else goto <D.27324>;
        <D.27323>:
        mono_print_bb (bb, "AFTER LOWER-VTYPE-OPTS(LLVM) ");
        <D.27324>:
      }
    finally
      {
        prev = {CLOBBER};
      }
  }
  bb = bb->next_bb;
  <D.23792>:
  if (bb != 0B) goto <D.23791>; else goto <D.23793>;
  <D.23793>:
}


mono_decompose_array_access_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.27326;
  void * D.27327;
  unsigned int D.27328;
  unsigned int D.27329;
  unsigned int D.27332;
  struct MonoBasicBlock * D.27335;
  struct MonoInst * D.27336;
  short unsigned int D.27337;
  int D.27338;
  unsigned char D.27339;
  unsigned char D.27340;
  int D.27341;
  unsigned int D.27344;
  unsigned int D.27345;
  int D.27348;
  struct MonoInst * D.27349;
  int D.27350;
  int D.27351;
  const unsigned char * D.27352;
  int D.27353;
  int D.27357;
  struct MonoInst * D.27358;
  int D.27359;
  int D.27360;
  int D.27365;
  struct MonoInst * D.27366;
  int D.27367;
  int D.27368;
  int D.27369;
  unsigned char D.27370;
  int D.27376;
  struct MonoInst * D.27377;
  int D.27378;
  int D.27379;
  int D.27383;
  struct MonoInst * D.27384;
  int D.27385;
  int D.27386;
  unsigned int D.27393;
  int D.27394;
  int D.27395;
  int D.27398;
  int D.27403;
  struct MonoInst * D.27404;
  int D.27405;
  int D.27406;
  int D.27410;
  struct MonoInst * D.27411;
  int D.27412;
  int D.27413;
  int D.27418;
  struct MonoInst * D.27419;
  int D.27420;
  int D.27421;
  int D.27422;
  unsigned char D.27423;
  int D.27428;
  int D.27433;
  struct MonoInst * D.27434;
  int D.27435;
  int D.27436;
  int D.27440;
  struct MonoInst * D.27441;
  int D.27442;
  int D.27443;
  int D.27448;
  struct MonoInst * D.27449;
  int D.27450;
  int D.27451;
  unsigned char D.27452;
  int D.27456;
  struct MonoInst * D.27457;
  int D.27458;
  int D.27459;
  int D.27460;
  int D.27464;
  struct MonoInst * D.27465;
  int D.27466;
  int D.27467;
  unsigned int D.27472;
  int D.27475;
  int D.27480;
  struct MonoInst * D.27481;
  int D.27482;
  int D.27483;
  int D.27487;
  struct MonoInst * D.27488;
  int D.27489;
  int D.27490;
  int D.27495;
  struct MonoInst * D.27496;
  int D.27497;
  int D.27498;
  unsigned char D.27499;
  int D.27504;
  int D.27509;
  struct MonoInst * D.27510;
  int D.27511;
  int D.27512;
  int D.27516;
  struct MonoInst * D.27517;
  int D.27518;
  int D.27519;
  int D.27524;
  struct MonoInst * D.27525;
  int D.27526;
  int D.27527;
  unsigned char D.27528;
  int D.27532;
  struct MonoInst * D.27533;
  int D.27534;
  int D.27535;
  int D.27539;
  struct MonoInst * D.27540;
  int D.27541;
  int D.27542;
  unsigned int D.27546;
  unsigned int D.27547;
  unsigned int D.27554;
  unsigned int D.27555;
  void * D.27556;
  struct MonoInst * D.27557;
  int D.27558;
  struct MonoInst * D.27559;
  int D.27560;
  int D.27561;
  struct MonoInst * * D.27562;
  int D.27563;
  unsigned int D.27564;
  unsigned int D.27565;
  struct MonoInst * * D.27566;
  struct MonoInst * D.27567;
  struct MonoType * D.27568;
  unsigned int D.27569;
  short unsigned int D.27570;
  struct MonoClass * D.27571;
  int D.27572;
  unsigned char D.27573;
  <unnamed type> D.27574;
  unsigned int D.27575;
  int D.27576;
  short unsigned int D.27577;
  struct MonoClass * D.27580;
  void * D.27581;
  struct MonoDomain * D.27582;
  unsigned int D.27583;
  int D.27584;
  void * D.27588;
  struct MonoInst * D.27589;
  int D.27590;
  struct MonoInst * D.27591;
  guint16 iftmp.54;
  int D.27596;
  int D.27597;
  struct MonoClass * D.27598;
  unsigned int D.27599;
  int D.27600;
  void * D.27604;
  struct MonoInst * D.27605;
  int D.27606;
  struct MonoInst * D.27607;
  int D.27608;
  int D.27609;
  _Bool D.27611;
  long int D.27612;
  long int D.27613;
  void * D.27616;
  guint16 iftmp.55;
  void * iftmp.56;
  unsigned int D.27625;
  int D.27626;
  void * D.27630;
  int D.27634;
  int D.27639;
  struct MonoInst * D.27640;
  int D.27641;
  int D.27642;
  int D.27646;
  struct MonoInst * D.27647;
  int D.27648;
  int D.27649;
  int D.27654;
  struct MonoInst * D.27655;
  int D.27656;
  int D.27657;
  unsigned char D.27658;
  _Bool D.27662;
  long int D.27663;
  long int D.27664;
  struct MonoInst * D.27670;
  struct MonoInst * D.27672;
  short int D.27673;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.27326 = cfg->mempool;
  D.27327 = mono_mempool_alloc0 (D.27326, 172);
  cfg->cbb = D.27327;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.23856>;
  <D.23855>:
  {
    struct MonoInst * ins;
    struct MonoInst * prev;
    struct MonoInst * dest;
    struct MonoInst * iargs[3];
    gboolean restart;

    try
      {
        prev = 0B;
        D.27328 = BIT_FIELD_REF <*bb, 32, 896>;
        D.27329 = D.27328 & 262144;
        if (D.27329 == 0) goto <D.27330>; else goto <D.27331>;
        <D.27330>:
        // predicted unlikely by continue predictor.
        goto <D.23807>;
        <D.27331>:
        D.27332 = cfg->verbose_level;
        if (D.27332 > 3) goto <D.27333>; else goto <D.27334>;
        <D.27333>:
        mono_print_bb (bb, "BEFORE DECOMPOSE-ARRAY-ACCESS-OPTS ");
        <D.27334>:
        D.27335 = cfg->cbb;
        D.27335 = cfg->cbb;
        D.27335->last_ins = 0B;
        D.27336 = D.27335->last_ins;
        D.27335->code = D.27336;
        restart = 1;
        goto <D.23853>;
        <D.23852>:
        restart = 0;
        ins = bb->code;
        goto <D.23850>;
        <D.23849>:
        D.27337 = ins->opcode;
        D.27338 = (int) D.27337;
        switch (D.27338) <default: <D.23848>, case 781: <D.23843>, case 782: <D.23838>, case 783: <D.23808>, case 784: <D.23813>>
        <D.23808>:
        {
          int __ins_flags;

          D.27339 = ins->flags;
          D.27340 = D.27339 | 64;
          __ins_flags = (int) D.27340;
          D.27341 = __ins_flags & 32;
          if (D.27341 != 0) goto <D.27342>; else goto <D.27343>;
          <D.27342>:
          D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
          D.27345 = D.27344 & 64;
          if (D.27345 != 0) goto <D.27346>; else goto <D.27347>;
          <D.27346>:
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27348 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27348;
            inst->prev = 0B;
            D.27349 = inst->prev;
            inst->next = D.27349;
            inst->opcode = 323;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27350 = inst->sreg3;
            inst->sreg2 = D.27350;
            D.27351 = inst->sreg2;
            inst->sreg1 = D.27351;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = -1;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            inst->data.op[1].const_val = 0;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27354>; else goto <D.27355>;
            <D.27354>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27356>;
            <D.27355>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27356>:
          }
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27357 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27357;
            inst->prev = 0B;
            D.27358 = inst->prev;
            inst->next = D.27358;
            inst->opcode = 451;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27359 = inst->sreg3;
            inst->sreg2 = D.27359;
            D.27360 = inst->sreg2;
            inst->sreg1 = D.27360;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->data.op[1].p = "NullReferenceException";
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27361>; else goto <D.27362>;
            <D.27361>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27363>;
            <D.27362>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27363>:
          }
          goto <D.27364>;
          <D.27347>:
          <D.27364>:
          <D.27343>:
          D.27326 = cfg->mempool;
          dest = mono_mempool_alloc (D.27326, 56);
          dest->data.op[1].const_val = 0;
          D.27365 = dest->data.op[1].const_val;
          dest->data.op[0].const_val = D.27365;
          dest->prev = 0B;
          D.27366 = dest->prev;
          dest->next = D.27366;
          dest->opcode = 393;
          dest->flags = 0;
          dest->type = 0;
          dest->dreg = -1;
          dest->sreg3 = -1;
          D.27367 = dest->sreg3;
          dest->sreg2 = D.27367;
          D.27368 = dest->sreg2;
          dest->sreg1 = D.27368;
          D.27352 = cfg->ip;
          dest->cil_code = D.27352;
          D.27369 = ins->dreg;
          dest->dreg = D.27369;
          D.27353 = ins->sreg1;
          dest->sreg1 = D.27353;
          dest->data.op[0].const_val = 12;
          dest->type = 1;
          D.27370 = (unsigned char) __ins_flags;
          dest->flags = D.27370;
        }
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        if (D.27336 != 0B) goto <D.27371>; else goto <D.27372>;
        <D.27371>:
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        D.27336->next = dest;
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        dest->prev = D.27336;
        D.27335 = cfg->cbb;
        D.27335->last_ins = dest;
        goto <D.27373>;
        <D.27372>:
        D.27335 = cfg->cbb;
        D.27335 = cfg->cbb;
        D.27335->last_ins = dest;
        D.27336 = D.27335->last_ins;
        D.27335->code = D.27336;
        <D.27373>:
        goto <D.23812>;
        <D.23813>:
        D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
        D.27345 = D.27344 & 64;
        if (D.27345 != 0) goto <D.27374>; else goto <D.27375>;
        <D.27374>:
        {
          struct MonoInst * inst;

          D.27326 = cfg->mempool;
          inst = mono_mempool_alloc (D.27326, 56);
          inst->data.op[1].const_val = 0;
          D.27376 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27376;
          inst->prev = 0B;
          D.27377 = inst->prev;
          inst->next = D.27377;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27378 = inst->sreg3;
          inst->sreg2 = D.27378;
          D.27379 = inst->sreg2;
          inst->sreg1 = D.27379;
          D.27352 = cfg->ip;
          inst->cil_code = D.27352;
          inst->dreg = -1;
          D.27353 = ins->sreg1;
          inst->sreg1 = D.27353;
          inst->data.op[1].const_val = 0;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          if (D.27336 != 0B) goto <D.27380>; else goto <D.27381>;
          <D.27380>:
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          D.27336->next = inst;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          inst->prev = D.27336;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          goto <D.27382>;
          <D.27381>:
          D.27335 = cfg->cbb;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          D.27336 = D.27335->last_ins;
          D.27335->code = D.27336;
          <D.27382>:
        }
        {
          struct MonoInst * inst;

          D.27326 = cfg->mempool;
          inst = mono_mempool_alloc (D.27326, 56);
          inst->data.op[1].const_val = 0;
          D.27383 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27383;
          inst->prev = 0B;
          D.27384 = inst->prev;
          inst->next = D.27384;
          inst->opcode = 451;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27385 = inst->sreg3;
          inst->sreg2 = D.27385;
          D.27386 = inst->sreg2;
          inst->sreg1 = D.27386;
          D.27352 = cfg->ip;
          inst->cil_code = D.27352;
          inst->data.op[1].p = "NullReferenceException";
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          if (D.27336 != 0B) goto <D.27387>; else goto <D.27388>;
          <D.27387>:
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          D.27336->next = inst;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          inst->prev = D.27336;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          goto <D.27389>;
          <D.27388>:
          D.27335 = cfg->cbb;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          D.27336 = D.27335->last_ins;
          D.27335->code = D.27336;
          <D.27389>:
        }
        goto <D.27390>;
        <D.27375>:
        <D.27390>:
        if (0 != 0) goto <D.27391>; else goto <D.27392>;
        <D.27391>:
        {
          int _length_reg;

          D.27393 = alloc_ireg (cfg);
          _length_reg = (int) D.27393;
          D.27339 = ins->flags;
          D.27394 = (int) D.27339;
          D.27395 = D.27394 & 32;
          if (D.27395 != 0) goto <D.27396>; else goto <D.27397>;
          <D.27396>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 32;
            D.27398 = __ins_flags & 32;
            if (D.27398 != 0) goto <D.27399>; else goto <D.27400>;
            <D.27399>:
            D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
            D.27345 = D.27344 & 64;
            if (D.27345 != 0) goto <D.27401>; else goto <D.27402>;
            <D.27401>:
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27403 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27403;
              inst->prev = 0B;
              D.27404 = inst->prev;
              inst->next = D.27404;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27405 = inst->sreg3;
              inst->sreg2 = D.27405;
              D.27406 = inst->sreg2;
              inst->sreg1 = D.27406;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->dreg = -1;
              D.27353 = ins->sreg1;
              inst->sreg1 = D.27353;
              inst->data.op[1].const_val = 0;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27407>; else goto <D.27408>;
              <D.27407>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27409>;
              <D.27408>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27409>:
            }
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27410 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27410;
              inst->prev = 0B;
              D.27411 = inst->prev;
              inst->next = D.27411;
              inst->opcode = 451;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27412 = inst->sreg3;
              inst->sreg2 = D.27412;
              D.27413 = inst->sreg2;
              inst->sreg1 = D.27413;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->data.op[1].p = "NullReferenceException";
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27414>; else goto <D.27415>;
              <D.27414>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27416>;
              <D.27415>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27416>:
            }
            goto <D.27417>;
            <D.27402>:
            <D.27417>:
            <D.27400>:
            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27418 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27418;
            inst->prev = 0B;
            D.27419 = inst->prev;
            inst->next = D.27419;
            inst->opcode = 393;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27420 = inst->sreg3;
            inst->sreg2 = D.27420;
            D.27421 = inst->sreg2;
            inst->sreg1 = D.27421;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = _length_reg;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            D.27422 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.27422;
            inst->type = 1;
            D.27423 = (unsigned char) __ins_flags;
            inst->flags = D.27423;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27424>; else goto <D.27425>;
            <D.27424>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27426>;
            <D.27425>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27426>:
          }
          goto <D.27427>;
          <D.27397>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 64;
            D.27428 = __ins_flags & 32;
            if (D.27428 != 0) goto <D.27429>; else goto <D.27430>;
            <D.27429>:
            D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
            D.27345 = D.27344 & 64;
            if (D.27345 != 0) goto <D.27431>; else goto <D.27432>;
            <D.27431>:
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27433 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27433;
              inst->prev = 0B;
              D.27434 = inst->prev;
              inst->next = D.27434;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27435 = inst->sreg3;
              inst->sreg2 = D.27435;
              D.27436 = inst->sreg2;
              inst->sreg1 = D.27436;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->dreg = -1;
              D.27353 = ins->sreg1;
              inst->sreg1 = D.27353;
              inst->data.op[1].const_val = 0;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27437>; else goto <D.27438>;
              <D.27437>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27439>;
              <D.27438>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27439>:
            }
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27440 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27440;
              inst->prev = 0B;
              D.27441 = inst->prev;
              inst->next = D.27441;
              inst->opcode = 451;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27442 = inst->sreg3;
              inst->sreg2 = D.27442;
              D.27443 = inst->sreg2;
              inst->sreg1 = D.27443;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->data.op[1].p = "NullReferenceException";
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27444>; else goto <D.27445>;
              <D.27444>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27446>;
              <D.27445>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27446>:
            }
            goto <D.27447>;
            <D.27432>:
            <D.27447>:
            <D.27430>:
            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27448 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27448;
            inst->prev = 0B;
            D.27449 = inst->prev;
            inst->next = D.27449;
            inst->opcode = 393;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27450 = inst->sreg3;
            inst->sreg2 = D.27450;
            D.27451 = inst->sreg2;
            inst->sreg1 = D.27451;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = _length_reg;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            D.27422 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.27422;
            inst->type = 1;
            D.27452 = (unsigned char) __ins_flags;
            inst->flags = D.27452;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27453>; else goto <D.27454>;
            <D.27453>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27455>;
            <D.27454>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27455>:
          }
          <D.27427>:
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27456 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27456;
            inst->prev = 0B;
            D.27457 = inst->prev;
            inst->next = D.27457;
            inst->opcode = 322;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27458 = inst->sreg3;
            inst->sreg2 = D.27458;
            D.27459 = inst->sreg2;
            inst->sreg1 = D.27459;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = -1;
            inst->sreg1 = _length_reg;
            D.27460 = ins->sreg2;
            inst->sreg2 = D.27460;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27461>; else goto <D.27462>;
            <D.27461>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27463>;
            <D.27462>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27463>:
          }
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27464 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27464;
            inst->prev = 0B;
            D.27465 = inst->prev;
            inst->next = D.27465;
            inst->opcode = 459;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27466 = inst->sreg3;
            inst->sreg2 = D.27466;
            D.27467 = inst->sreg2;
            inst->sreg1 = D.27467;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->data.op[1].p = "IndexOutOfRangeException";
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27468>; else goto <D.27469>;
            <D.27468>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27470>;
            <D.27469>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27470>:
          }
        }
        goto <D.27471>;
        <D.27392>:
        {
          int _length_reg;

          D.27472 = alloc_ireg (cfg);
          _length_reg = (int) D.27472;
          if (1 != 0) goto <D.27473>; else goto <D.27474>;
          <D.27473>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 32;
            D.27475 = __ins_flags & 32;
            if (D.27475 != 0) goto <D.27476>; else goto <D.27477>;
            <D.27476>:
            D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
            D.27345 = D.27344 & 64;
            if (D.27345 != 0) goto <D.27478>; else goto <D.27479>;
            <D.27478>:
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27480 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27480;
              inst->prev = 0B;
              D.27481 = inst->prev;
              inst->next = D.27481;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27482 = inst->sreg3;
              inst->sreg2 = D.27482;
              D.27483 = inst->sreg2;
              inst->sreg1 = D.27483;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->dreg = -1;
              D.27353 = ins->sreg1;
              inst->sreg1 = D.27353;
              inst->data.op[1].const_val = 0;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27484>; else goto <D.27485>;
              <D.27484>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27486>;
              <D.27485>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27486>:
            }
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27487 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27487;
              inst->prev = 0B;
              D.27488 = inst->prev;
              inst->next = D.27488;
              inst->opcode = 451;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27489 = inst->sreg3;
              inst->sreg2 = D.27489;
              D.27490 = inst->sreg2;
              inst->sreg1 = D.27490;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->data.op[1].p = "NullReferenceException";
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27491>; else goto <D.27492>;
              <D.27491>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27493>;
              <D.27492>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27493>:
            }
            goto <D.27494>;
            <D.27479>:
            <D.27494>:
            <D.27477>:
            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27495 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27495;
            inst->prev = 0B;
            D.27496 = inst->prev;
            inst->next = D.27496;
            inst->opcode = 393;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27497 = inst->sreg3;
            inst->sreg2 = D.27497;
            D.27498 = inst->sreg2;
            inst->sreg1 = D.27498;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = _length_reg;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            D.27422 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.27422;
            inst->type = 1;
            D.27499 = (unsigned char) __ins_flags;
            inst->flags = D.27499;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27500>; else goto <D.27501>;
            <D.27500>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27502>;
            <D.27501>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27502>:
          }
          goto <D.27503>;
          <D.27474>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 64;
            D.27504 = __ins_flags & 32;
            if (D.27504 != 0) goto <D.27505>; else goto <D.27506>;
            <D.27505>:
            D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
            D.27345 = D.27344 & 64;
            if (D.27345 != 0) goto <D.27507>; else goto <D.27508>;
            <D.27507>:
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27509 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27509;
              inst->prev = 0B;
              D.27510 = inst->prev;
              inst->next = D.27510;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27511 = inst->sreg3;
              inst->sreg2 = D.27511;
              D.27512 = inst->sreg2;
              inst->sreg1 = D.27512;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->dreg = -1;
              D.27353 = ins->sreg1;
              inst->sreg1 = D.27353;
              inst->data.op[1].const_val = 0;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27513>; else goto <D.27514>;
              <D.27513>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27515>;
              <D.27514>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27515>:
            }
            {
              struct MonoInst * inst;

              D.27326 = cfg->mempool;
              inst = mono_mempool_alloc (D.27326, 56);
              inst->data.op[1].const_val = 0;
              D.27516 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.27516;
              inst->prev = 0B;
              D.27517 = inst->prev;
              inst->next = D.27517;
              inst->opcode = 451;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.27518 = inst->sreg3;
              inst->sreg2 = D.27518;
              D.27519 = inst->sreg2;
              inst->sreg1 = D.27519;
              D.27352 = cfg->ip;
              inst->cil_code = D.27352;
              inst->data.op[1].p = "NullReferenceException";
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              if (D.27336 != 0B) goto <D.27520>; else goto <D.27521>;
              <D.27520>:
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              D.27336->next = inst;
              D.27335 = cfg->cbb;
              D.27336 = D.27335->last_ins;
              inst->prev = D.27336;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              goto <D.27522>;
              <D.27521>:
              D.27335 = cfg->cbb;
              D.27335 = cfg->cbb;
              D.27335->last_ins = inst;
              D.27336 = D.27335->last_ins;
              D.27335->code = D.27336;
              <D.27522>:
            }
            goto <D.27523>;
            <D.27508>:
            <D.27523>:
            <D.27506>:
            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27524 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27524;
            inst->prev = 0B;
            D.27525 = inst->prev;
            inst->next = D.27525;
            inst->opcode = 393;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27526 = inst->sreg3;
            inst->sreg2 = D.27526;
            D.27527 = inst->sreg2;
            inst->sreg1 = D.27527;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = _length_reg;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            D.27422 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.27422;
            inst->type = 1;
            D.27528 = (unsigned char) __ins_flags;
            inst->flags = D.27528;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27529>; else goto <D.27530>;
            <D.27529>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27531>;
            <D.27530>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27531>:
          }
          <D.27503>:
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27532 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27532;
            inst->prev = 0B;
            D.27533 = inst->prev;
            inst->next = D.27533;
            inst->opcode = 322;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27534 = inst->sreg3;
            inst->sreg2 = D.27534;
            D.27535 = inst->sreg2;
            inst->sreg1 = D.27535;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = -1;
            inst->sreg1 = _length_reg;
            D.27460 = ins->sreg2;
            inst->sreg2 = D.27460;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27536>; else goto <D.27537>;
            <D.27536>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27538>;
            <D.27537>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27538>:
          }
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27539 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27539;
            inst->prev = 0B;
            D.27540 = inst->prev;
            inst->next = D.27540;
            inst->opcode = 459;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27541 = inst->sreg3;
            inst->sreg2 = D.27541;
            D.27542 = inst->sreg2;
            inst->sreg1 = D.27542;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->data.op[1].p = "IndexOutOfRangeException";
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27543>; else goto <D.27544>;
            <D.27543>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27545>;
            <D.27544>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27545>:
          }
        }
        <D.27471>:
        goto <D.23812>;
        <D.23838>:
        D.27546 = cfg->opt;
        D.27547 = D.27546 & 512;
        if (D.27547 != 0) goto <D.27548>; else goto <D.27549>;
        <D.27548>:
        D.27546 = cfg->opt;
        D.27547 = D.27546 & 512;
        if (D.27547 != 0) goto <D.27550>; else goto <D.27553>;
        <D.27553>:
        D.27554 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.27555 = D.27554 & 64;
        if (D.27555 != 0) goto <D.27550>; else goto <D.27551>;
        <D.27550>:
        {
          struct MonoInst * __domain_var;

          __domain_var = mono_get_domainvar (cfg);
          D.27326 = cfg->mempool;
          D.27556 = mono_mempool_alloc (D.27326, 56);
          iargs[0] = D.27556;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->data.op[1].const_val = 0;
          D.27558 = D.27557->data.op[1].const_val;
          D.27557->data.op[0].const_val = D.27558;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->prev = 0B;
          D.27559 = D.27557->prev;
          D.27557->next = D.27559;
          D.27557 = iargs[0];
          D.27557->opcode = 424;
          D.27557 = iargs[0];
          D.27557->flags = 0;
          D.27557 = iargs[0];
          D.27557->type = 0;
          D.27557 = iargs[0];
          D.27557->dreg = -1;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->sreg3 = -1;
          D.27560 = D.27557->sreg3;
          D.27557->sreg2 = D.27560;
          D.27561 = D.27557->sreg2;
          D.27557->sreg1 = D.27561;
          D.27557 = iargs[0];
          D.27352 = cfg->ip;
          D.27557->cil_code = D.27352;
          D.27557 = iargs[0];
          D.27562 = cfg->varinfo;
          D.27563 = __domain_var->data.op[0].const_val;
          D.27564 = (unsigned int) D.27563;
          D.27565 = D.27564 * 4;
          D.27566 = D.27562 + D.27565;
          D.27567 = *D.27566;
          D.27568 = D.27567->data.op[1].vtype;
          D.27569 = mono_type_to_regmove (cfg, D.27568);
          D.27570 = (short unsigned int) D.27569;
          D.27557->opcode = D.27570;
          D.27562 = cfg->varinfo;
          D.27563 = __domain_var->data.op[0].const_val;
          D.27564 = (unsigned int) D.27563;
          D.27565 = D.27564 * 4;
          D.27566 = D.27562 + D.27565;
          D.27567 = *D.27566;
          D.27568 = D.27567->data.op[1].vtype;
          D.27557 = iargs[0];
          type_to_eval_stack_type (cfg, D.27568, D.27557);
          D.27557 = iargs[0];
          D.27562 = cfg->varinfo;
          D.27563 = __domain_var->data.op[0].const_val;
          D.27564 = (unsigned int) D.27563;
          D.27565 = D.27564 * 4;
          D.27566 = D.27562 + D.27565;
          D.27567 = *D.27566;
          D.27571 = D.27567->klass;
          D.27557->klass = D.27571;
          D.27557 = iargs[0];
          D.27562 = cfg->varinfo;
          D.27563 = __domain_var->data.op[0].const_val;
          D.27564 = (unsigned int) D.27563;
          D.27565 = D.27564 * 4;
          D.27566 = D.27562 + D.27565;
          D.27567 = *D.27566;
          D.27572 = D.27567->dreg;
          D.27557->sreg1 = D.27572;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27573 = D.27557->type;
          D.27574 = (<unnamed type>) D.27573;
          D.27575 = alloc_dreg (cfg, D.27574);
          D.27576 = (int) D.27575;
          D.27557->dreg = D.27576;
          D.27557 = iargs[0];
          D.27577 = D.27557->opcode;
          if (D.27577 == 427) goto <D.27578>; else goto <D.27579>;
          <D.27578>:
          D.27557 = iargs[0];
          D.27562 = cfg->varinfo;
          D.27563 = __domain_var->data.op[0].const_val;
          D.27564 = (unsigned int) D.27563;
          D.27565 = D.27564 * 4;
          D.27566 = D.27562 + D.27565;
          D.27567 = *D.27566;
          D.27568 = D.27567->data.op[1].vtype;
          D.27580 = mono_class_from_mono_type (D.27568);
          D.27557->klass = D.27580;
          <D.27579>:
        }
        goto <D.27552>;
        <D.27551>:
        D.27326 = cfg->mempool;
        D.27581 = mono_mempool_alloc (D.27326, 56);
        iargs[0] = D.27581;
        D.27557 = iargs[0];
        D.27557 = iargs[0];
        D.27557->data.op[1].const_val = 0;
        D.27558 = D.27557->data.op[1].const_val;
        D.27557->data.op[0].const_val = D.27558;
        D.27557 = iargs[0];
        D.27557 = iargs[0];
        D.27557->prev = 0B;
        D.27559 = D.27557->prev;
        D.27557->next = D.27559;
        D.27557 = iargs[0];
        D.27557->opcode = 362;
        D.27557 = iargs[0];
        D.27557->flags = 0;
        D.27557 = iargs[0];
        D.27557->type = 0;
        D.27557 = iargs[0];
        D.27557->dreg = -1;
        D.27557 = iargs[0];
        D.27557 = iargs[0];
        D.27557 = iargs[0];
        D.27557->sreg3 = -1;
        D.27560 = D.27557->sreg3;
        D.27557->sreg2 = D.27560;
        D.27561 = D.27557->sreg2;
        D.27557->sreg1 = D.27561;
        D.27557 = iargs[0];
        D.27352 = cfg->ip;
        D.27557->cil_code = D.27352;
        D.27557 = iargs[0];
        D.27582 = cfg->domain;
        D.27557->data.op[0].p = D.27582;
        D.27557 = iargs[0];
        D.27557->type = 3;
        D.27557 = iargs[0];
        D.27583 = alloc_dreg (cfg, 3);
        D.27584 = (int) D.27583;
        D.27557->dreg = D.27584;
        <D.27552>:
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        if (D.27336 != 0B) goto <D.27585>; else goto <D.27586>;
        <D.27585>:
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        D.27557 = iargs[0];
        D.27336->next = D.27557;
        D.27557 = iargs[0];
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        D.27557->prev = D.27336;
        D.27335 = cfg->cbb;
        D.27557 = iargs[0];
        D.27335->last_ins = D.27557;
        goto <D.27587>;
        <D.27586>:
        D.27335 = cfg->cbb;
        D.27335 = cfg->cbb;
        D.27557 = iargs[0];
        D.27335->last_ins = D.27557;
        D.27336 = D.27335->last_ins;
        D.27335->code = D.27336;
        <D.27587>:
        D.27326 = cfg->mempool;
        D.27588 = mono_mempool_alloc (D.27326, 56);
        iargs[1] = D.27588;
        D.27589 = iargs[1];
        D.27589 = iargs[1];
        D.27589->data.op[1].const_val = 0;
        D.27590 = D.27589->data.op[1].const_val;
        D.27589->data.op[0].const_val = D.27590;
        D.27589 = iargs[1];
        D.27589 = iargs[1];
        D.27589->prev = 0B;
        D.27591 = D.27589->prev;
        D.27589->next = D.27591;
        D.27589 = iargs[1];
        D.27554 = BIT_FIELD_REF <*cfg, 32, 3392>;
        D.27555 = D.27554 & 64;
        if (D.27555 != 0) goto <D.27593>; else goto <D.27594>;
        <D.27593>:
        iftmp.54 = 732;
        goto <D.27595>;
        <D.27594>:
        iftmp.54 = 362;
        <D.27595>:
        D.27589->opcode = iftmp.54;
        D.27589 = iargs[1];
        D.27589->flags = 0;
        D.27589 = iargs[1];
        D.27589->type = 0;
        D.27589 = iargs[1];
        D.27589->dreg = -1;
        D.27589 = iargs[1];
        D.27589 = iargs[1];
        D.27589 = iargs[1];
        D.27589->sreg3 = -1;
        D.27596 = D.27589->sreg3;
        D.27589->sreg2 = D.27596;
        D.27597 = D.27589->sreg2;
        D.27589->sreg1 = D.27597;
        D.27589 = iargs[1];
        D.27352 = cfg->ip;
        D.27589->cil_code = D.27352;
        D.27589 = iargs[1];
        D.27598 = ins->data.op[1].klass;
        D.27589->data.op[0].p = D.27598;
        D.27589 = iargs[1];
        D.27589->data.op[1].src = 11B;
        D.27589 = iargs[1];
        D.27589->type = 3;
        D.27589 = iargs[1];
        D.27599 = alloc_dreg (cfg, 3);
        D.27600 = (int) D.27599;
        D.27589->dreg = D.27600;
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        if (D.27336 != 0B) goto <D.27601>; else goto <D.27602>;
        <D.27601>:
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        D.27589 = iargs[1];
        D.27336->next = D.27589;
        D.27589 = iargs[1];
        D.27335 = cfg->cbb;
        D.27336 = D.27335->last_ins;
        D.27589->prev = D.27336;
        D.27335 = cfg->cbb;
        D.27589 = iargs[1];
        D.27335->last_ins = D.27589;
        goto <D.27603>;
        <D.27602>:
        D.27335 = cfg->cbb;
        D.27335 = cfg->cbb;
        D.27589 = iargs[1];
        D.27335->last_ins = D.27589;
        D.27336 = D.27335->last_ins;
        D.27335->code = D.27336;
        <D.27603>:
        D.27326 = cfg->mempool;
        D.27604 = mono_mempool_alloc (D.27326, 56);
        iargs[2] = D.27604;
        D.27605 = iargs[2];
        D.27605 = iargs[2];
        D.27605->data.op[1].const_val = 0;
        D.27606 = D.27605->data.op[1].const_val;
        D.27605->data.op[0].const_val = D.27606;
        D.27605 = iargs[2];
        D.27605 = iargs[2];
        D.27605->prev = 0B;
        D.27607 = D.27605->prev;
        D.27605->next = D.27607;
        D.27605 = iargs[2];
        D.27605->opcode = 424;
        D.27605 = iargs[2];
        D.27605->flags = 0;
        D.27605 = iargs[2];
        D.27605->type = 0;
        D.27605 = iargs[2];
        D.27605->dreg = -1;
        D.27605 = iargs[2];
        D.27605 = iargs[2];
        D.27605 = iargs[2];
        D.27605->sreg3 = -1;
        D.27608 = D.27605->sreg3;
        D.27605->sreg2 = D.27608;
        D.27609 = D.27605->sreg2;
        D.27605->sreg1 = D.27609;
        D.27605 = iargs[2];
        D.27352 = cfg->ip;
        D.27605->cil_code = D.27352;
        D.27605 = iargs[2];
        D.27353 = ins->sreg1;
        D.27605->dreg = D.27353;
        dest = mono_emit_jit_icall (cfg, mono_array_new, &iargs);
        D.27369 = ins->dreg;
        dest->dreg = D.27369;
        goto <D.27610>;
        <D.27549>:
        {
          struct MonoClass * array_class;
          struct MonoVTable * vtable;
          struct MonoMethod * managed_alloc;

          D.27598 = ins->data.op[1].klass;
          array_class = mono_array_class_get (D.27598, 1);
          D.27582 = cfg->domain;
          vtable = mono_class_vtable (D.27582, array_class);
          managed_alloc = mono_gc_get_managed_array_allocator (array_class);
          D.27611 = vtable == 0B;
          D.27612 = (long int) D.27611;
          D.27613 = __builtin_expect (D.27612, 0);
          if (D.27613 != 0) goto <D.27614>; else goto <D.27615>;
          <D.27614>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1505, "vtable");
          <D.27615>:
          D.27326 = cfg->mempool;
          D.27616 = mono_mempool_alloc (D.27326, 56);
          iargs[0] = D.27616;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->data.op[1].const_val = 0;
          D.27558 = D.27557->data.op[1].const_val;
          D.27557->data.op[0].const_val = D.27558;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->prev = 0B;
          D.27559 = D.27557->prev;
          D.27557->next = D.27559;
          D.27557 = iargs[0];
          D.27554 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.27555 = D.27554 & 64;
          if (D.27555 != 0) goto <D.27618>; else goto <D.27619>;
          <D.27618>:
          iftmp.55 = 732;
          goto <D.27620>;
          <D.27619>:
          iftmp.55 = 362;
          <D.27620>:
          D.27557->opcode = iftmp.55;
          D.27557 = iargs[0];
          D.27557->flags = 0;
          D.27557 = iargs[0];
          D.27557->type = 0;
          D.27557 = iargs[0];
          D.27557->dreg = -1;
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557 = iargs[0];
          D.27557->sreg3 = -1;
          D.27560 = D.27557->sreg3;
          D.27557->sreg2 = D.27560;
          D.27561 = D.27557->sreg2;
          D.27557->sreg1 = D.27561;
          D.27557 = iargs[0];
          D.27352 = cfg->ip;
          D.27557->cil_code = D.27352;
          D.27557 = iargs[0];
          D.27554 = BIT_FIELD_REF <*cfg, 32, 3392>;
          D.27555 = D.27554 & 64;
          if (D.27555 != 0) goto <D.27622>; else goto <D.27623>;
          <D.27622>:
          iftmp.56 = vtable->klass;
          goto <D.27624>;
          <D.27623>:
          iftmp.56 = vtable;
          <D.27624>:
          D.27557->data.op[0].p = iftmp.56;
          D.27557 = iargs[0];
          D.27557->data.op[1].src = 14B;
          D.27557 = iargs[0];
          D.27557->type = 3;
          D.27557 = iargs[0];
          D.27625 = alloc_dreg (cfg, 3);
          D.27626 = (int) D.27625;
          D.27557->dreg = D.27626;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          if (D.27336 != 0B) goto <D.27627>; else goto <D.27628>;
          <D.27627>:
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          D.27557 = iargs[0];
          D.27336->next = D.27557;
          D.27557 = iargs[0];
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          D.27557->prev = D.27336;
          D.27335 = cfg->cbb;
          D.27557 = iargs[0];
          D.27335->last_ins = D.27557;
          goto <D.27629>;
          <D.27628>:
          D.27335 = cfg->cbb;
          D.27335 = cfg->cbb;
          D.27557 = iargs[0];
          D.27335->last_ins = D.27557;
          D.27336 = D.27335->last_ins;
          D.27335->code = D.27336;
          <D.27629>:
          D.27326 = cfg->mempool;
          D.27630 = mono_mempool_alloc (D.27326, 56);
          iargs[1] = D.27630;
          D.27589 = iargs[1];
          D.27589 = iargs[1];
          D.27589->data.op[1].const_val = 0;
          D.27590 = D.27589->data.op[1].const_val;
          D.27589->data.op[0].const_val = D.27590;
          D.27589 = iargs[1];
          D.27589 = iargs[1];
          D.27589->prev = 0B;
          D.27591 = D.27589->prev;
          D.27589->next = D.27591;
          D.27589 = iargs[1];
          D.27589->opcode = 424;
          D.27589 = iargs[1];
          D.27589->flags = 0;
          D.27589 = iargs[1];
          D.27589->type = 0;
          D.27589 = iargs[1];
          D.27589->dreg = -1;
          D.27589 = iargs[1];
          D.27589 = iargs[1];
          D.27589 = iargs[1];
          D.27589->sreg3 = -1;
          D.27596 = D.27589->sreg3;
          D.27589->sreg2 = D.27596;
          D.27597 = D.27589->sreg2;
          D.27589->sreg1 = D.27597;
          D.27589 = iargs[1];
          D.27352 = cfg->ip;
          D.27589->cil_code = D.27352;
          D.27589 = iargs[1];
          D.27353 = ins->sreg1;
          D.27589->dreg = D.27353;
          if (managed_alloc != 0B) goto <D.27631>; else goto <D.27632>;
          <D.27631>:
          dest = mono_emit_method_call (cfg, managed_alloc, &iargs, 0B);
          goto <D.27633>;
          <D.27632>:
          dest = mono_emit_jit_icall (cfg, mono_array_new_specific, &iargs);
          <D.27633>:
          D.27369 = ins->dreg;
          dest->dreg = D.27369;
        }
        <D.27610>:
        goto <D.23812>;
        <D.23843>:
        {
          struct MonoInst * inst;
          int __ins_flags;

          D.27339 = ins->flags;
          D.27340 = D.27339 | 64;
          __ins_flags = (int) D.27340;
          D.27634 = __ins_flags & 32;
          if (D.27634 != 0) goto <D.27635>; else goto <D.27636>;
          <D.27635>:
          D.27344 = BIT_FIELD_REF <*cfg, 32, 3424>;
          D.27345 = D.27344 & 64;
          if (D.27345 != 0) goto <D.27637>; else goto <D.27638>;
          <D.27637>:
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27639 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27639;
            inst->prev = 0B;
            D.27640 = inst->prev;
            inst->next = D.27640;
            inst->opcode = 323;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27641 = inst->sreg3;
            inst->sreg2 = D.27641;
            D.27642 = inst->sreg2;
            inst->sreg1 = D.27642;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->dreg = -1;
            D.27353 = ins->sreg1;
            inst->sreg1 = D.27353;
            inst->data.op[1].const_val = 0;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27643>; else goto <D.27644>;
            <D.27643>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27645>;
            <D.27644>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27645>:
          }
          {
            struct MonoInst * inst;

            D.27326 = cfg->mempool;
            inst = mono_mempool_alloc (D.27326, 56);
            inst->data.op[1].const_val = 0;
            D.27646 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.27646;
            inst->prev = 0B;
            D.27647 = inst->prev;
            inst->next = D.27647;
            inst->opcode = 451;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.27648 = inst->sreg3;
            inst->sreg2 = D.27648;
            D.27649 = inst->sreg2;
            inst->sreg1 = D.27649;
            D.27352 = cfg->ip;
            inst->cil_code = D.27352;
            inst->data.op[1].p = "NullReferenceException";
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            if (D.27336 != 0B) goto <D.27650>; else goto <D.27651>;
            <D.27650>:
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            D.27336->next = inst;
            D.27335 = cfg->cbb;
            D.27336 = D.27335->last_ins;
            inst->prev = D.27336;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            goto <D.27652>;
            <D.27651>:
            D.27335 = cfg->cbb;
            D.27335 = cfg->cbb;
            D.27335->last_ins = inst;
            D.27336 = D.27335->last_ins;
            D.27335->code = D.27336;
            <D.27652>:
          }
          goto <D.27653>;
          <D.27638>:
          <D.27653>:
          <D.27636>:
          D.27326 = cfg->mempool;
          inst = mono_mempool_alloc (D.27326, 56);
          inst->data.op[1].const_val = 0;
          D.27654 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27654;
          inst->prev = 0B;
          D.27655 = inst->prev;
          inst->next = D.27655;
          inst->opcode = 393;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27656 = inst->sreg3;
          inst->sreg2 = D.27656;
          D.27657 = inst->sreg2;
          inst->sreg1 = D.27657;
          D.27352 = cfg->ip;
          inst->cil_code = D.27352;
          D.27369 = ins->dreg;
          inst->dreg = D.27369;
          D.27353 = ins->sreg1;
          inst->sreg1 = D.27353;
          inst->data.op[0].const_val = 8;
          inst->type = 1;
          D.27658 = (unsigned char) __ins_flags;
          inst->flags = D.27658;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          if (D.27336 != 0B) goto <D.27659>; else goto <D.27660>;
          <D.27659>:
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          D.27336->next = inst;
          D.27335 = cfg->cbb;
          D.27336 = D.27335->last_ins;
          inst->prev = D.27336;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          goto <D.27661>;
          <D.27660>:
          D.27335 = cfg->cbb;
          D.27335 = cfg->cbb;
          D.27335->last_ins = inst;
          D.27336 = D.27335->last_ins;
          D.27335->code = D.27336;
          <D.27661>:
        }
        goto <D.23812>;
        <D.23848>:
        goto <D.23812>;
        <D.23812>:
        D.27335 = cfg->cbb;
        D.27662 = D.27335 != first_bb;
        D.27663 = (long int) D.27662;
        D.27664 = __builtin_expect (D.27663, 0);
        if (D.27664 != 0) goto <D.27665>; else goto <D.27666>;
        <D.27665>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1526, "cfg->cbb == first_bb");
        <D.27666>:
        D.27335 = cfg->cbb;
        D.27670 = D.27335->code;
        if (D.27670 != 0B) goto <D.27667>; else goto <D.27671>;
        <D.27671>:
        D.27335 = cfg->cbb;
        if (D.27335 != first_bb) goto <D.27667>; else goto <D.27668>;
        <D.27667>:
        D.27335 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.27335);
        first_bb->last_ins = 0B;
        D.27672 = first_bb->last_ins;
        first_bb->code = D.27672;
        first_bb->out_count = 0;
        D.27673 = first_bb->out_count;
        first_bb->in_count = D.27673;
        cfg->cbb = first_bb;
        goto <D.27669>;
        <D.27668>:
        prev = ins;
        <D.27669>:
        ins = ins->next;
        <D.23850>:
        if (ins != 0B) goto <D.23849>; else goto <D.23851>;
        <D.23851>:
        <D.23853>:
        if (restart != 0) goto <D.23852>; else goto <D.23854>;
        <D.23854>:
        D.27332 = cfg->verbose_level;
        if (D.27332 > 3) goto <D.27674>; else goto <D.27675>;
        <D.27674>:
        mono_print_bb (bb, "AFTER DECOMPOSE-ARRAY-ACCESS-OPTS ");
        <D.27675>:
      }
    finally
      {
        prev = {CLOBBER};
        iargs = {CLOBBER};
      }
  }
  <D.23807>:
  bb = bb->next_bb;
  <D.23856>:
  if (bb != 0B) goto <D.23855>; else goto <D.23857>;
  <D.23857>:
}


mono_get_domainvar (struct MonoCompile * cfg)
{
  struct MonoInst * D.27679;
  struct MonoClass * D.27682;
  struct MonoType * D.27683;
  struct MonoInst * D.27684;
  struct MonoInst * D.27685;

  D.27679 = cfg->domainvar;
  if (D.27679 == 0B) goto <D.27680>; else goto <D.27681>;
  <D.27680>:
  D.27682 = mono_defaults.int_class;
  D.27683 = &D.27682->byval_arg;
  D.27684 = mono_compile_create_var (cfg, D.27683, 329);
  cfg->domainvar = D.27684;
  <D.27681>:
  D.27685 = cfg->domainvar;
  return D.27685;
}


