mono_decompose_opcode (struct MonoCompile * cfg, struct MonoInst * ins)
{
  unsigned char D.24307;
  short unsigned int D.24308;
  int D.24309;
  struct MonoMemPool * D.24311;
  int D.24312;
  struct MonoInst * D.24313;
  int D.24314;
  int D.24315;
  const unsigned char * D.24316;
  struct MonoBasicBlock * D.24317;
  struct MonoInst * D.24318;
  int D.24323;
  struct MonoInst * D.24324;
  int D.24325;
  int D.24326;
  int D.24331;
  struct MonoInst * D.24332;
  int D.24333;
  int D.24334;
  int D.24339;
  struct MonoInst * D.24340;
  int D.24341;
  int D.24342;
  int D.24346;
  struct MonoInst * D.24347;
  int D.24348;
  int D.24349;
  int D.24350;
  int D.24354;
  struct MonoInst * D.24355;
  int D.24356;
  int D.24357;
  int D.24361;
  struct MonoInst * D.24362;
  int D.24363;
  int D.24364;
  int D.24368;
  struct MonoInst * D.24369;
  int D.24370;
  int D.24371;
  int D.24375;
  struct MonoInst * D.24376;
  int D.24377;
  int D.24378;
  int D.24379;
  int D.24383;
  int D.24384;
  int D.24385;
  struct MonoInst * D.24386;
  int D.24387;
  int D.24388;
  int D.24392;
  struct MonoInst * D.24393;
  int D.24394;
  int D.24395;
  int D.24399;
  struct MonoInst * D.24400;
  int D.24401;
  int D.24402;
  int D.24406;
  struct MonoInst * D.24407;
  int D.24408;
  int D.24409;
  int D.24413;
  struct MonoInst * D.24414;
  int D.24415;
  int D.24416;
  int D.24420;
  struct MonoInst * D.24421;
  int D.24422;
  int D.24423;
  int D.24427;
  struct MonoInst * D.24428;
  int D.24429;
  int D.24430;
  int D.24434;
  struct MonoInst * D.24435;
  int D.24436;
  int D.24437;
  int D.24441;
  struct MonoInst * D.24442;
  int D.24443;
  int D.24444;
  int D.24448;
  struct MonoInst * D.24449;
  int D.24450;
  int D.24451;
  int D.24455;
  struct MonoInst * D.24456;
  int D.24457;
  int D.24458;
  int D.24462;
  struct MonoInst * D.24463;
  int D.24464;
  int D.24465;
  int D.24469;
  struct MonoInst * D.24470;
  int D.24471;
  int D.24472;
  int D.24476;
  struct MonoInst * D.24477;
  int D.24478;
  int D.24479;
  int D.24483;
  struct MonoInst * D.24484;
  int D.24485;
  int D.24486;
  int D.24490;
  struct MonoInst * D.24491;
  int D.24492;
  int D.24493;
  int D.24497;
  struct MonoInst * D.24498;
  int D.24499;
  int D.24500;
  int D.24504;
  struct MonoInst * D.24505;
  int D.24506;
  int D.24507;
  int D.24511;
  struct MonoInst * D.24512;
  int D.24513;
  int D.24514;
  int D.24518;
  struct MonoInst * D.24519;
  int D.24520;
  int D.24521;
  gchar * D.24525;
  struct MonoMethodSignature * D.24534;
  unsigned char D.24535;
  unsigned char D.24536;
  _Bool D.24537;
  long int D.24538;
  long int D.24539;
  short unsigned int D.24542;
  _Bool D.24543;
  long int D.24544;
  long int D.24545;
  unsigned int D.24548;
  unsigned int D.24549;
  int D.24552;
  signed char D.24553;
  int D.24554;
  _Bool D.24555;
  long int D.24556;
  long int D.24557;
  unsigned int i.0;
  unsigned int D.24561;
  struct MonoInst * * D.24562;
  void * D.24563;
  struct MonoInst * D.24564;
  int D.24565;
  struct MonoInst * D.24566;
  int D.24567;
  int D.24568;
  int D.24569;
  const void * D.24570;
  struct MonoInst * repl.1;
  unsigned char D.24576;
  struct MonoInst * D.24577;
  _Bool D.24578;
  long int D.24579;
  long int D.24580;
  _Bool D.24583;
  long int D.24584;
  long int D.24585;
  struct MonoInst * repl;
  int type;
  int dreg;
  gboolean emulate;

  try
    {
      repl = 0B;
      D.24307 = ins->type;
      type = (int) D.24307;
      dreg = ins->dreg;
      emulate = 0;
      mono_arch_decompose_opts (cfg, ins);
      D.24308 = ins->opcode;
      D.24309 = (int) D.24308;
      switch (D.24309) <default: <D.23787>, case 586: <D.23768>, case 590: <D.23769>, case 593: <D.23775>, case 596: <D.23774>, case 597: <D.23772>, case 598: <D.23763>, case 599: <D.23722>, case 600: <D.23725>, case 603: <D.23727>, case 604: <D.23729>, case 605: <D.23737>, case 606: <D.23752>, case 607: <D.23762>, case 609: <D.23742>, case 610: <D.23757>, case 611: <D.23771>, case 613: <D.23764>, case 614: <D.23773>, case 615: <D.23731>, case 616: <D.23741>, case 617: <D.23746>, case 618: <D.23756>, case 619: <D.23770>, case 620: <D.23761>, case 686: <D.23776>, case 700: <D.23777>, case 701: <D.23778>, case 702: <D.23779>, case 703: <D.23780>, case 704: <D.23781>, case 705: <D.23782>, case 706: <D.23783>, case 707: <D.23784>, case 708: <D.23785>, case 709: <D.23786>>
      <D.23722>:
      if (0 != 0) goto <D.23723>; else goto <D.24310>;
      <D.24310>:
      ins->opcode = 627;
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24312 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24312;
        inst->prev = 0B;
        D.24313 = inst->prev;
        inst->next = D.24313;
        inst->opcode = 479;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24314 = inst->sreg3;
        inst->sreg2 = D.24314;
        D.24315 = inst->sreg2;
        inst->sreg1 = D.24315;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24319>; else goto <D.24320>;
        <D.24319>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24321>;
        <D.24320>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24321>:
      }
      goto <D.23723>;
      <D.23725>:
      if (0 != 0) goto <D.23723>; else goto <D.24322>;
      <D.24322>:
      ins->opcode = 627;
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24323 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24323;
        inst->prev = 0B;
        D.24324 = inst->prev;
        inst->next = D.24324;
        inst->opcode = 481;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24325 = inst->sreg3;
        inst->sreg2 = D.24325;
        D.24326 = inst->sreg2;
        inst->sreg1 = D.24326;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24327>; else goto <D.24328>;
        <D.24327>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24329>;
        <D.24328>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24329>:
      }
      goto <D.23723>;
      <D.23727>:
      if (0 != 0) goto <D.23723>; else goto <D.24330>;
      <D.24330>:
      ins->opcode = 628;
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24331 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24331;
        inst->prev = 0B;
        D.24332 = inst->prev;
        inst->next = D.24332;
        inst->opcode = 479;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24333 = inst->sreg3;
        inst->sreg2 = D.24333;
        D.24334 = inst->sreg2;
        inst->sreg1 = D.24334;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24335>; else goto <D.24336>;
        <D.24335>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24337>;
        <D.24336>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24337>:
      }
      goto <D.23723>;
      <D.23729>:
      if (0 != 0) goto <D.23723>; else goto <D.24338>;
      <D.24338>:
      ins->opcode = 628;
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24339 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24339;
        inst->prev = 0B;
        D.24340 = inst->prev;
        inst->next = D.24340;
        inst->opcode = 481;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24341 = inst->sreg3;
        inst->sreg2 = D.24341;
        D.24342 = inst->sreg2;
        inst->sreg1 = D.24342;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24343>; else goto <D.24344>;
        <D.24343>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24345>;
        <D.24344>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24345>:
      }
      goto <D.23723>;
      <D.23731>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24346 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24346;
        inst->prev = 0B;
        D.24347 = inst->prev;
        inst->next = D.24347;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24348 = inst->sreg3;
        inst->sreg2 = D.24348;
        D.24349 = inst->sreg2;
        inst->sreg1 = D.24349;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 127;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24351>; else goto <D.24352>;
        <D.24351>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24353>;
        <D.24352>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24353>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24354 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24354;
        inst->prev = 0B;
        D.24355 = inst->prev;
        inst->next = D.24355;
        inst->opcode = 471;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24356 = inst->sreg3;
        inst->sreg2 = D.24356;
        D.24357 = inst->sreg2;
        inst->sreg1 = D.24357;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24358>; else goto <D.24359>;
        <D.24358>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24360>;
        <D.24359>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24360>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24361 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24361;
        inst->prev = 0B;
        D.24362 = inst->prev;
        inst->next = D.24362;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24363 = inst->sreg3;
        inst->sreg2 = D.24363;
        D.24364 = inst->sreg2;
        inst->sreg1 = D.24364;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = -128;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24365>; else goto <D.24366>;
        <D.24365>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24367>;
        <D.24366>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24367>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24368 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24368;
        inst->prev = 0B;
        D.24369 = inst->prev;
        inst->next = D.24369;
        inst->opcode = 473;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24370 = inst->sreg3;
        inst->sreg2 = D.24370;
        D.24371 = inst->sreg2;
        inst->sreg1 = D.24371;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24372>; else goto <D.24373>;
        <D.24372>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24374>;
        <D.24373>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24374>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24375 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24375;
        inst->prev = 0B;
        D.24376 = inst->prev;
        inst->next = D.24376;
        inst->opcode = 584;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24377 = inst->sreg3;
        inst->sreg2 = D.24377;
        D.24378 = inst->sreg2;
        inst->sreg1 = D.24378;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24380>; else goto <D.24381>;
        <D.24380>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24382>;
        <D.24381>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24382>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23737>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24385 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24385;
        inst->prev = 0B;
        D.24386 = inst->prev;
        inst->next = D.24386;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24387 = inst->sreg3;
        inst->sreg2 = D.24387;
        D.24388 = inst->sreg2;
        inst->sreg1 = D.24388;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 127;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24389>; else goto <D.24390>;
        <D.24389>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24391>;
        <D.24390>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24391>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24392 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24392;
        inst->prev = 0B;
        D.24393 = inst->prev;
        inst->next = D.24393;
        inst->opcode = 476;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24394 = inst->sreg3;
        inst->sreg2 = D.24394;
        D.24395 = inst->sreg2;
        inst->sreg1 = D.24395;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24396>; else goto <D.24397>;
        <D.24396>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24398>;
        <D.24397>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24398>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24399 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24399;
        inst->prev = 0B;
        D.24400 = inst->prev;
        inst->next = D.24400;
        inst->opcode = 584;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24401 = inst->sreg3;
        inst->sreg2 = D.24401;
        D.24402 = inst->sreg2;
        inst->sreg1 = D.24402;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24403>; else goto <D.24404>;
        <D.24403>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24405>;
        <D.24404>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24405>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23741>:
      <D.23742>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24406 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24406;
        inst->prev = 0B;
        D.24407 = inst->prev;
        inst->next = D.24407;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24408 = inst->sreg3;
        inst->sreg2 = D.24408;
        D.24409 = inst->sreg2;
        inst->sreg1 = D.24409;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 255;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24410>; else goto <D.24411>;
        <D.24410>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24412>;
        <D.24411>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24412>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24413 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24413;
        inst->prev = 0B;
        D.24414 = inst->prev;
        inst->next = D.24414;
        inst->opcode = 476;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24415 = inst->sreg3;
        inst->sreg2 = D.24415;
        D.24416 = inst->sreg2;
        inst->sreg1 = D.24416;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24417>; else goto <D.24418>;
        <D.24417>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24419>;
        <D.24418>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24419>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24420 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24420;
        inst->prev = 0B;
        D.24421 = inst->prev;
        inst->next = D.24421;
        inst->opcode = 636;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24422 = inst->sreg3;
        inst->sreg2 = D.24422;
        D.24423 = inst->sreg2;
        inst->sreg1 = D.24423;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 255;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24424>; else goto <D.24425>;
        <D.24424>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24426>;
        <D.24425>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24426>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23746>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24427 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24427;
        inst->prev = 0B;
        D.24428 = inst->prev;
        inst->next = D.24428;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24429 = inst->sreg3;
        inst->sreg2 = D.24429;
        D.24430 = inst->sreg2;
        inst->sreg1 = D.24430;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 32767;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24431>; else goto <D.24432>;
        <D.24431>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24433>;
        <D.24432>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24433>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24434 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24434;
        inst->prev = 0B;
        D.24435 = inst->prev;
        inst->next = D.24435;
        inst->opcode = 471;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24436 = inst->sreg3;
        inst->sreg2 = D.24436;
        D.24437 = inst->sreg2;
        inst->sreg1 = D.24437;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24438>; else goto <D.24439>;
        <D.24438>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24440>;
        <D.24439>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24440>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24441 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24441;
        inst->prev = 0B;
        D.24442 = inst->prev;
        inst->next = D.24442;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24443 = inst->sreg3;
        inst->sreg2 = D.24443;
        D.24444 = inst->sreg2;
        inst->sreg1 = D.24444;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = -32768;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24445>; else goto <D.24446>;
        <D.24445>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24447>;
        <D.24446>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24447>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24448 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24448;
        inst->prev = 0B;
        D.24449 = inst->prev;
        inst->next = D.24449;
        inst->opcode = 473;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24450 = inst->sreg3;
        inst->sreg2 = D.24450;
        D.24451 = inst->sreg2;
        inst->sreg1 = D.24451;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24452>; else goto <D.24453>;
        <D.24452>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24454>;
        <D.24453>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24454>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24455 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24455;
        inst->prev = 0B;
        D.24456 = inst->prev;
        inst->next = D.24456;
        inst->opcode = 585;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24457 = inst->sreg3;
        inst->sreg2 = D.24457;
        D.24458 = inst->sreg2;
        inst->sreg1 = D.24458;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24459>; else goto <D.24460>;
        <D.24459>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24461>;
        <D.24460>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24461>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23752>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24462 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24462;
        inst->prev = 0B;
        D.24463 = inst->prev;
        inst->next = D.24463;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24464 = inst->sreg3;
        inst->sreg2 = D.24464;
        D.24465 = inst->sreg2;
        inst->sreg1 = D.24465;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 32767;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24466>; else goto <D.24467>;
        <D.24466>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24468>;
        <D.24467>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24468>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24469 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24469;
        inst->prev = 0B;
        D.24470 = inst->prev;
        inst->next = D.24470;
        inst->opcode = 476;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24471 = inst->sreg3;
        inst->sreg2 = D.24471;
        D.24472 = inst->sreg2;
        inst->sreg1 = D.24472;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24473>; else goto <D.24474>;
        <D.24473>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24475>;
        <D.24474>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24475>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24476 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24476;
        inst->prev = 0B;
        D.24477 = inst->prev;
        inst->next = D.24477;
        inst->opcode = 585;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24478 = inst->sreg3;
        inst->sreg2 = D.24478;
        D.24479 = inst->sreg2;
        inst->sreg1 = D.24479;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24480>; else goto <D.24481>;
        <D.24480>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24482>;
        <D.24481>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24482>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23756>:
      <D.23757>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24483 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24483;
        inst->prev = 0B;
        D.24484 = inst->prev;
        inst->next = D.24484;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24485 = inst->sreg3;
        inst->sreg2 = D.24485;
        D.24486 = inst->sreg2;
        inst->sreg1 = D.24486;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 65535;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24487>; else goto <D.24488>;
        <D.24487>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24489>;
        <D.24488>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24489>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24490 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24490;
        inst->prev = 0B;
        D.24491 = inst->prev;
        inst->next = D.24491;
        inst->opcode = 476;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24492 = inst->sreg3;
        inst->sreg2 = D.24492;
        D.24493 = inst->sreg2;
        inst->sreg1 = D.24493;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24494>; else goto <D.24495>;
        <D.24494>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24496>;
        <D.24495>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24496>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24497 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24497;
        inst->prev = 0B;
        D.24498 = inst->prev;
        inst->next = D.24498;
        inst->opcode = 636;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24499 = inst->sreg3;
        inst->sreg2 = D.24499;
        D.24500 = inst->sreg2;
        inst->sreg1 = D.24500;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 65535;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24501>; else goto <D.24502>;
        <D.24501>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24503>;
        <D.24502>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24503>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23761>:
      <D.23762>:
      <D.23763>:
      <D.23764>:
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24504 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24504;
        inst->prev = 0B;
        D.24505 = inst->prev;
        inst->next = D.24505;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24506 = inst->sreg3;
        inst->sreg2 = D.24506;
        D.24507 = inst->sreg2;
        inst->sreg1 = D.24507;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        inst->data.op[1].const_val = 0;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24508>; else goto <D.24509>;
        <D.24508>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24510>;
        <D.24509>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24510>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24511 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24511;
        inst->prev = 0B;
        D.24512 = inst->prev;
        inst->next = D.24512;
        inst->opcode = 473;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24513 = inst->sreg3;
        inst->sreg2 = D.24513;
        D.24514 = inst->sreg2;
        inst->sreg1 = D.24514;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        inst->data.op[1].p = "OverflowException";
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24515>; else goto <D.24516>;
        <D.24515>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24517>;
        <D.24516>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24517>:
      }
      {
        struct MonoInst * inst;

        D.24311 = cfg->mempool;
        inst = mono_mempool_alloc (D.24311, 48);
        inst->data.op[1].const_val = 0;
        D.24518 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24518;
        inst->prev = 0B;
        D.24519 = inst->prev;
        inst->next = D.24519;
        inst->opcode = 428;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24520 = inst->sreg3;
        inst->sreg2 = D.24520;
        D.24521 = inst->sreg2;
        inst->sreg1 = D.24521;
        D.24316 = cfg->ip;
        inst->cil_code = D.24316;
        D.24379 = ins->dreg;
        inst->dreg = D.24379;
        D.24350 = ins->sreg1;
        inst->sreg1 = D.24350;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        if (D.24318 != 0B) goto <D.24522>; else goto <D.24523>;
        <D.24522>:
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        D.24318->next = inst;
        D.24317 = cfg->cbb;
        D.24318 = D.24317->last_ins;
        inst->prev = D.24318;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        goto <D.24524>;
        <D.24523>:
        D.24317 = cfg->cbb;
        D.24317 = cfg->cbb;
        D.24317->last_ins = inst;
        D.24318 = D.24317->last_ins;
        D.24317->code = D.24318;
        <D.24524>:
      }
      ins->opcode = 316;
      ins->dreg = -1;
      ins->sreg3 = -1;
      D.24383 = ins->sreg3;
      ins->sreg2 = D.24383;
      D.24384 = ins->sreg2;
      ins->sreg1 = D.24384;
      goto <D.23723>;
      <D.23768>:
      <D.23769>:
      <D.23770>:
      <D.23771>:
      <D.23772>:
      <D.23773>:
      ins->opcode = 428;
      goto <D.23723>;
      <D.23774>:
      ins->opcode = 428;
      goto <D.23723>;
      <D.23775>:
      ins->opcode = 428;
      goto <D.23723>;
      <D.23776>:
      ins->opcode = 430;
      goto <D.23723>;
      <D.23777>:
      <D.23778>:
      <D.23779>:
      <D.23780>:
      <D.23781>:
      <D.23782>:
      <D.23783>:
      <D.23784>:
      <D.23785>:
      <D.23786>:
      cfg->exception_type = 3;
      D.24525 = monoeg_g_strdup_printf ("float conv.ovf.un opcodes not supported.");
      cfg->exception_message = D.24525;
      goto <D.23723>;
      <D.23787>:
      emulate = 1;
      goto <D.23723>;
      <D.23723>:
      if (emulate != 0) goto <D.24526>; else goto <D.24527>;
      <D.24526>:
      {
        struct MonoJitICallInfo * info;

        info = 0B;
        if (0 != 0) goto <D.24528>; else goto <D.24529>;
        <D.24528>:
        emulate = 0;
        <D.24529>:
        if (emulate != 0) goto <D.24530>; else goto <D.24531>;
        <D.24530>:
        D.24308 = ins->opcode;
        D.24309 = (int) D.24308;
        info = mono_find_jit_opcode_emulation (D.24309);
        <D.24531>:
        if (info != 0B) goto <D.24532>; else goto <D.24533>;
        <D.24532>:
        {
          struct MonoInst * * args;
          struct MonoInst * call;

          D.24534 = info->sig;
          D.24535 = BIT_FIELD_REF <*D.24534, 8, 80>;
          D.24536 = D.24535 & 64;
          D.24537 = D.24536 != 0;
          D.24538 = (long int) D.24537;
          D.24539 = __builtin_expect (D.24538, 0);
          if (D.24539 != 0) goto <D.24540>; else goto <D.24541>;
          <D.24540>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 468, "!info->sig->hasthis");
          <D.24541>:
          D.24534 = info->sig;
          D.24542 = D.24534->param_count;
          D.24543 = D.24542 > 3;
          D.24544 = (long int) D.24543;
          D.24545 = __builtin_expect (D.24544, 0);
          if (D.24545 != 0) goto <D.24546>; else goto <D.24547>;
          <D.24546>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 469, "info->sig->param_count <= MONO_MAX_SRC_REGS");
          <D.24547>:
          D.24534 = info->sig;
          D.24542 = D.24534->param_count;
          D.24548 = (unsigned int) D.24542;
          D.24549 = D.24548 * 4;
          D.24311 = cfg->mempool;
          args = mono_mempool_alloc0 (D.24311, D.24549);
          D.24534 = info->sig;
          D.24542 = D.24534->param_count;
          if (D.24542 != 0) goto <D.24550>; else goto <D.24551>;
          <D.24550>:
          {
            int sregs[3];
            int num_sregs;
            int i;

            try
              {
                D.24350 = ins->sreg1;
                sregs[0] = D.24350;
                D.24384 = ins->sreg2;
                sregs[1] = D.24384;
                D.24383 = ins->sreg3;
                sregs[2] = D.24383;
                D.24308 = ins->opcode;
                D.24309 = (int) D.24308;
                D.24552 = D.24309 + -313;
                D.24553 = ins_sreg_counts[D.24552];
                num_sregs = (int) D.24553;
                D.24534 = info->sig;
                D.24542 = D.24534->param_count;
                D.24554 = (int) D.24542;
                D.24555 = D.24554 != num_sregs;
                D.24556 = (long int) D.24555;
                D.24557 = __builtin_expect (D.24556, 0);
                if (D.24557 != 0) goto <D.24558>; else goto <D.24559>;
                <D.24558>:
                monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 476, "num_sregs == info->sig->param_count");
                <D.24559>:
                i = 0;
                goto <D.23795>;
                <D.23794>:
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24311 = cfg->mempool;
                D.24563 = mono_mempool_alloc (D.24311, 48);
                *D.24562 = D.24563;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->data.op[1].const_val = 0;
                D.24565 = D.24564->data.op[1].const_val;
                D.24564->data.op[0].const_val = D.24565;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->prev = 0B;
                D.24566 = D.24564->prev;
                D.24564->next = D.24566;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->opcode = 330;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->flags = 0;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->type = 0;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->dreg = -1;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24564->sreg3 = -1;
                D.24567 = D.24564->sreg3;
                D.24564->sreg2 = D.24567;
                D.24568 = D.24564->sreg2;
                D.24564->sreg1 = D.24568;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24316 = cfg->ip;
                D.24564->cil_code = D.24316;
                i.0 = (unsigned int) i;
                D.24561 = i.0 * 4;
                D.24562 = args + D.24561;
                D.24564 = *D.24562;
                D.24569 = sregs[i];
                D.24564->dreg = D.24569;
                i = i + 1;
                <D.23795>:
                if (i < num_sregs) goto <D.23794>; else goto <D.23796>;
                <D.23796>:
              }
            finally
              {
                sregs = {CLOBBER};
              }
          }
          <D.24551>:
          D.24534 = info->sig;
          D.24570 = mono_icall_get_wrapper (info);
          call = mono_emit_native_call (cfg, D.24570, D.24534, args);
          D.24379 = ins->dreg;
          call->dreg = D.24379;
          ins->opcode = 316;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.24383 = ins->sreg3;
          ins->sreg2 = D.24383;
          D.24384 = ins->sreg2;
          ins->sreg1 = D.24384;
        }
        <D.24533>:
      }
      <D.24527>:
      D.24308 = ins->opcode;
      if (D.24308 == 316) goto <D.24571>; else goto <D.24572>;
      <D.24571>:
      repl.1 = repl;
      if (repl.1 != 0B) goto <D.24574>; else goto <D.24575>;
      <D.24574>:
      repl.1 = repl;
      D.24576 = (unsigned char) type;
      repl.1->type = D.24576;
      D.24577 = repl;
      return D.24577;
      <D.24575>:
      D.24317 = cfg->cbb;
      ins = D.24317->last_ins;
      D.24578 = ins == 0B;
      D.24579 = (long int) D.24578;
      D.24580 = __builtin_expect (D.24579, 0);
      if (D.24580 != 0) goto <D.24581>; else goto <D.24582>;
      <D.24581>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 497, "ins");
      <D.24582>:
      D.24576 = (unsigned char) type;
      ins->type = D.24576;
      D.24379 = ins->dreg;
      D.24583 = D.24379 != dreg;
      D.24584 = (long int) D.24583;
      D.24585 = __builtin_expect (D.24584, 0);
      if (D.24585 != 0) goto <D.24586>; else goto <D.24587>;
      <D.24586>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 499, "ins->dreg == dreg");
      <D.24587>:
      D.24577 = ins;
      return D.24577;
      <D.24572>:
      D.24577 = ins;
      return D.24577;
    }
  finally
    {
      repl = {CLOBBER};
    }
}


mono_decompose_long_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.24594;
  void * D.24595;
  struct MonoBasicBlock * D.24596;
  struct MonoInst * D.24597;
  short unsigned int D.24598;
  int D.24599;
  int D.24600;
  struct MonoInst * D.24601;
  int D.24602;
  int D.24603;
  const unsigned char * D.24604;
  int D.24605;
  int D.24606;
  int D.24607;
  int D.24611;
  struct MonoInst * D.24612;
  int D.24613;
  int D.24614;
  int D.24615;
  int D.24616;
  int D.24620;
  struct MonoInst * D.24621;
  int D.24622;
  int D.24623;
  int D.24624;
  int D.24625;
  int D.24629;
  struct MonoInst * D.24630;
  int D.24631;
  int D.24632;
  int D.24633;
  int D.24637;
  struct MonoInst * D.24638;
  int D.24639;
  int D.24640;
  int D.24641;
  int D.24645;
  struct MonoInst * D.24646;
  int D.24647;
  int D.24648;
  int D.24652;
  struct MonoInst * D.24653;
  int D.24654;
  int D.24655;
  int D.24659;
  struct MonoInst * D.24660;
  int D.24661;
  int D.24662;
  int D.24666;
  struct MonoInst * D.24667;
  int D.24668;
  int D.24669;
  int D.24673;
  struct MonoInst * D.24674;
  int D.24675;
  int D.24676;
  int D.24680;
  struct MonoInst * D.24681;
  int D.24682;
  int D.24683;
  int tmpreg.2;
  int D.24688;
  struct MonoInst * D.24689;
  int D.24690;
  int D.24691;
  int D.24695;
  struct MonoInst * D.24696;
  int D.24697;
  int D.24698;
  int D.24702;
  struct MonoInst * D.24703;
  int D.24704;
  int D.24705;
  int D.24709;
  struct MonoInst * D.24710;
  int D.24711;
  int D.24712;
  int D.24716;
  struct MonoInst * D.24717;
  int D.24718;
  int D.24719;
  int D.24723;
  struct MonoInst * D.24724;
  int D.24725;
  int D.24726;
  int D.24730;
  struct MonoInst * D.24731;
  int D.24732;
  int D.24733;
  int D.24737;
  struct MonoInst * D.24738;
  int D.24739;
  int D.24740;
  int D.24744;
  struct MonoInst * D.24745;
  int D.24746;
  int D.24747;
  int D.24751;
  struct MonoInst * D.24752;
  int D.24753;
  int D.24754;
  int D.24758;
  struct MonoInst * D.24759;
  int D.24760;
  int D.24761;
  int D.24765;
  struct MonoInst * D.24766;
  int D.24767;
  int D.24768;
  int D.24772;
  struct MonoInst * D.24773;
  int D.24774;
  int D.24775;
  int D.24779;
  struct MonoInst * D.24780;
  int D.24781;
  int D.24782;
  int D.24786;
  struct MonoInst * D.24787;
  int D.24788;
  int D.24789;
  int D.24793;
  struct MonoInst * D.24794;
  int D.24795;
  int D.24796;
  int D.24800;
  struct MonoInst * D.24801;
  int D.24802;
  int D.24803;
  int D.24807;
  struct MonoInst * D.24808;
  int D.24809;
  int D.24810;
  int D.24814;
  struct MonoInst * D.24815;
  int D.24816;
  int D.24817;
  unsigned int D.24821;
  unsigned int D.24822;
  unsigned int D.24823;
  int D.24824;
  unsigned int D.24825;
  unsigned int D.24826;
  int D.24827;
  int D.24828;
  struct MonoInst * D.24829;
  int D.24830;
  int D.24831;
  int D.24835;
  struct MonoInst * D.24836;
  int D.24837;
  int D.24838;
  int D.24842;
  struct MonoInst * D.24843;
  int D.24844;
  int D.24845;
  int D.24849;
  struct MonoInst * D.24850;
  int D.24851;
  int D.24852;
  int D.24856;
  struct MonoInst * D.24857;
  int D.24858;
  int D.24859;
  int D.24863;
  struct MonoInst * D.24864;
  int D.24865;
  int D.24866;
  unsigned int D.24869;
  unsigned int D.24870;
  int D.24871;
  unsigned char * D.24875;
  struct MonoBasicBlock * * D.24878;
  int D.24879;
  unsigned char * D.24880;
  int D.24881;
  int D.24882;
  unsigned int D.24883;
  unsigned int D.24884;
  struct MonoBasicBlock * * D.24885;
  unsigned int D.24886;
  short unsigned int D.24891;
  short unsigned int D.24892;
  _Bool D.24893;
  short unsigned int D.24894;
  _Bool D.24895;
  _Bool D.24896;
  short unsigned int D.24898;
  short unsigned int D.24899;
  struct MonoBasicBlock * * D.24900;
  struct MonoBasicBlock * * D.24901;
  struct MonoBasicBlock * D.24902;
  short unsigned int D.24907;
  _Bool D.24908;
  _Bool D.24909;
  _Bool D.24910;
  short unsigned int D.24912;
  short unsigned int D.24913;
  _Bool D.24914;
  short unsigned int D.24915;
  _Bool D.24916;
  _Bool D.24917;
  void * D.24920;
  struct MonoBasicBlock * * D.24921;
  struct MonoBasicBlock * * D.24922;
  unsigned char D.24926;
  unsigned char D.24927;
  unsigned int D.24930;
  unsigned int D.24931;
  int D.24932;
  short unsigned int D.24939;
  short unsigned int D.24940;
  _Bool D.24941;
  short unsigned int D.24942;
  _Bool D.24943;
  _Bool D.24944;
  short unsigned int D.24950;
  _Bool D.24951;
  _Bool D.24952;
  _Bool D.24953;
  short unsigned int D.24955;
  short unsigned int D.24956;
  _Bool D.24957;
  short unsigned int D.24958;
  _Bool D.24959;
  _Bool D.24960;
  int D.24963;
  struct MonoInst * D.24964;
  int D.24965;
  int D.24966;
  int D.24970;
  struct MonoInst * D.24971;
  int D.24972;
  int D.24973;
  int D.24977;
  struct MonoInst * D.24978;
  int D.24979;
  int D.24980;
  unsigned int D.24983;
  unsigned int D.24984;
  int D.24985;
  unsigned char * D.24989;
  int D.24992;
  int D.24993;
  unsigned int D.24994;
  unsigned int D.24995;
  struct MonoBasicBlock * * D.24996;
  short unsigned int D.25001;
  short unsigned int D.25002;
  _Bool D.25003;
  short unsigned int D.25004;
  _Bool D.25005;
  _Bool D.25006;
  short unsigned int D.25012;
  _Bool D.25013;
  _Bool D.25014;
  _Bool D.25015;
  short unsigned int D.25017;
  short unsigned int D.25018;
  _Bool D.25019;
  short unsigned int D.25020;
  _Bool D.25021;
  _Bool D.25022;
  void * D.25025;
  struct MonoBasicBlock * * D.25026;
  struct MonoBasicBlock * * D.25027;
  unsigned int D.25033;
  unsigned int D.25034;
  int D.25035;
  short unsigned int D.25042;
  short unsigned int D.25043;
  _Bool D.25044;
  short unsigned int D.25045;
  _Bool D.25046;
  _Bool D.25047;
  short unsigned int D.25053;
  _Bool D.25054;
  _Bool D.25055;
  _Bool D.25056;
  short unsigned int D.25058;
  short unsigned int D.25059;
  _Bool D.25060;
  short unsigned int D.25061;
  _Bool D.25062;
  _Bool D.25063;
  unsigned char * D.25066;
  int D.25069;
  int D.25070;
  unsigned int D.25071;
  unsigned int D.25072;
  struct MonoBasicBlock * * D.25073;
  short unsigned int D.25078;
  short unsigned int D.25079;
  _Bool D.25080;
  short unsigned int D.25081;
  _Bool D.25082;
  _Bool D.25083;
  short unsigned int D.25089;
  _Bool D.25090;
  _Bool D.25091;
  _Bool D.25092;
  short unsigned int D.25094;
  short unsigned int D.25095;
  _Bool D.25096;
  short unsigned int D.25097;
  _Bool D.25098;
  _Bool D.25099;
  int D.25101;
  struct MonoInst * D.25102;
  int D.25103;
  int D.25104;
  int D.25108;
  struct MonoInst * D.25109;
  int D.25110;
  int D.25111;
  unsigned char * D.25115;
  int D.25118;
  int D.25119;
  unsigned int D.25120;
  unsigned int D.25121;
  struct MonoBasicBlock * * D.25122;
  short unsigned int D.25127;
  short unsigned int D.25128;
  _Bool D.25129;
  short unsigned int D.25130;
  _Bool D.25131;
  _Bool D.25132;
  short unsigned int D.25138;
  _Bool D.25139;
  _Bool D.25140;
  _Bool D.25141;
  short unsigned int D.25143;
  short unsigned int D.25144;
  _Bool D.25145;
  short unsigned int D.25146;
  _Bool D.25147;
  _Bool D.25148;
  int D.25150;
  struct MonoInst * D.25151;
  int D.25152;
  int D.25153;
  int D.25157;
  struct MonoInst * D.25158;
  int D.25159;
  int D.25160;
  int D.25164;
  struct MonoInst * D.25165;
  int D.25166;
  int D.25167;
  int D.25171;
  struct MonoInst * D.25172;
  int D.25173;
  int D.25174;
  int D.25178;
  struct MonoInst * D.25179;
  int D.25180;
  int D.25181;
  int D.25185;
  struct MonoInst * D.25186;
  int D.25187;
  int D.25188;
  int D.25192;
  struct MonoInst * D.25193;
  int D.25194;
  int D.25195;
  int D.25199;
  struct MonoInst * D.25200;
  int D.25201;
  int D.25202;
  int D.25206;
  struct MonoInst * D.25207;
  int D.25208;
  int D.25209;
  int D.25213;
  struct MonoInst * D.25214;
  int D.25215;
  int D.25216;
  int D.25220;
  struct MonoInst * D.25221;
  int D.25222;
  int D.25223;
  int D.25227;
  struct MonoInst * D.25228;
  int D.25229;
  int D.25230;
  int D.25234;
  struct MonoInst * D.25235;
  int D.25236;
  int D.25237;
  unsigned int D.25241;
  unsigned int D.25242;
  int D.25243;
  unsigned int D.25244;
  unsigned int D.25245;
  int D.25246;
  int D.25247;
  struct MonoInst * D.25248;
  int D.25249;
  int D.25250;
  int D.25254;
  struct MonoInst * D.25255;
  int D.25256;
  int D.25257;
  int D.25261;
  struct MonoInst * D.25262;
  int D.25263;
  int D.25264;
  int D.25268;
  struct MonoInst * D.25269;
  int D.25270;
  int D.25271;
  int D.25275;
  struct MonoInst * D.25276;
  int D.25277;
  int D.25278;
  int D.25282;
  struct MonoInst * D.25283;
  int D.25284;
  int D.25285;
  unsigned int D.25288;
  unsigned int D.25289;
  int D.25290;
  unsigned char * D.25294;
  int D.25297;
  int D.25298;
  unsigned int D.25299;
  unsigned int D.25300;
  struct MonoBasicBlock * * D.25301;
  short unsigned int D.25306;
  short unsigned int D.25307;
  _Bool D.25308;
  short unsigned int D.25309;
  _Bool D.25310;
  _Bool D.25311;
  short unsigned int D.25317;
  _Bool D.25318;
  _Bool D.25319;
  _Bool D.25320;
  short unsigned int D.25322;
  short unsigned int D.25323;
  _Bool D.25324;
  short unsigned int D.25325;
  _Bool D.25326;
  _Bool D.25327;
  void * D.25330;
  struct MonoBasicBlock * * D.25331;
  struct MonoBasicBlock * * D.25332;
  unsigned int D.25338;
  unsigned int D.25339;
  int D.25340;
  short unsigned int D.25347;
  short unsigned int D.25348;
  _Bool D.25349;
  short unsigned int D.25350;
  _Bool D.25351;
  _Bool D.25352;
  short unsigned int D.25358;
  _Bool D.25359;
  _Bool D.25360;
  _Bool D.25361;
  short unsigned int D.25363;
  short unsigned int D.25364;
  _Bool D.25365;
  short unsigned int D.25366;
  _Bool D.25367;
  _Bool D.25368;
  int D.25371;
  struct MonoInst * D.25372;
  int D.25373;
  int D.25374;
  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;
  unsigned int D.25391;
  unsigned int D.25392;
  int D.25393;
  unsigned char * D.25397;
  int D.25400;
  int D.25401;
  unsigned int D.25402;
  unsigned int D.25403;
  struct MonoBasicBlock * * D.25404;
  short unsigned int D.25409;
  short unsigned int D.25410;
  _Bool D.25411;
  short unsigned int D.25412;
  _Bool D.25413;
  _Bool D.25414;
  short unsigned int D.25420;
  _Bool D.25421;
  _Bool D.25422;
  _Bool D.25423;
  short unsigned int D.25425;
  short unsigned int D.25426;
  _Bool D.25427;
  short unsigned int D.25428;
  _Bool D.25429;
  _Bool D.25430;
  void * D.25433;
  struct MonoBasicBlock * * D.25434;
  struct MonoBasicBlock * * D.25435;
  unsigned int D.25441;
  unsigned int D.25442;
  int D.25443;
  short unsigned int D.25450;
  short unsigned int D.25451;
  _Bool D.25452;
  short unsigned int D.25453;
  _Bool D.25454;
  _Bool D.25455;
  short unsigned int D.25461;
  _Bool D.25462;
  _Bool D.25463;
  _Bool D.25464;
  short unsigned int D.25466;
  short unsigned int D.25467;
  _Bool D.25468;
  short unsigned int D.25469;
  _Bool D.25470;
  _Bool D.25471;
  unsigned char * D.25474;
  int D.25477;
  int D.25478;
  unsigned int D.25479;
  unsigned int D.25480;
  struct MonoBasicBlock * * D.25481;
  short unsigned int D.25486;
  short unsigned int D.25487;
  _Bool D.25488;
  short unsigned int D.25489;
  _Bool D.25490;
  _Bool D.25491;
  short unsigned int D.25497;
  _Bool D.25498;
  _Bool D.25499;
  _Bool D.25500;
  short unsigned int D.25502;
  short unsigned int D.25503;
  _Bool D.25504;
  short unsigned int D.25505;
  _Bool D.25506;
  _Bool D.25507;
  int D.25509;
  struct MonoInst * D.25510;
  int D.25511;
  int D.25512;
  int D.25516;
  struct MonoInst * D.25517;
  int D.25518;
  int D.25519;
  unsigned char * D.25523;
  int D.25526;
  int D.25527;
  unsigned int D.25528;
  unsigned int D.25529;
  struct MonoBasicBlock * * D.25530;
  short unsigned int D.25535;
  short unsigned int D.25536;
  _Bool D.25537;
  short unsigned int D.25538;
  _Bool D.25539;
  _Bool D.25540;
  short unsigned int D.25546;
  _Bool D.25547;
  _Bool D.25548;
  _Bool D.25549;
  short unsigned int D.25551;
  short unsigned int D.25552;
  _Bool D.25553;
  short unsigned int D.25554;
  _Bool D.25555;
  _Bool D.25556;
  int D.25558;
  struct MonoInst * D.25559;
  int D.25560;
  int D.25561;
  int D.25565;
  struct MonoInst * D.25566;
  int D.25567;
  int D.25568;
  int D.25572;
  struct MonoInst * D.25573;
  int D.25574;
  int D.25575;
  int D.25579;
  struct MonoInst * D.25580;
  int D.25581;
  int D.25582;
  int D.25586;
  struct MonoInst * D.25587;
  int D.25588;
  int D.25589;
  int D.25593;
  struct MonoInst * D.25594;
  int D.25595;
  int D.25596;
  int D.25600;
  struct MonoInst * D.25601;
  int D.25602;
  int D.25603;
  int D.25607;
  struct MonoInst * D.25608;
  int D.25609;
  int D.25610;
  int D.25614;
  struct MonoInst * D.25615;
  int D.25616;
  int D.25617;
  int D.25621;
  struct MonoInst * D.25622;
  int D.25623;
  int D.25624;
  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.25663;
  struct MonoInst * D.25664;
  int D.25665;
  int D.25666;
  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;
  int D.25691;
  struct MonoInst * D.25692;
  int D.25693;
  int D.25694;
  int D.25698;
  struct MonoInst * D.25699;
  int D.25700;
  int D.25701;
  int D.25705;
  struct MonoInst * D.25706;
  int D.25707;
  int D.25708;
  int D.25712;
  struct MonoInst * D.25713;
  int D.25714;
  int D.25715;
  int D.25719;
  struct MonoInst * D.25720;
  int D.25721;
  int D.25722;
  int D.25726;
  struct MonoInst * D.25727;
  int D.25728;
  int D.25729;
  int D.25733;
  struct MonoInst * D.25734;
  int D.25735;
  int D.25736;
  int D.25740;
  struct MonoInst * D.25741;
  int D.25742;
  int D.25743;
  int D.25747;
  struct MonoInst * D.25748;
  int D.25749;
  int D.25750;
  int D.25754;
  struct MonoInst * D.25755;
  int D.25756;
  int D.25757;
  int D.25761;
  struct MonoInst * D.25762;
  int D.25763;
  int D.25764;
  int D.25768;
  struct MonoInst * D.25769;
  int D.25770;
  int D.25771;
  int D.25772;
  int D.25773;
  int D.25777;
  struct MonoInst * D.25778;
  int D.25779;
  int D.25780;
  int D.25781;
  int D.25785;
  struct MonoInst * D.25786;
  int D.25787;
  int D.25788;
  int D.25792;
  struct MonoInst * D.25793;
  int D.25794;
  int D.25795;
  int D.25799;
  struct MonoInst * D.25800;
  int D.25801;
  int D.25802;
  int D.25806;
  struct MonoInst * D.25807;
  int D.25808;
  int D.25809;
  int D.25813;
  struct MonoInst * D.25814;
  int D.25815;
  int D.25816;
  int D.25820;
  struct MonoInst * D.25821;
  int D.25822;
  int D.25823;
  int D.25827;
  struct MonoInst * D.25828;
  int D.25829;
  int D.25830;
  int D.25834;
  struct MonoInst * D.25835;
  int D.25836;
  int D.25837;
  int D.25841;
  struct MonoInst * D.25842;
  int D.25843;
  int D.25844;
  int D.25848;
  struct MonoInst * D.25849;
  int D.25850;
  int D.25851;
  int D.25855;
  struct MonoInst * D.25856;
  int D.25857;
  int D.25858;
  int D.25862;
  struct MonoInst * D.25863;
  int D.25864;
  int D.25865;
  int D.25869;
  struct MonoInst * D.25870;
  int D.25871;
  int D.25872;
  int D.25876;
  struct MonoInst * D.25877;
  int D.25878;
  int D.25879;
  int D.25883;
  struct MonoInst * D.25884;
  int D.25885;
  int D.25886;
  int D.25890;
  struct MonoInst * D.25891;
  int D.25892;
  int D.25893;
  int D.25897;
  struct MonoInst * D.25898;
  int D.25899;
  int D.25900;
  int D.25904;
  struct MonoInst * D.25905;
  int D.25906;
  int D.25907;
  int D.25911;
  struct MonoInst * D.25912;
  int D.25913;
  int D.25914;
  int D.25918;
  struct MonoInst * D.25919;
  int D.25920;
  int D.25921;
  int D.25925;
  struct MonoInst * D.25926;
  int D.25927;
  int D.25928;
  int D.25932;
  struct MonoInst * D.25933;
  int D.25934;
  int D.25935;
  int D.25939;
  struct MonoInst * D.25940;
  int D.25941;
  int D.25942;
  int D.25946;
  struct MonoInst * D.25947;
  int D.25948;
  int D.25949;
  int D.25953;
  struct MonoInst * D.25954;
  int D.25955;
  int D.25956;
  int D.25960;
  struct MonoInst * D.25961;
  int D.25962;
  int D.25963;
  int D.25967;
  struct MonoInst * D.25968;
  int D.25969;
  int D.25970;
  int D.25974;
  struct MonoInst * D.25975;
  int D.25976;
  int D.25977;
  int D.25981;
  struct MonoInst * D.25982;
  int D.25983;
  int D.25984;
  int D.25988;
  struct MonoInst * D.25989;
  int D.25990;
  int D.25991;
  int D.25995;
  struct MonoInst * D.25996;
  int D.25997;
  int D.25998;
  int D.26002;
  struct MonoInst * D.26003;
  int D.26004;
  int D.26005;
  int D.26011;
  struct MonoInst * D.26012;
  int D.26013;
  int D.26014;
  int D.26018;
  struct MonoInst * D.26019;
  int D.26020;
  int D.26021;
  int D.26027;
  struct MonoInst * D.26028;
  int D.26029;
  int D.26030;
  int D.26034;
  struct MonoInst * D.26035;
  int D.26036;
  int D.26037;
  _Bool D.26041;
  long int D.26042;
  long int D.26043;
  short unsigned int D.26046;
  int D.26047;
  unsigned int D.26048;
  unsigned int D.26049;
  int D.26050;
  struct MonoInst * D.26051;
  int D.26052;
  int D.26053;
  int D.26057;
  struct MonoInst * D.26058;
  int D.26059;
  int D.26060;
  int D.26064;
  struct MonoInst * D.26065;
  int D.26066;
  int D.26067;
  int D.26071;
  struct MonoInst * D.26072;
  int D.26073;
  int D.26074;
  int D.26078;
  struct MonoInst * D.26079;
  guint16 iftmp.3;
  int D.26084;
  int D.26085;
  void * D.26086;
  struct MonoBasicBlock * * D.26087;
  struct MonoBasicBlock * * D.26088;
  struct MonoBasicBlock * D.26089;
  struct MonoBasicBlock * * D.26090;
  struct MonoBasicBlock * D.26091;
  struct MonoBasicBlock * * D.26092;
  struct MonoBasicBlock * D.26093;
  int D.26097;
  struct MonoInst * D.26098;
  int D.26099;
  int D.26100;
  int D.26104;
  struct MonoInst * D.26105;
  int D.26106;
  int D.26107;
  short unsigned int D.26108;
  int D.26109;
  int D.26110;
  unsigned int D.26113;
  unsigned int D.26114;
  int D.26115;
  unsigned char * D.26119;
  int D.26122;
  int D.26123;
  unsigned int D.26124;
  unsigned int D.26125;
  struct MonoBasicBlock * * D.26126;
  short unsigned int D.26131;
  short unsigned int D.26132;
  _Bool D.26133;
  short unsigned int D.26134;
  _Bool D.26135;
  _Bool D.26136;
  short unsigned int D.26142;
  _Bool D.26143;
  _Bool D.26144;
  _Bool D.26145;
  short unsigned int D.26147;
  short unsigned int D.26148;
  _Bool D.26149;
  short unsigned int D.26150;
  _Bool D.26151;
  _Bool D.26152;
  void * D.26155;
  struct MonoBasicBlock * * D.26156;
  struct MonoBasicBlock * * D.26157;
  unsigned int D.26163;
  unsigned int D.26164;
  int D.26165;
  short unsigned int D.26172;
  short unsigned int D.26173;
  _Bool D.26174;
  short unsigned int D.26175;
  _Bool D.26176;
  _Bool D.26177;
  short unsigned int D.26183;
  _Bool D.26184;
  _Bool D.26185;
  _Bool D.26186;
  short unsigned int D.26188;
  short unsigned int D.26189;
  _Bool D.26190;
  short unsigned int D.26191;
  _Bool D.26192;
  _Bool D.26193;
  int D.26196;
  struct MonoInst * D.26197;
  int D.26198;
  int D.26199;
  int D.26203;
  struct MonoInst * D.26204;
  int D.26205;
  int D.26206;
  unsigned int D.26209;
  unsigned int D.26210;
  int D.26211;
  unsigned char * D.26215;
  int D.26218;
  int D.26219;
  unsigned int D.26220;
  unsigned int D.26221;
  struct MonoBasicBlock * * D.26222;
  short unsigned int D.26227;
  short unsigned int D.26228;
  _Bool D.26229;
  short unsigned int D.26230;
  _Bool D.26231;
  _Bool D.26232;
  short unsigned int D.26238;
  _Bool D.26239;
  _Bool D.26240;
  _Bool D.26241;
  short unsigned int D.26243;
  short unsigned int D.26244;
  _Bool D.26245;
  short unsigned int D.26246;
  _Bool D.26247;
  _Bool D.26248;
  void * D.26251;
  struct MonoBasicBlock * * D.26252;
  struct MonoBasicBlock * * D.26253;
  unsigned int D.26259;
  unsigned int D.26260;
  int D.26261;
  short unsigned int D.26268;
  short unsigned int D.26269;
  _Bool D.26270;
  short unsigned int D.26271;
  _Bool D.26272;
  _Bool D.26273;
  short unsigned int D.26279;
  _Bool D.26280;
  _Bool D.26281;
  _Bool D.26282;
  short unsigned int D.26284;
  short unsigned int D.26285;
  _Bool D.26286;
  short unsigned int D.26287;
  _Bool D.26288;
  _Bool D.26289;
  int D.26292;
  struct MonoInst * D.26293;
  int D.26294;
  int D.26295;
  int D.26299;
  struct MonoInst * D.26300;
  int D.26301;
  short unsigned int D.26302;
  int D.26303;
  int D.26304;
  void * D.26305;
  struct MonoBasicBlock * * D.26306;
  struct MonoBasicBlock * * D.26307;
  unsigned int D.26311;
  unsigned int D.26312;
  int D.26313;
  struct MonoInst * D.26314;
  int D.26315;
  int D.26316;
  int D.26320;
  struct MonoInst * D.26321;
  int D.26322;
  int D.26323;
  int D.26327;
  struct MonoInst * D.26328;
  int D.26329;
  int D.26330;
  int D.26334;
  struct MonoInst * D.26335;
  int D.26336;
  int D.26337;
  int D.26341;
  struct MonoInst * D.26342;
  int D.26343;
  int D.26344;
  int D.26345;
  unsigned int D.26349;
  unsigned int D.26350;
  int D.26351;
  unsigned int D.26352;
  unsigned int D.26353;
  int D.26354;
  int D.26355;
  struct MonoInst * D.26356;
  int D.26357;
  int D.26358;
  int D.26362;
  struct MonoInst * D.26363;
  int D.26364;
  int D.26365;
  int D.26369;
  struct MonoInst * D.26370;
  int D.26371;
  int D.26372;
  short unsigned int D.26373;
  int D.26374;
  int D.26375;
  unsigned int D.26378;
  unsigned int D.26379;
  int D.26380;
  unsigned char * D.26384;
  int D.26387;
  int D.26388;
  unsigned int D.26389;
  unsigned int D.26390;
  struct MonoBasicBlock * * D.26391;
  short unsigned int D.26396;
  short unsigned int D.26397;
  _Bool D.26398;
  short unsigned int D.26399;
  _Bool D.26400;
  _Bool D.26401;
  short unsigned int D.26407;
  _Bool D.26408;
  _Bool D.26409;
  _Bool D.26410;
  short unsigned int D.26412;
  short unsigned int D.26413;
  _Bool D.26414;
  short unsigned int D.26415;
  _Bool D.26416;
  _Bool D.26417;
  void * D.26420;
  struct MonoBasicBlock * * D.26421;
  struct MonoBasicBlock * * D.26422;
  unsigned int D.26428;
  unsigned int D.26429;
  int D.26430;
  short unsigned int D.26437;
  short unsigned int D.26438;
  _Bool D.26439;
  short unsigned int D.26440;
  _Bool D.26441;
  _Bool D.26442;
  short unsigned int D.26448;
  _Bool D.26449;
  _Bool D.26450;
  _Bool D.26451;
  short unsigned int D.26453;
  short unsigned int D.26454;
  _Bool D.26455;
  short unsigned int D.26456;
  _Bool D.26457;
  _Bool D.26458;
  int D.26461;
  struct MonoInst * D.26462;
  int D.26463;
  int D.26464;
  int D.26468;
  struct MonoInst * D.26469;
  int D.26470;
  int D.26471;
  unsigned int D.26474;
  unsigned int D.26475;
  int D.26476;
  unsigned char * D.26480;
  int D.26483;
  int D.26484;
  unsigned int D.26485;
  unsigned int D.26486;
  struct MonoBasicBlock * * D.26487;
  short unsigned int D.26492;
  short unsigned int D.26493;
  _Bool D.26494;
  short unsigned int D.26495;
  _Bool D.26496;
  _Bool D.26497;
  short unsigned int D.26503;
  _Bool D.26504;
  _Bool D.26505;
  _Bool D.26506;
  short unsigned int D.26508;
  short unsigned int D.26509;
  _Bool D.26510;
  short unsigned int D.26511;
  _Bool D.26512;
  _Bool D.26513;
  void * D.26516;
  struct MonoBasicBlock * * D.26517;
  struct MonoBasicBlock * * D.26518;
  unsigned int D.26524;
  unsigned int D.26525;
  int D.26526;
  short unsigned int D.26533;
  short unsigned int D.26534;
  _Bool D.26535;
  short unsigned int D.26536;
  _Bool D.26537;
  _Bool D.26538;
  short unsigned int D.26544;
  _Bool D.26545;
  _Bool D.26546;
  _Bool D.26547;
  short unsigned int D.26549;
  short unsigned int D.26550;
  _Bool D.26551;
  short unsigned int D.26552;
  _Bool D.26553;
  _Bool D.26554;
  int D.26557;
  struct MonoInst * D.26558;
  int D.26559;
  int D.26560;
  int D.26564;
  struct MonoInst * D.26565;
  int D.26566;
  short unsigned int D.26567;
  int D.26568;
  int D.26569;
  unsigned int D.26572;
  unsigned int D.26573;
  int D.26574;
  unsigned char * D.26578;
  int D.26581;
  int D.26582;
  unsigned int D.26583;
  unsigned int D.26584;
  struct MonoBasicBlock * * D.26585;
  short unsigned int D.26590;
  short unsigned int D.26591;
  _Bool D.26592;
  short unsigned int D.26593;
  _Bool D.26594;
  _Bool D.26595;
  short unsigned int D.26601;
  _Bool D.26602;
  _Bool D.26603;
  _Bool D.26604;
  short unsigned int D.26606;
  short unsigned int D.26607;
  _Bool D.26608;
  short unsigned int D.26609;
  _Bool D.26610;
  _Bool D.26611;
  void * D.26614;
  struct MonoBasicBlock * * D.26615;
  struct MonoBasicBlock * * D.26616;
  unsigned int D.26622;
  unsigned int D.26623;
  int D.26624;
  short unsigned int D.26631;
  short unsigned int D.26632;
  _Bool D.26633;
  short unsigned int D.26634;
  _Bool D.26635;
  _Bool D.26636;
  short unsigned int D.26642;
  _Bool D.26643;
  _Bool D.26644;
  _Bool D.26645;
  short unsigned int D.26647;
  short unsigned int D.26648;
  _Bool D.26649;
  short unsigned int D.26650;
  _Bool D.26651;
  _Bool D.26652;
  unsigned char * D.26655;
  int D.26658;
  int D.26659;
  unsigned int D.26660;
  unsigned int D.26661;
  struct MonoBasicBlock * * D.26662;
  short unsigned int D.26667;
  short unsigned int D.26668;
  _Bool D.26669;
  short unsigned int D.26670;
  _Bool D.26671;
  _Bool D.26672;
  short unsigned int D.26678;
  _Bool D.26679;
  _Bool D.26680;
  _Bool D.26681;
  short unsigned int D.26683;
  short unsigned int D.26684;
  _Bool D.26685;
  short unsigned int D.26686;
  _Bool D.26687;
  _Bool D.26688;
  int D.26690;
  struct MonoInst * D.26691;
  int D.26692;
  int D.26693;
  unsigned char * D.26697;
  int D.26700;
  int D.26701;
  unsigned int D.26702;
  unsigned int D.26703;
  struct MonoBasicBlock * * D.26704;
  short unsigned int D.26709;
  short unsigned int D.26710;
  _Bool D.26711;
  short unsigned int D.26712;
  _Bool D.26713;
  _Bool D.26714;
  short unsigned int D.26720;
  _Bool D.26721;
  _Bool D.26722;
  _Bool D.26723;
  short unsigned int D.26725;
  short unsigned int D.26726;
  _Bool D.26727;
  short unsigned int D.26728;
  _Bool D.26729;
  _Bool D.26730;
  _Bool D.26732;
  long int D.26733;
  long int D.26734;
  short unsigned int D.26737;
  int D.26738;
  unsigned int D.26739;
  unsigned int D.26740;
  int D.26741;
  struct MonoInst * D.26742;
  int D.26743;
  int D.26744;
  int low_imm.4;
  int D.26749;
  struct MonoInst * D.26750;
  int D.26751;
  int D.26752;
  int high_imm.5;
  int D.26757;
  struct MonoInst * D.26758;
  int D.26759;
  int D.26760;
  int D.26764;
  struct MonoInst * D.26765;
  int D.26766;
  int D.26767;
  int D.26771;
  struct MonoInst * D.26772;
  guint16 iftmp.6;
  int D.26777;
  int D.26778;
  void * D.26779;
  struct MonoBasicBlock * * D.26780;
  struct MonoBasicBlock * * D.26781;
  struct MonoBasicBlock * D.26782;
  struct MonoBasicBlock * * D.26783;
  struct MonoBasicBlock * D.26784;
  struct MonoBasicBlock * * D.26785;
  struct MonoBasicBlock * D.26786;
  int D.26790;
  struct MonoInst * D.26791;
  int D.26792;
  int D.26793;
  int D.26797;
  struct MonoInst * D.26798;
  int D.26799;
  int D.26800;
  short unsigned int D.26801;
  int D.26802;
  int D.26803;
  unsigned int D.26806;
  unsigned int D.26807;
  int D.26808;
  unsigned char * D.26812;
  int D.26815;
  int D.26816;
  unsigned int D.26817;
  unsigned int D.26818;
  struct MonoBasicBlock * * D.26819;
  short unsigned int D.26824;
  short unsigned int D.26825;
  _Bool D.26826;
  short unsigned int D.26827;
  _Bool D.26828;
  _Bool D.26829;
  short unsigned int D.26835;
  _Bool D.26836;
  _Bool D.26837;
  _Bool D.26838;
  short unsigned int D.26840;
  short unsigned int D.26841;
  _Bool D.26842;
  short unsigned int D.26843;
  _Bool D.26844;
  _Bool D.26845;
  void * D.26848;
  struct MonoBasicBlock * * D.26849;
  struct MonoBasicBlock * * D.26850;
  unsigned int D.26856;
  unsigned int D.26857;
  int D.26858;
  short unsigned int D.26865;
  short unsigned int D.26866;
  _Bool D.26867;
  short unsigned int D.26868;
  _Bool D.26869;
  _Bool D.26870;
  short unsigned int D.26876;
  _Bool D.26877;
  _Bool D.26878;
  _Bool D.26879;
  short unsigned int D.26881;
  short unsigned int D.26882;
  _Bool D.26883;
  short unsigned int D.26884;
  _Bool D.26885;
  _Bool D.26886;
  int D.26889;
  struct MonoInst * D.26890;
  int D.26891;
  int D.26892;
  int D.26896;
  struct MonoInst * D.26897;
  int D.26898;
  int D.26899;
  unsigned int D.26902;
  unsigned int D.26903;
  int D.26904;
  unsigned char * D.26908;
  int D.26911;
  int D.26912;
  unsigned int D.26913;
  unsigned int D.26914;
  struct MonoBasicBlock * * D.26915;
  short unsigned int D.26920;
  short unsigned int D.26921;
  _Bool D.26922;
  short unsigned int D.26923;
  _Bool D.26924;
  _Bool D.26925;
  short unsigned int D.26931;
  _Bool D.26932;
  _Bool D.26933;
  _Bool D.26934;
  short unsigned int D.26936;
  short unsigned int D.26937;
  _Bool D.26938;
  short unsigned int D.26939;
  _Bool D.26940;
  _Bool D.26941;
  void * D.26944;
  struct MonoBasicBlock * * D.26945;
  struct MonoBasicBlock * * D.26946;
  unsigned int D.26952;
  unsigned int D.26953;
  int D.26954;
  short unsigned int D.26961;
  short unsigned int D.26962;
  _Bool D.26963;
  short unsigned int D.26964;
  _Bool D.26965;
  _Bool D.26966;
  short unsigned int D.26972;
  _Bool D.26973;
  _Bool D.26974;
  _Bool D.26975;
  short unsigned int D.26977;
  short unsigned int D.26978;
  _Bool D.26979;
  short unsigned int D.26980;
  _Bool D.26981;
  _Bool D.26982;
  int D.26985;
  struct MonoInst * D.26986;
  int D.26987;
  int D.26988;
  int D.26992;
  struct MonoInst * D.26993;
  int D.26994;
  short unsigned int D.26995;
  int D.26996;
  int D.26997;
  void * D.26998;
  struct MonoBasicBlock * * D.26999;
  struct MonoBasicBlock * * D.27000;
  unsigned int D.27004;
  unsigned int D.27005;
  int D.27006;
  struct MonoInst * D.27007;
  int D.27008;
  int D.27009;
  int D.27013;
  struct MonoInst * D.27014;
  int D.27015;
  int D.27016;
  int D.27020;
  struct MonoInst * D.27021;
  int D.27022;
  int D.27023;
  int D.27027;
  struct MonoInst * D.27028;
  int D.27029;
  int D.27030;
  int D.27034;
  struct MonoInst * D.27035;
  int D.27036;
  int D.27037;
  int D.27038;
  unsigned int D.27042;
  unsigned int D.27043;
  int D.27044;
  unsigned int D.27045;
  unsigned int D.27046;
  int D.27047;
  int D.27048;
  struct MonoInst * D.27049;
  int D.27050;
  int D.27051;
  int D.27055;
  struct MonoInst * D.27056;
  int D.27057;
  int D.27058;
  int D.27062;
  struct MonoInst * D.27063;
  int D.27064;
  int D.27065;
  short unsigned int D.27066;
  int D.27067;
  int D.27068;
  unsigned int D.27071;
  unsigned int D.27072;
  int D.27073;
  unsigned char * D.27077;
  int D.27080;
  int D.27081;
  unsigned int D.27082;
  unsigned int D.27083;
  struct MonoBasicBlock * * D.27084;
  short unsigned int D.27089;
  short unsigned int D.27090;
  _Bool D.27091;
  short unsigned int D.27092;
  _Bool D.27093;
  _Bool D.27094;
  short unsigned int D.27100;
  _Bool D.27101;
  _Bool D.27102;
  _Bool D.27103;
  short unsigned int D.27105;
  short unsigned int D.27106;
  _Bool D.27107;
  short unsigned int D.27108;
  _Bool D.27109;
  _Bool D.27110;
  void * D.27113;
  struct MonoBasicBlock * * D.27114;
  struct MonoBasicBlock * * D.27115;
  unsigned int D.27121;
  unsigned int D.27122;
  int D.27123;
  short unsigned int D.27130;
  short unsigned int D.27131;
  _Bool D.27132;
  short unsigned int D.27133;
  _Bool D.27134;
  _Bool D.27135;
  short unsigned int D.27141;
  _Bool D.27142;
  _Bool D.27143;
  _Bool D.27144;
  short unsigned int D.27146;
  short unsigned int D.27147;
  _Bool D.27148;
  short unsigned int D.27149;
  _Bool D.27150;
  _Bool D.27151;
  int D.27154;
  struct MonoInst * D.27155;
  int D.27156;
  int D.27157;
  int D.27161;
  struct MonoInst * D.27162;
  int D.27163;
  int D.27164;
  unsigned int D.27167;
  unsigned int D.27168;
  int D.27169;
  unsigned char * D.27173;
  int D.27176;
  int D.27177;
  unsigned int D.27178;
  unsigned int D.27179;
  struct MonoBasicBlock * * D.27180;
  short unsigned int D.27185;
  short unsigned int D.27186;
  _Bool D.27187;
  short unsigned int D.27188;
  _Bool D.27189;
  _Bool D.27190;
  short unsigned int D.27196;
  _Bool D.27197;
  _Bool D.27198;
  _Bool D.27199;
  short unsigned int D.27201;
  short unsigned int D.27202;
  _Bool D.27203;
  short unsigned int D.27204;
  _Bool D.27205;
  _Bool D.27206;
  void * D.27209;
  struct MonoBasicBlock * * D.27210;
  struct MonoBasicBlock * * D.27211;
  unsigned int D.27217;
  unsigned int D.27218;
  int D.27219;
  short unsigned int D.27226;
  short unsigned int D.27227;
  _Bool D.27228;
  short unsigned int D.27229;
  _Bool D.27230;
  _Bool D.27231;
  short unsigned int D.27237;
  _Bool D.27238;
  _Bool D.27239;
  _Bool D.27240;
  short unsigned int D.27242;
  short unsigned int D.27243;
  _Bool D.27244;
  short unsigned int D.27245;
  _Bool D.27246;
  _Bool D.27247;
  int D.27250;
  struct MonoInst * D.27251;
  int D.27252;
  int D.27253;
  int D.27257;
  struct MonoInst * D.27258;
  int D.27259;
  short unsigned int D.27260;
  int D.27261;
  int D.27262;
  unsigned int D.27265;
  unsigned int D.27266;
  int D.27267;
  unsigned char * D.27271;
  int D.27274;
  int D.27275;
  unsigned int D.27276;
  unsigned int D.27277;
  struct MonoBasicBlock * * D.27278;
  short unsigned int D.27283;
  short unsigned int D.27284;
  _Bool D.27285;
  short unsigned int D.27286;
  _Bool D.27287;
  _Bool D.27288;
  short unsigned int D.27294;
  _Bool D.27295;
  _Bool D.27296;
  _Bool D.27297;
  short unsigned int D.27299;
  short unsigned int D.27300;
  _Bool D.27301;
  short unsigned int D.27302;
  _Bool D.27303;
  _Bool D.27304;
  void * D.27307;
  struct MonoBasicBlock * * D.27308;
  struct MonoBasicBlock * * D.27309;
  unsigned int D.27315;
  unsigned int D.27316;
  int D.27317;
  short unsigned int D.27324;
  short unsigned int D.27325;
  _Bool D.27326;
  short unsigned int D.27327;
  _Bool D.27328;
  _Bool D.27329;
  short unsigned int D.27335;
  _Bool D.27336;
  _Bool D.27337;
  _Bool D.27338;
  short unsigned int D.27340;
  short unsigned int D.27341;
  _Bool D.27342;
  short unsigned int D.27343;
  _Bool D.27344;
  _Bool D.27345;
  unsigned char * D.27348;
  int D.27351;
  int D.27352;
  unsigned int D.27353;
  unsigned int D.27354;
  struct MonoBasicBlock * * D.27355;
  short unsigned int D.27360;
  short unsigned int D.27361;
  _Bool D.27362;
  short unsigned int D.27363;
  _Bool D.27364;
  _Bool D.27365;
  short unsigned int D.27371;
  _Bool D.27372;
  _Bool D.27373;
  _Bool D.27374;
  short unsigned int D.27376;
  short unsigned int D.27377;
  _Bool D.27378;
  short unsigned int D.27379;
  _Bool D.27380;
  _Bool D.27381;
  int D.27383;
  struct MonoInst * D.27384;
  int D.27385;
  int D.27386;
  unsigned char * D.27390;
  int D.27393;
  int D.27394;
  unsigned int D.27395;
  unsigned int D.27396;
  struct MonoBasicBlock * * D.27397;
  short unsigned int D.27402;
  short unsigned int D.27403;
  _Bool D.27404;
  short unsigned int D.27405;
  _Bool D.27406;
  _Bool D.27407;
  short unsigned int D.27413;
  _Bool D.27414;
  _Bool D.27415;
  _Bool D.27416;
  short unsigned int D.27418;
  short unsigned int D.27419;
  _Bool D.27420;
  short unsigned int D.27421;
  _Bool D.27422;
  _Bool D.27423;
  struct MonoInst * D.27428;
  struct MonoInst * D.27433;
  short int D.27434;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.24594 = cfg->mempool;
  D.24595 = mono_mempool_alloc0 (D.24594, 172);
  cfg->cbb = D.24595;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.24129>;
  <D.24128>:
  {
    struct MonoInst * tree;
    struct MonoInst * prev;

    tree = bb->code;
    prev = 0B;
    tree = bb->code;
    D.24596 = cfg->cbb;
    D.24596 = cfg->cbb;
    D.24596->last_ins = 0B;
    D.24597 = D.24596->last_ins;
    D.24596->code = D.24597;
    goto <D.24126>;
    <D.24125>:
    mono_arch_decompose_long_opts (cfg, tree);
    D.24598 = tree->opcode;
    D.24599 = (int) D.24598;
    switch (D.24599) <default: <D.24123>, case 325: <D.24011>, case 328: <D.24065>, case 363: <D.23806>, case 378: <D.23817>, case 398: <D.23820>, case 429: <D.23810>, case 483: <D.23954>, case 484: <D.23957>, case 485: <D.23989>, case 490: <D.23976>, case 491: <D.23979>, case 492: <D.23982>, case 496: <D.23988>, case 497: <D.23985>, case 498: <D.23844>, case 499: <D.23848>, case 500: <D.23852>, case 501: <D.23812>, case 502: <D.23859>, case 503: <D.23857>, case 504: <D.23853>, case 505: <D.23811>, case 506: <D.23850>, case 507: <D.23846>, case 508: <D.23854>, case 509: <D.23928>, case 510: <D.23931>, case 511: <D.23960>, case 512: <D.23964>, case 515: <D.23968>, case 516: <D.23972>, case 517: <D.23880>, case 518: <D.23912>, case 519: <D.23938>, case 520: <D.23949>, case 521: <D.23889>, case 522: <D.23921>, case 523: <D.23932>, case 524: <D.23813>, case 525: <D.23937>, case 526: <D.23933>, case 527: <D.23863>, case 528: <D.23888>, case 529: <D.23895>, case 530: <D.23920>, case 531: <D.23927>, case 532: <D.23930>, case 533: <D.23814>, case 534: <D.23944>, case 540: <D.23861>, case 541: <D.23855>, case 542: <D.23990>, case 543: <D.23993>, case 545: <D.23996>, case 546: <D.23999>, case 547: <D.24002>, case 548: <D.24008>, case 550: <D.24005>, case 587: <D.23823>, case 591: <D.23829>, case 608: <D.23840>, case 612: <D.23841>, case 621: <D.23832>, case 622: <D.23835>>
    <D.23806>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24600 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24600;
      inst->prev = 0B;
      D.24601 = inst->prev;
      inst->next = D.24601;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24602 = inst->sreg3;
      inst->sreg2 = D.24602;
      D.24603 = inst->sreg2;
      inst->sreg1 = D.24603;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24608>; else goto <D.24609>;
      <D.24608>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24610>;
      <D.24609>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24610>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24611 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24611;
      inst->prev = 0B;
      D.24612 = inst->prev;
      inst->next = D.24612;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24613 = inst->sreg3;
      inst->sreg2 = D.24613;
      D.24614 = inst->sreg2;
      inst->sreg1 = D.24614;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[0].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24617>; else goto <D.24618>;
      <D.24617>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24619>;
      <D.24618>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24619>:
    }
    goto <D.23809>;
    <D.23810>:
    <D.23811>:
    <D.23812>:
    <D.23813>:
    <D.23814>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24620 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24620;
      inst->prev = 0B;
      D.24621 = inst->prev;
      inst->next = D.24621;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24622 = inst->sreg3;
      inst->sreg2 = D.24622;
      D.24623 = inst->sreg2;
      inst->sreg1 = D.24623;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24626>; else goto <D.24627>;
      <D.24626>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24628>;
      <D.24627>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24628>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24629 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24629;
      inst->prev = 0B;
      D.24630 = inst->prev;
      inst->next = D.24630;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24631 = inst->sreg3;
      inst->sreg2 = D.24631;
      D.24632 = inst->sreg2;
      inst->sreg1 = D.24632;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24634>; else goto <D.24635>;
      <D.24634>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24636>;
      <D.24635>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24636>:
    }
    goto <D.23809>;
    <D.23817>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 377;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24607 = tree->data.op[0].const_val;
      D.24641 = D.24607 + 4;
      inst->data.op[0].const_val = D.24641;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24642>; else goto <D.24643>;
      <D.24642>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24644>;
      <D.24643>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24644>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24645 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24645;
      inst->prev = 0B;
      D.24646 = inst->prev;
      inst->next = D.24646;
      inst->opcode = 377;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24647 = inst->sreg3;
      inst->sreg2 = D.24647;
      D.24648 = inst->sreg2;
      inst->sreg1 = D.24648;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24649>; else goto <D.24650>;
      <D.24649>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24651>;
      <D.24650>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24651>:
    }
    goto <D.23809>;
    <D.23820>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24652 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24652;
      inst->prev = 0B;
      D.24653 = inst->prev;
      inst->next = D.24653;
      inst->opcode = 396;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24654 = inst->sreg3;
      inst->sreg2 = D.24654;
      D.24655 = inst->sreg2;
      inst->sreg1 = D.24655;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24607 = tree->data.op[0].const_val;
      D.24641 = D.24607 + 4;
      inst->data.op[0].const_val = D.24641;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24656>; else goto <D.24657>;
      <D.24656>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24658>;
      <D.24657>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24658>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24659 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24659;
      inst->prev = 0B;
      D.24660 = inst->prev;
      inst->next = D.24660;
      inst->opcode = 396;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24661 = inst->sreg3;
      inst->sreg2 = D.24661;
      D.24662 = inst->sreg2;
      inst->sreg1 = D.24662;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[0].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24663>; else goto <D.24664>;
      <D.24663>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24665>;
      <D.24664>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24665>:
    }
    goto <D.23809>;
    <D.23823>:
    {
      guint32 tmpreg;

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

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24666 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24666;
        inst->prev = 0B;
        D.24667 = inst->prev;
        inst->next = D.24667;
        inst->opcode = 428;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24668 = inst->sreg3;
        inst->sreg2 = D.24668;
        D.24669 = inst->sreg2;
        inst->sreg1 = D.24669;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24605 = tree->dreg;
        D.24606 = D.24605 + 1;
        inst->dreg = D.24606;
        D.24624 = tree->sreg1;
        inst->sreg1 = D.24624;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24670>; else goto <D.24671>;
        <D.24670>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24672>;
        <D.24671>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24672>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24673 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24673;
        inst->prev = 0B;
        D.24674 = inst->prev;
        inst->next = D.24674;
        inst->opcode = 327;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24675 = inst->sreg3;
        inst->sreg2 = D.24675;
        D.24676 = inst->sreg2;
        inst->sreg1 = D.24676;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24605 = tree->dreg;
        D.24606 = D.24605 + 1;
        inst->sreg1 = D.24606;
        inst->data.op[1].const_val = -1;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24677>; else goto <D.24678>;
        <D.24677>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24679>;
        <D.24678>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24679>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24680 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24680;
        inst->prev = 0B;
        D.24681 = inst->prev;
        inst->next = D.24681;
        inst->opcode = 643;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24682 = inst->sreg3;
        inst->sreg2 = D.24682;
        D.24683 = inst->sreg2;
        inst->sreg1 = D.24683;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        tmpreg.2 = (int) tmpreg;
        inst->dreg = tmpreg.2;
        inst->sreg1 = -1;
        inst->sreg2 = -1;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24685>; else goto <D.24686>;
        <D.24685>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24687>;
        <D.24686>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24687>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24688 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24688;
        inst->prev = 0B;
        D.24689 = inst->prev;
        inst->next = D.24689;
        inst->opcode = 630;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24690 = inst->sreg3;
        inst->sreg2 = D.24690;
        D.24691 = inst->sreg2;
        inst->sreg1 = D.24691;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24605 = tree->dreg;
        D.24615 = D.24605 + 2;
        inst->dreg = D.24615;
        tmpreg.2 = (int) tmpreg;
        inst->sreg1 = tmpreg.2;
        inst->data.op[1].const_val = 1;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24692>; else goto <D.24693>;
        <D.24692>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24694>;
        <D.24693>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24694>:
      }
      goto <D.23809>;
    }
    <D.23829>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24695 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24695;
      inst->prev = 0B;
      D.24696 = inst->prev;
      inst->next = D.24696;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24697 = inst->sreg3;
      inst->sreg2 = D.24697;
      D.24698 = inst->sreg2;
      inst->sreg1 = D.24698;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24699>; else goto <D.24700>;
      <D.24699>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24701>;
      <D.24700>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24701>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24702 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24702;
      inst->prev = 0B;
      D.24703 = inst->prev;
      inst->next = D.24703;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24704 = inst->sreg3;
      inst->sreg2 = D.24704;
      D.24705 = inst->sreg2;
      inst->sreg1 = D.24705;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      inst->data.op[0].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24706>; else goto <D.24707>;
      <D.24706>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24708>;
      <D.24707>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24708>:
    }
    goto <D.23809>;
    <D.23832>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24709 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24709;
      inst->prev = 0B;
      D.24710 = inst->prev;
      inst->next = D.24710;
      inst->opcode = 444;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24711 = inst->sreg3;
      inst->sreg2 = D.24711;
      D.24712 = inst->sreg2;
      inst->sreg1 = D.24712;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      inst->data.op[1].const_val = 31;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24713>; else goto <D.24714>;
      <D.24713>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24715>;
      <D.24714>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24715>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24716 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24716;
      inst->prev = 0B;
      D.24717 = inst->prev;
      inst->next = D.24717;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24718 = inst->sreg3;
      inst->sreg2 = D.24718;
      D.24719 = inst->sreg2;
      inst->sreg1 = D.24719;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24720>; else goto <D.24721>;
      <D.24720>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24722>;
      <D.24721>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24722>:
    }
    goto <D.23809>;
    <D.23835>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24723 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24723;
      inst->prev = 0B;
      D.24724 = inst->prev;
      inst->next = D.24724;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24725 = inst->sreg3;
      inst->sreg2 = D.24725;
      D.24726 = inst->sreg2;
      inst->sreg1 = D.24726;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24727>; else goto <D.24728>;
      <D.24727>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24729>;
      <D.24728>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24729>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24730 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24730;
      inst->prev = 0B;
      D.24731 = inst->prev;
      inst->next = D.24731;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24732 = inst->sreg3;
      inst->sreg2 = D.24732;
      D.24733 = inst->sreg2;
      inst->sreg1 = D.24733;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24734>; else goto <D.24735>;
      <D.24734>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24736>;
      <D.24735>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24736>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24737 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24737;
      inst->prev = 0B;
      D.24738 = inst->prev;
      inst->next = D.24738;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24739 = inst->sreg3;
      inst->sreg2 = D.24739;
      D.24740 = inst->sreg2;
      inst->sreg1 = D.24740;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      inst->data.op[0].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24741>; else goto <D.24742>;
      <D.24741>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24743>;
      <D.24742>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24743>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24744 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24744;
      inst->prev = 0B;
      D.24745 = inst->prev;
      inst->next = D.24745;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24746 = inst->sreg3;
      inst->sreg2 = D.24746;
      D.24747 = inst->sreg2;
      inst->sreg1 = D.24747;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24748>; else goto <D.24749>;
      <D.24748>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24750>;
      <D.24749>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24750>:
    }
    goto <D.23809>;
    <D.23840>:
    <D.23841>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24751 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24751;
      inst->prev = 0B;
      D.24752 = inst->prev;
      inst->next = D.24752;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24753 = inst->sreg3;
      inst->sreg2 = D.24753;
      D.24754 = inst->sreg2;
      inst->sreg1 = D.24754;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      inst->data.op[0].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24755>; else goto <D.24756>;
      <D.24755>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24757>;
      <D.24756>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24757>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24758 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24758;
      inst->prev = 0B;
      D.24759 = inst->prev;
      inst->next = D.24759;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24760 = inst->sreg3;
      inst->sreg2 = D.24760;
      D.24761 = inst->sreg2;
      inst->sreg1 = D.24761;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      inst->sreg1 = D.24624;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24762>; else goto <D.24763>;
      <D.24762>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24764>;
      <D.24763>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24764>:
    }
    goto <D.23809>;
    <D.23844>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24765 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24765;
      inst->prev = 0B;
      D.24766 = inst->prev;
      inst->next = D.24766;
      inst->opcode = 584;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24767 = inst->sreg3;
      inst->sreg2 = D.24767;
      D.24768 = inst->sreg2;
      inst->sreg1 = D.24768;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24769>; else goto <D.24770>;
      <D.24769>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24771>;
      <D.24770>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24771>:
    }
    goto <D.23809>;
    <D.23846>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24772 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24772;
      inst->prev = 0B;
      D.24773 = inst->prev;
      inst->next = D.24773;
      inst->opcode = 595;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24774 = inst->sreg3;
      inst->sreg2 = D.24774;
      D.24775 = inst->sreg2;
      inst->sreg1 = D.24775;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24776>; else goto <D.24777>;
      <D.24776>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24778>;
      <D.24777>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24778>:
    }
    goto <D.23809>;
    <D.23848>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24779 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24779;
      inst->prev = 0B;
      D.24780 = inst->prev;
      inst->next = D.24780;
      inst->opcode = 585;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24781 = inst->sreg3;
      inst->sreg2 = D.24781;
      D.24782 = inst->sreg2;
      inst->sreg1 = D.24782;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24783>; else goto <D.24784>;
      <D.24783>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24785>;
      <D.24784>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24785>:
    }
    goto <D.23809>;
    <D.23850>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24786 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24786;
      inst->prev = 0B;
      D.24787 = inst->prev;
      inst->next = D.24787;
      inst->opcode = 594;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24788 = inst->sreg3;
      inst->sreg2 = D.24788;
      D.24789 = inst->sreg2;
      inst->sreg1 = D.24789;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24790>; else goto <D.24791>;
      <D.24790>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24792>;
      <D.24791>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24792>:
    }
    goto <D.23809>;
    <D.23852>:
    <D.23853>:
    <D.23854>:
    <D.23855>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24793 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24793;
      inst->prev = 0B;
      D.24794 = inst->prev;
      inst->next = D.24794;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24795 = inst->sreg3;
      inst->sreg2 = D.24795;
      D.24796 = inst->sreg2;
      inst->sreg1 = D.24796;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24797>; else goto <D.24798>;
      <D.24797>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24799>;
      <D.24798>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24799>:
    }
    goto <D.23809>;
    <D.23857>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24800 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24800;
      inst->prev = 0B;
      D.24801 = inst->prev;
      inst->next = D.24801;
      inst->opcode = 565;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24802 = inst->sreg3;
      inst->sreg2 = D.24802;
      D.24803 = inst->sreg2;
      inst->sreg1 = D.24803;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg2 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24804>; else goto <D.24805>;
      <D.24804>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24806>;
      <D.24805>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24806>:
    }
    goto <D.23809>;
    <D.23859>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24807 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24807;
      inst->prev = 0B;
      D.24808 = inst->prev;
      inst->next = D.24808;
      inst->opcode = 566;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24809 = inst->sreg3;
      inst->sreg2 = D.24809;
      D.24810 = inst->sreg2;
      inst->sreg1 = D.24810;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg2 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24811>; else goto <D.24812>;
      <D.24811>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24813>;
      <D.24812>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24813>:
    }
    goto <D.23809>;
    <D.23861>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.24814 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.24814;
      inst->prev = 0B;
      D.24815 = inst->prev;
      inst->next = D.24815;
      inst->opcode = 567;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.24816 = inst->sreg3;
      inst->sreg2 = D.24816;
      D.24817 = inst->sreg2;
      inst->sreg1 = D.24817;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg2 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.24818>; else goto <D.24819>;
      <D.24818>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.24820>;
      <D.24819>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.24820>:
    }
    goto <D.23809>;
    <D.23863>:
    {
      struct MonoBasicBlock * is_negative;
      struct MonoBasicBlock * end_label;

      D.24594 = cfg->mempool;
      is_negative = mono_mempool_alloc0 (D.24594, 172);
      D.24821 = cfg->num_bblocks;
      D.24822 = D.24821;
      D.24823 = D.24822 + 1;
      cfg->num_bblocks = D.24823;
      D.24824 = (int) D.24822;
      is_negative->block_num = D.24824;
      D.24594 = cfg->mempool;
      end_label = mono_mempool_alloc0 (D.24594, 172);
      D.24821 = cfg->num_bblocks;
      D.24825 = D.24821;
      D.24826 = D.24825 + 1;
      cfg->num_bblocks = D.24826;
      D.24827 = (int) D.24825;
      end_label->block_num = D.24827;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24828 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24828;
        inst->prev = 0B;
        D.24829 = inst->prev;
        inst->next = D.24829;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24830 = inst->sreg3;
        inst->sreg2 = D.24830;
        D.24831 = inst->sreg2;
        inst->sreg1 = D.24831;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = 0;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24832>; else goto <D.24833>;
        <D.24832>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24834>;
        <D.24833>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24834>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24835 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24835;
        inst->prev = 0B;
        D.24836 = inst->prev;
        inst->next = D.24836;
        inst->opcode = 457;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24837 = inst->sreg3;
        inst->sreg2 = D.24837;
        D.24838 = inst->sreg2;
        inst->sreg1 = D.24838;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24839>; else goto <D.24840>;
        <D.24839>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24841>;
        <D.24840>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24841>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24842 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24842;
        inst->prev = 0B;
        D.24843 = inst->prev;
        inst->next = D.24843;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24844 = inst->sreg3;
        inst->sreg2 = D.24844;
        D.24845 = inst->sreg2;
        inst->sreg1 = D.24845;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = -1;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24846>; else goto <D.24847>;
        <D.24846>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24848>;
        <D.24847>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24848>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24849 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24849;
        inst->prev = 0B;
        D.24850 = inst->prev;
        inst->next = D.24850;
        inst->opcode = 459;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24851 = inst->sreg3;
        inst->sreg2 = D.24851;
        D.24852 = inst->sreg2;
        inst->sreg1 = D.24852;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24853>; else goto <D.24854>;
        <D.24853>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24855>;
        <D.24854>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24855>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24856 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24856;
        inst->prev = 0B;
        D.24857 = inst->prev;
        inst->next = D.24857;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24858 = inst->sreg3;
        inst->sreg2 = D.24858;
        D.24859 = inst->sreg2;
        inst->sreg1 = D.24859;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = 0;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24860>; else goto <D.24861>;
        <D.24860>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24862>;
        <D.24861>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24862>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.24863 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24863;
        ins->prev = 0B;
        D.24864 = ins->prev;
        ins->next = D.24864;
        ins->opcode = 656;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24865 = ins->sreg3;
        ins->sreg2 = D.24865;
        D.24866 = ins->sreg2;
        ins->sreg1 = D.24866;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (0 != 0) goto <D.24867>; else goto <D.24868>;
        <D.24867>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.24869 = D.24821;
        D.24870 = D.24869 + 1;
        cfg->num_bblocks = D.24870;
        D.24871 = (int) D.24869;
        falsebb->block_num = D.24871;
        ins->data.op[0].target_block = is_negative;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, is_negative);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24872>; else goto <D.24873>;
        <D.24872>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.24874>;
        <D.24873>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24874>:
        D.24875 = falsebb->cil_code;
        if (D.24875 != 0B) goto <D.24876>; else goto <D.24877>;
        <D.24876>:
        D.24878 = cfg->cil_offset_to_bb;
        D.24875 = falsebb->cil_code;
        D.24879 = (int) D.24875;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.24882 = D.24879 - D.24881;
        D.24883 = (unsigned int) D.24882;
        D.24884 = D.24883 * 4;
        D.24885 = D.24878 + D.24884;
        *D.24885 = falsebb;
        <D.24877>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24890>; else goto <D.24887>;
        <D.24890>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24891 = D.24597->opcode;
        D.24892 = D.24891 + 64981;
        D.24893 = D.24892 <= 9;
        D.24894 = D.24891 + 64874;
        D.24895 = D.24894 <= 9;
        D.24896 = D.24893 | D.24895;
        if (D.24896 != 0) goto <D.24888>; else goto <D.24897>;
        <D.24897>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.24888>; else goto <D.24887>;
        <D.24888>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.24903>; else goto <D.24887>;
        <D.24903>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.24889>;
        <D.24887>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.24904>; else goto <D.24906>;
        <D.24906>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24907 = D.24597->opcode;
        D.24908 = D.24907 != 446;
        D.24909 = D.24907 != 763;
        D.24910 = D.24908 & D.24909;
        if (D.24910 != 0) goto <D.24911>; else goto <D.24905>;
        <D.24911>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24912 = D.24597->opcode;
        D.24913 = D.24912 + 64981;
        D.24914 = D.24913 > 9;
        D.24915 = D.24912 + 64874;
        D.24916 = D.24915 > 9;
        D.24917 = D.24914 & D.24916;
        if (D.24917 != 0) goto <D.24918>; else goto <D.24905>;
        <D.24918>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.24904>; else goto <D.24905>;
        <D.24904>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.24905>:
        <D.24889>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24919>;
        <D.24868>:
        D.24594 = cfg->mempool;
        D.24920 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.24920;
        D.24921 = ins->data.op[1].many_blocks;
        *D.24921 = is_negative;
        D.24921 = ins->data.op[1].many_blocks;
        D.24922 = D.24921 + 4;
        *D.24922 = 0B;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, is_negative);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24923>; else goto <D.24924>;
        <D.24923>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.24925>;
        <D.24924>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24925>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.24928>; else goto <D.24929>;
        <D.24928>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.24930 = D.24821;
        D.24931 = D.24930 + 1;
        cfg->num_bblocks = D.24931;
        D.24932 = (int) D.24930;
        falsebb->block_num = D.24932;
        D.24921 = ins->data.op[1].many_blocks;
        D.24922 = D.24921 + 4;
        *D.24922 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.24875 = falsebb->cil_code;
        if (D.24875 != 0B) goto <D.24933>; else goto <D.24934>;
        <D.24933>:
        D.24878 = cfg->cil_offset_to_bb;
        D.24875 = falsebb->cil_code;
        D.24879 = (int) D.24875;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.24882 = D.24879 - D.24881;
        D.24883 = (unsigned int) D.24882;
        D.24884 = D.24883 * 4;
        D.24885 = D.24878 + D.24884;
        *D.24885 = falsebb;
        <D.24934>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24938>; else goto <D.24935>;
        <D.24938>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24939 = D.24597->opcode;
        D.24940 = D.24939 + 64981;
        D.24941 = D.24940 <= 9;
        D.24942 = D.24939 + 64874;
        D.24943 = D.24942 <= 9;
        D.24944 = D.24941 | D.24943;
        if (D.24944 != 0) goto <D.24936>; else goto <D.24945>;
        <D.24945>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.24936>; else goto <D.24935>;
        <D.24936>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.24946>; else goto <D.24935>;
        <D.24946>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.24937>;
        <D.24935>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.24947>; else goto <D.24949>;
        <D.24949>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24950 = D.24597->opcode;
        D.24951 = D.24950 != 446;
        D.24952 = D.24950 != 763;
        D.24953 = D.24951 & D.24952;
        if (D.24953 != 0) goto <D.24954>; else goto <D.24948>;
        <D.24954>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24955 = D.24597->opcode;
        D.24956 = D.24955 + 64981;
        D.24957 = D.24956 > 9;
        D.24958 = D.24955 + 64874;
        D.24959 = D.24958 > 9;
        D.24960 = D.24957 & D.24959;
        if (D.24960 != 0) goto <D.24961>; else goto <D.24948>;
        <D.24961>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.24947>; else goto <D.24948>;
        <D.24947>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.24948>:
        <D.24937>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.24962>;
        <D.24929>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.24962>:
        <D.24919>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24963 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24963;
        inst->prev = 0B;
        D.24964 = inst->prev;
        inst->next = D.24964;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24965 = inst->sreg3;
        inst->sreg2 = D.24965;
        D.24966 = inst->sreg2;
        inst->sreg1 = D.24966;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        inst->data.op[1].const_val = 127;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24967>; else goto <D.24968>;
        <D.24967>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24969>;
        <D.24968>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24969>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.24970 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.24970;
        inst->prev = 0B;
        D.24971 = inst->prev;
        inst->next = D.24971;
        inst->opcode = 462;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.24972 = inst->sreg3;
        inst->sreg2 = D.24972;
        D.24973 = inst->sreg2;
        inst->sreg1 = D.24973;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24974>; else goto <D.24975>;
        <D.24974>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.24976>;
        <D.24975>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24976>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.24977 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.24977;
        ins->prev = 0B;
        D.24978 = ins->prev;
        ins->next = D.24978;
        ins->opcode = 446;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.24979 = ins->sreg3;
        ins->sreg2 = D.24979;
        D.24980 = ins->sreg2;
        ins->sreg1 = D.24980;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (1 != 0) goto <D.24981>; else goto <D.24982>;
        <D.24981>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.24983 = D.24821;
        D.24984 = D.24983 + 1;
        cfg->num_bblocks = D.24984;
        D.24985 = (int) D.24983;
        falsebb->block_num = D.24985;
        ins->data.op[0].target_block = end_label;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, end_label);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.24986>; else goto <D.24987>;
        <D.24986>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.24988>;
        <D.24987>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.24988>:
        D.24989 = falsebb->cil_code;
        if (D.24989 != 0B) goto <D.24990>; else goto <D.24991>;
        <D.24990>:
        D.24878 = cfg->cil_offset_to_bb;
        D.24989 = falsebb->cil_code;
        D.24992 = (int) D.24989;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.24993 = D.24992 - D.24881;
        D.24994 = (unsigned int) D.24993;
        D.24995 = D.24994 * 4;
        D.24996 = D.24878 + D.24995;
        *D.24996 = falsebb;
        <D.24991>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25000>; else goto <D.24997>;
        <D.25000>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25001 = D.24597->opcode;
        D.25002 = D.25001 + 64981;
        D.25003 = D.25002 <= 9;
        D.25004 = D.25001 + 64874;
        D.25005 = D.25004 <= 9;
        D.25006 = D.25003 | D.25005;
        if (D.25006 != 0) goto <D.24998>; else goto <D.25007>;
        <D.25007>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.24998>; else goto <D.24997>;
        <D.24998>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25008>; else goto <D.24997>;
        <D.25008>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.24999>;
        <D.24997>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25009>; else goto <D.25011>;
        <D.25011>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25012 = D.24597->opcode;
        D.25013 = D.25012 != 446;
        D.25014 = D.25012 != 763;
        D.25015 = D.25013 & D.25014;
        if (D.25015 != 0) goto <D.25016>; else goto <D.25010>;
        <D.25016>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25017 = D.24597->opcode;
        D.25018 = D.25017 + 64981;
        D.25019 = D.25018 > 9;
        D.25020 = D.25017 + 64874;
        D.25021 = D.25020 > 9;
        D.25022 = D.25019 & D.25021;
        if (D.25022 != 0) goto <D.25023>; else goto <D.25010>;
        <D.25023>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25009>; else goto <D.25010>;
        <D.25009>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25010>:
        <D.24999>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25024>;
        <D.24982>:
        D.24594 = cfg->mempool;
        D.25025 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.25025;
        D.25026 = ins->data.op[1].many_blocks;
        *D.25026 = end_label;
        D.25026 = ins->data.op[1].many_blocks;
        D.25027 = D.25026 + 4;
        *D.25027 = 0B;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, end_label);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25028>; else goto <D.25029>;
        <D.25028>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.25030>;
        <D.25029>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25030>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.25031>; else goto <D.25032>;
        <D.25031>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.25033 = D.24821;
        D.25034 = D.25033 + 1;
        cfg->num_bblocks = D.25034;
        D.25035 = (int) D.25033;
        falsebb->block_num = D.25035;
        D.25026 = ins->data.op[1].many_blocks;
        D.25027 = D.25026 + 4;
        *D.25027 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.24989 = falsebb->cil_code;
        if (D.24989 != 0B) goto <D.25036>; else goto <D.25037>;
        <D.25036>:
        D.24878 = cfg->cil_offset_to_bb;
        D.24989 = falsebb->cil_code;
        D.24992 = (int) D.24989;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.24993 = D.24992 - D.24881;
        D.24994 = (unsigned int) D.24993;
        D.24995 = D.24994 * 4;
        D.24996 = D.24878 + D.24995;
        *D.24996 = falsebb;
        <D.25037>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25041>; else goto <D.25038>;
        <D.25041>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25042 = D.24597->opcode;
        D.25043 = D.25042 + 64981;
        D.25044 = D.25043 <= 9;
        D.25045 = D.25042 + 64874;
        D.25046 = D.25045 <= 9;
        D.25047 = D.25044 | D.25046;
        if (D.25047 != 0) goto <D.25039>; else goto <D.25048>;
        <D.25048>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.25039>; else goto <D.25038>;
        <D.25039>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25049>; else goto <D.25038>;
        <D.25049>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.25040>;
        <D.25038>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25050>; else goto <D.25052>;
        <D.25052>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25053 = D.24597->opcode;
        D.25054 = D.25053 != 446;
        D.25055 = D.25053 != 763;
        D.25056 = D.25054 & D.25055;
        if (D.25056 != 0) goto <D.25057>; else goto <D.25051>;
        <D.25057>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25058 = D.24597->opcode;
        D.25059 = D.25058 + 64981;
        D.25060 = D.25059 > 9;
        D.25061 = D.25058 + 64874;
        D.25062 = D.25061 > 9;
        D.25063 = D.25060 & D.25062;
        if (D.25063 != 0) goto <D.25064>; else goto <D.25051>;
        <D.25064>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25050>; else goto <D.25051>;
        <D.25050>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25051>:
        <D.25040>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25065>;
        <D.25032>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.25065>:
        <D.25024>:
      }
      D.25066 = is_negative->cil_code;
      if (D.25066 != 0B) goto <D.25067>; else goto <D.25068>;
      <D.25067>:
      D.24878 = cfg->cil_offset_to_bb;
      D.25066 = is_negative->cil_code;
      D.25069 = (int) D.25066;
      D.24880 = cfg->cil_start;
      D.24881 = (int) D.24880;
      D.25070 = D.25069 - D.24881;
      D.25071 = (unsigned int) D.25070;
      D.25072 = D.25071 * 4;
      D.25073 = D.24878 + D.25072;
      *D.25073 = is_negative;
      <D.25068>:
      D.24886 = cfg->real_offset;
      is_negative->real_offset = D.24886;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25077>; else goto <D.25074>;
      <D.25077>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25078 = D.24597->opcode;
      D.25079 = D.25078 + 64981;
      D.25080 = D.25079 <= 9;
      D.25081 = D.25078 + 64874;
      D.25082 = D.25081 <= 9;
      D.25083 = D.25080 | D.25082;
      if (D.25083 != 0) goto <D.25075>; else goto <D.25084>;
      <D.25084>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 <= 9) goto <D.25075>; else goto <D.25074>;
      <D.25075>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      D.24902 = *D.24901;
      if (D.24902 == 0B) goto <D.25085>; else goto <D.25074>;
      <D.25085>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      *D.24901 = is_negative;
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, is_negative);
      goto <D.25076>;
      <D.25074>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 == 0B) goto <D.25086>; else goto <D.25088>;
      <D.25088>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25089 = D.24597->opcode;
      D.25090 = D.25089 != 446;
      D.25091 = D.25089 != 763;
      D.25092 = D.25090 & D.25091;
      if (D.25092 != 0) goto <D.25093>; else goto <D.25087>;
      <D.25093>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25094 = D.24597->opcode;
      D.25095 = D.25094 + 64981;
      D.25096 = D.25095 > 9;
      D.25097 = D.25094 + 64874;
      D.25098 = D.25097 > 9;
      D.25099 = D.25096 & D.25098;
      if (D.25099 != 0) goto <D.25100>; else goto <D.25087>;
      <D.25100>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 > 9) goto <D.25086>; else goto <D.25087>;
      <D.25086>:
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, is_negative);
      <D.25087>:
      <D.25076>:
      D.24596 = cfg->cbb;
      D.24596->next_bb = is_negative;
      cfg->cbb = is_negative;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25101 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25101;
        inst->prev = 0B;
        D.25102 = inst->prev;
        inst->next = D.25102;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25103 = inst->sreg3;
        inst->sreg2 = D.25103;
        D.25104 = inst->sreg2;
        inst->sreg1 = D.25104;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        inst->data.op[1].const_val = -128;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25105>; else goto <D.25106>;
        <D.25105>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25107>;
        <D.25106>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25107>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25108 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25108;
        inst->prev = 0B;
        D.25109 = inst->prev;
        inst->next = D.25109;
        inst->opcode = 464;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25110 = inst->sreg3;
        inst->sreg2 = D.25110;
        D.25111 = inst->sreg2;
        inst->sreg1 = D.25111;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25112>; else goto <D.25113>;
        <D.25112>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25114>;
        <D.25113>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25114>:
      }
      D.25115 = end_label->cil_code;
      if (D.25115 != 0B) goto <D.25116>; else goto <D.25117>;
      <D.25116>:
      D.24878 = cfg->cil_offset_to_bb;
      D.25115 = end_label->cil_code;
      D.25118 = (int) D.25115;
      D.24880 = cfg->cil_start;
      D.24881 = (int) D.24880;
      D.25119 = D.25118 - D.24881;
      D.25120 = (unsigned int) D.25119;
      D.25121 = D.25120 * 4;
      D.25122 = D.24878 + D.25121;
      *D.25122 = end_label;
      <D.25117>:
      D.24886 = cfg->real_offset;
      end_label->real_offset = D.24886;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25126>; else goto <D.25123>;
      <D.25126>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25127 = D.24597->opcode;
      D.25128 = D.25127 + 64981;
      D.25129 = D.25128 <= 9;
      D.25130 = D.25127 + 64874;
      D.25131 = D.25130 <= 9;
      D.25132 = D.25129 | D.25131;
      if (D.25132 != 0) goto <D.25124>; else goto <D.25133>;
      <D.25133>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 <= 9) goto <D.25124>; else goto <D.25123>;
      <D.25124>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      D.24902 = *D.24901;
      if (D.24902 == 0B) goto <D.25134>; else goto <D.25123>;
      <D.25134>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      *D.24901 = end_label;
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, end_label);
      goto <D.25125>;
      <D.25123>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 == 0B) goto <D.25135>; else goto <D.25137>;
      <D.25137>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25138 = D.24597->opcode;
      D.25139 = D.25138 != 446;
      D.25140 = D.25138 != 763;
      D.25141 = D.25139 & D.25140;
      if (D.25141 != 0) goto <D.25142>; else goto <D.25136>;
      <D.25142>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25143 = D.24597->opcode;
      D.25144 = D.25143 + 64981;
      D.25145 = D.25144 > 9;
      D.25146 = D.25143 + 64874;
      D.25147 = D.25146 > 9;
      D.25148 = D.25145 & D.25147;
      if (D.25148 != 0) goto <D.25149>; else goto <D.25136>;
      <D.25149>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 > 9) goto <D.25135>; else goto <D.25136>;
      <D.25135>:
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, end_label);
      <D.25136>:
      <D.25125>:
      D.24596 = cfg->cbb;
      D.24596->next_bb = end_label;
      cfg->cbb = end_label;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25150 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25150;
        inst->prev = 0B;
        D.25151 = inst->prev;
        inst->next = D.25151;
        inst->opcode = 584;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25152 = inst->sreg3;
        inst->sreg2 = D.25152;
        D.25153 = inst->sreg2;
        inst->sreg1 = D.25153;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24605 = tree->dreg;
        inst->dreg = D.24605;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25154>; else goto <D.25155>;
        <D.25154>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25156>;
        <D.25155>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25156>:
      }
      goto <D.23809>;
    }
    <D.23880>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25157 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25157;
      inst->prev = 0B;
      D.25158 = inst->prev;
      inst->next = D.25158;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25159 = inst->sreg3;
      inst->sreg2 = D.25159;
      D.25160 = inst->sreg2;
      inst->sreg1 = D.25160;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25161>; else goto <D.25162>;
      <D.25161>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25163>;
      <D.25162>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25163>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25164 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25164;
      inst->prev = 0B;
      D.25165 = inst->prev;
      inst->next = D.25165;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25166 = inst->sreg3;
      inst->sreg2 = D.25166;
      D.25167 = inst->sreg2;
      inst->sreg1 = D.25167;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25168>; else goto <D.25169>;
      <D.25168>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25170>;
      <D.25169>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25170>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25171 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25171;
      inst->prev = 0B;
      D.25172 = inst->prev;
      inst->next = D.25172;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25173 = inst->sreg3;
      inst->sreg2 = D.25173;
      D.25174 = inst->sreg2;
      inst->sreg1 = D.25174;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 127;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25175>; else goto <D.25176>;
      <D.25175>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25177>;
      <D.25176>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25177>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25178 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25178;
      inst->prev = 0B;
      D.25179 = inst->prev;
      inst->next = D.25179;
      inst->opcode = 457;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25180 = inst->sreg3;
      inst->sreg2 = D.25180;
      D.25181 = inst->sreg2;
      inst->sreg1 = D.25181;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25182>; else goto <D.25183>;
      <D.25182>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25184>;
      <D.25183>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25184>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25185 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25185;
      inst->prev = 0B;
      D.25186 = inst->prev;
      inst->next = D.25186;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25187 = inst->sreg3;
      inst->sreg2 = D.25187;
      D.25188 = inst->sreg2;
      inst->sreg1 = D.25188;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = -128;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25189>; else goto <D.25190>;
      <D.25189>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25191>;
      <D.25190>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25191>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25192 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25192;
      inst->prev = 0B;
      D.25193 = inst->prev;
      inst->next = D.25193;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25194 = inst->sreg3;
      inst->sreg2 = D.25194;
      D.25195 = inst->sreg2;
      inst->sreg1 = D.25195;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25196>; else goto <D.25197>;
      <D.25196>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25198>;
      <D.25197>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25198>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25199 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25199;
      inst->prev = 0B;
      D.25200 = inst->prev;
      inst->next = D.25200;
      inst->opcode = 584;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25201 = inst->sreg3;
      inst->sreg2 = D.25201;
      D.25202 = inst->sreg2;
      inst->sreg1 = D.25202;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25203>; else goto <D.25204>;
      <D.25203>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25205>;
      <D.25204>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25205>:
    }
    goto <D.23809>;
    <D.23888>:
    <D.23889>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25206 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25206;
      inst->prev = 0B;
      D.25207 = inst->prev;
      inst->next = D.25207;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25208 = inst->sreg3;
      inst->sreg2 = D.25208;
      D.25209 = inst->sreg2;
      inst->sreg1 = D.25209;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25210>; else goto <D.25211>;
      <D.25210>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25212>;
      <D.25211>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25212>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25213 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25213;
      inst->prev = 0B;
      D.25214 = inst->prev;
      inst->next = D.25214;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25215 = inst->sreg3;
      inst->sreg2 = D.25215;
      D.25216 = inst->sreg2;
      inst->sreg1 = D.25216;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25217>; else goto <D.25218>;
      <D.25217>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25219>;
      <D.25218>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25219>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25220 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25220;
      inst->prev = 0B;
      D.25221 = inst->prev;
      inst->next = D.25221;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25222 = inst->sreg3;
      inst->sreg2 = D.25222;
      D.25223 = inst->sreg2;
      inst->sreg1 = D.25223;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 255;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25224>; else goto <D.25225>;
      <D.25224>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25226>;
      <D.25225>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25226>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25227 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25227;
      inst->prev = 0B;
      D.25228 = inst->prev;
      inst->next = D.25228;
      inst->opcode = 462;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25229 = inst->sreg3;
      inst->sreg2 = D.25229;
      D.25230 = inst->sreg2;
      inst->sreg1 = D.25230;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25231>; else goto <D.25232>;
      <D.25231>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25233>;
      <D.25232>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25233>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25234 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25234;
      inst->prev = 0B;
      D.25235 = inst->prev;
      inst->next = D.25235;
      inst->opcode = 440;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25236 = inst->sreg3;
      inst->sreg2 = D.25236;
      D.25237 = inst->sreg2;
      inst->sreg1 = D.25237;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 255;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25238>; else goto <D.25239>;
      <D.25238>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25240>;
      <D.25239>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25240>:
    }
    goto <D.23809>;
    <D.23895>:
    {
      struct MonoBasicBlock * is_negative;
      struct MonoBasicBlock * end_label;

      D.24594 = cfg->mempool;
      is_negative = mono_mempool_alloc0 (D.24594, 172);
      D.24821 = cfg->num_bblocks;
      D.25241 = D.24821;
      D.25242 = D.25241 + 1;
      cfg->num_bblocks = D.25242;
      D.25243 = (int) D.25241;
      is_negative->block_num = D.25243;
      D.24594 = cfg->mempool;
      end_label = mono_mempool_alloc0 (D.24594, 172);
      D.24821 = cfg->num_bblocks;
      D.25244 = D.24821;
      D.25245 = D.25244 + 1;
      cfg->num_bblocks = D.25245;
      D.25246 = (int) D.25244;
      end_label->block_num = D.25246;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25247 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25247;
        inst->prev = 0B;
        D.25248 = inst->prev;
        inst->next = D.25248;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25249 = inst->sreg3;
        inst->sreg2 = D.25249;
        D.25250 = inst->sreg2;
        inst->sreg1 = D.25250;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = 0;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25251>; else goto <D.25252>;
        <D.25251>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25253>;
        <D.25252>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25253>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25254 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25254;
        inst->prev = 0B;
        D.25255 = inst->prev;
        inst->next = D.25255;
        inst->opcode = 457;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25256 = inst->sreg3;
        inst->sreg2 = D.25256;
        D.25257 = inst->sreg2;
        inst->sreg1 = D.25257;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25258>; else goto <D.25259>;
        <D.25258>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25260>;
        <D.25259>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25260>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25261 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25261;
        inst->prev = 0B;
        D.25262 = inst->prev;
        inst->next = D.25262;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25263 = inst->sreg3;
        inst->sreg2 = D.25263;
        D.25264 = inst->sreg2;
        inst->sreg1 = D.25264;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = -1;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25265>; else goto <D.25266>;
        <D.25265>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25267>;
        <D.25266>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25267>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25268 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25268;
        inst->prev = 0B;
        D.25269 = inst->prev;
        inst->next = D.25269;
        inst->opcode = 459;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25270 = inst->sreg3;
        inst->sreg2 = D.25270;
        D.25271 = inst->sreg2;
        inst->sreg1 = D.25271;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25272>; else goto <D.25273>;
        <D.25272>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25274>;
        <D.25273>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25274>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25275 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25275;
        inst->prev = 0B;
        D.25276 = inst->prev;
        inst->next = D.25276;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25277 = inst->sreg3;
        inst->sreg2 = D.25277;
        D.25278 = inst->sreg2;
        inst->sreg1 = D.25278;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        inst->data.op[1].const_val = 0;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25279>; else goto <D.25280>;
        <D.25279>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25281>;
        <D.25280>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25281>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.25282 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.25282;
        ins->prev = 0B;
        D.25283 = ins->prev;
        ins->next = D.25283;
        ins->opcode = 656;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.25284 = ins->sreg3;
        ins->sreg2 = D.25284;
        D.25285 = ins->sreg2;
        ins->sreg1 = D.25285;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (0 != 0) goto <D.25286>; else goto <D.25287>;
        <D.25286>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.25288 = D.24821;
        D.25289 = D.25288 + 1;
        cfg->num_bblocks = D.25289;
        D.25290 = (int) D.25288;
        falsebb->block_num = D.25290;
        ins->data.op[0].target_block = is_negative;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, is_negative);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25291>; else goto <D.25292>;
        <D.25291>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.25293>;
        <D.25292>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25293>:
        D.25294 = falsebb->cil_code;
        if (D.25294 != 0B) goto <D.25295>; else goto <D.25296>;
        <D.25295>:
        D.24878 = cfg->cil_offset_to_bb;
        D.25294 = falsebb->cil_code;
        D.25297 = (int) D.25294;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.25298 = D.25297 - D.24881;
        D.25299 = (unsigned int) D.25298;
        D.25300 = D.25299 * 4;
        D.25301 = D.24878 + D.25300;
        *D.25301 = falsebb;
        <D.25296>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25305>; else goto <D.25302>;
        <D.25305>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25306 = D.24597->opcode;
        D.25307 = D.25306 + 64981;
        D.25308 = D.25307 <= 9;
        D.25309 = D.25306 + 64874;
        D.25310 = D.25309 <= 9;
        D.25311 = D.25308 | D.25310;
        if (D.25311 != 0) goto <D.25303>; else goto <D.25312>;
        <D.25312>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.25303>; else goto <D.25302>;
        <D.25303>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25313>; else goto <D.25302>;
        <D.25313>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.25304>;
        <D.25302>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25314>; else goto <D.25316>;
        <D.25316>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25317 = D.24597->opcode;
        D.25318 = D.25317 != 446;
        D.25319 = D.25317 != 763;
        D.25320 = D.25318 & D.25319;
        if (D.25320 != 0) goto <D.25321>; else goto <D.25315>;
        <D.25321>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25322 = D.24597->opcode;
        D.25323 = D.25322 + 64981;
        D.25324 = D.25323 > 9;
        D.25325 = D.25322 + 64874;
        D.25326 = D.25325 > 9;
        D.25327 = D.25324 & D.25326;
        if (D.25327 != 0) goto <D.25328>; else goto <D.25315>;
        <D.25328>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25314>; else goto <D.25315>;
        <D.25314>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25315>:
        <D.25304>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25329>;
        <D.25287>:
        D.24594 = cfg->mempool;
        D.25330 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.25330;
        D.25331 = ins->data.op[1].many_blocks;
        *D.25331 = is_negative;
        D.25331 = ins->data.op[1].many_blocks;
        D.25332 = D.25331 + 4;
        *D.25332 = 0B;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, is_negative);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25333>; else goto <D.25334>;
        <D.25333>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.25335>;
        <D.25334>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25335>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.25336>; else goto <D.25337>;
        <D.25336>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.25338 = D.24821;
        D.25339 = D.25338 + 1;
        cfg->num_bblocks = D.25339;
        D.25340 = (int) D.25338;
        falsebb->block_num = D.25340;
        D.25331 = ins->data.op[1].many_blocks;
        D.25332 = D.25331 + 4;
        *D.25332 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.25294 = falsebb->cil_code;
        if (D.25294 != 0B) goto <D.25341>; else goto <D.25342>;
        <D.25341>:
        D.24878 = cfg->cil_offset_to_bb;
        D.25294 = falsebb->cil_code;
        D.25297 = (int) D.25294;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.25298 = D.25297 - D.24881;
        D.25299 = (unsigned int) D.25298;
        D.25300 = D.25299 * 4;
        D.25301 = D.24878 + D.25300;
        *D.25301 = falsebb;
        <D.25342>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25346>; else goto <D.25343>;
        <D.25346>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25347 = D.24597->opcode;
        D.25348 = D.25347 + 64981;
        D.25349 = D.25348 <= 9;
        D.25350 = D.25347 + 64874;
        D.25351 = D.25350 <= 9;
        D.25352 = D.25349 | D.25351;
        if (D.25352 != 0) goto <D.25344>; else goto <D.25353>;
        <D.25353>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.25344>; else goto <D.25343>;
        <D.25344>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25354>; else goto <D.25343>;
        <D.25354>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.25345>;
        <D.25343>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25355>; else goto <D.25357>;
        <D.25357>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25358 = D.24597->opcode;
        D.25359 = D.25358 != 446;
        D.25360 = D.25358 != 763;
        D.25361 = D.25359 & D.25360;
        if (D.25361 != 0) goto <D.25362>; else goto <D.25356>;
        <D.25362>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25363 = D.24597->opcode;
        D.25364 = D.25363 + 64981;
        D.25365 = D.25364 > 9;
        D.25366 = D.25363 + 64874;
        D.25367 = D.25366 > 9;
        D.25368 = D.25365 & D.25367;
        if (D.25368 != 0) goto <D.25369>; else goto <D.25356>;
        <D.25369>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25355>; else goto <D.25356>;
        <D.25355>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25356>:
        <D.25345>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25370>;
        <D.25337>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.25370>:
        <D.25329>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25371 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25371;
        inst->prev = 0B;
        D.25372 = inst->prev;
        inst->next = D.25372;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25373 = inst->sreg3;
        inst->sreg2 = D.25373;
        D.25374 = inst->sreg2;
        inst->sreg1 = D.25374;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        inst->data.op[1].const_val = 32767;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25375>; else goto <D.25376>;
        <D.25375>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25377>;
        <D.25376>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25377>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        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 = 462;
        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.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25382>; else goto <D.25383>;
        <D.25382>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25384>;
        <D.25383>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25384>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.25385 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.25385;
        ins->prev = 0B;
        D.25386 = ins->prev;
        ins->next = D.25386;
        ins->opcode = 446;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.25387 = ins->sreg3;
        ins->sreg2 = D.25387;
        D.25388 = ins->sreg2;
        ins->sreg1 = D.25388;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (1 != 0) goto <D.25389>; else goto <D.25390>;
        <D.25389>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.25391 = D.24821;
        D.25392 = D.25391 + 1;
        cfg->num_bblocks = D.25392;
        D.25393 = (int) D.25391;
        falsebb->block_num = D.25393;
        ins->data.op[0].target_block = end_label;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, end_label);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25394>; else goto <D.25395>;
        <D.25394>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.25396>;
        <D.25395>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25396>:
        D.25397 = falsebb->cil_code;
        if (D.25397 != 0B) goto <D.25398>; else goto <D.25399>;
        <D.25398>:
        D.24878 = cfg->cil_offset_to_bb;
        D.25397 = falsebb->cil_code;
        D.25400 = (int) D.25397;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.25401 = D.25400 - D.24881;
        D.25402 = (unsigned int) D.25401;
        D.25403 = D.25402 * 4;
        D.25404 = D.24878 + D.25403;
        *D.25404 = falsebb;
        <D.25399>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25408>; else goto <D.25405>;
        <D.25408>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25409 = D.24597->opcode;
        D.25410 = D.25409 + 64981;
        D.25411 = D.25410 <= 9;
        D.25412 = D.25409 + 64874;
        D.25413 = D.25412 <= 9;
        D.25414 = D.25411 | D.25413;
        if (D.25414 != 0) goto <D.25406>; else goto <D.25415>;
        <D.25415>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.25406>; else goto <D.25405>;
        <D.25406>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25416>; else goto <D.25405>;
        <D.25416>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.25407>;
        <D.25405>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25417>; else goto <D.25419>;
        <D.25419>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25420 = D.24597->opcode;
        D.25421 = D.25420 != 446;
        D.25422 = D.25420 != 763;
        D.25423 = D.25421 & D.25422;
        if (D.25423 != 0) goto <D.25424>; else goto <D.25418>;
        <D.25424>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25425 = D.24597->opcode;
        D.25426 = D.25425 + 64981;
        D.25427 = D.25426 > 9;
        D.25428 = D.25425 + 64874;
        D.25429 = D.25428 > 9;
        D.25430 = D.25427 & D.25429;
        if (D.25430 != 0) goto <D.25431>; else goto <D.25418>;
        <D.25431>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25417>; else goto <D.25418>;
        <D.25417>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25418>:
        <D.25407>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25432>;
        <D.25390>:
        D.24594 = cfg->mempool;
        D.25433 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.25433;
        D.25434 = ins->data.op[1].many_blocks;
        *D.25434 = end_label;
        D.25434 = ins->data.op[1].many_blocks;
        D.25435 = D.25434 + 4;
        *D.25435 = 0B;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, end_label);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25436>; else goto <D.25437>;
        <D.25436>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.25438>;
        <D.25437>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25438>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.25439>; else goto <D.25440>;
        <D.25439>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.25441 = D.24821;
        D.25442 = D.25441 + 1;
        cfg->num_bblocks = D.25442;
        D.25443 = (int) D.25441;
        falsebb->block_num = D.25443;
        D.25434 = ins->data.op[1].many_blocks;
        D.25435 = D.25434 + 4;
        *D.25435 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.25397 = falsebb->cil_code;
        if (D.25397 != 0B) goto <D.25444>; else goto <D.25445>;
        <D.25444>:
        D.24878 = cfg->cil_offset_to_bb;
        D.25397 = falsebb->cil_code;
        D.25400 = (int) D.25397;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.25401 = D.25400 - D.24881;
        D.25402 = (unsigned int) D.25401;
        D.25403 = D.25402 * 4;
        D.25404 = D.24878 + D.25403;
        *D.25404 = falsebb;
        <D.25445>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25449>; else goto <D.25446>;
        <D.25449>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25450 = D.24597->opcode;
        D.25451 = D.25450 + 64981;
        D.25452 = D.25451 <= 9;
        D.25453 = D.25450 + 64874;
        D.25454 = D.25453 <= 9;
        D.25455 = D.25452 | D.25454;
        if (D.25455 != 0) goto <D.25447>; else goto <D.25456>;
        <D.25456>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.25447>; else goto <D.25446>;
        <D.25447>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.25457>; else goto <D.25446>;
        <D.25457>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.25448>;
        <D.25446>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.25458>; else goto <D.25460>;
        <D.25460>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25461 = D.24597->opcode;
        D.25462 = D.25461 != 446;
        D.25463 = D.25461 != 763;
        D.25464 = D.25462 & D.25463;
        if (D.25464 != 0) goto <D.25465>; else goto <D.25459>;
        <D.25465>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.25466 = D.24597->opcode;
        D.25467 = D.25466 + 64981;
        D.25468 = D.25467 > 9;
        D.25469 = D.25466 + 64874;
        D.25470 = D.25469 > 9;
        D.25471 = D.25468 & D.25470;
        if (D.25471 != 0) goto <D.25472>; else goto <D.25459>;
        <D.25472>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.25458>; else goto <D.25459>;
        <D.25458>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.25459>:
        <D.25448>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.25473>;
        <D.25440>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.25473>:
        <D.25432>:
      }
      D.25474 = is_negative->cil_code;
      if (D.25474 != 0B) goto <D.25475>; else goto <D.25476>;
      <D.25475>:
      D.24878 = cfg->cil_offset_to_bb;
      D.25474 = is_negative->cil_code;
      D.25477 = (int) D.25474;
      D.24880 = cfg->cil_start;
      D.24881 = (int) D.24880;
      D.25478 = D.25477 - D.24881;
      D.25479 = (unsigned int) D.25478;
      D.25480 = D.25479 * 4;
      D.25481 = D.24878 + D.25480;
      *D.25481 = is_negative;
      <D.25476>:
      D.24886 = cfg->real_offset;
      is_negative->real_offset = D.24886;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25485>; else goto <D.25482>;
      <D.25485>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25486 = D.24597->opcode;
      D.25487 = D.25486 + 64981;
      D.25488 = D.25487 <= 9;
      D.25489 = D.25486 + 64874;
      D.25490 = D.25489 <= 9;
      D.25491 = D.25488 | D.25490;
      if (D.25491 != 0) goto <D.25483>; else goto <D.25492>;
      <D.25492>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 <= 9) goto <D.25483>; else goto <D.25482>;
      <D.25483>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      D.24902 = *D.24901;
      if (D.24902 == 0B) goto <D.25493>; else goto <D.25482>;
      <D.25493>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      *D.24901 = is_negative;
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, is_negative);
      goto <D.25484>;
      <D.25482>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 == 0B) goto <D.25494>; else goto <D.25496>;
      <D.25496>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25497 = D.24597->opcode;
      D.25498 = D.25497 != 446;
      D.25499 = D.25497 != 763;
      D.25500 = D.25498 & D.25499;
      if (D.25500 != 0) goto <D.25501>; else goto <D.25495>;
      <D.25501>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25502 = D.24597->opcode;
      D.25503 = D.25502 + 64981;
      D.25504 = D.25503 > 9;
      D.25505 = D.25502 + 64874;
      D.25506 = D.25505 > 9;
      D.25507 = D.25504 & D.25506;
      if (D.25507 != 0) goto <D.25508>; else goto <D.25495>;
      <D.25508>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 > 9) goto <D.25494>; else goto <D.25495>;
      <D.25494>:
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, is_negative);
      <D.25495>:
      <D.25484>:
      D.24596 = cfg->cbb;
      D.24596->next_bb = is_negative;
      cfg->cbb = is_negative;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25509 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25509;
        inst->prev = 0B;
        D.25510 = inst->prev;
        inst->next = D.25510;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25511 = inst->sreg3;
        inst->sreg2 = D.25511;
        D.25512 = inst->sreg2;
        inst->sreg1 = D.25512;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        inst->data.op[1].const_val = -32768;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25513>; else goto <D.25514>;
        <D.25513>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25515>;
        <D.25514>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25515>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25516 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25516;
        inst->prev = 0B;
        D.25517 = inst->prev;
        inst->next = D.25517;
        inst->opcode = 464;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25518 = inst->sreg3;
        inst->sreg2 = D.25518;
        D.25519 = inst->sreg2;
        inst->sreg1 = D.25519;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->data.op[1].p = "OverflowException";
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25520>; else goto <D.25521>;
        <D.25520>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25522>;
        <D.25521>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25522>:
      }
      D.25523 = end_label->cil_code;
      if (D.25523 != 0B) goto <D.25524>; else goto <D.25525>;
      <D.25524>:
      D.24878 = cfg->cil_offset_to_bb;
      D.25523 = end_label->cil_code;
      D.25526 = (int) D.25523;
      D.24880 = cfg->cil_start;
      D.24881 = (int) D.24880;
      D.25527 = D.25526 - D.24881;
      D.25528 = (unsigned int) D.25527;
      D.25529 = D.25528 * 4;
      D.25530 = D.24878 + D.25529;
      *D.25530 = end_label;
      <D.25525>:
      D.24886 = cfg->real_offset;
      end_label->real_offset = D.24886;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25534>; else goto <D.25531>;
      <D.25534>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25535 = D.24597->opcode;
      D.25536 = D.25535 + 64981;
      D.25537 = D.25536 <= 9;
      D.25538 = D.25535 + 64874;
      D.25539 = D.25538 <= 9;
      D.25540 = D.25537 | D.25539;
      if (D.25540 != 0) goto <D.25532>; else goto <D.25541>;
      <D.25541>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 <= 9) goto <D.25532>; else goto <D.25531>;
      <D.25532>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      D.24902 = *D.24901;
      if (D.24902 == 0B) goto <D.25542>; else goto <D.25531>;
      <D.25542>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24900 = D.24597->data.op[1].many_blocks;
      D.24901 = D.24900 + 4;
      *D.24901 = end_label;
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, end_label);
      goto <D.25533>;
      <D.25531>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 == 0B) goto <D.25543>; else goto <D.25545>;
      <D.25545>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25546 = D.24597->opcode;
      D.25547 = D.25546 != 446;
      D.25548 = D.25546 != 763;
      D.25549 = D.25547 & D.25548;
      if (D.25549 != 0) goto <D.25550>; else goto <D.25544>;
      <D.25550>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.25551 = D.24597->opcode;
      D.25552 = D.25551 + 64981;
      D.25553 = D.25552 > 9;
      D.25554 = D.25551 + 64874;
      D.25555 = D.25554 > 9;
      D.25556 = D.25553 & D.25555;
      if (D.25556 != 0) goto <D.25557>; else goto <D.25544>;
      <D.25557>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24898 = D.24597->opcode;
      D.24899 = D.24898 + 64884;
      if (D.24899 > 9) goto <D.25543>; else goto <D.25544>;
      <D.25543>:
      D.24596 = cfg->cbb;
      mono_link_bblock (cfg, D.24596, end_label);
      <D.25544>:
      <D.25533>:
      D.24596 = cfg->cbb;
      D.24596->next_bb = end_label;
      cfg->cbb = end_label;
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.25558 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.25558;
        inst->prev = 0B;
        D.25559 = inst->prev;
        inst->next = D.25559;
        inst->opcode = 585;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.25560 = inst->sreg3;
        inst->sreg2 = D.25560;
        D.25561 = inst->sreg2;
        inst->sreg1 = D.25561;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        D.24605 = tree->dreg;
        inst->dreg = D.24605;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.25562>; else goto <D.25563>;
        <D.25562>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.25564>;
        <D.25563>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.25564>:
      }
      goto <D.23809>;
    }
    <D.23912>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25565 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25565;
      inst->prev = 0B;
      D.25566 = inst->prev;
      inst->next = D.25566;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25567 = inst->sreg3;
      inst->sreg2 = D.25567;
      D.25568 = inst->sreg2;
      inst->sreg1 = D.25568;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25569>; else goto <D.25570>;
      <D.25569>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25571>;
      <D.25570>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25571>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25572 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25572;
      inst->prev = 0B;
      D.25573 = inst->prev;
      inst->next = D.25573;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25574 = inst->sreg3;
      inst->sreg2 = D.25574;
      D.25575 = inst->sreg2;
      inst->sreg1 = D.25575;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25576>; else goto <D.25577>;
      <D.25576>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25578>;
      <D.25577>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25578>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25579 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25579;
      inst->prev = 0B;
      D.25580 = inst->prev;
      inst->next = D.25580;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25581 = inst->sreg3;
      inst->sreg2 = D.25581;
      D.25582 = inst->sreg2;
      inst->sreg1 = D.25582;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 32767;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25583>; else goto <D.25584>;
      <D.25583>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25585>;
      <D.25584>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25585>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25586 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25586;
      inst->prev = 0B;
      D.25587 = inst->prev;
      inst->next = D.25587;
      inst->opcode = 457;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25588 = inst->sreg3;
      inst->sreg2 = D.25588;
      D.25589 = inst->sreg2;
      inst->sreg1 = D.25589;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25590>; else goto <D.25591>;
      <D.25590>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25592>;
      <D.25591>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25592>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25593 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25593;
      inst->prev = 0B;
      D.25594 = inst->prev;
      inst->next = D.25594;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25595 = inst->sreg3;
      inst->sreg2 = D.25595;
      D.25596 = inst->sreg2;
      inst->sreg1 = D.25596;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = -32768;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25597>; else goto <D.25598>;
      <D.25597>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25599>;
      <D.25598>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25599>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25600 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25600;
      inst->prev = 0B;
      D.25601 = inst->prev;
      inst->next = D.25601;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25602 = inst->sreg3;
      inst->sreg2 = D.25602;
      D.25603 = inst->sreg2;
      inst->sreg1 = D.25603;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25604>; else goto <D.25605>;
      <D.25604>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25606>;
      <D.25605>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25606>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 585;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25611>; else goto <D.25612>;
      <D.25611>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25613>;
      <D.25612>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25613>:
    }
    goto <D.23809>;
    <D.23920>:
    <D.23921>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25614 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25614;
      inst->prev = 0B;
      D.25615 = inst->prev;
      inst->next = D.25615;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25616 = inst->sreg3;
      inst->sreg2 = D.25616;
      D.25617 = inst->sreg2;
      inst->sreg1 = D.25617;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25618>; else goto <D.25619>;
      <D.25618>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25620>;
      <D.25619>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25620>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25621 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25621;
      inst->prev = 0B;
      D.25622 = inst->prev;
      inst->next = D.25622;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25623 = inst->sreg3;
      inst->sreg2 = D.25623;
      D.25624 = inst->sreg2;
      inst->sreg1 = D.25624;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25625>; else goto <D.25626>;
      <D.25625>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25627>;
      <D.25626>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25627>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 323;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 65535;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25632>; else goto <D.25633>;
      <D.25632>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25634>;
      <D.25633>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25634>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 462;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25639>; else goto <D.25640>;
      <D.25639>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25641>;
      <D.25640>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25641>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 440;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 65535;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25646>; else goto <D.25647>;
      <D.25646>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25648>;
      <D.25647>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25648>:
    }
    goto <D.23809>;
    <D.23927>:
    <D.23928>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 568;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg2 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25653>; else goto <D.25654>;
      <D.25653>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25655>;
      <D.25654>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25655>:
    }
    goto <D.23809>;
    <D.23930>:
    <D.23931>:
    <D.23932>:
    <D.23933>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 323;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25660>; else goto <D.25661>;
      <D.25660>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25662>;
      <D.25661>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25662>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25663 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25663;
      inst->prev = 0B;
      D.25664 = inst->prev;
      inst->next = D.25664;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25665 = inst->sreg3;
      inst->sreg2 = D.25665;
      D.25666 = inst->sreg2;
      inst->sreg1 = D.25666;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25667>; else goto <D.25668>;
      <D.25667>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25669>;
      <D.25668>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25669>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 428;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25674>; else goto <D.25675>;
      <D.25674>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25676>;
      <D.25675>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25676>:
    }
    goto <D.23809>;
    <D.23937>:
    <D.23938>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 323;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25681>; else goto <D.25682>;
      <D.25681>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25683>;
      <D.25682>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25683>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25684 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25684;
      inst->prev = 0B;
      D.25685 = inst->prev;
      inst->next = D.25685;
      inst->opcode = 460;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25686 = inst->sreg3;
      inst->sreg2 = D.25686;
      D.25687 = inst->sreg2;
      inst->sreg1 = D.25687;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25688>; else goto <D.25689>;
      <D.25688>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25690>;
      <D.25689>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25690>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25691 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25691;
      inst->prev = 0B;
      D.25692 = inst->prev;
      inst->next = D.25692;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25693 = inst->sreg3;
      inst->sreg2 = D.25693;
      D.25694 = inst->sreg2;
      inst->sreg1 = D.25694;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25695>; else goto <D.25696>;
      <D.25695>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25697>;
      <D.25696>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25697>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25698 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25698;
      inst->prev = 0B;
      D.25699 = inst->prev;
      inst->next = D.25699;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25700 = inst->sreg3;
      inst->sreg2 = D.25700;
      D.25701 = inst->sreg2;
      inst->sreg1 = D.25701;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25702>; else goto <D.25703>;
      <D.25702>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25704>;
      <D.25703>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25704>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25705 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25705;
      inst->prev = 0B;
      D.25706 = inst->prev;
      inst->next = D.25706;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25707 = inst->sreg3;
      inst->sreg2 = D.25707;
      D.25708 = inst->sreg2;
      inst->sreg1 = D.25708;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      inst->dreg = D.24605;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25709>; else goto <D.25710>;
      <D.25709>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25711>;
      <D.25710>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25711>:
    }
    goto <D.23809>;
    <D.23944>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25712 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25712;
      inst->prev = 0B;
      D.25713 = inst->prev;
      inst->next = D.25713;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25714 = inst->sreg3;
      inst->sreg2 = D.25714;
      D.25715 = inst->sreg2;
      inst->sreg1 = D.25715;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25716>; else goto <D.25717>;
      <D.25716>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25718>;
      <D.25717>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25718>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25719 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25719;
      inst->prev = 0B;
      D.25720 = inst->prev;
      inst->next = D.25720;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25721 = inst->sreg3;
      inst->sreg2 = D.25721;
      D.25722 = inst->sreg2;
      inst->sreg1 = D.25722;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25723>; else goto <D.25724>;
      <D.25723>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25725>;
      <D.25724>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25725>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25726 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25726;
      inst->prev = 0B;
      D.25727 = inst->prev;
      inst->next = D.25727;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25728 = inst->sreg3;
      inst->sreg2 = D.25728;
      D.25729 = inst->sreg2;
      inst->sreg1 = D.25729;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25730>; else goto <D.25731>;
      <D.25730>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25732>;
      <D.25731>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25732>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25733 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25733;
      inst->prev = 0B;
      D.25734 = inst->prev;
      inst->next = D.25734;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25735 = inst->sreg3;
      inst->sreg2 = D.25735;
      D.25736 = inst->sreg2;
      inst->sreg1 = D.25736;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25737>; else goto <D.25738>;
      <D.25737>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25739>;
      <D.25738>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25739>:
    }
    goto <D.23809>;
    <D.23949>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25740 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25740;
      inst->prev = 0B;
      D.25741 = inst->prev;
      inst->next = D.25741;
      inst->opcode = 323;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25742 = inst->sreg3;
      inst->sreg2 = D.25742;
      D.25743 = inst->sreg2;
      inst->sreg1 = D.25743;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->dreg = -1;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      inst->data.op[1].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25744>; else goto <D.25745>;
      <D.25744>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25746>;
      <D.25745>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25746>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25747 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25747;
      inst->prev = 0B;
      D.25748 = inst->prev;
      inst->next = D.25748;
      inst->opcode = 459;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25749 = inst->sreg3;
      inst->sreg2 = D.25749;
      D.25750 = inst->sreg2;
      inst->sreg1 = D.25750;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25751>; else goto <D.25752>;
      <D.25751>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25753>;
      <D.25752>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25753>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25754 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25754;
      inst->prev = 0B;
      D.25755 = inst->prev;
      inst->next = D.25755;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25756 = inst->sreg3;
      inst->sreg2 = D.25756;
      D.25757 = inst->sreg2;
      inst->sreg1 = D.25757;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25758>; else goto <D.25759>;
      <D.25758>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25760>;
      <D.25759>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25760>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25761 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25761;
      inst->prev = 0B;
      D.25762 = inst->prev;
      inst->next = D.25762;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25763 = inst->sreg3;
      inst->sreg2 = D.25763;
      D.25764 = inst->sreg2;
      inst->sreg1 = D.25764;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25765>; else goto <D.25766>;
      <D.25765>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25767>;
      <D.25766>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25767>:
    }
    goto <D.23809>;
    <D.23954>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25768 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25768;
      inst->prev = 0B;
      D.25769 = inst->prev;
      inst->next = D.25769;
      inst->opcode = 627;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25770 = inst->sreg3;
      inst->sreg2 = D.25770;
      D.25771 = inst->sreg2;
      inst->sreg1 = D.25771;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25774>; else goto <D.25775>;
      <D.25774>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25776>;
      <D.25775>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25776>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25777 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25777;
      inst->prev = 0B;
      D.25778 = inst->prev;
      inst->next = D.25778;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25779 = inst->sreg3;
      inst->sreg2 = D.25779;
      D.25780 = inst->sreg2;
      inst->sreg1 = D.25780;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25782>; else goto <D.25783>;
      <D.25782>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25784>;
      <D.25783>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25784>:
    }
    goto <D.23809>;
    <D.23957>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25785 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25785;
      inst->prev = 0B;
      D.25786 = inst->prev;
      inst->next = D.25786;
      inst->opcode = 628;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25787 = inst->sreg3;
      inst->sreg2 = D.25787;
      D.25788 = inst->sreg2;
      inst->sreg1 = D.25788;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25789>; else goto <D.25790>;
      <D.25789>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25791>;
      <D.25790>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25791>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25792 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25792;
      inst->prev = 0B;
      D.25793 = inst->prev;
      inst->next = D.25793;
      inst->opcode = 625;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25794 = inst->sreg3;
      inst->sreg2 = D.25794;
      D.25795 = inst->sreg2;
      inst->sreg1 = D.25795;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25796>; else goto <D.25797>;
      <D.25796>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25798>;
      <D.25797>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25798>:
    }
    goto <D.23809>;
    <D.23960>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25799 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25799;
      inst->prev = 0B;
      D.25800 = inst->prev;
      inst->next = D.25800;
      inst->opcode = 627;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25801 = inst->sreg3;
      inst->sreg2 = D.25801;
      D.25802 = inst->sreg2;
      inst->sreg1 = D.25802;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25803>; else goto <D.25804>;
      <D.25803>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25805>;
      <D.25804>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25805>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25806 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25806;
      inst->prev = 0B;
      D.25807 = inst->prev;
      inst->next = D.25807;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25808 = inst->sreg3;
      inst->sreg2 = D.25808;
      D.25809 = inst->sreg2;
      inst->sreg1 = D.25809;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25810>; else goto <D.25811>;
      <D.25810>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25812>;
      <D.25811>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25812>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25813 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25813;
      inst->prev = 0B;
      D.25814 = inst->prev;
      inst->next = D.25814;
      inst->opcode = 465;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25815 = inst->sreg3;
      inst->sreg2 = D.25815;
      D.25816 = inst->sreg2;
      inst->sreg1 = D.25816;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25817>; else goto <D.25818>;
      <D.25817>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25819>;
      <D.25818>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25819>:
    }
    goto <D.23809>;
    <D.23964>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 627;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25824>; else goto <D.25825>;
      <D.25824>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25826>;
      <D.25825>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25826>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25827 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25827;
      inst->prev = 0B;
      D.25828 = inst->prev;
      inst->next = D.25828;
      inst->opcode = 623;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25829 = inst->sreg3;
      inst->sreg2 = D.25829;
      D.25830 = inst->sreg2;
      inst->sreg1 = D.25830;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25831>; else goto <D.25832>;
      <D.25831>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25833>;
      <D.25832>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25833>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25834 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25834;
      inst->prev = 0B;
      D.25835 = inst->prev;
      inst->next = D.25835;
      inst->opcode = 467;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25836 = inst->sreg3;
      inst->sreg2 = D.25836;
      D.25837 = inst->sreg2;
      inst->sreg1 = D.25837;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25838>; else goto <D.25839>;
      <D.25838>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25840>;
      <D.25839>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25840>:
    }
    goto <D.23809>;
    <D.23968>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25841 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25841;
      inst->prev = 0B;
      D.25842 = inst->prev;
      inst->next = D.25842;
      inst->opcode = 628;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25843 = inst->sreg3;
      inst->sreg2 = D.25843;
      D.25844 = inst->sreg2;
      inst->sreg1 = D.25844;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25845>; else goto <D.25846>;
      <D.25845>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25847>;
      <D.25846>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25847>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25848 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25848;
      inst->prev = 0B;
      D.25849 = inst->prev;
      inst->next = D.25849;
      inst->opcode = 625;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25850 = inst->sreg3;
      inst->sreg2 = D.25850;
      D.25851 = inst->sreg2;
      inst->sreg1 = D.25851;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25852>; else goto <D.25853>;
      <D.25852>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25854>;
      <D.25853>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25854>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25855 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25855;
      inst->prev = 0B;
      D.25856 = inst->prev;
      inst->next = D.25856;
      inst->opcode = 465;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25857 = inst->sreg3;
      inst->sreg2 = D.25857;
      D.25858 = inst->sreg2;
      inst->sreg1 = D.25858;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25859>; else goto <D.25860>;
      <D.25859>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25861>;
      <D.25860>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25861>:
    }
    goto <D.23809>;
    <D.23972>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25862 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25862;
      inst->prev = 0B;
      D.25863 = inst->prev;
      inst->next = D.25863;
      inst->opcode = 628;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25864 = inst->sreg3;
      inst->sreg2 = D.25864;
      D.25865 = inst->sreg2;
      inst->sreg1 = D.25865;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25866>; else goto <D.25867>;
      <D.25866>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25868>;
      <D.25867>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25868>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25869 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25869;
      inst->prev = 0B;
      D.25870 = inst->prev;
      inst->next = D.25870;
      inst->opcode = 625;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25871 = inst->sreg3;
      inst->sreg2 = D.25871;
      D.25872 = inst->sreg2;
      inst->sreg1 = D.25872;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25873>; else goto <D.25874>;
      <D.25873>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25875>;
      <D.25874>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25875>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25876 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25876;
      inst->prev = 0B;
      D.25877 = inst->prev;
      inst->next = D.25877;
      inst->opcode = 467;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25878 = inst->sreg3;
      inst->sreg2 = D.25878;
      D.25879 = inst->sreg2;
      inst->sreg1 = D.25879;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      inst->data.op[1].p = "OverflowException";
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25880>; else goto <D.25881>;
      <D.25880>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25882>;
      <D.25881>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25882>:
    }
    goto <D.23809>;
    <D.23976>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25883 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25883;
      inst->prev = 0B;
      D.25884 = inst->prev;
      inst->next = D.25884;
      inst->opcode = 576;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25885 = inst->sreg3;
      inst->sreg2 = D.25885;
      D.25886 = inst->sreg2;
      inst->sreg1 = D.25886;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25887>; else goto <D.25888>;
      <D.25887>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25889>;
      <D.25888>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25889>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25890 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25890;
      inst->prev = 0B;
      D.25891 = inst->prev;
      inst->next = D.25891;
      inst->opcode = 576;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25892 = inst->sreg3;
      inst->sreg2 = D.25892;
      D.25893 = inst->sreg2;
      inst->sreg1 = D.25893;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25894>; else goto <D.25895>;
      <D.25894>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25896>;
      <D.25895>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25896>:
    }
    goto <D.23809>;
    <D.23979>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25897 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25897;
      inst->prev = 0B;
      D.25898 = inst->prev;
      inst->next = D.25898;
      inst->opcode = 577;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25899 = inst->sreg3;
      inst->sreg2 = D.25899;
      D.25900 = inst->sreg2;
      inst->sreg1 = D.25900;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25901>; else goto <D.25902>;
      <D.25901>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25903>;
      <D.25902>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25903>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25904 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25904;
      inst->prev = 0B;
      D.25905 = inst->prev;
      inst->next = D.25905;
      inst->opcode = 577;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25906 = inst->sreg3;
      inst->sreg2 = D.25906;
      D.25907 = inst->sreg2;
      inst->sreg1 = D.25907;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25908>; else goto <D.25909>;
      <D.25908>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25910>;
      <D.25909>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25910>:
    }
    goto <D.23809>;
    <D.23982>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25911 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25911;
      inst->prev = 0B;
      D.25912 = inst->prev;
      inst->next = D.25912;
      inst->opcode = 578;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25913 = inst->sreg3;
      inst->sreg2 = D.25913;
      D.25914 = inst->sreg2;
      inst->sreg1 = D.25914;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.25772 = tree->sreg2;
      D.25773 = D.25772 + 1;
      inst->sreg2 = D.25773;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25915>; else goto <D.25916>;
      <D.25915>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25917>;
      <D.25916>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25917>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25918 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25918;
      inst->prev = 0B;
      D.25919 = inst->prev;
      inst->next = D.25919;
      inst->opcode = 578;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25920 = inst->sreg3;
      inst->sreg2 = D.25920;
      D.25921 = inst->sreg2;
      inst->sreg1 = D.25921;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.25772 = tree->sreg2;
      D.25781 = D.25772 + 2;
      inst->sreg2 = D.25781;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25922>; else goto <D.25923>;
      <D.25922>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25924>;
      <D.25923>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25924>:
    }
    goto <D.23809>;
    <D.23985>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25925 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25925;
      inst->prev = 0B;
      D.25926 = inst->prev;
      inst->next = D.25926;
      inst->opcode = 583;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25927 = inst->sreg3;
      inst->sreg2 = D.25927;
      D.25928 = inst->sreg2;
      inst->sreg1 = D.25928;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25929>; else goto <D.25930>;
      <D.25929>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25931>;
      <D.25930>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25931>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25932 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25932;
      inst->prev = 0B;
      D.25933 = inst->prev;
      inst->next = D.25933;
      inst->opcode = 583;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25934 = inst->sreg3;
      inst->sreg2 = D.25934;
      D.25935 = inst->sreg2;
      inst->sreg1 = D.25935;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25936>; else goto <D.25937>;
      <D.25936>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25938>;
      <D.25937>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25938>:
    }
    goto <D.23809>;
    <D.23988>:
    monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 840);
    <D.23989>:
    goto <D.23809>;
    <D.23990>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25939 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25939;
      inst->prev = 0B;
      D.25940 = inst->prev;
      inst->next = D.25940;
      inst->opcode = 760;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25941 = inst->sreg3;
      inst->sreg2 = D.25941;
      D.25942 = inst->sreg2;
      inst->sreg1 = D.25942;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25943>; else goto <D.25944>;
      <D.25943>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25945>;
      <D.25944>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25945>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25946 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25946;
      inst->prev = 0B;
      D.25947 = inst->prev;
      inst->next = D.25947;
      inst->opcode = 756;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25948 = inst->sreg3;
      inst->sreg2 = D.25948;
      D.25949 = inst->sreg2;
      inst->sreg1 = D.25949;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25950>; else goto <D.25951>;
      <D.25950>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25952>;
      <D.25951>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25952>:
    }
    goto <D.23809>;
    <D.23993>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25953 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25953;
      inst->prev = 0B;
      D.25954 = inst->prev;
      inst->next = D.25954;
      inst->opcode = 762;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25955 = inst->sreg3;
      inst->sreg2 = D.25955;
      D.25956 = inst->sreg2;
      inst->sreg1 = D.25956;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25957>; else goto <D.25958>;
      <D.25957>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25959>;
      <D.25958>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25959>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      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 = 758;
      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.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25964>; else goto <D.25965>;
      <D.25964>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25966>;
      <D.25965>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25966>:
    }
    goto <D.23809>;
    <D.23996>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25967 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25967;
      inst->prev = 0B;
      D.25968 = inst->prev;
      inst->next = D.25968;
      inst->opcode = 440;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25969 = inst->sreg3;
      inst->sreg2 = D.25969;
      D.25970 = inst->sreg2;
      inst->sreg1 = D.25970;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25971>; else goto <D.25972>;
      <D.25971>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25973>;
      <D.25972>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25973>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25974 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25974;
      inst->prev = 0B;
      D.25975 = inst->prev;
      inst->next = D.25975;
      inst->opcode = 440;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25976 = inst->sreg3;
      inst->sreg2 = D.25976;
      D.25977 = inst->sreg2;
      inst->sreg1 = D.25977;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25978>; else goto <D.25979>;
      <D.25978>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25980>;
      <D.25979>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25980>:
    }
    goto <D.23809>;
    <D.23999>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25981 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25981;
      inst->prev = 0B;
      D.25982 = inst->prev;
      inst->next = D.25982;
      inst->opcode = 441;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25983 = inst->sreg3;
      inst->sreg2 = D.25983;
      D.25984 = inst->sreg2;
      inst->sreg1 = D.25984;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25985>; else goto <D.25986>;
      <D.25985>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25987>;
      <D.25986>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25987>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25988 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25988;
      inst->prev = 0B;
      D.25989 = inst->prev;
      inst->next = D.25989;
      inst->opcode = 441;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25990 = inst->sreg3;
      inst->sreg2 = D.25990;
      D.25991 = inst->sreg2;
      inst->sreg1 = D.25991;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25992>; else goto <D.25993>;
      <D.25992>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.25994>;
      <D.25993>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.25994>:
    }
    goto <D.23809>;
    <D.24002>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.25995 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.25995;
      inst->prev = 0B;
      D.25996 = inst->prev;
      inst->next = D.25996;
      inst->opcode = 442;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.25997 = inst->sreg3;
      inst->sreg2 = D.25997;
      D.25998 = inst->sreg2;
      inst->sreg1 = D.25998;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24607 = tree->data.op[0].const_val;
      inst->data.op[1].const_val = D.24607;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.25999>; else goto <D.26000>;
      <D.25999>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26001>;
      <D.26000>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26001>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.26002 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26002;
      inst->prev = 0B;
      D.26003 = inst->prev;
      inst->next = D.26003;
      inst->opcode = 442;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26004 = inst->sreg3;
      inst->sreg2 = D.26004;
      D.26005 = inst->sreg2;
      inst->sreg1 = D.26005;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24616 = tree->data.op[1].const_val;
      inst->data.op[1].const_val = D.24616;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.26006>; else goto <D.26007>;
      <D.26006>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26008>;
      <D.26007>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26008>:
    }
    goto <D.23809>;
    <D.24005>:
    D.24616 = tree->data.op[1].const_val;
    if (D.24616 == 32) goto <D.26009>; else goto <D.26010>;
    <D.26009>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.26011 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26011;
      inst->prev = 0B;
      D.26012 = inst->prev;
      inst->next = D.26012;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26013 = inst->sreg3;
      inst->sreg2 = D.26013;
      D.26014 = inst->sreg2;
      inst->sreg1 = D.26014;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      D.24624 = tree->sreg1;
      D.24633 = D.24624 + 2;
      inst->sreg1 = D.24633;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.26015>; else goto <D.26016>;
      <D.26015>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26017>;
      <D.26016>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26017>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.26018 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26018;
      inst->prev = 0B;
      D.26019 = inst->prev;
      inst->next = D.26019;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26020 = inst->sreg3;
      inst->sreg2 = D.26020;
      D.26021 = inst->sreg2;
      inst->sreg1 = D.26021;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      inst->data.op[0].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.26022>; else goto <D.26023>;
      <D.26022>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26024>;
      <D.26023>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26024>:
    }
    <D.26010>:
    goto <D.23809>;
    <D.24008>:
    D.24616 = tree->data.op[1].const_val;
    if (D.24616 == 32) goto <D.26025>; else goto <D.26026>;
    <D.26025>:
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.26027 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26027;
      inst->prev = 0B;
      D.26028 = inst->prev;
      inst->next = D.26028;
      inst->opcode = 428;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26029 = inst->sreg3;
      inst->sreg2 = D.26029;
      D.26030 = inst->sreg2;
      inst->sreg1 = D.26030;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24615 = D.24605 + 2;
      inst->dreg = D.24615;
      D.24624 = tree->sreg1;
      D.24625 = D.24624 + 1;
      inst->sreg1 = D.24625;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.26031>; else goto <D.26032>;
      <D.26031>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26033>;
      <D.26032>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26033>:
    }
    {
      struct MonoInst * inst;

      D.24594 = cfg->mempool;
      inst = mono_mempool_alloc (D.24594, 48);
      inst->data.op[1].const_val = 0;
      D.26034 = inst->data.op[1].const_val;
      inst->data.op[0].const_val = D.26034;
      inst->prev = 0B;
      D.26035 = inst->prev;
      inst->next = D.26035;
      inst->opcode = 362;
      inst->flags = 0;
      inst->type = 0;
      inst->dreg = -1;
      inst->sreg3 = -1;
      D.26036 = inst->sreg3;
      inst->sreg2 = D.26036;
      D.26037 = inst->sreg2;
      inst->sreg1 = D.26037;
      D.24604 = cfg->ip;
      inst->cil_code = D.24604;
      D.24605 = tree->dreg;
      D.24606 = D.24605 + 1;
      inst->dreg = D.24606;
      inst->data.op[0].const_val = 0;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      if (D.24597 != 0B) goto <D.26038>; else goto <D.26039>;
      <D.26038>:
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      D.24597->next = inst;
      D.24596 = cfg->cbb;
      D.24597 = D.24596->last_ins;
      inst->prev = D.24597;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      goto <D.26040>;
      <D.26039>:
      D.24596 = cfg->cbb;
      D.24596 = cfg->cbb;
      D.24596->last_ins = inst;
      D.24597 = D.24596->last_ins;
      D.24596->code = D.24597;
      <D.26040>:
    }
    <D.26026>:
    goto <D.23809>;
    <D.24011>:
    {
      struct MonoInst * next;

      next = tree->next;
      D.26041 = next == 0B;
      D.26042 = (long int) D.26041;
      D.26043 = __builtin_expect (D.26042, 0);
      if (D.26043 != 0) goto <D.26044>; else goto <D.26045>;
      <D.26044>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 892, "next");
      <D.26045>:
      D.26046 = next->opcode;
      D.26047 = (int) D.26046;
      switch (D.26047) <default: <D.24064>, case 535: <D.24039>, case 536: <D.24049>, case 537: <D.24050>, case 538: <D.24047>, case 539: <D.24048>, case 555: <D.24013>, case 556: <D.24023>, case 557: <D.24024>, case 558: <D.24025>, case 559: <D.24026>, case 560: <D.24014>, case 561: <D.24027>, case 562: <D.24028>, case 563: <D.24029>, case 564: <D.24030>>
      <D.24013>:
      <D.24014>:
      {
        int d1;
        int d2;

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

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26050 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26050;
          inst->prev = 0B;
          D.26051 = inst->prev;
          inst->next = D.26051;
          inst->opcode = 578;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26052 = inst->sreg3;
          inst->sreg2 = D.26052;
          D.26053 = inst->sreg2;
          inst->sreg1 = D.26053;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          D.24624 = tree->sreg1;
          D.24625 = D.24624 + 1;
          inst->sreg1 = D.24625;
          D.25772 = tree->sreg2;
          D.25773 = D.25772 + 1;
          inst->sreg2 = D.25773;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26054>; else goto <D.26055>;
          <D.26054>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26056>;
          <D.26055>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26056>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26057 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26057;
          inst->prev = 0B;
          D.26058 = inst->prev;
          inst->next = D.26058;
          inst->opcode = 578;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26059 = inst->sreg3;
          inst->sreg2 = D.26059;
          D.26060 = inst->sreg2;
          inst->sreg1 = D.26060;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d2;
          D.24624 = tree->sreg1;
          D.24633 = D.24624 + 2;
          inst->sreg1 = D.24633;
          D.25772 = tree->sreg2;
          D.25781 = D.25772 + 2;
          inst->sreg2 = D.25781;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26061>; else goto <D.26062>;
          <D.26061>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26063>;
          <D.26062>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26063>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26064 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26064;
          inst->prev = 0B;
          D.26065 = inst->prev;
          inst->next = D.26065;
          inst->opcode = 577;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26066 = inst->sreg3;
          inst->sreg2 = D.26066;
          D.26067 = inst->sreg2;
          inst->sreg1 = D.26067;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26068>; else goto <D.26069>;
          <D.26068>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26070>;
          <D.26069>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26070>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26071 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26071;
          inst->prev = 0B;
          D.26072 = inst->prev;
          inst->next = D.26072;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26073 = inst->sreg3;
          inst->sreg2 = D.26073;
          D.26074 = inst->sreg2;
          inst->sreg1 = D.26074;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26075>; else goto <D.26076>;
          <D.26075>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26077>;
          <D.26076>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26077>:
        }
        {
          struct MonoInst * ins;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.26078 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26078;
          ins->prev = 0B;
          D.26079 = ins->prev;
          ins->next = D.26079;
          D.26046 = next->opcode;
          if (D.26046 == 555) goto <D.26081>; else goto <D.26082>;
          <D.26081>:
          iftmp.3 = 652;
          goto <D.26083>;
          <D.26082>:
          iftmp.3 = 657;
          <D.26083>:
          ins->opcode = iftmp.3;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26084 = ins->sreg3;
          ins->sreg2 = D.26084;
          D.26085 = ins->sreg2;
          ins->sreg1 = D.26085;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.24594 = cfg->mempool;
          D.26086 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.26086;
          D.26087 = ins->data.op[1].many_blocks;
          D.26088 = next->data.op[1].many_blocks;
          D.26089 = *D.26088;
          *D.26087 = D.26089;
          D.26087 = ins->data.op[1].many_blocks;
          D.26090 = D.26087 + 4;
          D.26088 = next->data.op[1].many_blocks;
          D.26091 = MEM[(struct MonoBasicBlock * *)D.26088 + 4B];
          *D.26090 = D.26091;
          D.26088 = next->data.op[1].many_blocks;
          D.26089 = *D.26088;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, D.26089);
          D.26088 = next->data.op[1].many_blocks;
          D.26092 = D.26088 + 4;
          D.26093 = *D.26092;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, D.26093);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26094>; else goto <D.26095>;
          <D.26094>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26096>;
          <D.26095>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26096>:
        }
        next->opcode = 316;
        goto <D.24022>;
      }
      <D.24023>:
      <D.24024>:
      <D.24025>:
      <D.24026>:
      <D.24027>:
      <D.24028>:
      <D.24029>:
      <D.24030>:
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26097 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26097;
        inst->prev = 0B;
        D.26098 = inst->prev;
        inst->next = D.26098;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26099 = inst->sreg3;
        inst->sreg2 = D.26099;
        D.26100 = inst->sreg2;
        inst->sreg1 = D.26100;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        D.25772 = tree->sreg2;
        D.25781 = D.25772 + 2;
        inst->sreg2 = D.25781;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26101>; else goto <D.26102>;
        <D.26101>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26103>;
        <D.26102>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26103>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26104 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26104;
        ins->prev = 0B;
        D.26105 = ins->prev;
        ins->next = D.26105;
        D.26046 = next->opcode;
        D.26047 = (int) D.26046;
        D.26106 = D.26047 + -555;
        D.26107 = lbr_decomp[D.26106][0];
        D.26108 = (short unsigned int) D.26107;
        ins->opcode = D.26108;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26109 = ins->sreg3;
        ins->sreg2 = D.26109;
        D.26110 = ins->sreg2;
        ins->sreg1 = D.26110;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        D.26046 = next->opcode;
        D.26047 = (int) D.26046;
        D.26106 = D.26047 + -555;
        D.26107 = lbr_decomp[D.26106][0];
        if (D.26107 == 446) goto <D.26111>; else goto <D.26112>;
        <D.26111>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26113 = D.24821;
        D.26114 = D.26113 + 1;
        cfg->num_bblocks = D.26114;
        D.26115 = (int) D.26113;
        falsebb->block_num = D.26115;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        ins->data.op[0].target_block = D.26089;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26089);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26116>; else goto <D.26117>;
        <D.26116>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26118>;
        <D.26117>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26118>:
        D.26119 = falsebb->cil_code;
        if (D.26119 != 0B) goto <D.26120>; else goto <D.26121>;
        <D.26120>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26119 = falsebb->cil_code;
        D.26122 = (int) D.26119;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26123 = D.26122 - D.24881;
        D.26124 = (unsigned int) D.26123;
        D.26125 = D.26124 * 4;
        D.26126 = D.24878 + D.26125;
        *D.26126 = falsebb;
        <D.26121>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26130>; else goto <D.26127>;
        <D.26130>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26131 = D.24597->opcode;
        D.26132 = D.26131 + 64981;
        D.26133 = D.26132 <= 9;
        D.26134 = D.26131 + 64874;
        D.26135 = D.26134 <= 9;
        D.26136 = D.26133 | D.26135;
        if (D.26136 != 0) goto <D.26128>; else goto <D.26137>;
        <D.26137>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26128>; else goto <D.26127>;
        <D.26128>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26138>; else goto <D.26127>;
        <D.26138>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26129>;
        <D.26127>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26139>; else goto <D.26141>;
        <D.26141>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26142 = D.24597->opcode;
        D.26143 = D.26142 != 446;
        D.26144 = D.26142 != 763;
        D.26145 = D.26143 & D.26144;
        if (D.26145 != 0) goto <D.26146>; else goto <D.26140>;
        <D.26146>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26147 = D.24597->opcode;
        D.26148 = D.26147 + 64981;
        D.26149 = D.26148 > 9;
        D.26150 = D.26147 + 64874;
        D.26151 = D.26150 > 9;
        D.26152 = D.26149 & D.26151;
        if (D.26152 != 0) goto <D.26153>; else goto <D.26140>;
        <D.26153>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26139>; else goto <D.26140>;
        <D.26139>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26140>:
        <D.26129>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26154>;
        <D.26112>:
        D.24594 = cfg->mempool;
        D.26155 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26155;
        D.26156 = ins->data.op[1].many_blocks;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        *D.26156 = D.26089;
        D.26156 = ins->data.op[1].many_blocks;
        D.26157 = D.26156 + 4;
        *D.26157 = 0B;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26089);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26158>; else goto <D.26159>;
        <D.26158>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26160>;
        <D.26159>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26160>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.26161>; else goto <D.26162>;
        <D.26161>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26163 = D.24821;
        D.26164 = D.26163 + 1;
        cfg->num_bblocks = D.26164;
        D.26165 = (int) D.26163;
        falsebb->block_num = D.26165;
        D.26156 = ins->data.op[1].many_blocks;
        D.26157 = D.26156 + 4;
        *D.26157 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.26119 = falsebb->cil_code;
        if (D.26119 != 0B) goto <D.26166>; else goto <D.26167>;
        <D.26166>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26119 = falsebb->cil_code;
        D.26122 = (int) D.26119;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26123 = D.26122 - D.24881;
        D.26124 = (unsigned int) D.26123;
        D.26125 = D.26124 * 4;
        D.26126 = D.24878 + D.26125;
        *D.26126 = falsebb;
        <D.26167>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26171>; else goto <D.26168>;
        <D.26171>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26172 = D.24597->opcode;
        D.26173 = D.26172 + 64981;
        D.26174 = D.26173 <= 9;
        D.26175 = D.26172 + 64874;
        D.26176 = D.26175 <= 9;
        D.26177 = D.26174 | D.26176;
        if (D.26177 != 0) goto <D.26169>; else goto <D.26178>;
        <D.26178>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26169>; else goto <D.26168>;
        <D.26169>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26179>; else goto <D.26168>;
        <D.26179>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26170>;
        <D.26168>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26180>; else goto <D.26182>;
        <D.26182>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26183 = D.24597->opcode;
        D.26184 = D.26183 != 446;
        D.26185 = D.26183 != 763;
        D.26186 = D.26184 & D.26185;
        if (D.26186 != 0) goto <D.26187>; else goto <D.26181>;
        <D.26187>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26188 = D.24597->opcode;
        D.26189 = D.26188 + 64981;
        D.26190 = D.26189 > 9;
        D.26191 = D.26188 + 64874;
        D.26192 = D.26191 > 9;
        D.26193 = D.26190 & D.26192;
        if (D.26193 != 0) goto <D.26194>; else goto <D.26181>;
        <D.26194>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26180>; else goto <D.26181>;
        <D.26180>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26181>:
        <D.26170>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26195>;
        <D.26162>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.26195>:
        <D.26154>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26196 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26196;
        inst->prev = 0B;
        D.26197 = inst->prev;
        inst->next = D.26197;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26198 = inst->sreg3;
        inst->sreg2 = D.26198;
        D.26199 = inst->sreg2;
        inst->sreg1 = D.26199;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24633 = D.24624 + 2;
        inst->sreg1 = D.24633;
        D.25772 = tree->sreg2;
        D.25781 = D.25772 + 2;
        inst->sreg2 = D.25781;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26200>; else goto <D.26201>;
        <D.26200>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26202>;
        <D.26201>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26202>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26203 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26203;
        ins->prev = 0B;
        D.26204 = ins->prev;
        ins->next = D.26204;
        ins->opcode = 657;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26205 = ins->sreg3;
        ins->sreg2 = D.26205;
        D.26206 = ins->sreg2;
        ins->sreg1 = D.26206;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (0 != 0) goto <D.26207>; else goto <D.26208>;
        <D.26207>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26209 = D.24821;
        D.26210 = D.26209 + 1;
        cfg->num_bblocks = D.26210;
        D.26211 = (int) D.26209;
        falsebb->block_num = D.26211;
        D.26088 = next->data.op[1].many_blocks;
        D.26091 = MEM[(struct MonoBasicBlock * *)D.26088 + 4B];
        ins->data.op[0].target_block = D.26091;
        D.26088 = next->data.op[1].many_blocks;
        D.26092 = D.26088 + 4;
        D.26093 = *D.26092;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26093);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26212>; else goto <D.26213>;
        <D.26212>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26214>;
        <D.26213>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26214>:
        D.26215 = falsebb->cil_code;
        if (D.26215 != 0B) goto <D.26216>; else goto <D.26217>;
        <D.26216>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26215 = falsebb->cil_code;
        D.26218 = (int) D.26215;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26219 = D.26218 - D.24881;
        D.26220 = (unsigned int) D.26219;
        D.26221 = D.26220 * 4;
        D.26222 = D.24878 + D.26221;
        *D.26222 = falsebb;
        <D.26217>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26226>; else goto <D.26223>;
        <D.26226>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26227 = D.24597->opcode;
        D.26228 = D.26227 + 64981;
        D.26229 = D.26228 <= 9;
        D.26230 = D.26227 + 64874;
        D.26231 = D.26230 <= 9;
        D.26232 = D.26229 | D.26231;
        if (D.26232 != 0) goto <D.26224>; else goto <D.26233>;
        <D.26233>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26224>; else goto <D.26223>;
        <D.26224>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26234>; else goto <D.26223>;
        <D.26234>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26225>;
        <D.26223>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26235>; else goto <D.26237>;
        <D.26237>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26238 = D.24597->opcode;
        D.26239 = D.26238 != 446;
        D.26240 = D.26238 != 763;
        D.26241 = D.26239 & D.26240;
        if (D.26241 != 0) goto <D.26242>; else goto <D.26236>;
        <D.26242>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26243 = D.24597->opcode;
        D.26244 = D.26243 + 64981;
        D.26245 = D.26244 > 9;
        D.26246 = D.26243 + 64874;
        D.26247 = D.26246 > 9;
        D.26248 = D.26245 & D.26247;
        if (D.26248 != 0) goto <D.26249>; else goto <D.26236>;
        <D.26249>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26235>; else goto <D.26236>;
        <D.26235>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26236>:
        <D.26225>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26250>;
        <D.26208>:
        D.24594 = cfg->mempool;
        D.26251 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26251;
        D.26252 = ins->data.op[1].many_blocks;
        D.26088 = next->data.op[1].many_blocks;
        D.26091 = MEM[(struct MonoBasicBlock * *)D.26088 + 4B];
        *D.26252 = D.26091;
        D.26252 = ins->data.op[1].many_blocks;
        D.26253 = D.26252 + 4;
        *D.26253 = 0B;
        D.26088 = next->data.op[1].many_blocks;
        D.26092 = D.26088 + 4;
        D.26093 = *D.26092;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26093);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26254>; else goto <D.26255>;
        <D.26254>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26256>;
        <D.26255>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26256>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.26257>; else goto <D.26258>;
        <D.26257>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26259 = D.24821;
        D.26260 = D.26259 + 1;
        cfg->num_bblocks = D.26260;
        D.26261 = (int) D.26259;
        falsebb->block_num = D.26261;
        D.26252 = ins->data.op[1].many_blocks;
        D.26253 = D.26252 + 4;
        *D.26253 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.26215 = falsebb->cil_code;
        if (D.26215 != 0B) goto <D.26262>; else goto <D.26263>;
        <D.26262>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26215 = falsebb->cil_code;
        D.26218 = (int) D.26215;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26219 = D.26218 - D.24881;
        D.26220 = (unsigned int) D.26219;
        D.26221 = D.26220 * 4;
        D.26222 = D.24878 + D.26221;
        *D.26222 = falsebb;
        <D.26263>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26267>; else goto <D.26264>;
        <D.26267>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26268 = D.24597->opcode;
        D.26269 = D.26268 + 64981;
        D.26270 = D.26269 <= 9;
        D.26271 = D.26268 + 64874;
        D.26272 = D.26271 <= 9;
        D.26273 = D.26270 | D.26272;
        if (D.26273 != 0) goto <D.26265>; else goto <D.26274>;
        <D.26274>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26265>; else goto <D.26264>;
        <D.26265>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26275>; else goto <D.26264>;
        <D.26275>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26266>;
        <D.26264>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26276>; else goto <D.26278>;
        <D.26278>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26279 = D.24597->opcode;
        D.26280 = D.26279 != 446;
        D.26281 = D.26279 != 763;
        D.26282 = D.26280 & D.26281;
        if (D.26282 != 0) goto <D.26283>; else goto <D.26277>;
        <D.26283>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26284 = D.24597->opcode;
        D.26285 = D.26284 + 64981;
        D.26286 = D.26285 > 9;
        D.26287 = D.26284 + 64874;
        D.26288 = D.26287 > 9;
        D.26289 = D.26286 & D.26288;
        if (D.26289 != 0) goto <D.26290>; else goto <D.26277>;
        <D.26290>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26276>; else goto <D.26277>;
        <D.26276>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26277>:
        <D.26266>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26291>;
        <D.26258>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.26291>:
        <D.26250>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26292 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26292;
        inst->prev = 0B;
        D.26293 = inst->prev;
        inst->next = D.26293;
        inst->opcode = 322;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26294 = inst->sreg3;
        inst->sreg2 = D.26294;
        D.26295 = inst->sreg2;
        inst->sreg1 = D.26295;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        D.24624 = tree->sreg1;
        D.24625 = D.24624 + 1;
        inst->sreg1 = D.24625;
        D.25772 = tree->sreg2;
        D.25773 = D.25772 + 1;
        inst->sreg2 = D.25773;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26296>; else goto <D.26297>;
        <D.26296>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26298>;
        <D.26297>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26298>:
      }
      {
        struct MonoInst * ins;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26299 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26299;
        ins->prev = 0B;
        D.26300 = ins->prev;
        ins->next = D.26300;
        D.26046 = next->opcode;
        D.26047 = (int) D.26046;
        D.26106 = D.26047 + -555;
        D.26301 = lbr_decomp[D.26106][1];
        D.26302 = (short unsigned int) D.26301;
        ins->opcode = D.26302;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26303 = ins->sreg3;
        ins->sreg2 = D.26303;
        D.26304 = ins->sreg2;
        ins->sreg1 = D.26304;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        D.24594 = cfg->mempool;
        D.26305 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26305;
        D.26306 = ins->data.op[1].many_blocks;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        *D.26306 = D.26089;
        D.26306 = ins->data.op[1].many_blocks;
        D.26307 = D.26306 + 4;
        D.26088 = next->data.op[1].many_blocks;
        D.26091 = MEM[(struct MonoBasicBlock * *)D.26088 + 4B];
        *D.26307 = D.26091;
        D.26088 = next->data.op[1].many_blocks;
        D.26089 = *D.26088;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26089);
        D.26088 = next->data.op[1].many_blocks;
        D.26092 = D.26088 + 4;
        D.26093 = *D.26092;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26093);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26308>; else goto <D.26309>;
        <D.26308>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26310>;
        <D.26309>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26310>:
      }
      next->opcode = 316;
      goto <D.24022>;
      <D.24039>:
      {
        int d1;
        int d2;

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

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26313 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26313;
          inst->prev = 0B;
          D.26314 = inst->prev;
          inst->next = D.26314;
          inst->opcode = 578;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26315 = inst->sreg3;
          inst->sreg2 = D.26315;
          D.26316 = inst->sreg2;
          inst->sreg1 = D.26316;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          D.24624 = tree->sreg1;
          D.24625 = D.24624 + 1;
          inst->sreg1 = D.24625;
          D.25772 = tree->sreg2;
          D.25773 = D.25772 + 1;
          inst->sreg2 = D.25773;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26317>; else goto <D.26318>;
          <D.26317>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26319>;
          <D.26318>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26319>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26320 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26320;
          inst->prev = 0B;
          D.26321 = inst->prev;
          inst->next = D.26321;
          inst->opcode = 578;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26322 = inst->sreg3;
          inst->sreg2 = D.26322;
          D.26323 = inst->sreg2;
          inst->sreg1 = D.26323;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d2;
          D.24624 = tree->sreg1;
          D.24633 = D.24624 + 2;
          inst->sreg1 = D.24633;
          D.25772 = tree->sreg2;
          D.25781 = D.25772 + 2;
          inst->sreg2 = D.25781;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26324>; else goto <D.26325>;
          <D.26324>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26326>;
          <D.26325>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26326>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26327 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26327;
          inst->prev = 0B;
          D.26328 = inst->prev;
          inst->next = D.26328;
          inst->opcode = 577;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26329 = inst->sreg3;
          inst->sreg2 = D.26329;
          D.26330 = inst->sreg2;
          inst->sreg1 = D.26330;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26331>; else goto <D.26332>;
          <D.26331>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26333>;
          <D.26332>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26333>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26334 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26334;
          inst->prev = 0B;
          D.26335 = inst->prev;
          inst->next = D.26335;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26336 = inst->sreg3;
          inst->sreg2 = D.26336;
          D.26337 = inst->sreg2;
          inst->sreg1 = D.26337;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26338>; else goto <D.26339>;
          <D.26338>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26340>;
          <D.26339>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26340>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26341 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26341;
          inst->prev = 0B;
          D.26342 = inst->prev;
          inst->next = D.26342;
          inst->opcode = 642;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26343 = inst->sreg3;
          inst->sreg2 = D.26343;
          D.26344 = inst->sreg2;
          inst->sreg1 = D.26344;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.26345 = next->dreg;
          inst->dreg = D.26345;
          inst->sreg1 = -1;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26346>; else goto <D.26347>;
          <D.26346>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26348>;
          <D.26347>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26348>:
        }
        next->opcode = 316;
        goto <D.24022>;
      }
      <D.24047>:
      <D.24048>:
      <D.24049>:
      <D.24050>:
      {
        struct MonoBasicBlock * set_to_0;
        struct MonoBasicBlock * set_to_1;

        D.24594 = cfg->mempool;
        set_to_0 = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26349 = D.24821;
        D.26350 = D.26349 + 1;
        cfg->num_bblocks = D.26350;
        D.26351 = (int) D.26349;
        set_to_0->block_num = D.26351;
        D.24594 = cfg->mempool;
        set_to_1 = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26352 = D.24821;
        D.26353 = D.26352 + 1;
        cfg->num_bblocks = D.26353;
        D.26354 = (int) D.26352;
        set_to_1->block_num = D.26354;
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26355 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26355;
          inst->prev = 0B;
          D.26356 = inst->prev;
          inst->next = D.26356;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26357 = inst->sreg3;
          inst->sreg2 = D.26357;
          D.26358 = inst->sreg2;
          inst->sreg1 = D.26358;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.26345 = next->dreg;
          inst->dreg = D.26345;
          inst->data.op[0].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26359>; else goto <D.26360>;
          <D.26359>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26361>;
          <D.26360>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26361>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26362 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26362;
          inst->prev = 0B;
          D.26363 = inst->prev;
          inst->next = D.26363;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26364 = inst->sreg3;
          inst->sreg2 = D.26364;
          D.26365 = inst->sreg2;
          inst->sreg1 = D.26365;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          D.24624 = tree->sreg1;
          D.24633 = D.24624 + 2;
          inst->sreg1 = D.24633;
          D.25772 = tree->sreg2;
          D.25781 = D.25772 + 2;
          inst->sreg2 = D.25781;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26366>; else goto <D.26367>;
          <D.26366>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26368>;
          <D.26367>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26368>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.26369 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26369;
          ins->prev = 0B;
          D.26370 = ins->prev;
          ins->next = D.26370;
          D.26046 = next->opcode;
          D.26047 = (int) D.26046;
          D.26371 = D.26047 + -535;
          D.26372 = lcset_decomp[D.26371][0];
          D.26373 = (short unsigned int) D.26372;
          ins->opcode = D.26373;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26374 = ins->sreg3;
          ins->sreg2 = D.26374;
          D.26375 = ins->sreg2;
          ins->sreg1 = D.26375;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.26046 = next->opcode;
          D.26047 = (int) D.26046;
          D.26371 = D.26047 + -535;
          D.26372 = lcset_decomp[D.26371][0];
          if (D.26372 == 446) goto <D.26376>; else goto <D.26377>;
          <D.26376>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26378 = D.24821;
          D.26379 = D.26378 + 1;
          cfg->num_bblocks = D.26379;
          D.26380 = (int) D.26378;
          falsebb->block_num = D.26380;
          ins->data.op[0].target_block = set_to_0;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26381>; else goto <D.26382>;
          <D.26381>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26383>;
          <D.26382>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26383>:
          D.26384 = falsebb->cil_code;
          if (D.26384 != 0B) goto <D.26385>; else goto <D.26386>;
          <D.26385>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26384 = falsebb->cil_code;
          D.26387 = (int) D.26384;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26388 = D.26387 - D.24881;
          D.26389 = (unsigned int) D.26388;
          D.26390 = D.26389 * 4;
          D.26391 = D.24878 + D.26390;
          *D.26391 = falsebb;
          <D.26386>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26395>; else goto <D.26392>;
          <D.26395>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26396 = D.24597->opcode;
          D.26397 = D.26396 + 64981;
          D.26398 = D.26397 <= 9;
          D.26399 = D.26396 + 64874;
          D.26400 = D.26399 <= 9;
          D.26401 = D.26398 | D.26400;
          if (D.26401 != 0) goto <D.26393>; else goto <D.26402>;
          <D.26402>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26393>; else goto <D.26392>;
          <D.26393>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26403>; else goto <D.26392>;
          <D.26403>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26394>;
          <D.26392>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26404>; else goto <D.26406>;
          <D.26406>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26407 = D.24597->opcode;
          D.26408 = D.26407 != 446;
          D.26409 = D.26407 != 763;
          D.26410 = D.26408 & D.26409;
          if (D.26410 != 0) goto <D.26411>; else goto <D.26405>;
          <D.26411>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26412 = D.24597->opcode;
          D.26413 = D.26412 + 64981;
          D.26414 = D.26413 > 9;
          D.26415 = D.26412 + 64874;
          D.26416 = D.26415 > 9;
          D.26417 = D.26414 & D.26416;
          if (D.26417 != 0) goto <D.26418>; else goto <D.26405>;
          <D.26418>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26404>; else goto <D.26405>;
          <D.26404>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26405>:
          <D.26394>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26419>;
          <D.26377>:
          D.24594 = cfg->mempool;
          D.26420 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.26420;
          D.26421 = ins->data.op[1].many_blocks;
          *D.26421 = set_to_0;
          D.26421 = ins->data.op[1].many_blocks;
          D.26422 = D.26421 + 4;
          *D.26422 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26423>; else goto <D.26424>;
          <D.26423>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26425>;
          <D.26424>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26425>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.26426>; else goto <D.26427>;
          <D.26426>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26428 = D.24821;
          D.26429 = D.26428 + 1;
          cfg->num_bblocks = D.26429;
          D.26430 = (int) D.26428;
          falsebb->block_num = D.26430;
          D.26421 = ins->data.op[1].many_blocks;
          D.26422 = D.26421 + 4;
          *D.26422 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.26384 = falsebb->cil_code;
          if (D.26384 != 0B) goto <D.26431>; else goto <D.26432>;
          <D.26431>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26384 = falsebb->cil_code;
          D.26387 = (int) D.26384;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26388 = D.26387 - D.24881;
          D.26389 = (unsigned int) D.26388;
          D.26390 = D.26389 * 4;
          D.26391 = D.24878 + D.26390;
          *D.26391 = falsebb;
          <D.26432>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26436>; else goto <D.26433>;
          <D.26436>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26437 = D.24597->opcode;
          D.26438 = D.26437 + 64981;
          D.26439 = D.26438 <= 9;
          D.26440 = D.26437 + 64874;
          D.26441 = D.26440 <= 9;
          D.26442 = D.26439 | D.26441;
          if (D.26442 != 0) goto <D.26434>; else goto <D.26443>;
          <D.26443>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26434>; else goto <D.26433>;
          <D.26434>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26444>; else goto <D.26433>;
          <D.26444>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26435>;
          <D.26433>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26445>; else goto <D.26447>;
          <D.26447>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26448 = D.24597->opcode;
          D.26449 = D.26448 != 446;
          D.26450 = D.26448 != 763;
          D.26451 = D.26449 & D.26450;
          if (D.26451 != 0) goto <D.26452>; else goto <D.26446>;
          <D.26452>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26453 = D.24597->opcode;
          D.26454 = D.26453 + 64981;
          D.26455 = D.26454 > 9;
          D.26456 = D.26453 + 64874;
          D.26457 = D.26456 > 9;
          D.26458 = D.26455 & D.26457;
          if (D.26458 != 0) goto <D.26459>; else goto <D.26446>;
          <D.26459>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26445>; else goto <D.26446>;
          <D.26445>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26446>:
          <D.26435>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26460>;
          <D.26427>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.26460>:
          <D.26419>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26461 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26461;
          inst->prev = 0B;
          D.26462 = inst->prev;
          inst->next = D.26462;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26463 = inst->sreg3;
          inst->sreg2 = D.26463;
          D.26464 = inst->sreg2;
          inst->sreg1 = D.26464;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          D.24624 = tree->sreg1;
          D.24633 = D.24624 + 2;
          inst->sreg1 = D.24633;
          D.25772 = tree->sreg2;
          D.25781 = D.25772 + 2;
          inst->sreg2 = D.25781;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26465>; else goto <D.26466>;
          <D.26465>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26467>;
          <D.26466>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26467>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.26468 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26468;
          ins->prev = 0B;
          D.26469 = ins->prev;
          ins->next = D.26469;
          ins->opcode = 657;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26470 = ins->sreg3;
          ins->sreg2 = D.26470;
          D.26471 = ins->sreg2;
          ins->sreg1 = D.26471;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          if (0 != 0) goto <D.26472>; else goto <D.26473>;
          <D.26472>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26474 = D.24821;
          D.26475 = D.26474 + 1;
          cfg->num_bblocks = D.26475;
          D.26476 = (int) D.26474;
          falsebb->block_num = D.26476;
          ins->data.op[0].target_block = set_to_1;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_1);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26477>; else goto <D.26478>;
          <D.26477>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26479>;
          <D.26478>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26479>:
          D.26480 = falsebb->cil_code;
          if (D.26480 != 0B) goto <D.26481>; else goto <D.26482>;
          <D.26481>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26480 = falsebb->cil_code;
          D.26483 = (int) D.26480;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26484 = D.26483 - D.24881;
          D.26485 = (unsigned int) D.26484;
          D.26486 = D.26485 * 4;
          D.26487 = D.24878 + D.26486;
          *D.26487 = falsebb;
          <D.26482>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26491>; else goto <D.26488>;
          <D.26491>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26492 = D.24597->opcode;
          D.26493 = D.26492 + 64981;
          D.26494 = D.26493 <= 9;
          D.26495 = D.26492 + 64874;
          D.26496 = D.26495 <= 9;
          D.26497 = D.26494 | D.26496;
          if (D.26497 != 0) goto <D.26489>; else goto <D.26498>;
          <D.26498>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26489>; else goto <D.26488>;
          <D.26489>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26499>; else goto <D.26488>;
          <D.26499>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26490>;
          <D.26488>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26500>; else goto <D.26502>;
          <D.26502>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26503 = D.24597->opcode;
          D.26504 = D.26503 != 446;
          D.26505 = D.26503 != 763;
          D.26506 = D.26504 & D.26505;
          if (D.26506 != 0) goto <D.26507>; else goto <D.26501>;
          <D.26507>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26508 = D.24597->opcode;
          D.26509 = D.26508 + 64981;
          D.26510 = D.26509 > 9;
          D.26511 = D.26508 + 64874;
          D.26512 = D.26511 > 9;
          D.26513 = D.26510 & D.26512;
          if (D.26513 != 0) goto <D.26514>; else goto <D.26501>;
          <D.26514>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26500>; else goto <D.26501>;
          <D.26500>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26501>:
          <D.26490>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26515>;
          <D.26473>:
          D.24594 = cfg->mempool;
          D.26516 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.26516;
          D.26517 = ins->data.op[1].many_blocks;
          *D.26517 = set_to_1;
          D.26517 = ins->data.op[1].many_blocks;
          D.26518 = D.26517 + 4;
          *D.26518 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_1);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26519>; else goto <D.26520>;
          <D.26519>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26521>;
          <D.26520>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26521>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.26522>; else goto <D.26523>;
          <D.26522>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26524 = D.24821;
          D.26525 = D.26524 + 1;
          cfg->num_bblocks = D.26525;
          D.26526 = (int) D.26524;
          falsebb->block_num = D.26526;
          D.26517 = ins->data.op[1].many_blocks;
          D.26518 = D.26517 + 4;
          *D.26518 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.26480 = falsebb->cil_code;
          if (D.26480 != 0B) goto <D.26527>; else goto <D.26528>;
          <D.26527>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26480 = falsebb->cil_code;
          D.26483 = (int) D.26480;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26484 = D.26483 - D.24881;
          D.26485 = (unsigned int) D.26484;
          D.26486 = D.26485 * 4;
          D.26487 = D.24878 + D.26486;
          *D.26487 = falsebb;
          <D.26528>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26532>; else goto <D.26529>;
          <D.26532>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26533 = D.24597->opcode;
          D.26534 = D.26533 + 64981;
          D.26535 = D.26534 <= 9;
          D.26536 = D.26533 + 64874;
          D.26537 = D.26536 <= 9;
          D.26538 = D.26535 | D.26537;
          if (D.26538 != 0) goto <D.26530>; else goto <D.26539>;
          <D.26539>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26530>; else goto <D.26529>;
          <D.26530>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26540>; else goto <D.26529>;
          <D.26540>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26531>;
          <D.26529>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26541>; else goto <D.26543>;
          <D.26543>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26544 = D.24597->opcode;
          D.26545 = D.26544 != 446;
          D.26546 = D.26544 != 763;
          D.26547 = D.26545 & D.26546;
          if (D.26547 != 0) goto <D.26548>; else goto <D.26542>;
          <D.26548>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26549 = D.24597->opcode;
          D.26550 = D.26549 + 64981;
          D.26551 = D.26550 > 9;
          D.26552 = D.26549 + 64874;
          D.26553 = D.26552 > 9;
          D.26554 = D.26551 & D.26553;
          if (D.26554 != 0) goto <D.26555>; else goto <D.26542>;
          <D.26555>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26541>; else goto <D.26542>;
          <D.26541>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26542>:
          <D.26531>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26556>;
          <D.26523>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.26556>:
          <D.26515>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26557 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26557;
          inst->prev = 0B;
          D.26558 = inst->prev;
          inst->next = D.26558;
          inst->opcode = 322;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26559 = inst->sreg3;
          inst->sreg2 = D.26559;
          D.26560 = inst->sreg2;
          inst->sreg1 = D.26560;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          D.24624 = tree->sreg1;
          D.24625 = D.24624 + 1;
          inst->sreg1 = D.24625;
          D.25772 = tree->sreg2;
          D.25773 = D.25772 + 1;
          inst->sreg2 = D.25773;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26561>; else goto <D.26562>;
          <D.26561>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26563>;
          <D.26562>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26563>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.26564 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26564;
          ins->prev = 0B;
          D.26565 = ins->prev;
          ins->next = D.26565;
          D.26046 = next->opcode;
          D.26047 = (int) D.26046;
          D.26371 = D.26047 + -535;
          D.26566 = lcset_decomp[D.26371][1];
          D.26567 = (short unsigned int) D.26566;
          ins->opcode = D.26567;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26568 = ins->sreg3;
          ins->sreg2 = D.26568;
          D.26569 = ins->sreg2;
          ins->sreg1 = D.26569;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.26046 = next->opcode;
          D.26047 = (int) D.26046;
          D.26371 = D.26047 + -535;
          D.26566 = lcset_decomp[D.26371][1];
          if (D.26566 == 446) goto <D.26570>; else goto <D.26571>;
          <D.26570>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26572 = D.24821;
          D.26573 = D.26572 + 1;
          cfg->num_bblocks = D.26573;
          D.26574 = (int) D.26572;
          falsebb->block_num = D.26574;
          ins->data.op[0].target_block = set_to_0;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26575>; else goto <D.26576>;
          <D.26575>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26577>;
          <D.26576>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26577>:
          D.26578 = falsebb->cil_code;
          if (D.26578 != 0B) goto <D.26579>; else goto <D.26580>;
          <D.26579>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26578 = falsebb->cil_code;
          D.26581 = (int) D.26578;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26582 = D.26581 - D.24881;
          D.26583 = (unsigned int) D.26582;
          D.26584 = D.26583 * 4;
          D.26585 = D.24878 + D.26584;
          *D.26585 = falsebb;
          <D.26580>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26589>; else goto <D.26586>;
          <D.26589>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26590 = D.24597->opcode;
          D.26591 = D.26590 + 64981;
          D.26592 = D.26591 <= 9;
          D.26593 = D.26590 + 64874;
          D.26594 = D.26593 <= 9;
          D.26595 = D.26592 | D.26594;
          if (D.26595 != 0) goto <D.26587>; else goto <D.26596>;
          <D.26596>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26587>; else goto <D.26586>;
          <D.26587>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26597>; else goto <D.26586>;
          <D.26597>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26588>;
          <D.26586>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26598>; else goto <D.26600>;
          <D.26600>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26601 = D.24597->opcode;
          D.26602 = D.26601 != 446;
          D.26603 = D.26601 != 763;
          D.26604 = D.26602 & D.26603;
          if (D.26604 != 0) goto <D.26605>; else goto <D.26599>;
          <D.26605>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26606 = D.24597->opcode;
          D.26607 = D.26606 + 64981;
          D.26608 = D.26607 > 9;
          D.26609 = D.26606 + 64874;
          D.26610 = D.26609 > 9;
          D.26611 = D.26608 & D.26610;
          if (D.26611 != 0) goto <D.26612>; else goto <D.26599>;
          <D.26612>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26598>; else goto <D.26599>;
          <D.26598>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26599>:
          <D.26588>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26613>;
          <D.26571>:
          D.24594 = cfg->mempool;
          D.26614 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.26614;
          D.26615 = ins->data.op[1].many_blocks;
          *D.26615 = set_to_0;
          D.26615 = ins->data.op[1].many_blocks;
          D.26616 = D.26615 + 4;
          *D.26616 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26617>; else goto <D.26618>;
          <D.26617>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26619>;
          <D.26618>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26619>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.26620>; else goto <D.26621>;
          <D.26620>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.26622 = D.24821;
          D.26623 = D.26622 + 1;
          cfg->num_bblocks = D.26623;
          D.26624 = (int) D.26622;
          falsebb->block_num = D.26624;
          D.26615 = ins->data.op[1].many_blocks;
          D.26616 = D.26615 + 4;
          *D.26616 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.26578 = falsebb->cil_code;
          if (D.26578 != 0B) goto <D.26625>; else goto <D.26626>;
          <D.26625>:
          D.24878 = cfg->cil_offset_to_bb;
          D.26578 = falsebb->cil_code;
          D.26581 = (int) D.26578;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.26582 = D.26581 - D.24881;
          D.26583 = (unsigned int) D.26582;
          D.26584 = D.26583 * 4;
          D.26585 = D.24878 + D.26584;
          *D.26585 = falsebb;
          <D.26626>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26630>; else goto <D.26627>;
          <D.26630>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26631 = D.24597->opcode;
          D.26632 = D.26631 + 64981;
          D.26633 = D.26632 <= 9;
          D.26634 = D.26631 + 64874;
          D.26635 = D.26634 <= 9;
          D.26636 = D.26633 | D.26635;
          if (D.26636 != 0) goto <D.26628>; else goto <D.26637>;
          <D.26637>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.26628>; else goto <D.26627>;
          <D.26628>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.26638>; else goto <D.26627>;
          <D.26638>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.26629>;
          <D.26627>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.26639>; else goto <D.26641>;
          <D.26641>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26642 = D.24597->opcode;
          D.26643 = D.26642 != 446;
          D.26644 = D.26642 != 763;
          D.26645 = D.26643 & D.26644;
          if (D.26645 != 0) goto <D.26646>; else goto <D.26640>;
          <D.26646>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.26647 = D.24597->opcode;
          D.26648 = D.26647 + 64981;
          D.26649 = D.26648 > 9;
          D.26650 = D.26647 + 64874;
          D.26651 = D.26650 > 9;
          D.26652 = D.26649 & D.26651;
          if (D.26652 != 0) goto <D.26653>; else goto <D.26640>;
          <D.26653>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.26639>; else goto <D.26640>;
          <D.26639>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.26640>:
          <D.26629>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.26654>;
          <D.26621>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.26654>:
          <D.26613>:
        }
        D.26655 = set_to_1->cil_code;
        if (D.26655 != 0B) goto <D.26656>; else goto <D.26657>;
        <D.26656>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26655 = set_to_1->cil_code;
        D.26658 = (int) D.26655;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26659 = D.26658 - D.24881;
        D.26660 = (unsigned int) D.26659;
        D.26661 = D.26660 * 4;
        D.26662 = D.24878 + D.26661;
        *D.26662 = set_to_1;
        <D.26657>:
        D.24886 = cfg->real_offset;
        set_to_1->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26666>; else goto <D.26663>;
        <D.26666>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26667 = D.24597->opcode;
        D.26668 = D.26667 + 64981;
        D.26669 = D.26668 <= 9;
        D.26670 = D.26667 + 64874;
        D.26671 = D.26670 <= 9;
        D.26672 = D.26669 | D.26671;
        if (D.26672 != 0) goto <D.26664>; else goto <D.26673>;
        <D.26673>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26664>; else goto <D.26663>;
        <D.26664>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26674>; else goto <D.26663>;
        <D.26674>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = set_to_1;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_1);
        goto <D.26665>;
        <D.26663>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26675>; else goto <D.26677>;
        <D.26677>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26678 = D.24597->opcode;
        D.26679 = D.26678 != 446;
        D.26680 = D.26678 != 763;
        D.26681 = D.26679 & D.26680;
        if (D.26681 != 0) goto <D.26682>; else goto <D.26676>;
        <D.26682>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26683 = D.24597->opcode;
        D.26684 = D.26683 + 64981;
        D.26685 = D.26684 > 9;
        D.26686 = D.26683 + 64874;
        D.26687 = D.26686 > 9;
        D.26688 = D.26685 & D.26687;
        if (D.26688 != 0) goto <D.26689>; else goto <D.26676>;
        <D.26689>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26675>; else goto <D.26676>;
        <D.26675>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_1);
        <D.26676>:
        <D.26665>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = set_to_1;
        cfg->cbb = set_to_1;
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26690 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26690;
          inst->prev = 0B;
          D.26691 = inst->prev;
          inst->next = D.26691;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26692 = inst->sreg3;
          inst->sreg2 = D.26692;
          D.26693 = inst->sreg2;
          inst->sreg1 = D.26693;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.26345 = next->dreg;
          inst->dreg = D.26345;
          inst->data.op[0].const_val = 1;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26694>; else goto <D.26695>;
          <D.26694>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26696>;
          <D.26695>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26696>:
        }
        D.26697 = set_to_0->cil_code;
        if (D.26697 != 0B) goto <D.26698>; else goto <D.26699>;
        <D.26698>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26697 = set_to_0->cil_code;
        D.26700 = (int) D.26697;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26701 = D.26700 - D.24881;
        D.26702 = (unsigned int) D.26701;
        D.26703 = D.26702 * 4;
        D.26704 = D.24878 + D.26703;
        *D.26704 = set_to_0;
        <D.26699>:
        D.24886 = cfg->real_offset;
        set_to_0->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26708>; else goto <D.26705>;
        <D.26708>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26709 = D.24597->opcode;
        D.26710 = D.26709 + 64981;
        D.26711 = D.26710 <= 9;
        D.26712 = D.26709 + 64874;
        D.26713 = D.26712 <= 9;
        D.26714 = D.26711 | D.26713;
        if (D.26714 != 0) goto <D.26706>; else goto <D.26715>;
        <D.26715>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26706>; else goto <D.26705>;
        <D.26706>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26716>; else goto <D.26705>;
        <D.26716>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = set_to_0;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_0);
        goto <D.26707>;
        <D.26705>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26717>; else goto <D.26719>;
        <D.26719>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26720 = D.24597->opcode;
        D.26721 = D.26720 != 446;
        D.26722 = D.26720 != 763;
        D.26723 = D.26721 & D.26722;
        if (D.26723 != 0) goto <D.26724>; else goto <D.26718>;
        <D.26724>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26725 = D.24597->opcode;
        D.26726 = D.26725 + 64981;
        D.26727 = D.26726 > 9;
        D.26728 = D.26725 + 64874;
        D.26729 = D.26728 > 9;
        D.26730 = D.26727 & D.26729;
        if (D.26730 != 0) goto <D.26731>; else goto <D.26718>;
        <D.26731>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26717>; else goto <D.26718>;
        <D.26717>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_0);
        <D.26718>:
        <D.26707>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = set_to_0;
        cfg->cbb = set_to_0;
        next->opcode = 316;
        goto <D.24022>;
      }
      <D.24064>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 965);
      <D.24022>:
      goto <D.23809>;
    }
    <D.24065>:
    {
      struct MonoInst * next;
      guint32 low_imm;
      guint32 high_imm;
      int low_reg;
      int high_reg;

      next = tree->next;
      D.24607 = tree->data.op[0].const_val;
      low_imm = (guint32) D.24607;
      D.24616 = tree->data.op[1].const_val;
      high_imm = (guint32) D.24616;
      D.24624 = tree->sreg1;
      low_reg = D.24624 + 1;
      D.24624 = tree->sreg1;
      high_reg = D.24624 + 2;
      D.26732 = next == 0B;
      D.26733 = (long int) D.26732;
      D.26734 = __builtin_expect (D.26733, 0);
      if (D.26734 != 0) goto <D.26735>; else goto <D.26736>;
      <D.26735>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 978, "next");
      <D.26736>:
      D.26737 = next->opcode;
      D.26738 = (int) D.26737;
      switch (D.26738) <default: <D.24122>, case 535: <D.24097>, case 536: <D.24107>, case 537: <D.24108>, case 538: <D.24105>, case 539: <D.24106>, case 555: <D.24071>, case 556: <D.24081>, case 557: <D.24082>, case 558: <D.24083>, case 559: <D.24084>, case 560: <D.24072>, case 561: <D.24085>, case 562: <D.24086>, case 563: <D.24087>, case 564: <D.24088>>
      <D.24071>:
      <D.24072>:
      {
        int d1;
        int d2;

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

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26741 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26741;
          inst->prev = 0B;
          D.26742 = inst->prev;
          inst->next = D.26742;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26743 = inst->sreg3;
          inst->sreg2 = D.26743;
          D.26744 = inst->sreg2;
          inst->sreg1 = D.26744;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26746>; else goto <D.26747>;
          <D.26746>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26748>;
          <D.26747>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26748>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26749 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26749;
          inst->prev = 0B;
          D.26750 = inst->prev;
          inst->next = D.26750;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26751 = inst->sreg3;
          inst->sreg2 = D.26751;
          D.26752 = inst->sreg2;
          inst->sreg1 = D.26752;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d2;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26754>; else goto <D.26755>;
          <D.26754>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26756>;
          <D.26755>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26756>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26757 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26757;
          inst->prev = 0B;
          D.26758 = inst->prev;
          inst->next = D.26758;
          inst->opcode = 577;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26759 = inst->sreg3;
          inst->sreg2 = D.26759;
          D.26760 = inst->sreg2;
          inst->sreg1 = D.26760;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26761>; else goto <D.26762>;
          <D.26761>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26763>;
          <D.26762>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26763>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.26764 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.26764;
          inst->prev = 0B;
          D.26765 = inst->prev;
          inst->next = D.26765;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.26766 = inst->sreg3;
          inst->sreg2 = D.26766;
          D.26767 = inst->sreg2;
          inst->sreg1 = D.26767;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26768>; else goto <D.26769>;
          <D.26768>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.26770>;
          <D.26769>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26770>:
        }
        {
          struct MonoInst * ins;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.26771 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.26771;
          ins->prev = 0B;
          D.26772 = ins->prev;
          ins->next = D.26772;
          D.26737 = next->opcode;
          if (D.26737 == 555) goto <D.26774>; else goto <D.26775>;
          <D.26774>:
          iftmp.6 = 652;
          goto <D.26776>;
          <D.26775>:
          iftmp.6 = 657;
          <D.26776>:
          ins->opcode = iftmp.6;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.26777 = ins->sreg3;
          ins->sreg2 = D.26777;
          D.26778 = ins->sreg2;
          ins->sreg1 = D.26778;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.24594 = cfg->mempool;
          D.26779 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.26779;
          D.26780 = ins->data.op[1].many_blocks;
          D.26781 = next->data.op[1].many_blocks;
          D.26782 = *D.26781;
          *D.26780 = D.26782;
          D.26780 = ins->data.op[1].many_blocks;
          D.26783 = D.26780 + 4;
          D.26781 = next->data.op[1].many_blocks;
          D.26784 = MEM[(struct MonoBasicBlock * *)D.26781 + 4B];
          *D.26783 = D.26784;
          D.26781 = next->data.op[1].many_blocks;
          D.26782 = *D.26781;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, D.26782);
          D.26781 = next->data.op[1].many_blocks;
          D.26785 = D.26781 + 4;
          D.26786 = *D.26785;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, D.26786);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.26787>; else goto <D.26788>;
          <D.26787>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.26789>;
          <D.26788>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.26789>:
        }
        next->opcode = 316;
        goto <D.24080>;
      }
      <D.24081>:
      <D.24082>:
      <D.24083>:
      <D.24084>:
      <D.24085>:
      <D.24086>:
      <D.24087>:
      <D.24088>:
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26790 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26790;
        inst->prev = 0B;
        D.26791 = inst->prev;
        inst->next = D.26791;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26792 = inst->sreg3;
        inst->sreg2 = D.26792;
        D.26793 = inst->sreg2;
        inst->sreg1 = D.26793;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        inst->sreg1 = high_reg;
        high_imm.5 = (int) high_imm;
        inst->data.op[1].const_val = high_imm.5;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26794>; else goto <D.26795>;
        <D.26794>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26796>;
        <D.26795>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26796>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26797 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26797;
        ins->prev = 0B;
        D.26798 = ins->prev;
        ins->next = D.26798;
        D.26737 = next->opcode;
        D.26738 = (int) D.26737;
        D.26799 = D.26738 + -555;
        D.26800 = lbr_decomp[D.26799][0];
        D.26801 = (short unsigned int) D.26800;
        ins->opcode = D.26801;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26802 = ins->sreg3;
        ins->sreg2 = D.26802;
        D.26803 = ins->sreg2;
        ins->sreg1 = D.26803;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        D.26737 = next->opcode;
        D.26738 = (int) D.26737;
        D.26799 = D.26738 + -555;
        D.26800 = lbr_decomp[D.26799][0];
        if (D.26800 == 446) goto <D.26804>; else goto <D.26805>;
        <D.26804>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26806 = D.24821;
        D.26807 = D.26806 + 1;
        cfg->num_bblocks = D.26807;
        D.26808 = (int) D.26806;
        falsebb->block_num = D.26808;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        ins->data.op[0].target_block = D.26782;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26782);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26809>; else goto <D.26810>;
        <D.26809>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26811>;
        <D.26810>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26811>:
        D.26812 = falsebb->cil_code;
        if (D.26812 != 0B) goto <D.26813>; else goto <D.26814>;
        <D.26813>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26812 = falsebb->cil_code;
        D.26815 = (int) D.26812;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26816 = D.26815 - D.24881;
        D.26817 = (unsigned int) D.26816;
        D.26818 = D.26817 * 4;
        D.26819 = D.24878 + D.26818;
        *D.26819 = falsebb;
        <D.26814>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26823>; else goto <D.26820>;
        <D.26823>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26824 = D.24597->opcode;
        D.26825 = D.26824 + 64981;
        D.26826 = D.26825 <= 9;
        D.26827 = D.26824 + 64874;
        D.26828 = D.26827 <= 9;
        D.26829 = D.26826 | D.26828;
        if (D.26829 != 0) goto <D.26821>; else goto <D.26830>;
        <D.26830>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26821>; else goto <D.26820>;
        <D.26821>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26831>; else goto <D.26820>;
        <D.26831>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26822>;
        <D.26820>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26832>; else goto <D.26834>;
        <D.26834>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26835 = D.24597->opcode;
        D.26836 = D.26835 != 446;
        D.26837 = D.26835 != 763;
        D.26838 = D.26836 & D.26837;
        if (D.26838 != 0) goto <D.26839>; else goto <D.26833>;
        <D.26839>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26840 = D.24597->opcode;
        D.26841 = D.26840 + 64981;
        D.26842 = D.26841 > 9;
        D.26843 = D.26840 + 64874;
        D.26844 = D.26843 > 9;
        D.26845 = D.26842 & D.26844;
        if (D.26845 != 0) goto <D.26846>; else goto <D.26833>;
        <D.26846>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26832>; else goto <D.26833>;
        <D.26832>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26833>:
        <D.26822>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26847>;
        <D.26805>:
        D.24594 = cfg->mempool;
        D.26848 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26848;
        D.26849 = ins->data.op[1].many_blocks;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        *D.26849 = D.26782;
        D.26849 = ins->data.op[1].many_blocks;
        D.26850 = D.26849 + 4;
        *D.26850 = 0B;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26782);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26851>; else goto <D.26852>;
        <D.26851>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26853>;
        <D.26852>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26853>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.26854>; else goto <D.26855>;
        <D.26854>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26856 = D.24821;
        D.26857 = D.26856 + 1;
        cfg->num_bblocks = D.26857;
        D.26858 = (int) D.26856;
        falsebb->block_num = D.26858;
        D.26849 = ins->data.op[1].many_blocks;
        D.26850 = D.26849 + 4;
        *D.26850 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.26812 = falsebb->cil_code;
        if (D.26812 != 0B) goto <D.26859>; else goto <D.26860>;
        <D.26859>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26812 = falsebb->cil_code;
        D.26815 = (int) D.26812;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26816 = D.26815 - D.24881;
        D.26817 = (unsigned int) D.26816;
        D.26818 = D.26817 * 4;
        D.26819 = D.24878 + D.26818;
        *D.26819 = falsebb;
        <D.26860>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26864>; else goto <D.26861>;
        <D.26864>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26865 = D.24597->opcode;
        D.26866 = D.26865 + 64981;
        D.26867 = D.26866 <= 9;
        D.26868 = D.26865 + 64874;
        D.26869 = D.26868 <= 9;
        D.26870 = D.26867 | D.26869;
        if (D.26870 != 0) goto <D.26862>; else goto <D.26871>;
        <D.26871>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26862>; else goto <D.26861>;
        <D.26862>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26872>; else goto <D.26861>;
        <D.26872>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26863>;
        <D.26861>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26873>; else goto <D.26875>;
        <D.26875>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26876 = D.24597->opcode;
        D.26877 = D.26876 != 446;
        D.26878 = D.26876 != 763;
        D.26879 = D.26877 & D.26878;
        if (D.26879 != 0) goto <D.26880>; else goto <D.26874>;
        <D.26880>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26881 = D.24597->opcode;
        D.26882 = D.26881 + 64981;
        D.26883 = D.26882 > 9;
        D.26884 = D.26881 + 64874;
        D.26885 = D.26884 > 9;
        D.26886 = D.26883 & D.26885;
        if (D.26886 != 0) goto <D.26887>; else goto <D.26874>;
        <D.26887>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26873>; else goto <D.26874>;
        <D.26873>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26874>:
        <D.26863>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26888>;
        <D.26855>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.26888>:
        <D.26847>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26889 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26889;
        inst->prev = 0B;
        D.26890 = inst->prev;
        inst->next = D.26890;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26891 = inst->sreg3;
        inst->sreg2 = D.26891;
        D.26892 = inst->sreg2;
        inst->sreg1 = D.26892;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        inst->sreg1 = high_reg;
        high_imm.5 = (int) high_imm;
        inst->data.op[1].const_val = high_imm.5;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26893>; else goto <D.26894>;
        <D.26893>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26895>;
        <D.26894>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26895>:
      }
      {
        struct MonoInst * ins;
        struct MonoBasicBlock * falsebb;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26896 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26896;
        ins->prev = 0B;
        D.26897 = ins->prev;
        ins->next = D.26897;
        ins->opcode = 657;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26898 = ins->sreg3;
        ins->sreg2 = D.26898;
        D.26899 = ins->sreg2;
        ins->sreg1 = D.26899;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        if (0 != 0) goto <D.26900>; else goto <D.26901>;
        <D.26900>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26902 = D.24821;
        D.26903 = D.26902 + 1;
        cfg->num_bblocks = D.26903;
        D.26904 = (int) D.26902;
        falsebb->block_num = D.26904;
        D.26781 = next->data.op[1].many_blocks;
        D.26784 = MEM[(struct MonoBasicBlock * *)D.26781 + 4B];
        ins->data.op[0].target_block = D.26784;
        D.26781 = next->data.op[1].many_blocks;
        D.26785 = D.26781 + 4;
        D.26786 = *D.26785;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26786);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26905>; else goto <D.26906>;
        <D.26905>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26907>;
        <D.26906>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26907>:
        D.26908 = falsebb->cil_code;
        if (D.26908 != 0B) goto <D.26909>; else goto <D.26910>;
        <D.26909>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26908 = falsebb->cil_code;
        D.26911 = (int) D.26908;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26912 = D.26911 - D.24881;
        D.26913 = (unsigned int) D.26912;
        D.26914 = D.26913 * 4;
        D.26915 = D.24878 + D.26914;
        *D.26915 = falsebb;
        <D.26910>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26919>; else goto <D.26916>;
        <D.26919>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26920 = D.24597->opcode;
        D.26921 = D.26920 + 64981;
        D.26922 = D.26921 <= 9;
        D.26923 = D.26920 + 64874;
        D.26924 = D.26923 <= 9;
        D.26925 = D.26922 | D.26924;
        if (D.26925 != 0) goto <D.26917>; else goto <D.26926>;
        <D.26926>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26917>; else goto <D.26916>;
        <D.26917>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26927>; else goto <D.26916>;
        <D.26927>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26918>;
        <D.26916>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26928>; else goto <D.26930>;
        <D.26930>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26931 = D.24597->opcode;
        D.26932 = D.26931 != 446;
        D.26933 = D.26931 != 763;
        D.26934 = D.26932 & D.26933;
        if (D.26934 != 0) goto <D.26935>; else goto <D.26929>;
        <D.26935>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26936 = D.24597->opcode;
        D.26937 = D.26936 + 64981;
        D.26938 = D.26937 > 9;
        D.26939 = D.26936 + 64874;
        D.26940 = D.26939 > 9;
        D.26941 = D.26938 & D.26940;
        if (D.26941 != 0) goto <D.26942>; else goto <D.26929>;
        <D.26942>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26928>; else goto <D.26929>;
        <D.26928>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26929>:
        <D.26918>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26943>;
        <D.26901>:
        D.24594 = cfg->mempool;
        D.26944 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26944;
        D.26945 = ins->data.op[1].many_blocks;
        D.26781 = next->data.op[1].many_blocks;
        D.26784 = MEM[(struct MonoBasicBlock * *)D.26781 + 4B];
        *D.26945 = D.26784;
        D.26945 = ins->data.op[1].many_blocks;
        D.26946 = D.26945 + 4;
        *D.26946 = 0B;
        D.26781 = next->data.op[1].many_blocks;
        D.26785 = D.26781 + 4;
        D.26786 = *D.26785;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26786);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26947>; else goto <D.26948>;
        <D.26947>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.26949>;
        <D.26948>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26949>:
        D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.24927 = D.24926 & 8;
        if (D.24927 == 0) goto <D.26950>; else goto <D.26951>;
        <D.26950>:
        D.24594 = cfg->mempool;
        falsebb = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.26952 = D.24821;
        D.26953 = D.26952 + 1;
        cfg->num_bblocks = D.26953;
        D.26954 = (int) D.26952;
        falsebb->block_num = D.26954;
        D.26945 = ins->data.op[1].many_blocks;
        D.26946 = D.26945 + 4;
        *D.26946 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        D.26908 = falsebb->cil_code;
        if (D.26908 != 0B) goto <D.26955>; else goto <D.26956>;
        <D.26955>:
        D.24878 = cfg->cil_offset_to_bb;
        D.26908 = falsebb->cil_code;
        D.26911 = (int) D.26908;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.26912 = D.26911 - D.24881;
        D.26913 = (unsigned int) D.26912;
        D.26914 = D.26913 * 4;
        D.26915 = D.24878 + D.26914;
        *D.26915 = falsebb;
        <D.26956>:
        D.24886 = cfg->real_offset;
        falsebb->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26960>; else goto <D.26957>;
        <D.26960>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26961 = D.24597->opcode;
        D.26962 = D.26961 + 64981;
        D.26963 = D.26962 <= 9;
        D.26964 = D.26961 + 64874;
        D.26965 = D.26964 <= 9;
        D.26966 = D.26963 | D.26965;
        if (D.26966 != 0) goto <D.26958>; else goto <D.26967>;
        <D.26967>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.26958>; else goto <D.26957>;
        <D.26958>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.26968>; else goto <D.26957>;
        <D.26968>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = falsebb;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        goto <D.26959>;
        <D.26957>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.26969>; else goto <D.26971>;
        <D.26971>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26972 = D.24597->opcode;
        D.26973 = D.26972 != 446;
        D.26974 = D.26972 != 763;
        D.26975 = D.26973 & D.26974;
        if (D.26975 != 0) goto <D.26976>; else goto <D.26970>;
        <D.26976>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.26977 = D.24597->opcode;
        D.26978 = D.26977 + 64981;
        D.26979 = D.26978 > 9;
        D.26980 = D.26977 + 64874;
        D.26981 = D.26980 > 9;
        D.26982 = D.26979 & D.26981;
        if (D.26982 != 0) goto <D.26983>; else goto <D.26970>;
        <D.26983>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.26969>; else goto <D.26970>;
        <D.26969>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, falsebb);
        <D.26970>:
        <D.26959>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = falsebb;
        cfg->cbb = falsebb;
        goto <D.26984>;
        <D.26951>:
        D.24596 = cfg->cbb;
        D.24596->extended = 1;
        <D.26984>:
        <D.26943>:
      }
      {
        struct MonoInst * inst;

        D.24594 = cfg->mempool;
        inst = mono_mempool_alloc (D.24594, 48);
        inst->data.op[1].const_val = 0;
        D.26985 = inst->data.op[1].const_val;
        inst->data.op[0].const_val = D.26985;
        inst->prev = 0B;
        D.26986 = inst->prev;
        inst->next = D.26986;
        inst->opcode = 323;
        inst->flags = 0;
        inst->type = 0;
        inst->dreg = -1;
        inst->sreg3 = -1;
        D.26987 = inst->sreg3;
        inst->sreg2 = D.26987;
        D.26988 = inst->sreg2;
        inst->sreg1 = D.26988;
        D.24604 = cfg->ip;
        inst->cil_code = D.24604;
        inst->dreg = -1;
        inst->sreg1 = low_reg;
        low_imm.4 = (int) low_imm;
        inst->data.op[1].const_val = low_imm.4;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.26989>; else goto <D.26990>;
        <D.26989>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = inst;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        inst->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        goto <D.26991>;
        <D.26990>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = inst;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.26991>:
      }
      {
        struct MonoInst * ins;

        D.24594 = cfg->mempool;
        ins = mono_mempool_alloc (D.24594, 48);
        ins->data.op[1].const_val = 0;
        D.26992 = ins->data.op[1].const_val;
        ins->data.op[0].const_val = D.26992;
        ins->prev = 0B;
        D.26993 = ins->prev;
        ins->next = D.26993;
        D.26737 = next->opcode;
        D.26738 = (int) D.26737;
        D.26799 = D.26738 + -555;
        D.26994 = lbr_decomp[D.26799][1];
        D.26995 = (short unsigned int) D.26994;
        ins->opcode = D.26995;
        ins->flags = 0;
        ins->type = 0;
        ins->dreg = -1;
        ins->sreg3 = -1;
        D.26996 = ins->sreg3;
        ins->sreg2 = D.26996;
        D.26997 = ins->sreg2;
        ins->sreg1 = D.26997;
        D.24604 = cfg->ip;
        ins->cil_code = D.24604;
        D.24594 = cfg->mempool;
        D.26998 = mono_mempool_alloc (D.24594, 8);
        ins->data.op[1].many_blocks = D.26998;
        D.26999 = ins->data.op[1].many_blocks;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        *D.26999 = D.26782;
        D.26999 = ins->data.op[1].many_blocks;
        D.27000 = D.26999 + 4;
        D.26781 = next->data.op[1].many_blocks;
        D.26784 = MEM[(struct MonoBasicBlock * *)D.26781 + 4B];
        *D.27000 = D.26784;
        D.26781 = next->data.op[1].many_blocks;
        D.26782 = *D.26781;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26782);
        D.26781 = next->data.op[1].many_blocks;
        D.26785 = D.26781 + 4;
        D.26786 = *D.26785;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, D.26786);
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.27001>; else goto <D.27002>;
        <D.27001>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24597->next = ins;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        ins->prev = D.24597;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        goto <D.27003>;
        <D.27002>:
        D.24596 = cfg->cbb;
        D.24596 = cfg->cbb;
        D.24596->last_ins = ins;
        D.24597 = D.24596->last_ins;
        D.24596->code = D.24597;
        <D.27003>:
      }
      next->opcode = 316;
      goto <D.24080>;
      <D.24097>:
      {
        int d1;
        int d2;

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

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27006 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27006;
          inst->prev = 0B;
          D.27007 = inst->prev;
          inst->next = D.27007;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27008 = inst->sreg3;
          inst->sreg2 = D.27008;
          D.27009 = inst->sreg2;
          inst->sreg1 = D.27009;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27010>; else goto <D.27011>;
          <D.27010>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27012>;
          <D.27011>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27012>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27013 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27013;
          inst->prev = 0B;
          D.27014 = inst->prev;
          inst->next = D.27014;
          inst->opcode = 638;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27015 = inst->sreg3;
          inst->sreg2 = D.27015;
          D.27016 = inst->sreg2;
          inst->sreg1 = D.27016;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d2;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27017>; else goto <D.27018>;
          <D.27017>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27019>;
          <D.27018>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27019>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27020 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27020;
          inst->prev = 0B;
          D.27021 = inst->prev;
          inst->next = D.27021;
          inst->opcode = 577;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27022 = inst->sreg3;
          inst->sreg2 = D.27022;
          D.27023 = inst->sreg2;
          inst->sreg1 = D.27023;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = d1;
          inst->sreg1 = d1;
          inst->sreg2 = d2;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27024>; else goto <D.27025>;
          <D.27024>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27026>;
          <D.27025>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27026>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27027 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27027;
          inst->prev = 0B;
          D.27028 = inst->prev;
          inst->next = D.27028;
          inst->opcode = 327;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27029 = inst->sreg3;
          inst->sreg2 = D.27029;
          D.27030 = inst->sreg2;
          inst->sreg1 = D.27030;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = d1;
          inst->data.op[1].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27031>; else goto <D.27032>;
          <D.27031>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27033>;
          <D.27032>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27033>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27034 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27034;
          inst->prev = 0B;
          D.27035 = inst->prev;
          inst->next = D.27035;
          inst->opcode = 642;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27036 = inst->sreg3;
          inst->sreg2 = D.27036;
          D.27037 = inst->sreg2;
          inst->sreg1 = D.27037;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.27038 = next->dreg;
          inst->dreg = D.27038;
          inst->sreg1 = -1;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27039>; else goto <D.27040>;
          <D.27039>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27041>;
          <D.27040>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27041>:
        }
        next->opcode = 316;
        goto <D.24080>;
      }
      <D.24105>:
      <D.24106>:
      <D.24107>:
      <D.24108>:
      {
        struct MonoBasicBlock * set_to_0;
        struct MonoBasicBlock * set_to_1;

        D.24594 = cfg->mempool;
        set_to_0 = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.27042 = D.24821;
        D.27043 = D.27042 + 1;
        cfg->num_bblocks = D.27043;
        D.27044 = (int) D.27042;
        set_to_0->block_num = D.27044;
        D.24594 = cfg->mempool;
        set_to_1 = mono_mempool_alloc0 (D.24594, 172);
        D.24821 = cfg->num_bblocks;
        D.27045 = D.24821;
        D.27046 = D.27045 + 1;
        cfg->num_bblocks = D.27046;
        D.27047 = (int) D.27045;
        set_to_1->block_num = D.27047;
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27048 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27048;
          inst->prev = 0B;
          D.27049 = inst->prev;
          inst->next = D.27049;
          inst->opcode = 362;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27050 = inst->sreg3;
          inst->sreg2 = D.27050;
          D.27051 = inst->sreg2;
          inst->sreg1 = D.27051;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.27038 = next->dreg;
          inst->dreg = D.27038;
          inst->data.op[0].const_val = 0;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27052>; else goto <D.27053>;
          <D.27052>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27054>;
          <D.27053>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27054>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27055 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27055;
          inst->prev = 0B;
          D.27056 = inst->prev;
          inst->next = D.27056;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27057 = inst->sreg3;
          inst->sreg2 = D.27057;
          D.27058 = inst->sreg2;
          inst->sreg1 = D.27058;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27059>; else goto <D.27060>;
          <D.27059>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27061>;
          <D.27060>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27061>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.27062 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.27062;
          ins->prev = 0B;
          D.27063 = ins->prev;
          ins->next = D.27063;
          D.26737 = next->opcode;
          D.26738 = (int) D.26737;
          D.27064 = D.26738 + -535;
          D.27065 = lcset_decomp[D.27064][0];
          D.27066 = (short unsigned int) D.27065;
          ins->opcode = D.27066;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.27067 = ins->sreg3;
          ins->sreg2 = D.27067;
          D.27068 = ins->sreg2;
          ins->sreg1 = D.27068;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.26737 = next->opcode;
          D.26738 = (int) D.26737;
          D.27064 = D.26738 + -535;
          D.27065 = lcset_decomp[D.27064][0];
          if (D.27065 == 446) goto <D.27069>; else goto <D.27070>;
          <D.27069>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27071 = D.24821;
          D.27072 = D.27071 + 1;
          cfg->num_bblocks = D.27072;
          D.27073 = (int) D.27071;
          falsebb->block_num = D.27073;
          ins->data.op[0].target_block = set_to_0;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27074>; else goto <D.27075>;
          <D.27074>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27076>;
          <D.27075>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27076>:
          D.27077 = falsebb->cil_code;
          if (D.27077 != 0B) goto <D.27078>; else goto <D.27079>;
          <D.27078>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27077 = falsebb->cil_code;
          D.27080 = (int) D.27077;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27081 = D.27080 - D.24881;
          D.27082 = (unsigned int) D.27081;
          D.27083 = D.27082 * 4;
          D.27084 = D.24878 + D.27083;
          *D.27084 = falsebb;
          <D.27079>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27088>; else goto <D.27085>;
          <D.27088>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27089 = D.24597->opcode;
          D.27090 = D.27089 + 64981;
          D.27091 = D.27090 <= 9;
          D.27092 = D.27089 + 64874;
          D.27093 = D.27092 <= 9;
          D.27094 = D.27091 | D.27093;
          if (D.27094 != 0) goto <D.27086>; else goto <D.27095>;
          <D.27095>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27086>; else goto <D.27085>;
          <D.27086>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27096>; else goto <D.27085>;
          <D.27096>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27087>;
          <D.27085>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27097>; else goto <D.27099>;
          <D.27099>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27100 = D.24597->opcode;
          D.27101 = D.27100 != 446;
          D.27102 = D.27100 != 763;
          D.27103 = D.27101 & D.27102;
          if (D.27103 != 0) goto <D.27104>; else goto <D.27098>;
          <D.27104>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27105 = D.24597->opcode;
          D.27106 = D.27105 + 64981;
          D.27107 = D.27106 > 9;
          D.27108 = D.27105 + 64874;
          D.27109 = D.27108 > 9;
          D.27110 = D.27107 & D.27109;
          if (D.27110 != 0) goto <D.27111>; else goto <D.27098>;
          <D.27111>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27097>; else goto <D.27098>;
          <D.27097>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27098>:
          <D.27087>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27112>;
          <D.27070>:
          D.24594 = cfg->mempool;
          D.27113 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.27113;
          D.27114 = ins->data.op[1].many_blocks;
          *D.27114 = set_to_0;
          D.27114 = ins->data.op[1].many_blocks;
          D.27115 = D.27114 + 4;
          *D.27115 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27116>; else goto <D.27117>;
          <D.27116>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27118>;
          <D.27117>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27118>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.27119>; else goto <D.27120>;
          <D.27119>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27121 = D.24821;
          D.27122 = D.27121 + 1;
          cfg->num_bblocks = D.27122;
          D.27123 = (int) D.27121;
          falsebb->block_num = D.27123;
          D.27114 = ins->data.op[1].many_blocks;
          D.27115 = D.27114 + 4;
          *D.27115 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.27077 = falsebb->cil_code;
          if (D.27077 != 0B) goto <D.27124>; else goto <D.27125>;
          <D.27124>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27077 = falsebb->cil_code;
          D.27080 = (int) D.27077;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27081 = D.27080 - D.24881;
          D.27082 = (unsigned int) D.27081;
          D.27083 = D.27082 * 4;
          D.27084 = D.24878 + D.27083;
          *D.27084 = falsebb;
          <D.27125>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27129>; else goto <D.27126>;
          <D.27129>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27130 = D.24597->opcode;
          D.27131 = D.27130 + 64981;
          D.27132 = D.27131 <= 9;
          D.27133 = D.27130 + 64874;
          D.27134 = D.27133 <= 9;
          D.27135 = D.27132 | D.27134;
          if (D.27135 != 0) goto <D.27127>; else goto <D.27136>;
          <D.27136>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27127>; else goto <D.27126>;
          <D.27127>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27137>; else goto <D.27126>;
          <D.27137>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27128>;
          <D.27126>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27138>; else goto <D.27140>;
          <D.27140>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27141 = D.24597->opcode;
          D.27142 = D.27141 != 446;
          D.27143 = D.27141 != 763;
          D.27144 = D.27142 & D.27143;
          if (D.27144 != 0) goto <D.27145>; else goto <D.27139>;
          <D.27145>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27146 = D.24597->opcode;
          D.27147 = D.27146 + 64981;
          D.27148 = D.27147 > 9;
          D.27149 = D.27146 + 64874;
          D.27150 = D.27149 > 9;
          D.27151 = D.27148 & D.27150;
          if (D.27151 != 0) goto <D.27152>; else goto <D.27139>;
          <D.27152>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27138>; else goto <D.27139>;
          <D.27138>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27139>:
          <D.27128>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27153>;
          <D.27120>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.27153>:
          <D.27112>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27154 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27154;
          inst->prev = 0B;
          D.27155 = inst->prev;
          inst->next = D.27155;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27156 = inst->sreg3;
          inst->sreg2 = D.27156;
          D.27157 = inst->sreg2;
          inst->sreg1 = D.27157;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = high_reg;
          high_imm.5 = (int) high_imm;
          inst->data.op[1].const_val = high_imm.5;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27158>; else goto <D.27159>;
          <D.27158>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27160>;
          <D.27159>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27160>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.27161 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.27161;
          ins->prev = 0B;
          D.27162 = ins->prev;
          ins->next = D.27162;
          ins->opcode = 657;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.27163 = ins->sreg3;
          ins->sreg2 = D.27163;
          D.27164 = ins->sreg2;
          ins->sreg1 = D.27164;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          if (0 != 0) goto <D.27165>; else goto <D.27166>;
          <D.27165>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27167 = D.24821;
          D.27168 = D.27167 + 1;
          cfg->num_bblocks = D.27168;
          D.27169 = (int) D.27167;
          falsebb->block_num = D.27169;
          ins->data.op[0].target_block = set_to_1;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_1);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27170>; else goto <D.27171>;
          <D.27170>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27172>;
          <D.27171>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27172>:
          D.27173 = falsebb->cil_code;
          if (D.27173 != 0B) goto <D.27174>; else goto <D.27175>;
          <D.27174>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27173 = falsebb->cil_code;
          D.27176 = (int) D.27173;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27177 = D.27176 - D.24881;
          D.27178 = (unsigned int) D.27177;
          D.27179 = D.27178 * 4;
          D.27180 = D.24878 + D.27179;
          *D.27180 = falsebb;
          <D.27175>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27184>; else goto <D.27181>;
          <D.27184>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27185 = D.24597->opcode;
          D.27186 = D.27185 + 64981;
          D.27187 = D.27186 <= 9;
          D.27188 = D.27185 + 64874;
          D.27189 = D.27188 <= 9;
          D.27190 = D.27187 | D.27189;
          if (D.27190 != 0) goto <D.27182>; else goto <D.27191>;
          <D.27191>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27182>; else goto <D.27181>;
          <D.27182>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27192>; else goto <D.27181>;
          <D.27192>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27183>;
          <D.27181>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27193>; else goto <D.27195>;
          <D.27195>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27196 = D.24597->opcode;
          D.27197 = D.27196 != 446;
          D.27198 = D.27196 != 763;
          D.27199 = D.27197 & D.27198;
          if (D.27199 != 0) goto <D.27200>; else goto <D.27194>;
          <D.27200>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27201 = D.24597->opcode;
          D.27202 = D.27201 + 64981;
          D.27203 = D.27202 > 9;
          D.27204 = D.27201 + 64874;
          D.27205 = D.27204 > 9;
          D.27206 = D.27203 & D.27205;
          if (D.27206 != 0) goto <D.27207>; else goto <D.27194>;
          <D.27207>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27193>; else goto <D.27194>;
          <D.27193>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27194>:
          <D.27183>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27208>;
          <D.27166>:
          D.24594 = cfg->mempool;
          D.27209 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.27209;
          D.27210 = ins->data.op[1].many_blocks;
          *D.27210 = set_to_1;
          D.27210 = ins->data.op[1].many_blocks;
          D.27211 = D.27210 + 4;
          *D.27211 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_1);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27212>; else goto <D.27213>;
          <D.27212>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27214>;
          <D.27213>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27214>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.27215>; else goto <D.27216>;
          <D.27215>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27217 = D.24821;
          D.27218 = D.27217 + 1;
          cfg->num_bblocks = D.27218;
          D.27219 = (int) D.27217;
          falsebb->block_num = D.27219;
          D.27210 = ins->data.op[1].many_blocks;
          D.27211 = D.27210 + 4;
          *D.27211 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.27173 = falsebb->cil_code;
          if (D.27173 != 0B) goto <D.27220>; else goto <D.27221>;
          <D.27220>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27173 = falsebb->cil_code;
          D.27176 = (int) D.27173;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27177 = D.27176 - D.24881;
          D.27178 = (unsigned int) D.27177;
          D.27179 = D.27178 * 4;
          D.27180 = D.24878 + D.27179;
          *D.27180 = falsebb;
          <D.27221>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27225>; else goto <D.27222>;
          <D.27225>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27226 = D.24597->opcode;
          D.27227 = D.27226 + 64981;
          D.27228 = D.27227 <= 9;
          D.27229 = D.27226 + 64874;
          D.27230 = D.27229 <= 9;
          D.27231 = D.27228 | D.27230;
          if (D.27231 != 0) goto <D.27223>; else goto <D.27232>;
          <D.27232>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27223>; else goto <D.27222>;
          <D.27223>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27233>; else goto <D.27222>;
          <D.27233>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27224>;
          <D.27222>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27234>; else goto <D.27236>;
          <D.27236>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27237 = D.24597->opcode;
          D.27238 = D.27237 != 446;
          D.27239 = D.27237 != 763;
          D.27240 = D.27238 & D.27239;
          if (D.27240 != 0) goto <D.27241>; else goto <D.27235>;
          <D.27241>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27242 = D.24597->opcode;
          D.27243 = D.27242 + 64981;
          D.27244 = D.27243 > 9;
          D.27245 = D.27242 + 64874;
          D.27246 = D.27245 > 9;
          D.27247 = D.27244 & D.27246;
          if (D.27247 != 0) goto <D.27248>; else goto <D.27235>;
          <D.27248>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27234>; else goto <D.27235>;
          <D.27234>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27235>:
          <D.27224>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27249>;
          <D.27216>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.27249>:
          <D.27208>:
        }
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          inst->data.op[1].const_val = 0;
          D.27250 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.27250;
          inst->prev = 0B;
          D.27251 = inst->prev;
          inst->next = D.27251;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.27252 = inst->sreg3;
          inst->sreg2 = D.27252;
          D.27253 = inst->sreg2;
          inst->sreg1 = D.27253;
          D.24604 = cfg->ip;
          inst->cil_code = D.24604;
          inst->dreg = -1;
          inst->sreg1 = low_reg;
          low_imm.4 = (int) low_imm;
          inst->data.op[1].const_val = low_imm.4;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27254>; else goto <D.27255>;
          <D.27254>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27256>;
          <D.27255>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27256>:
        }
        {
          struct MonoInst * ins;
          struct MonoBasicBlock * falsebb;

          D.24594 = cfg->mempool;
          ins = mono_mempool_alloc (D.24594, 48);
          ins->data.op[1].const_val = 0;
          D.27257 = ins->data.op[1].const_val;
          ins->data.op[0].const_val = D.27257;
          ins->prev = 0B;
          D.27258 = ins->prev;
          ins->next = D.27258;
          D.26737 = next->opcode;
          D.26738 = (int) D.26737;
          D.27064 = D.26738 + -535;
          D.27259 = lcset_decomp[D.27064][1];
          D.27260 = (short unsigned int) D.27259;
          ins->opcode = D.27260;
          ins->flags = 0;
          ins->type = 0;
          ins->dreg = -1;
          ins->sreg3 = -1;
          D.27261 = ins->sreg3;
          ins->sreg2 = D.27261;
          D.27262 = ins->sreg2;
          ins->sreg1 = D.27262;
          D.24604 = cfg->ip;
          ins->cil_code = D.24604;
          D.26737 = next->opcode;
          D.26738 = (int) D.26737;
          D.27064 = D.26738 + -535;
          D.27259 = lcset_decomp[D.27064][1];
          if (D.27259 == 446) goto <D.27263>; else goto <D.27264>;
          <D.27263>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27265 = D.24821;
          D.27266 = D.27265 + 1;
          cfg->num_bblocks = D.27266;
          D.27267 = (int) D.27265;
          falsebb->block_num = D.27267;
          ins->data.op[0].target_block = set_to_0;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27268>; else goto <D.27269>;
          <D.27268>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27270>;
          <D.27269>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27270>:
          D.27271 = falsebb->cil_code;
          if (D.27271 != 0B) goto <D.27272>; else goto <D.27273>;
          <D.27272>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27271 = falsebb->cil_code;
          D.27274 = (int) D.27271;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27275 = D.27274 - D.24881;
          D.27276 = (unsigned int) D.27275;
          D.27277 = D.27276 * 4;
          D.27278 = D.24878 + D.27277;
          *D.27278 = falsebb;
          <D.27273>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27282>; else goto <D.27279>;
          <D.27282>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27283 = D.24597->opcode;
          D.27284 = D.27283 + 64981;
          D.27285 = D.27284 <= 9;
          D.27286 = D.27283 + 64874;
          D.27287 = D.27286 <= 9;
          D.27288 = D.27285 | D.27287;
          if (D.27288 != 0) goto <D.27280>; else goto <D.27289>;
          <D.27289>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27280>; else goto <D.27279>;
          <D.27280>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27290>; else goto <D.27279>;
          <D.27290>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27281>;
          <D.27279>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27291>; else goto <D.27293>;
          <D.27293>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27294 = D.24597->opcode;
          D.27295 = D.27294 != 446;
          D.27296 = D.27294 != 763;
          D.27297 = D.27295 & D.27296;
          if (D.27297 != 0) goto <D.27298>; else goto <D.27292>;
          <D.27298>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27299 = D.24597->opcode;
          D.27300 = D.27299 + 64981;
          D.27301 = D.27300 > 9;
          D.27302 = D.27299 + 64874;
          D.27303 = D.27302 > 9;
          D.27304 = D.27301 & D.27303;
          if (D.27304 != 0) goto <D.27305>; else goto <D.27292>;
          <D.27305>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27291>; else goto <D.27292>;
          <D.27291>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27292>:
          <D.27281>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27306>;
          <D.27264>:
          D.24594 = cfg->mempool;
          D.27307 = mono_mempool_alloc (D.24594, 8);
          ins->data.op[1].many_blocks = D.27307;
          D.27308 = ins->data.op[1].many_blocks;
          *D.27308 = set_to_0;
          D.27308 = ins->data.op[1].many_blocks;
          D.27309 = D.27308 + 4;
          *D.27309 = 0B;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, set_to_0);
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27310>; else goto <D.27311>;
          <D.27310>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = ins;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          ins->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          goto <D.27312>;
          <D.27311>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = ins;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27312>:
          D.24926 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.24927 = D.24926 & 8;
          if (D.24927 == 0) goto <D.27313>; else goto <D.27314>;
          <D.27313>:
          D.24594 = cfg->mempool;
          falsebb = mono_mempool_alloc0 (D.24594, 172);
          D.24821 = cfg->num_bblocks;
          D.27315 = D.24821;
          D.27316 = D.27315 + 1;
          cfg->num_bblocks = D.27316;
          D.27317 = (int) D.27315;
          falsebb->block_num = D.27317;
          D.27308 = ins->data.op[1].many_blocks;
          D.27309 = D.27308 + 4;
          *D.27309 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          D.27271 = falsebb->cil_code;
          if (D.27271 != 0B) goto <D.27318>; else goto <D.27319>;
          <D.27318>:
          D.24878 = cfg->cil_offset_to_bb;
          D.27271 = falsebb->cil_code;
          D.27274 = (int) D.27271;
          D.24880 = cfg->cil_start;
          D.24881 = (int) D.24880;
          D.27275 = D.27274 - D.24881;
          D.27276 = (unsigned int) D.27275;
          D.27277 = D.27276 * 4;
          D.27278 = D.24878 + D.27277;
          *D.27278 = falsebb;
          <D.27319>:
          D.24886 = cfg->real_offset;
          falsebb->real_offset = D.24886;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27323>; else goto <D.27320>;
          <D.27323>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27324 = D.24597->opcode;
          D.27325 = D.27324 + 64981;
          D.27326 = D.27325 <= 9;
          D.27327 = D.27324 + 64874;
          D.27328 = D.27327 <= 9;
          D.27329 = D.27326 | D.27328;
          if (D.27329 != 0) goto <D.27321>; else goto <D.27330>;
          <D.27330>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 <= 9) goto <D.27321>; else goto <D.27320>;
          <D.27321>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          D.24902 = *D.24901;
          if (D.24902 == 0B) goto <D.27331>; else goto <D.27320>;
          <D.27331>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24900 = D.24597->data.op[1].many_blocks;
          D.24901 = D.24900 + 4;
          *D.24901 = falsebb;
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          goto <D.27322>;
          <D.27320>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 == 0B) goto <D.27332>; else goto <D.27334>;
          <D.27334>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27335 = D.24597->opcode;
          D.27336 = D.27335 != 446;
          D.27337 = D.27335 != 763;
          D.27338 = D.27336 & D.27337;
          if (D.27338 != 0) goto <D.27339>; else goto <D.27333>;
          <D.27339>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.27340 = D.24597->opcode;
          D.27341 = D.27340 + 64981;
          D.27342 = D.27341 > 9;
          D.27343 = D.27340 + 64874;
          D.27344 = D.27343 > 9;
          D.27345 = D.27342 & D.27344;
          if (D.27345 != 0) goto <D.27346>; else goto <D.27333>;
          <D.27346>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24898 = D.24597->opcode;
          D.24899 = D.24898 + 64884;
          if (D.24899 > 9) goto <D.27332>; else goto <D.27333>;
          <D.27332>:
          D.24596 = cfg->cbb;
          mono_link_bblock (cfg, D.24596, falsebb);
          <D.27333>:
          <D.27322>:
          D.24596 = cfg->cbb;
          D.24596->next_bb = falsebb;
          cfg->cbb = falsebb;
          goto <D.27347>;
          <D.27314>:
          D.24596 = cfg->cbb;
          D.24596->extended = 1;
          <D.27347>:
          <D.27306>:
        }
        D.27348 = set_to_1->cil_code;
        if (D.27348 != 0B) goto <D.27349>; else goto <D.27350>;
        <D.27349>:
        D.24878 = cfg->cil_offset_to_bb;
        D.27348 = set_to_1->cil_code;
        D.27351 = (int) D.27348;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.27352 = D.27351 - D.24881;
        D.27353 = (unsigned int) D.27352;
        D.27354 = D.27353 * 4;
        D.27355 = D.24878 + D.27354;
        *D.27355 = set_to_1;
        <D.27350>:
        D.24886 = cfg->real_offset;
        set_to_1->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.27359>; else goto <D.27356>;
        <D.27359>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27360 = D.24597->opcode;
        D.27361 = D.27360 + 64981;
        D.27362 = D.27361 <= 9;
        D.27363 = D.27360 + 64874;
        D.27364 = D.27363 <= 9;
        D.27365 = D.27362 | D.27364;
        if (D.27365 != 0) goto <D.27357>; else goto <D.27366>;
        <D.27366>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.27357>; else goto <D.27356>;
        <D.27357>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.27367>; else goto <D.27356>;
        <D.27367>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = set_to_1;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_1);
        goto <D.27358>;
        <D.27356>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.27368>; else goto <D.27370>;
        <D.27370>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27371 = D.24597->opcode;
        D.27372 = D.27371 != 446;
        D.27373 = D.27371 != 763;
        D.27374 = D.27372 & D.27373;
        if (D.27374 != 0) goto <D.27375>; else goto <D.27369>;
        <D.27375>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27376 = D.24597->opcode;
        D.27377 = D.27376 + 64981;
        D.27378 = D.27377 > 9;
        D.27379 = D.27376 + 64874;
        D.27380 = D.27379 > 9;
        D.27381 = D.27378 & D.27380;
        if (D.27381 != 0) goto <D.27382>; else goto <D.27369>;
        <D.27382>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.27368>; else goto <D.27369>;
        <D.27368>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_1);
        <D.27369>:
        <D.27358>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = set_to_1;
        cfg->cbb = set_to_1;
        {
          struct MonoInst * inst;

          D.24594 = cfg->mempool;
          inst = mono_mempool_alloc (D.24594, 48);
          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 = 362;
          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.24604 = cfg->ip;
          inst->cil_code = D.24604;
          D.27038 = next->dreg;
          inst->dreg = D.27038;
          inst->data.op[0].const_val = 1;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          if (D.24597 != 0B) goto <D.27387>; else goto <D.27388>;
          <D.27387>:
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          D.24597->next = inst;
          D.24596 = cfg->cbb;
          D.24597 = D.24596->last_ins;
          inst->prev = D.24597;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          goto <D.27389>;
          <D.27388>:
          D.24596 = cfg->cbb;
          D.24596 = cfg->cbb;
          D.24596->last_ins = inst;
          D.24597 = D.24596->last_ins;
          D.24596->code = D.24597;
          <D.27389>:
        }
        D.27390 = set_to_0->cil_code;
        if (D.27390 != 0B) goto <D.27391>; else goto <D.27392>;
        <D.27391>:
        D.24878 = cfg->cil_offset_to_bb;
        D.27390 = set_to_0->cil_code;
        D.27393 = (int) D.27390;
        D.24880 = cfg->cil_start;
        D.24881 = (int) D.24880;
        D.27394 = D.27393 - D.24881;
        D.27395 = (unsigned int) D.27394;
        D.27396 = D.27395 * 4;
        D.27397 = D.24878 + D.27396;
        *D.27397 = set_to_0;
        <D.27392>:
        D.24886 = cfg->real_offset;
        set_to_0->real_offset = D.24886;
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 != 0B) goto <D.27401>; else goto <D.27398>;
        <D.27401>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27402 = D.24597->opcode;
        D.27403 = D.27402 + 64981;
        D.27404 = D.27403 <= 9;
        D.27405 = D.27402 + 64874;
        D.27406 = D.27405 <= 9;
        D.27407 = D.27404 | D.27406;
        if (D.27407 != 0) goto <D.27399>; else goto <D.27408>;
        <D.27408>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 <= 9) goto <D.27399>; else goto <D.27398>;
        <D.27399>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        D.24902 = *D.24901;
        if (D.24902 == 0B) goto <D.27409>; else goto <D.27398>;
        <D.27409>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24900 = D.24597->data.op[1].many_blocks;
        D.24901 = D.24900 + 4;
        *D.24901 = set_to_0;
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_0);
        goto <D.27400>;
        <D.27398>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        if (D.24597 == 0B) goto <D.27410>; else goto <D.27412>;
        <D.27412>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27413 = D.24597->opcode;
        D.27414 = D.27413 != 446;
        D.27415 = D.27413 != 763;
        D.27416 = D.27414 & D.27415;
        if (D.27416 != 0) goto <D.27417>; else goto <D.27411>;
        <D.27417>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.27418 = D.24597->opcode;
        D.27419 = D.27418 + 64981;
        D.27420 = D.27419 > 9;
        D.27421 = D.27418 + 64874;
        D.27422 = D.27421 > 9;
        D.27423 = D.27420 & D.27422;
        if (D.27423 != 0) goto <D.27424>; else goto <D.27411>;
        <D.27424>:
        D.24596 = cfg->cbb;
        D.24597 = D.24596->last_ins;
        D.24898 = D.24597->opcode;
        D.24899 = D.24898 + 64884;
        if (D.24899 > 9) goto <D.27410>; else goto <D.27411>;
        <D.27410>:
        D.24596 = cfg->cbb;
        mono_link_bblock (cfg, D.24596, set_to_0);
        <D.27411>:
        <D.27400>:
        D.24596 = cfg->cbb;
        D.24596->next_bb = set_to_0;
        cfg->cbb = set_to_0;
        next->opcode = 316;
        goto <D.24080>;
      }
      <D.24122>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "decompose.c", 1052);
      <D.24080>:
      goto <D.23809>;
    }
    <D.24123>:
    goto <D.23809>;
    <D.23809>:
    D.24596 = cfg->cbb;
    D.27428 = D.24596->code;
    if (D.27428 != 0B) goto <D.27425>; else goto <D.27429>;
    <D.27429>:
    D.24596 = cfg->cbb;
    if (D.24596 != first_bb) goto <D.27425>; else goto <D.27426>;
    <D.27425>:
    {
      struct MonoInst * new_prev;

      try
        {
          new_prev = prev;
          D.24596 = cfg->cbb;
          mono_replace_ins (cfg, bb, tree, &new_prev, first_bb, D.24596);
          if (prev != 0B) goto <D.27430>; else goto <D.27431>;
          <D.27430>:
          tree = prev->next;
          goto <D.27432>;
          <D.27431>:
          tree = bb->code;
          <D.27432>:
          first_bb->last_ins = 0B;
          D.27433 = first_bb->last_ins;
          first_bb->code = D.27433;
          first_bb->out_count = 0;
          D.27434 = first_bb->out_count;
          first_bb->in_count = D.27434;
          cfg->cbb = first_bb;
        }
      finally
        {
          new_prev = {CLOBBER};
        }
    }
    goto <D.27427>;
    <D.27426>:
    prev = tree;
    tree = tree->next;
    <D.27427>:
    <D.24126>:
    if (tree != 0B) goto <D.24125>; else goto <D.24127>;
    <D.24127>:
  }
  bb = bb->next_bb;
  <D.24129>:
  if (bb != 0B) goto <D.24128>; else goto <D.24130>;
  <D.24130>:
}


alloc_ireg (struct MonoCompile * cfg)
{
  guint32 D.27436;
  unsigned int D.27437;
  unsigned int D.27438;
  unsigned int D.27439;

  D.27437 = cfg->next_vreg;
  D.27438 = D.27437;
  D.27439 = D.27438 + 1;
  cfg->next_vreg = D.27439;
  D.27436 = D.27438;
  return D.27436;
}


mono_decompose_vtype_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.27441;
  void * D.27442;
  unsigned int D.27443;
  struct MonoBasicBlock * D.27446;
  struct MonoInst * D.27447;
  short unsigned int D.27448;
  int D.27449;
  struct MonoInst * iftmp.7;
  int D.27451;
  unsigned int D.27452;
  unsigned int D.27453;
  struct MonoInst * * D.27456;
  unsigned int D.27457;
  unsigned int D.27458;
  struct MonoInst * * D.27459;
  struct MonoInst * iftmp.8;
  int D.27462;
  unsigned int D.27463;
  unsigned int D.27466;
  unsigned int D.27467;
  struct MonoInst * * D.27468;
  struct MonoClass * D.27470;
  _Bool D.27471;
  long int D.27472;
  long int D.27473;
  struct MonoType * D.27478;
  int D.27481;
  int D.27484;
  struct MonoInst * D.27485;
  int D.27486;
  int D.27487;
  const unsigned char * D.27488;
  unsigned char D.27489;
  unsigned char D.27490;
  struct MonoClass * D.27491;
  unsigned int D.27492;
  int D.27493;
  int D.27494;
  _Bool D.27495;
  long int D.27496;
  long int D.27497;
  struct MonoType * D.27500;
  int D.27501;
  _Bool iftmp.9;
  int D.27505;
  unsigned char D.27508;
  _Bool D.27509;
  _Bool D.27510;
  _Bool D.27511;
  int D.27512;
  unsigned char D.27514;
  struct MonoInst * iftmp.10;
  int D.27518;
  int D.27519;
  unsigned int D.27520;
  sizetype D.27523;
  sizetype D.27524;
  sizetype D.27525;
  struct MonoInst * * D.27526;
  struct MonoInst * iftmp.11;
  int D.27529;
  unsigned int D.27530;
  sizetype D.27533;
  sizetype D.27534;
  struct MonoInst * * D.27535;
  _Bool D.27537;
  long int D.27538;
  long int D.27539;
  _Bool D.27542;
  long int D.27543;
  long int D.27544;
  unsigned char D.27547;
  unsigned char D.27548;
  unsigned char D.27549;
  unsigned char D.27550;
  int D.27554;
  struct MonoInst * D.27555;
  int D.27556;
  int D.27557;
  unsigned char D.27558;
  unsigned char D.27559;
  struct MonoClass * D.27560;
  unsigned int D.27561;
  int D.27562;
  struct MonoType * D.27565;
  int D.27566;
  _Bool iftmp.12;
  int D.27570;
  unsigned char D.27573;
  _Bool D.27574;
  _Bool D.27575;
  _Bool D.27576;
  int D.27577;
  unsigned char D.27579;
  struct MonoInst * iftmp.13;
  int D.27583;
  int D.27584;
  unsigned int D.27585;
  sizetype D.27588;
  sizetype D.27589;
  sizetype D.27590;
  struct MonoInst * * D.27591;
  struct MonoInst * iftmp.14;
  int D.27594;
  unsigned int D.27595;
  sizetype D.27598;
  sizetype D.27599;
  struct MonoInst * * D.27600;
  _Bool D.27602;
  long int D.27603;
  long int D.27604;
  _Bool D.27607;
  long int D.27608;
  long int D.27609;
  unsigned char D.27612;
  unsigned char D.27613;
  unsigned char D.27614;
  unsigned char D.27615;
  struct MonoInst * iftmp.15;
  unsigned char D.27627;
  unsigned char D.27628;
  struct MonoClass * D.27629;
  unsigned int D.27630;
  int D.27631;
  struct MonoType * D.27634;
  int D.27635;
  _Bool iftmp.16;
  int D.27639;
  unsigned char D.27642;
  _Bool D.27643;
  _Bool D.27644;
  _Bool D.27645;
  int D.27646;
  unsigned char D.27648;
  struct MonoInst * iftmp.17;
  int D.27652;
  int D.27653;
  unsigned int D.27654;
  sizetype D.27657;
  sizetype D.27658;
  sizetype D.27659;
  struct MonoInst * * D.27660;
  struct MonoInst * iftmp.18;
  int D.27663;
  unsigned int D.27664;
  sizetype D.27667;
  sizetype D.27668;
  struct MonoInst * * D.27669;
  _Bool D.27671;
  long int D.27672;
  long int D.27673;
  _Bool D.27676;
  long int D.27677;
  long int D.27678;
  unsigned char D.27681;
  unsigned char D.27682;
  unsigned char D.27683;
  unsigned char D.27684;
  unsigned char D.27688;
  unsigned char D.27689;
  int D.27692;
  struct MonoInst * D.27693;
  int D.27694;
  int D.27695;
  struct MonoInst * iftmp.19;
  struct MonoInst * iftmp.20;
  unsigned char D.27713;
  unsigned char D.27714;
  struct MonoClass * D.27715;
  unsigned int D.27716;
  int D.27717;
  struct MonoType * D.27720;
  int D.27721;
  _Bool iftmp.21;
  int D.27725;
  unsigned char D.27728;
  _Bool D.27729;
  _Bool D.27730;
  _Bool D.27731;
  int D.27732;
  unsigned char D.27734;
  struct MonoInst * iftmp.22;
  int D.27738;
  int D.27739;
  unsigned int D.27740;
  sizetype D.27743;
  sizetype D.27744;
  sizetype D.27745;
  struct MonoInst * * D.27746;
  struct MonoInst * iftmp.23;
  int D.27749;
  unsigned int D.27750;
  sizetype D.27753;
  sizetype D.27754;
  struct MonoInst * * D.27755;
  _Bool D.27757;
  long int D.27758;
  long int D.27759;
  _Bool D.27762;
  long int D.27763;
  long int D.27764;
  unsigned char D.27767;
  unsigned char D.27768;
  unsigned char D.27769;
  unsigned char D.27770;
  unsigned int D.27774;
  int D.27775;
  struct MonoInst * iftmp.24;
  unsigned int D.27787;
  unsigned int D.27791;
  int D.27792;
  int D.27795;
  _Bool iftmp.25;
  int D.27799;
  unsigned char D.27802;
  _Bool D.27803;
  _Bool D.27804;
  _Bool D.27805;
  int D.27806;
  struct MonoInst * iftmp.26;
  struct MonoInst * iftmp.27;
  _Bool D.27818;
  long int D.27819;
  long int D.27820;
  _Bool D.27823;
  long int D.27824;
  long int D.27825;
  unsigned char D.27828;
  unsigned char D.27829;
  unsigned char D.27830;
  unsigned char D.27831;
  int D.27835;
  struct MonoInst * iftmp.28;
  unsigned int D.27844;
  int D.27845;
  int D.27848;
  _Bool iftmp.29;
  int D.27852;
  unsigned char D.27855;
  _Bool D.27856;
  _Bool D.27857;
  _Bool D.27858;
  int D.27859;
  struct MonoInst * iftmp.30;
  struct MonoInst * iftmp.31;
  _Bool D.27871;
  long int D.27872;
  long int D.27873;
  _Bool D.27876;
  long int D.27877;
  long int D.27878;
  unsigned char D.27881;
  unsigned char D.27882;
  unsigned char D.27883;
  unsigned char D.27884;
  struct MonoInst * iftmp.32;
  int D.27889;
  unsigned int D.27890;
  unsigned int D.27893;
  unsigned int D.27894;
  struct MonoInst * * D.27895;
  struct MonoMethodSignature * D.27899;
  struct MonoType * D.27900;
  unsigned int D.27901;
  int D.27902;
  int D.27905;
  _Bool iftmp.33;
  int D.27909;
  unsigned char D.27912;
  _Bool D.27913;
  _Bool D.27914;
  _Bool D.27915;
  int D.27916;
  struct MonoInst * iftmp.34;
  struct MonoInst * iftmp.35;
  _Bool D.27928;
  long int D.27929;
  long int D.27930;
  _Bool D.27933;
  long int D.27934;
  long int D.27935;
  unsigned char D.27938;
  unsigned char D.27939;
  unsigned char D.27940;
  unsigned char D.27941;
  unsigned char D.27945;
  unsigned char D.27946;
  int D.27949;
  int D.27950;
  unsigned int D.27952;
  int D.27953;
  struct MonoInst * iftmp.36;
  int D.27958;
  unsigned int D.27959;
  unsigned int D.27962;
  unsigned int D.27963;
  struct MonoInst * * D.27964;
  struct MonoMethodSignature * D.27968;
  struct MonoType * D.27969;
  unsigned int D.27970;
  int D.27971;
  int D.27974;
  _Bool iftmp.37;
  int D.27978;
  unsigned char D.27981;
  _Bool D.27982;
  _Bool D.27983;
  _Bool D.27984;
  int D.27985;
  struct MonoInst * iftmp.38;
  struct MonoInst * iftmp.39;
  _Bool D.27997;
  long int D.27998;
  long int D.27999;
  _Bool D.28002;
  long int D.28003;
  long int D.28004;
  unsigned char D.28007;
  unsigned char D.28008;
  unsigned char D.28009;
  unsigned char D.28010;
  struct MonoClass * D.28016;
  int D.28018;
  struct MonoInst * D.28019;
  int D.28020;
  int D.28021;
  int D.28022;
  int D.28023;
  int D.28027;
  struct MonoInst * D.28028;
  int D.28029;
  int D.28030;
  int D.28034;
  struct MonoInst * D.28035;
  int D.28036;
  int D.28037;
  short unsigned int D.28041;
  int D.28042;
  unsigned int D.28044;
  int D.28045;
  int D.28046;
  struct MonoInst * D.28047;
  int D.28048;
  int D.28049;
  int D.28050;
  int D.28054;
  struct MonoInst * D.28055;
  int D.28056;
  int D.28057;
  int D.28058;
  int D.28062;
  struct MonoInst * D.28063;
  int D.28064;
  int D.28065;
  _Bool D.28071;
  long int D.28072;
  long int D.28073;
  struct MonoInst * D.28079;
  struct MonoInst * D.28081;
  short int D.28082;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

  D.27441 = cfg->mempool;
  D.27442 = mono_mempool_alloc0 (D.27441, 172);
  cfg->cbb = D.27442;
  first_bb = cfg->cbb;
  bb = cfg->bb_entry;
  goto <D.24213>;
  <D.24212>:
  {
    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.27443 = cfg->verbose_level;
        if (D.27443 > 2) goto <D.27444>; else goto <D.27445>;
        <D.27444>:
        mono_print_bb (bb, "BEFORE LOWER-VTYPE-OPTS ");
        <D.27445>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = 0B;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        restart = 1;
        goto <D.24210>;
        <D.24209>:
        restart = 0;
        ins = bb->code;
        goto <D.24207>;
        <D.24206>:
        D.27448 = ins->opcode;
        D.27449 = (int) D.27448;
        switch (D.27449) <default: <D.24205>, case 333: <D.24162>, case 334: <D.24165>, case 355: <D.24169>, case 356: <D.24170>, case 357: <D.24171>, case 390: <D.24155>, case 403: <D.24159>, case 431: <D.24144>, case 432: <D.24150>>
        <D.24144>:
        D.27451 = ins->sreg1;
        D.27452 = (unsigned int) D.27451;
        D.27453 = cfg->vreg_to_inst_len;
        if (D.27452 < D.27453) goto <D.27454>; else goto <D.27455>;
        <D.27454>:
        D.27456 = cfg->vreg_to_inst;
        D.27451 = ins->sreg1;
        D.27457 = (unsigned int) D.27451;
        D.27458 = D.27457 * 4;
        D.27459 = D.27456 + D.27458;
        iftmp.7 = *D.27459;
        goto <D.27460>;
        <D.27455>:
        iftmp.7 = 0B;
        <D.27460>:
        src_var = iftmp.7;
        D.27462 = ins->dreg;
        D.27463 = (unsigned int) D.27462;
        D.27453 = cfg->vreg_to_inst_len;
        if (D.27463 < D.27453) goto <D.27464>; else goto <D.27465>;
        <D.27464>:
        D.27456 = cfg->vreg_to_inst;
        D.27462 = ins->dreg;
        D.27466 = (unsigned int) D.27462;
        D.27467 = D.27466 * 4;
        D.27468 = D.27456 + D.27467;
        iftmp.8 = *D.27468;
        goto <D.27469>;
        <D.27465>:
        iftmp.8 = 0B;
        <D.27469>:
        dest_var = iftmp.8;
        D.27470 = ins->klass;
        D.27471 = D.27470 == 0B;
        D.27472 = (long int) D.27471;
        D.27473 = __builtin_expect (D.27472, 0);
        if (D.27473 != 0) goto <D.27474>; else goto <D.27475>;
        <D.27474>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1153, "ins->klass");
        <D.27475>:
        if (src_var == 0B) goto <D.27476>; else goto <D.27477>;
        <D.27476>:
        D.27462 = ins->dreg;
        D.27470 = ins->klass;
        D.27478 = &D.27470->byval_arg;
        src_var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27462);
        <D.27477>:
        if (dest_var == 0B) goto <D.27479>; else goto <D.27480>;
        <D.27479>:
        D.27462 = ins->dreg;
        D.27470 = ins->klass;
        D.27478 = &D.27470->byval_arg;
        dest_var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27462);
        <D.27480>:
        D.27481 = src_var->backend.is_pinvoke;
        if (D.27481 != 0) goto <D.27482>; else goto <D.27483>;
        <D.27482>:
        dest_var->backend.is_pinvoke = 1;
        <D.27483>:
        D.27441 = cfg->mempool;
        src = mono_mempool_alloc (D.27441, 48);
        src->data.op[1].const_val = 0;
        D.27484 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.27484;
        src->prev = 0B;
        D.27485 = src->prev;
        src->next = D.27485;
        src->opcode = 314;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.27486 = src->sreg3;
        src->sreg2 = D.27486;
        D.27487 = src->sreg2;
        src->sreg1 = D.27487;
        D.27488 = cfg->ip;
        src->cil_code = D.27488;
        src->data.op[0].p = src_var;
        D.27489 = src_var->flags;
        D.27490 = D.27489 | 16;
        src_var->flags = D.27490;
        src->type = 5;
        D.27491 = src_var->klass;
        src->klass = D.27491;
        D.27492 = alloc_dreg (cfg, 5);
        D.27493 = (int) D.27492;
        src->dreg = D.27493;
        cfg->has_indirection = 1;
        D.27494 = cfg->gsharedvt;
        D.27495 = D.27494 != 0;
        D.27496 = (long int) D.27495;
        D.27497 = __builtin_expect (D.27496, 0);
        if (D.27497 != 0) goto <D.27498>; else goto <D.27499>;
        <D.27498>:
        D.27500 = src_var->data.op[1].vtype;
        D.27501 = mini_is_gsharedvt_variable_type (cfg, D.27500);
        if (D.27501 != 0) goto <D.27502>; else goto <D.27503>;
        <D.27502>:
        handle_gsharedvt_ldaddr (cfg);
        <D.27503>:
        <D.27499>:
        D.27505 = mono_arch_is_soft_float ();
        if (D.27505 != 0) goto <D.27506>; else goto <D.27507>;
        <D.27506>:
        D.27508 = src_var->type;
        D.27509 = D.27508 == 2;
        D.27510 = D.27508 == 4;
        D.27511 = D.27509 | D.27510;
        D.27512 = (int) D.27511;
        iftmp.9 = (_Bool) D.27512;
        goto <D.27513>;
        <D.27507>:
        D.27514 = src_var->type;
        iftmp.9 = D.27514 == 2;
        <D.27513>:
        if (iftmp.9 != 0) goto <D.27515>; else goto <D.27516>;
        <D.27515>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.27518 = src_var->dreg;
          D.27519 = D.27518 + 1;
          D.27520 = (unsigned int) D.27519;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27520 < D.27453) goto <D.27521>; else goto <D.27522>;
          <D.27521>:
          D.27456 = cfg->vreg_to_inst;
          D.27518 = src_var->dreg;
          D.27523 = (sizetype) D.27518;
          D.27524 = D.27523 + 1;
          D.27525 = D.27524 * 4;
          D.27526 = D.27456 + D.27525;
          iftmp.10 = *D.27526;
          goto <D.27527>;
          <D.27522>:
          iftmp.10 = 0B;
          <D.27527>:
          var1 = iftmp.10;
          D.27518 = src_var->dreg;
          D.27529 = D.27518 + 2;
          D.27530 = (unsigned int) D.27529;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27530 < D.27453) goto <D.27531>; else goto <D.27532>;
          <D.27531>:
          D.27456 = cfg->vreg_to_inst;
          D.27518 = src_var->dreg;
          D.27523 = (sizetype) D.27518;
          D.27533 = D.27523 + 2;
          D.27534 = D.27533 * 4;
          D.27535 = D.27456 + D.27534;
          iftmp.11 = *D.27535;
          goto <D.27536>;
          <D.27532>:
          iftmp.11 = 0B;
          <D.27536>:
          var2 = iftmp.11;
          D.27537 = var1 == 0B;
          D.27538 = (long int) D.27537;
          D.27539 = __builtin_expect (D.27538, 0);
          if (D.27539 != 0) goto <D.27540>; else goto <D.27541>;
          <D.27540>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1165, "var1");
          <D.27541>:
          D.27542 = var2 == 0B;
          D.27543 = (long int) D.27542;
          D.27544 = __builtin_expect (D.27543, 0);
          if (D.27544 != 0) goto <D.27545>; else goto <D.27546>;
          <D.27545>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1165, "var2");
          <D.27546>:
          D.27547 = var1->flags;
          D.27548 = D.27547 | 16;
          var1->flags = D.27548;
          D.27549 = var2->flags;
          D.27550 = D.27549 | 16;
          var2->flags = D.27550;
        }
        <D.27516>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27551>; else goto <D.27552>;
        <D.27551>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = src;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        src->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        goto <D.27553>;
        <D.27552>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27553>:
        D.27441 = cfg->mempool;
        dest = mono_mempool_alloc (D.27441, 48);
        dest->data.op[1].const_val = 0;
        D.27554 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.27554;
        dest->prev = 0B;
        D.27555 = dest->prev;
        dest->next = D.27555;
        dest->opcode = 314;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.27556 = dest->sreg3;
        dest->sreg2 = D.27556;
        D.27557 = dest->sreg2;
        dest->sreg1 = D.27557;
        D.27488 = cfg->ip;
        dest->cil_code = D.27488;
        dest->data.op[0].p = dest_var;
        D.27558 = dest_var->flags;
        D.27559 = D.27558 | 16;
        dest_var->flags = D.27559;
        dest->type = 5;
        D.27560 = dest_var->klass;
        dest->klass = D.27560;
        D.27561 = alloc_dreg (cfg, 5);
        D.27562 = (int) D.27561;
        dest->dreg = D.27562;
        cfg->has_indirection = 1;
        D.27494 = cfg->gsharedvt;
        D.27495 = D.27494 != 0;
        D.27496 = (long int) D.27495;
        D.27497 = __builtin_expect (D.27496, 0);
        if (D.27497 != 0) goto <D.27563>; else goto <D.27564>;
        <D.27563>:
        D.27565 = dest_var->data.op[1].vtype;
        D.27566 = mini_is_gsharedvt_variable_type (cfg, D.27565);
        if (D.27566 != 0) goto <D.27567>; else goto <D.27568>;
        <D.27567>:
        handle_gsharedvt_ldaddr (cfg);
        <D.27568>:
        <D.27564>:
        D.27570 = mono_arch_is_soft_float ();
        if (D.27570 != 0) goto <D.27571>; else goto <D.27572>;
        <D.27571>:
        D.27573 = dest_var->type;
        D.27574 = D.27573 == 2;
        D.27575 = D.27573 == 4;
        D.27576 = D.27574 | D.27575;
        D.27577 = (int) D.27576;
        iftmp.12 = (_Bool) D.27577;
        goto <D.27578>;
        <D.27572>:
        D.27579 = dest_var->type;
        iftmp.12 = D.27579 == 2;
        <D.27578>:
        if (iftmp.12 != 0) goto <D.27580>; else goto <D.27581>;
        <D.27580>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.27583 = dest_var->dreg;
          D.27584 = D.27583 + 1;
          D.27585 = (unsigned int) D.27584;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27585 < D.27453) goto <D.27586>; else goto <D.27587>;
          <D.27586>:
          D.27456 = cfg->vreg_to_inst;
          D.27583 = dest_var->dreg;
          D.27588 = (sizetype) D.27583;
          D.27589 = D.27588 + 1;
          D.27590 = D.27589 * 4;
          D.27591 = D.27456 + D.27590;
          iftmp.13 = *D.27591;
          goto <D.27592>;
          <D.27587>:
          iftmp.13 = 0B;
          <D.27592>:
          var1 = iftmp.13;
          D.27583 = dest_var->dreg;
          D.27594 = D.27583 + 2;
          D.27595 = (unsigned int) D.27594;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27595 < D.27453) goto <D.27596>; else goto <D.27597>;
          <D.27596>:
          D.27456 = cfg->vreg_to_inst;
          D.27583 = dest_var->dreg;
          D.27588 = (sizetype) D.27583;
          D.27598 = D.27588 + 2;
          D.27599 = D.27598 * 4;
          D.27600 = D.27456 + D.27599;
          iftmp.14 = *D.27600;
          goto <D.27601>;
          <D.27597>:
          iftmp.14 = 0B;
          <D.27601>:
          var2 = iftmp.14;
          D.27602 = var1 == 0B;
          D.27603 = (long int) D.27602;
          D.27604 = __builtin_expect (D.27603, 0);
          if (D.27604 != 0) goto <D.27605>; else goto <D.27606>;
          <D.27605>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1166, "var1");
          <D.27606>:
          D.27607 = var2 == 0B;
          D.27608 = (long int) D.27607;
          D.27609 = __builtin_expect (D.27608, 0);
          if (D.27609 != 0) goto <D.27610>; else goto <D.27611>;
          <D.27610>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1166, "var2");
          <D.27611>:
          D.27612 = var1->flags;
          D.27613 = D.27612 | 16;
          var1->flags = D.27613;
          D.27614 = var2->flags;
          D.27615 = D.27614 | 16;
          var2->flags = D.27615;
        }
        <D.27581>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27616>; else goto <D.27617>;
        <D.27616>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = dest;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        dest->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        goto <D.27618>;
        <D.27617>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27618>:
        D.27481 = src_var->backend.is_pinvoke;
        D.27491 = src_var->klass;
        mini_emit_stobj (cfg, dest, src, D.27491, D.27481);
        goto <D.24149>;
        <D.24150>:
        D.27470 = ins->klass;
        D.27471 = D.27470 == 0B;
        D.27472 = (long int) D.27471;
        D.27473 = __builtin_expect (D.27472, 0);
        if (D.27473 != 0) goto <D.27619>; else goto <D.27620>;
        <D.27619>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1172, "ins->klass");
        <D.27620>:
        {
          struct MonoInst * var;

          D.27462 = ins->dreg;
          D.27463 = (unsigned int) D.27462;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27463 < D.27453) goto <D.27622>; else goto <D.27623>;
          <D.27622>:
          D.27456 = cfg->vreg_to_inst;
          D.27462 = ins->dreg;
          D.27466 = (unsigned int) D.27462;
          D.27467 = D.27466 * 4;
          D.27468 = D.27456 + D.27467;
          iftmp.15 = *D.27468;
          goto <D.27624>;
          <D.27623>:
          iftmp.15 = 0B;
          <D.27624>:
          var = iftmp.15;
          if (var == 0B) goto <D.27625>; else goto <D.27626>;
          <D.27625>:
          D.27462 = ins->dreg;
          D.27470 = ins->klass;
          D.27478 = &D.27470->byval_arg;
          var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27462);
          <D.27626>:
          D.27441 = cfg->mempool;
          dest = mono_mempool_alloc (D.27441, 48);
          dest->data.op[1].const_val = 0;
          D.27554 = dest->data.op[1].const_val;
          dest->data.op[0].const_val = D.27554;
          dest->prev = 0B;
          D.27555 = dest->prev;
          dest->next = D.27555;
          dest->opcode = 314;
          dest->flags = 0;
          dest->type = 0;
          dest->dreg = -1;
          dest->sreg3 = -1;
          D.27556 = dest->sreg3;
          dest->sreg2 = D.27556;
          D.27557 = dest->sreg2;
          dest->sreg1 = D.27557;
          D.27488 = cfg->ip;
          dest->cil_code = D.27488;
          dest->data.op[0].p = var;
          D.27627 = var->flags;
          D.27628 = D.27627 | 16;
          var->flags = D.27628;
          dest->type = 5;
          D.27629 = var->klass;
          dest->klass = D.27629;
          D.27630 = alloc_dreg (cfg, 5);
          D.27631 = (int) D.27630;
          dest->dreg = D.27631;
          cfg->has_indirection = 1;
          D.27494 = cfg->gsharedvt;
          D.27495 = D.27494 != 0;
          D.27496 = (long int) D.27495;
          D.27497 = __builtin_expect (D.27496, 0);
          if (D.27497 != 0) goto <D.27632>; else goto <D.27633>;
          <D.27632>:
          D.27634 = var->data.op[1].vtype;
          D.27635 = mini_is_gsharedvt_variable_type (cfg, D.27634);
          if (D.27635 != 0) goto <D.27636>; else goto <D.27637>;
          <D.27636>:
          handle_gsharedvt_ldaddr (cfg);
          <D.27637>:
          <D.27633>:
          D.27639 = mono_arch_is_soft_float ();
          if (D.27639 != 0) goto <D.27640>; else goto <D.27641>;
          <D.27640>:
          D.27642 = var->type;
          D.27643 = D.27642 == 2;
          D.27644 = D.27642 == 4;
          D.27645 = D.27643 | D.27644;
          D.27646 = (int) D.27645;
          iftmp.16 = (_Bool) D.27646;
          goto <D.27647>;
          <D.27641>:
          D.27648 = var->type;
          iftmp.16 = D.27648 == 2;
          <D.27647>:
          if (iftmp.16 != 0) goto <D.27649>; else goto <D.27650>;
          <D.27649>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.27652 = var->dreg;
            D.27653 = D.27652 + 1;
            D.27654 = (unsigned int) D.27653;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27654 < D.27453) goto <D.27655>; else goto <D.27656>;
            <D.27655>:
            D.27456 = cfg->vreg_to_inst;
            D.27652 = var->dreg;
            D.27657 = (sizetype) D.27652;
            D.27658 = D.27657 + 1;
            D.27659 = D.27658 * 4;
            D.27660 = D.27456 + D.27659;
            iftmp.17 = *D.27660;
            goto <D.27661>;
            <D.27656>:
            iftmp.17 = 0B;
            <D.27661>:
            var1 = iftmp.17;
            D.27652 = var->dreg;
            D.27663 = D.27652 + 2;
            D.27664 = (unsigned int) D.27663;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27664 < D.27453) goto <D.27665>; else goto <D.27666>;
            <D.27665>:
            D.27456 = cfg->vreg_to_inst;
            D.27652 = var->dreg;
            D.27657 = (sizetype) D.27652;
            D.27667 = D.27657 + 2;
            D.27668 = D.27667 * 4;
            D.27669 = D.27456 + D.27668;
            iftmp.18 = *D.27669;
            goto <D.27670>;
            <D.27666>:
            iftmp.18 = 0B;
            <D.27670>:
            var2 = iftmp.18;
            D.27671 = var1 == 0B;
            D.27672 = (long int) D.27671;
            D.27673 = __builtin_expect (D.27672, 0);
            if (D.27673 != 0) goto <D.27674>; else goto <D.27675>;
            <D.27674>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1174, "var1");
            <D.27675>:
            D.27676 = var2 == 0B;
            D.27677 = (long int) D.27676;
            D.27678 = __builtin_expect (D.27677, 0);
            if (D.27678 != 0) goto <D.27679>; else goto <D.27680>;
            <D.27679>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1174, "var2");
            <D.27680>:
            D.27681 = var1->flags;
            D.27682 = D.27681 | 16;
            var1->flags = D.27682;
            D.27683 = var2->flags;
            D.27684 = D.27683 | 16;
            var2->flags = D.27684;
          }
          <D.27650>:
        }
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27685>; else goto <D.27686>;
        <D.27685>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = dest;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        dest->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        goto <D.27687>;
        <D.27686>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27687>:
        D.27470 = ins->klass;
        mini_emit_initobj (cfg, dest, 0B, D.27470);
        D.27688 = BIT_FIELD_REF <*cfg, 8, 3424>;
        D.27689 = D.27688 & 128;
        if (D.27689 != 0) goto <D.27690>; else goto <D.27691>;
        <D.27690>:
        {
          struct MonoInst * tmp;

          D.27441 = cfg->mempool;
          tmp = mono_mempool_alloc (D.27441, 48);
          tmp->data.op[1].const_val = 0;
          D.27692 = tmp->data.op[1].const_val;
          tmp->data.op[0].const_val = D.27692;
          tmp->prev = 0B;
          D.27693 = tmp->prev;
          tmp->next = D.27693;
          tmp->opcode = 1000;
          tmp->flags = 0;
          tmp->type = 0;
          tmp->dreg = -1;
          tmp->sreg3 = -1;
          D.27694 = tmp->sreg3;
          tmp->sreg2 = D.27694;
          D.27695 = tmp->sreg2;
          tmp->sreg1 = D.27695;
          D.27488 = cfg->ip;
          tmp->cil_code = D.27488;
          D.27462 = ins->dreg;
          tmp->data.op[1].const_val = D.27462;
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          if (D.27447 != 0B) goto <D.27696>; else goto <D.27697>;
          <D.27696>:
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          D.27447->next = tmp;
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          tmp->prev = D.27447;
          D.27446 = cfg->cbb;
          D.27446->last_ins = tmp;
          goto <D.27698>;
          <D.27697>:
          D.27446 = cfg->cbb;
          D.27446 = cfg->cbb;
          D.27446->last_ins = tmp;
          D.27447 = D.27446->last_ins;
          D.27446->code = D.27447;
          <D.27698>:
        }
        <D.27691>:
        goto <D.24149>;
        <D.24155>:
        D.27451 = ins->sreg1;
        D.27452 = (unsigned int) D.27451;
        D.27453 = cfg->vreg_to_inst_len;
        if (D.27452 < D.27453) goto <D.27700>; else goto <D.27701>;
        <D.27700>:
        D.27456 = cfg->vreg_to_inst;
        D.27451 = ins->sreg1;
        D.27457 = (unsigned int) D.27451;
        D.27458 = D.27457 * 4;
        D.27459 = D.27456 + D.27458;
        iftmp.19 = *D.27459;
        goto <D.27702>;
        <D.27701>:
        iftmp.19 = 0B;
        <D.27702>:
        src_var = iftmp.19;
        if (src_var == 0B) goto <D.27703>; else goto <D.27704>;
        <D.27703>:
        D.27470 = ins->klass;
        D.27471 = D.27470 == 0B;
        D.27472 = (long int) D.27471;
        D.27473 = __builtin_expect (D.27472, 0);
        if (D.27473 != 0) goto <D.27705>; else goto <D.27706>;
        <D.27705>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1193, "ins->klass");
        <D.27706>:
        D.27451 = ins->sreg1;
        D.27470 = ins->klass;
        D.27478 = &D.27470->byval_arg;
        src_var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27451);
        <D.27704>:
        {
          struct MonoInst * var;

          D.27451 = ins->sreg1;
          D.27452 = (unsigned int) D.27451;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27452 < D.27453) goto <D.27708>; else goto <D.27709>;
          <D.27708>:
          D.27456 = cfg->vreg_to_inst;
          D.27451 = ins->sreg1;
          D.27457 = (unsigned int) D.27451;
          D.27458 = D.27457 * 4;
          D.27459 = D.27456 + D.27458;
          iftmp.20 = *D.27459;
          goto <D.27710>;
          <D.27709>:
          iftmp.20 = 0B;
          <D.27710>:
          var = iftmp.20;
          if (var == 0B) goto <D.27711>; else goto <D.27712>;
          <D.27711>:
          D.27451 = ins->sreg1;
          D.27470 = ins->klass;
          D.27478 = &D.27470->byval_arg;
          var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27451);
          <D.27712>:
          D.27441 = cfg->mempool;
          src = mono_mempool_alloc (D.27441, 48);
          src->data.op[1].const_val = 0;
          D.27484 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.27484;
          src->prev = 0B;
          D.27485 = src->prev;
          src->next = D.27485;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.27486 = src->sreg3;
          src->sreg2 = D.27486;
          D.27487 = src->sreg2;
          src->sreg1 = D.27487;
          D.27488 = cfg->ip;
          src->cil_code = D.27488;
          src->data.op[0].p = var;
          D.27713 = var->flags;
          D.27714 = D.27713 | 16;
          var->flags = D.27714;
          src->type = 5;
          D.27715 = var->klass;
          src->klass = D.27715;
          D.27716 = alloc_dreg (cfg, 5);
          D.27717 = (int) D.27716;
          src->dreg = D.27717;
          cfg->has_indirection = 1;
          D.27494 = cfg->gsharedvt;
          D.27495 = D.27494 != 0;
          D.27496 = (long int) D.27495;
          D.27497 = __builtin_expect (D.27496, 0);
          if (D.27497 != 0) goto <D.27718>; else goto <D.27719>;
          <D.27718>:
          D.27720 = var->data.op[1].vtype;
          D.27721 = mini_is_gsharedvt_variable_type (cfg, D.27720);
          if (D.27721 != 0) goto <D.27722>; else goto <D.27723>;
          <D.27722>:
          handle_gsharedvt_ldaddr (cfg);
          <D.27723>:
          <D.27719>:
          D.27725 = mono_arch_is_soft_float ();
          if (D.27725 != 0) goto <D.27726>; else goto <D.27727>;
          <D.27726>:
          D.27728 = var->type;
          D.27729 = D.27728 == 2;
          D.27730 = D.27728 == 4;
          D.27731 = D.27729 | D.27730;
          D.27732 = (int) D.27731;
          iftmp.21 = (_Bool) D.27732;
          goto <D.27733>;
          <D.27727>:
          D.27734 = var->type;
          iftmp.21 = D.27734 == 2;
          <D.27733>:
          if (iftmp.21 != 0) goto <D.27735>; else goto <D.27736>;
          <D.27735>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.27738 = var->dreg;
            D.27739 = D.27738 + 1;
            D.27740 = (unsigned int) D.27739;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27740 < D.27453) goto <D.27741>; else goto <D.27742>;
            <D.27741>:
            D.27456 = cfg->vreg_to_inst;
            D.27738 = var->dreg;
            D.27743 = (sizetype) D.27738;
            D.27744 = D.27743 + 1;
            D.27745 = D.27744 * 4;
            D.27746 = D.27456 + D.27745;
            iftmp.22 = *D.27746;
            goto <D.27747>;
            <D.27742>:
            iftmp.22 = 0B;
            <D.27747>:
            var1 = iftmp.22;
            D.27738 = var->dreg;
            D.27749 = D.27738 + 2;
            D.27750 = (unsigned int) D.27749;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27750 < D.27453) goto <D.27751>; else goto <D.27752>;
            <D.27751>:
            D.27456 = cfg->vreg_to_inst;
            D.27738 = var->dreg;
            D.27743 = (sizetype) D.27738;
            D.27753 = D.27743 + 2;
            D.27754 = D.27753 * 4;
            D.27755 = D.27456 + D.27754;
            iftmp.23 = *D.27755;
            goto <D.27756>;
            <D.27752>:
            iftmp.23 = 0B;
            <D.27756>:
            var2 = iftmp.23;
            D.27757 = var1 == 0B;
            D.27758 = (long int) D.27757;
            D.27759 = __builtin_expect (D.27758, 0);
            if (D.27759 != 0) goto <D.27760>; else goto <D.27761>;
            <D.27760>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1197, "var1");
            <D.27761>:
            D.27762 = var2 == 0B;
            D.27763 = (long int) D.27762;
            D.27764 = __builtin_expect (D.27763, 0);
            if (D.27764 != 0) goto <D.27765>; else goto <D.27766>;
            <D.27765>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1197, "var2");
            <D.27766>:
            D.27767 = var1->flags;
            D.27768 = D.27767 | 16;
            var1->flags = D.27768;
            D.27769 = var2->flags;
            D.27770 = D.27769 | 16;
            var2->flags = D.27770;
          }
          <D.27736>:
        }
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27771>; else goto <D.27772>;
        <D.27771>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = src;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        src->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        goto <D.27773>;
        <D.27772>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27773>:
        D.27774 = alloc_preg (cfg);
        dreg = (int) D.27774;
        D.27441 = cfg->mempool;
        dest = mono_mempool_alloc (D.27441, 48);
        dest->data.op[1].const_val = 0;
        D.27554 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.27554;
        dest->prev = 0B;
        D.27555 = dest->prev;
        dest->next = D.27555;
        dest->opcode = 433;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.27556 = dest->sreg3;
        dest->sreg2 = D.27556;
        D.27557 = dest->sreg2;
        dest->sreg1 = D.27557;
        D.27488 = cfg->ip;
        dest->cil_code = D.27488;
        dest->dreg = dreg;
        D.27462 = ins->dreg;
        dest->sreg1 = D.27462;
        D.27775 = ins->data.op[0].const_val;
        dest->data.op[1].const_val = D.27775;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27776>; else goto <D.27777>;
        <D.27776>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = dest;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        dest->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        goto <D.27778>;
        <D.27777>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27778>:
        D.27481 = src_var->backend.is_pinvoke;
        D.27491 = src_var->klass;
        mini_emit_stobj (cfg, dest, src, D.27491, D.27481);
        goto <D.24149>;
        <D.24159>:
        D.27470 = ins->klass;
        D.27471 = D.27470 == 0B;
        D.27472 = (long int) D.27471;
        D.27473 = __builtin_expect (D.27472, 0);
        if (D.27473 != 0) goto <D.27779>; else goto <D.27780>;
        <D.27779>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1205, "ins->klass");
        <D.27780>:
        D.27462 = ins->dreg;
        D.27463 = (unsigned int) D.27462;
        D.27453 = cfg->vreg_to_inst_len;
        if (D.27463 < D.27453) goto <D.27782>; else goto <D.27783>;
        <D.27782>:
        D.27456 = cfg->vreg_to_inst;
        D.27462 = ins->dreg;
        D.27466 = (unsigned int) D.27462;
        D.27467 = D.27466 * 4;
        D.27468 = D.27456 + D.27467;
        iftmp.24 = *D.27468;
        goto <D.27784>;
        <D.27783>:
        iftmp.24 = 0B;
        <D.27784>:
        dest_var = iftmp.24;
        if (dest_var == 0B) goto <D.27785>; else goto <D.27786>;
        <D.27785>:
        D.27462 = ins->dreg;
        D.27470 = ins->klass;
        D.27478 = &D.27470->byval_arg;
        dest_var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27462);
        <D.27786>:
        D.27787 = alloc_preg (cfg);
        dreg = (int) D.27787;
        D.27441 = cfg->mempool;
        src = mono_mempool_alloc (D.27441, 48);
        src->data.op[1].const_val = 0;
        D.27484 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.27484;
        src->prev = 0B;
        D.27485 = src->prev;
        src->next = D.27485;
        src->opcode = 433;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.27486 = src->sreg3;
        src->sreg2 = D.27486;
        D.27487 = src->sreg2;
        src->sreg1 = D.27487;
        D.27488 = cfg->ip;
        src->cil_code = D.27488;
        src->dreg = dreg;
        D.27451 = ins->sreg1;
        src->sreg1 = D.27451;
        D.27775 = ins->data.op[0].const_val;
        src->data.op[1].const_val = D.27775;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27788>; else goto <D.27789>;
        <D.27788>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = src;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        src->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        goto <D.27790>;
        <D.27789>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27790>:
        D.27441 = cfg->mempool;
        dest = mono_mempool_alloc (D.27441, 48);
        dest->data.op[1].const_val = 0;
        D.27554 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.27554;
        dest->prev = 0B;
        D.27555 = dest->prev;
        dest->next = D.27555;
        dest->opcode = 314;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.27556 = dest->sreg3;
        dest->sreg2 = D.27556;
        D.27557 = dest->sreg2;
        dest->sreg1 = D.27557;
        D.27488 = cfg->ip;
        dest->cil_code = D.27488;
        dest->data.op[0].p = dest_var;
        D.27558 = dest_var->flags;
        D.27559 = D.27558 | 16;
        dest_var->flags = D.27559;
        dest->type = 5;
        D.27560 = dest_var->klass;
        dest->klass = D.27560;
        D.27791 = alloc_dreg (cfg, 5);
        D.27792 = (int) D.27791;
        dest->dreg = D.27792;
        cfg->has_indirection = 1;
        D.27494 = cfg->gsharedvt;
        D.27495 = D.27494 != 0;
        D.27496 = (long int) D.27495;
        D.27497 = __builtin_expect (D.27496, 0);
        if (D.27497 != 0) goto <D.27793>; else goto <D.27794>;
        <D.27793>:
        D.27565 = dest_var->data.op[1].vtype;
        D.27795 = mini_is_gsharedvt_variable_type (cfg, D.27565);
        if (D.27795 != 0) goto <D.27796>; else goto <D.27797>;
        <D.27796>:
        handle_gsharedvt_ldaddr (cfg);
        <D.27797>:
        <D.27794>:
        D.27799 = mono_arch_is_soft_float ();
        if (D.27799 != 0) goto <D.27800>; else goto <D.27801>;
        <D.27800>:
        D.27802 = dest_var->type;
        D.27803 = D.27802 == 2;
        D.27804 = D.27802 == 4;
        D.27805 = D.27803 | D.27804;
        D.27806 = (int) D.27805;
        iftmp.25 = (_Bool) D.27806;
        goto <D.27807>;
        <D.27801>:
        D.27579 = dest_var->type;
        iftmp.25 = D.27579 == 2;
        <D.27807>:
        if (iftmp.25 != 0) goto <D.27808>; else goto <D.27809>;
        <D.27808>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.27583 = dest_var->dreg;
          D.27584 = D.27583 + 1;
          D.27585 = (unsigned int) D.27584;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27585 < D.27453) goto <D.27811>; else goto <D.27812>;
          <D.27811>:
          D.27456 = cfg->vreg_to_inst;
          D.27583 = dest_var->dreg;
          D.27588 = (sizetype) D.27583;
          D.27589 = D.27588 + 1;
          D.27590 = D.27589 * 4;
          D.27591 = D.27456 + D.27590;
          iftmp.26 = *D.27591;
          goto <D.27813>;
          <D.27812>:
          iftmp.26 = 0B;
          <D.27813>:
          var1 = iftmp.26;
          D.27583 = dest_var->dreg;
          D.27594 = D.27583 + 2;
          D.27595 = (unsigned int) D.27594;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27595 < D.27453) goto <D.27815>; else goto <D.27816>;
          <D.27815>:
          D.27456 = cfg->vreg_to_inst;
          D.27583 = dest_var->dreg;
          D.27588 = (sizetype) D.27583;
          D.27598 = D.27588 + 2;
          D.27599 = D.27598 * 4;
          D.27600 = D.27456 + D.27599;
          iftmp.27 = *D.27600;
          goto <D.27817>;
          <D.27816>:
          iftmp.27 = 0B;
          <D.27817>:
          var2 = iftmp.27;
          D.27818 = var1 == 0B;
          D.27819 = (long int) D.27818;
          D.27820 = __builtin_expect (D.27819, 0);
          if (D.27820 != 0) goto <D.27821>; else goto <D.27822>;
          <D.27821>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1215, "var1");
          <D.27822>:
          D.27823 = var2 == 0B;
          D.27824 = (long int) D.27823;
          D.27825 = __builtin_expect (D.27824, 0);
          if (D.27825 != 0) goto <D.27826>; else goto <D.27827>;
          <D.27826>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1215, "var2");
          <D.27827>:
          D.27828 = var1->flags;
          D.27829 = D.27828 | 16;
          var1->flags = D.27829;
          D.27830 = var2->flags;
          D.27831 = D.27830 | 16;
          var2->flags = D.27831;
        }
        <D.27809>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27832>; else goto <D.27833>;
        <D.27832>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = dest;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        dest->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        goto <D.27834>;
        <D.27833>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = dest;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27834>:
        D.27835 = dest_var->backend.is_pinvoke;
        D.27560 = dest_var->klass;
        mini_emit_stobj (cfg, dest, src, D.27560, D.27835);
        goto <D.24149>;
        <D.24162>:
        D.27470 = ins->klass;
        D.27471 = D.27470 == 0B;
        D.27472 = (long int) D.27471;
        D.27473 = __builtin_expect (D.27472, 0);
        if (D.27473 != 0) goto <D.27836>; else goto <D.27837>;
        <D.27836>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1220, "ins->klass");
        <D.27837>:
        D.27451 = ins->sreg1;
        D.27452 = (unsigned int) D.27451;
        D.27453 = cfg->vreg_to_inst_len;
        if (D.27452 < D.27453) goto <D.27839>; else goto <D.27840>;
        <D.27839>:
        D.27456 = cfg->vreg_to_inst;
        D.27451 = ins->sreg1;
        D.27457 = (unsigned int) D.27451;
        D.27458 = D.27457 * 4;
        D.27459 = D.27456 + D.27458;
        iftmp.28 = *D.27459;
        goto <D.27841>;
        <D.27840>:
        iftmp.28 = 0B;
        <D.27841>:
        src_var = iftmp.28;
        if (src_var == 0B) goto <D.27842>; else goto <D.27843>;
        <D.27842>:
        D.27451 = ins->sreg1;
        D.27470 = ins->klass;
        D.27478 = &D.27470->byval_arg;
        src_var = mono_compile_create_var_for_vreg (cfg, D.27478, 329, D.27451);
        <D.27843>:
        D.27441 = cfg->mempool;
        src = mono_mempool_alloc (D.27441, 48);
        src->data.op[1].const_val = 0;
        D.27484 = src->data.op[1].const_val;
        src->data.op[0].const_val = D.27484;
        src->prev = 0B;
        D.27485 = src->prev;
        src->next = D.27485;
        src->opcode = 314;
        src->flags = 0;
        src->type = 0;
        src->dreg = -1;
        src->sreg3 = -1;
        D.27486 = src->sreg3;
        src->sreg2 = D.27486;
        D.27487 = src->sreg2;
        src->sreg1 = D.27487;
        D.27488 = cfg->ip;
        src->cil_code = D.27488;
        src->data.op[0].p = src_var;
        D.27489 = src_var->flags;
        D.27490 = D.27489 | 16;
        src_var->flags = D.27490;
        src->type = 5;
        D.27491 = src_var->klass;
        src->klass = D.27491;
        D.27844 = alloc_dreg (cfg, 5);
        D.27845 = (int) D.27844;
        src->dreg = D.27845;
        cfg->has_indirection = 1;
        D.27494 = cfg->gsharedvt;
        D.27495 = D.27494 != 0;
        D.27496 = (long int) D.27495;
        D.27497 = __builtin_expect (D.27496, 0);
        if (D.27497 != 0) goto <D.27846>; else goto <D.27847>;
        <D.27846>:
        D.27500 = src_var->data.op[1].vtype;
        D.27848 = mini_is_gsharedvt_variable_type (cfg, D.27500);
        if (D.27848 != 0) goto <D.27849>; else goto <D.27850>;
        <D.27849>:
        handle_gsharedvt_ldaddr (cfg);
        <D.27850>:
        <D.27847>:
        D.27852 = mono_arch_is_soft_float ();
        if (D.27852 != 0) goto <D.27853>; else goto <D.27854>;
        <D.27853>:
        D.27855 = src_var->type;
        D.27856 = D.27855 == 2;
        D.27857 = D.27855 == 4;
        D.27858 = D.27856 | D.27857;
        D.27859 = (int) D.27858;
        iftmp.29 = (_Bool) D.27859;
        goto <D.27860>;
        <D.27854>:
        D.27514 = src_var->type;
        iftmp.29 = D.27514 == 2;
        <D.27860>:
        if (iftmp.29 != 0) goto <D.27861>; else goto <D.27862>;
        <D.27861>:
        {
          struct MonoInst * var1;
          struct MonoInst * var2;

          D.27518 = src_var->dreg;
          D.27519 = D.27518 + 1;
          D.27520 = (unsigned int) D.27519;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27520 < D.27453) goto <D.27864>; else goto <D.27865>;
          <D.27864>:
          D.27456 = cfg->vreg_to_inst;
          D.27518 = src_var->dreg;
          D.27523 = (sizetype) D.27518;
          D.27524 = D.27523 + 1;
          D.27525 = D.27524 * 4;
          D.27526 = D.27456 + D.27525;
          iftmp.30 = *D.27526;
          goto <D.27866>;
          <D.27865>:
          iftmp.30 = 0B;
          <D.27866>:
          var1 = iftmp.30;
          D.27518 = src_var->dreg;
          D.27529 = D.27518 + 2;
          D.27530 = (unsigned int) D.27529;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27530 < D.27453) goto <D.27868>; else goto <D.27869>;
          <D.27868>:
          D.27456 = cfg->vreg_to_inst;
          D.27518 = src_var->dreg;
          D.27523 = (sizetype) D.27518;
          D.27533 = D.27523 + 2;
          D.27534 = D.27533 * 4;
          D.27535 = D.27456 + D.27534;
          iftmp.31 = *D.27535;
          goto <D.27870>;
          <D.27869>:
          iftmp.31 = 0B;
          <D.27870>:
          var2 = iftmp.31;
          D.27871 = var1 == 0B;
          D.27872 = (long int) D.27871;
          D.27873 = __builtin_expect (D.27872, 0);
          if (D.27873 != 0) goto <D.27874>; else goto <D.27875>;
          <D.27874>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1225, "var1");
          <D.27875>:
          D.27876 = var2 == 0B;
          D.27877 = (long int) D.27876;
          D.27878 = __builtin_expect (D.27877, 0);
          if (D.27878 != 0) goto <D.27879>; else goto <D.27880>;
          <D.27879>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1225, "var2");
          <D.27880>:
          D.27881 = var1->flags;
          D.27882 = D.27881 | 16;
          var1->flags = D.27882;
          D.27883 = var2->flags;
          D.27884 = D.27883 | 16;
          var2->flags = D.27884;
        }
        <D.27862>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        if (D.27447 != 0B) goto <D.27885>; else goto <D.27886>;
        <D.27885>:
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        D.27447->next = src;
        D.27446 = cfg->cbb;
        D.27447 = D.27446->last_ins;
        src->prev = D.27447;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        goto <D.27887>;
        <D.27886>:
        D.27446 = cfg->cbb;
        D.27446 = cfg->cbb;
        D.27446->last_ins = src;
        D.27447 = D.27446->last_ins;
        D.27446->code = D.27447;
        <D.27887>:
        mono_arch_emit_outarg_vt (cfg, ins, src);
        restart = 1;
        goto <D.24149>;
        <D.24165>:
        {
          struct MonoCallInst * call;

          call = ins->data.op[1].p;
          D.27889 = call->inst.dreg;
          D.27890 = (unsigned int) D.27889;
          D.27453 = cfg->vreg_to_inst_len;
          if (D.27890 < D.27453) goto <D.27891>; else goto <D.27892>;
          <D.27891>:
          D.27456 = cfg->vreg_to_inst;
          D.27889 = call->inst.dreg;
          D.27893 = (unsigned int) D.27889;
          D.27894 = D.27893 * 4;
          D.27895 = D.27456 + D.27894;
          iftmp.32 = *D.27895;
          goto <D.27896>;
          <D.27892>:
          iftmp.32 = 0B;
          <D.27896>:
          src_var = iftmp.32;
          if (src_var == 0B) goto <D.27897>; else goto <D.27898>;
          <D.27897>:
          D.27889 = call->inst.dreg;
          D.27899 = call->signature;
          D.27900 = D.27899->ret;
          src_var = mono_compile_create_var_for_vreg (cfg, D.27900, 329, D.27889);
          <D.27898>:
          D.27441 = cfg->mempool;
          src = mono_mempool_alloc (D.27441, 48);
          src->data.op[1].const_val = 0;
          D.27484 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.27484;
          src->prev = 0B;
          D.27485 = src->prev;
          src->next = D.27485;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.27486 = src->sreg3;
          src->sreg2 = D.27486;
          D.27487 = src->sreg2;
          src->sreg1 = D.27487;
          D.27488 = cfg->ip;
          src->cil_code = D.27488;
          src->data.op[0].p = src_var;
          D.27489 = src_var->flags;
          D.27490 = D.27489 | 16;
          src_var->flags = D.27490;
          src->type = 5;
          D.27491 = src_var->klass;
          src->klass = D.27491;
          D.27901 = alloc_dreg (cfg, 5);
          D.27902 = (int) D.27901;
          src->dreg = D.27902;
          cfg->has_indirection = 1;
          D.27494 = cfg->gsharedvt;
          D.27495 = D.27494 != 0;
          D.27496 = (long int) D.27495;
          D.27497 = __builtin_expect (D.27496, 0);
          if (D.27497 != 0) goto <D.27903>; else goto <D.27904>;
          <D.27903>:
          D.27500 = src_var->data.op[1].vtype;
          D.27905 = mini_is_gsharedvt_variable_type (cfg, D.27500);
          if (D.27905 != 0) goto <D.27906>; else goto <D.27907>;
          <D.27906>:
          handle_gsharedvt_ldaddr (cfg);
          <D.27907>:
          <D.27904>:
          D.27909 = mono_arch_is_soft_float ();
          if (D.27909 != 0) goto <D.27910>; else goto <D.27911>;
          <D.27910>:
          D.27912 = src_var->type;
          D.27913 = D.27912 == 2;
          D.27914 = D.27912 == 4;
          D.27915 = D.27913 | D.27914;
          D.27916 = (int) D.27915;
          iftmp.33 = (_Bool) D.27916;
          goto <D.27917>;
          <D.27911>:
          D.27514 = src_var->type;
          iftmp.33 = D.27514 == 2;
          <D.27917>:
          if (iftmp.33 != 0) goto <D.27918>; else goto <D.27919>;
          <D.27918>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.27518 = src_var->dreg;
            D.27519 = D.27518 + 1;
            D.27520 = (unsigned int) D.27519;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27520 < D.27453) goto <D.27921>; else goto <D.27922>;
            <D.27921>:
            D.27456 = cfg->vreg_to_inst;
            D.27518 = src_var->dreg;
            D.27523 = (sizetype) D.27518;
            D.27524 = D.27523 + 1;
            D.27525 = D.27524 * 4;
            D.27526 = D.27456 + D.27525;
            iftmp.34 = *D.27526;
            goto <D.27923>;
            <D.27922>:
            iftmp.34 = 0B;
            <D.27923>:
            var1 = iftmp.34;
            D.27518 = src_var->dreg;
            D.27529 = D.27518 + 2;
            D.27530 = (unsigned int) D.27529;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27530 < D.27453) goto <D.27925>; else goto <D.27926>;
            <D.27925>:
            D.27456 = cfg->vreg_to_inst;
            D.27518 = src_var->dreg;
            D.27523 = (sizetype) D.27518;
            D.27533 = D.27523 + 2;
            D.27534 = D.27533 * 4;
            D.27535 = D.27456 + D.27534;
            iftmp.35 = *D.27535;
            goto <D.27927>;
            <D.27926>:
            iftmp.35 = 0B;
            <D.27927>:
            var2 = iftmp.35;
            D.27928 = var1 == 0B;
            D.27929 = (long int) D.27928;
            D.27930 = __builtin_expect (D.27929, 0);
            if (D.27930 != 0) goto <D.27931>; else goto <D.27932>;
            <D.27931>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1241, "var1");
            <D.27932>:
            D.27933 = var2 == 0B;
            D.27934 = (long int) D.27933;
            D.27935 = __builtin_expect (D.27934, 0);
            if (D.27935 != 0) goto <D.27936>; else goto <D.27937>;
            <D.27936>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1241, "var2");
            <D.27937>:
            D.27938 = var1->flags;
            D.27939 = D.27938 | 16;
            var1->flags = D.27939;
            D.27940 = var2->flags;
            D.27941 = D.27940 | 16;
            var2->flags = D.27941;
          }
          <D.27919>:
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          if (D.27447 != 0B) goto <D.27942>; else goto <D.27943>;
          <D.27942>:
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          D.27447->next = src;
          D.27446 = cfg->cbb;
          D.27447 = D.27446->last_ins;
          src->prev = D.27447;
          D.27446 = cfg->cbb;
          D.27446->last_ins = src;
          goto <D.27944>;
          <D.27943>:
          D.27446 = cfg->cbb;
          D.27446 = cfg->cbb;
          D.27446->last_ins = src;
          D.27447 = D.27446->last_ins;
          D.27446->code = D.27447;
          <D.27944>:
          D.27462 = ins->dreg;
          src->dreg = D.27462;
          goto <D.24149>;
        }
        <D.24169>:
        <D.24170>:
        <D.24171>:
        {
          struct MonoCallInst * call;
          int size;

          call = ins;
          D.27945 = BIT_FIELD_REF <*call, 8, 640>;
          D.27946 = D.27945 & 8;
          if (D.27946 != 0) goto <D.27947>; else goto <D.27948>;
          <D.27947>:
          {
            struct MonoCallInst * call2;

            D.27441 = cfg->mempool;
            call2 = mono_mempool_alloc0 (D.27441, 108);
            call2->inst.opcode = 316;
            call2->inst.dreg = -1;
            call2->inst.sreg3 = -1;
            D.27949 = call2->inst.sreg3;
            call2->inst.sreg2 = D.27949;
            D.27950 = call2->inst.sreg2;
            call2->inst.sreg1 = D.27950;
            D.27488 = cfg->ip;
            call2->inst.cil_code = D.27488;
            memcpy (call2, call, 108);
            D.27448 = ins->opcode;
            D.27449 = (int) D.27448;
            switch (D.27449) <default: <D.27951>, case 355: <D.24175>, case 356: <D.24177>, case 357: <D.24178>>
            <D.24175>:
            call2->inst.opcode = 346;
            goto <D.24176>;
            <D.24177>:
            call2->inst.opcode = 347;
            goto <D.24176>;
            <D.24178>:
            call2->inst.opcode = 348;
            goto <D.24176>;
            <D.27951>:
            <D.24176>:
            D.27952 = alloc_preg (cfg);
            D.27953 = (int) D.27952;
            call2->inst.dreg = D.27953;
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            if (D.27447 != 0B) goto <D.27954>; else goto <D.27955>;
            <D.27954>:
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            D.27447->next = call2;
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            MEM[(struct MonoInst *)call2].prev = D.27447;
            D.27446 = cfg->cbb;
            D.27446->last_ins = call2;
            goto <D.27956>;
            <D.27955>:
            D.27446 = cfg->cbb;
            D.27446 = cfg->cbb;
            D.27446->last_ins = call2;
            D.27447 = D.27446->last_ins;
            D.27446->code = D.27447;
            <D.27956>:
            D.27958 = call->inst.dreg;
            D.27959 = (unsigned int) D.27958;
            D.27453 = cfg->vreg_to_inst_len;
            if (D.27959 < D.27453) goto <D.27960>; else goto <D.27961>;
            <D.27960>:
            D.27456 = cfg->vreg_to_inst;
            D.27958 = call->inst.dreg;
            D.27962 = (unsigned int) D.27958;
            D.27963 = D.27962 * 4;
            D.27964 = D.27456 + D.27963;
            iftmp.36 = *D.27964;
            goto <D.27965>;
            <D.27961>:
            iftmp.36 = 0B;
            <D.27965>:
            dest_var = iftmp.36;
            if (dest_var == 0B) goto <D.27966>; else goto <D.27967>;
            <D.27966>:
            D.27958 = call->inst.dreg;
            D.27968 = call->signature;
            D.27969 = D.27968->ret;
            dest_var = mono_compile_create_var_for_vreg (cfg, D.27969, 329, D.27958);
            <D.27967>:
            D.27441 = cfg->mempool;
            dest = mono_mempool_alloc (D.27441, 48);
            dest->data.op[1].const_val = 0;
            D.27554 = dest->data.op[1].const_val;
            dest->data.op[0].const_val = D.27554;
            dest->prev = 0B;
            D.27555 = dest->prev;
            dest->next = D.27555;
            dest->opcode = 314;
            dest->flags = 0;
            dest->type = 0;
            dest->dreg = -1;
            dest->sreg3 = -1;
            D.27556 = dest->sreg3;
            dest->sreg2 = D.27556;
            D.27557 = dest->sreg2;
            dest->sreg1 = D.27557;
            D.27488 = cfg->ip;
            dest->cil_code = D.27488;
            dest->data.op[0].p = dest_var;
            D.27558 = dest_var->flags;
            D.27559 = D.27558 | 16;
            dest_var->flags = D.27559;
            dest->type = 5;
            D.27560 = dest_var->klass;
            dest->klass = D.27560;
            D.27970 = alloc_dreg (cfg, 5);
            D.27971 = (int) D.27970;
            dest->dreg = D.27971;
            cfg->has_indirection = 1;
            D.27494 = cfg->gsharedvt;
            D.27495 = D.27494 != 0;
            D.27496 = (long int) D.27495;
            D.27497 = __builtin_expect (D.27496, 0);
            if (D.27497 != 0) goto <D.27972>; else goto <D.27973>;
            <D.27972>:
            D.27565 = dest_var->data.op[1].vtype;
            D.27974 = mini_is_gsharedvt_variable_type (cfg, D.27565);
            if (D.27974 != 0) goto <D.27975>; else goto <D.27976>;
            <D.27975>:
            handle_gsharedvt_ldaddr (cfg);
            <D.27976>:
            <D.27973>:
            D.27978 = mono_arch_is_soft_float ();
            if (D.27978 != 0) goto <D.27979>; else goto <D.27980>;
            <D.27979>:
            D.27981 = dest_var->type;
            D.27982 = D.27981 == 2;
            D.27983 = D.27981 == 4;
            D.27984 = D.27982 | D.27983;
            D.27985 = (int) D.27984;
            iftmp.37 = (_Bool) D.27985;
            goto <D.27986>;
            <D.27980>:
            D.27579 = dest_var->type;
            iftmp.37 = D.27579 == 2;
            <D.27986>:
            if (iftmp.37 != 0) goto <D.27987>; else goto <D.27988>;
            <D.27987>:
            {
              struct MonoInst * var1;
              struct MonoInst * var2;

              D.27583 = dest_var->dreg;
              D.27584 = D.27583 + 1;
              D.27585 = (unsigned int) D.27584;
              D.27453 = cfg->vreg_to_inst_len;
              if (D.27585 < D.27453) goto <D.27990>; else goto <D.27991>;
              <D.27990>:
              D.27456 = cfg->vreg_to_inst;
              D.27583 = dest_var->dreg;
              D.27588 = (sizetype) D.27583;
              D.27589 = D.27588 + 1;
              D.27590 = D.27589 * 4;
              D.27591 = D.27456 + D.27590;
              iftmp.38 = *D.27591;
              goto <D.27992>;
              <D.27991>:
              iftmp.38 = 0B;
              <D.27992>:
              var1 = iftmp.38;
              D.27583 = dest_var->dreg;
              D.27594 = D.27583 + 2;
              D.27595 = (unsigned int) D.27594;
              D.27453 = cfg->vreg_to_inst_len;
              if (D.27595 < D.27453) goto <D.27994>; else goto <D.27995>;
              <D.27994>:
              D.27456 = cfg->vreg_to_inst;
              D.27583 = dest_var->dreg;
              D.27588 = (sizetype) D.27583;
              D.27598 = D.27588 + 2;
              D.27599 = D.27598 * 4;
              D.27600 = D.27456 + D.27599;
              iftmp.39 = *D.27600;
              goto <D.27996>;
              <D.27995>:
              iftmp.39 = 0B;
              <D.27996>:
              var2 = iftmp.39;
              D.27997 = var1 == 0B;
              D.27998 = (long int) D.27997;
              D.27999 = __builtin_expect (D.27998, 0);
              if (D.27999 != 0) goto <D.28000>; else goto <D.28001>;
              <D.28000>:
              monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1275, "var1");
              <D.28001>:
              D.28002 = var2 == 0B;
              D.28003 = (long int) D.28002;
              D.28004 = __builtin_expect (D.28003, 0);
              if (D.28004 != 0) goto <D.28005>; else goto <D.28006>;
              <D.28005>:
              monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1275, "var2");
              <D.28006>:
              D.28007 = var1->flags;
              D.28008 = D.28007 | 16;
              var1->flags = D.28008;
              D.28009 = var2->flags;
              D.28010 = D.28009 | 16;
              var2->flags = D.28010;
            }
            <D.27988>:
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            if (D.27447 != 0B) goto <D.28011>; else goto <D.28012>;
            <D.28011>:
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            D.27447->next = dest;
            D.27446 = cfg->cbb;
            D.27447 = D.27446->last_ins;
            dest->prev = D.27447;
            D.27446 = cfg->cbb;
            D.27446->last_ins = dest;
            goto <D.28013>;
            <D.28012>:
            D.27446 = cfg->cbb;
            D.27446 = cfg->cbb;
            D.27446->last_ins = dest;
            D.27447 = D.27446->last_ins;
            D.27446->code = D.27447;
            <D.28013>:
            D.27835 = dest_var->backend.is_pinvoke;
            if (D.27835 != 0) goto <D.28014>; else goto <D.28015>;
            <D.28014>:
            D.27565 = dest_var->data.op[1].vtype;
            D.28016 = mono_class_from_mono_type (D.27565);
            size = mono_class_native_size (D.28016, 0B);
            goto <D.28017>;
            <D.28015>:
            D.27565 = dest_var->data.op[1].vtype;
            size = mono_type_size (D.27565, 0B);
            <D.28017>:
            switch (size) <default: <D.24199>, case 1: <D.24181>, case 2: <D.24184>, case 3: <D.24186>, case 4: <D.24187>, case 5: <D.24189>, case 6: <D.24190>, case 7: <D.24191>, case 8: <D.24192>>
            <D.24181>:
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28018 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28018;
              inst->prev = 0B;
              D.28019 = inst->prev;
              inst->next = D.28019;
              inst->opcode = 375;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28020 = inst->sreg3;
              inst->sreg2 = D.28020;
              D.28021 = inst->sreg2;
              inst->sreg1 = D.28021;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              inst->sreg1 = D.28022;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 0;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28024>; else goto <D.28025>;
              <D.28024>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28026>;
              <D.28025>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28026>:
            }
            goto <D.24183>;
            <D.24184>:
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28027 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28027;
              inst->prev = 0B;
              D.28028 = inst->prev;
              inst->next = D.28028;
              inst->opcode = 376;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28029 = inst->sreg3;
              inst->sreg2 = D.28029;
              D.28030 = inst->sreg2;
              inst->sreg1 = D.28030;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              inst->sreg1 = D.28022;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 0;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28031>; else goto <D.28032>;
              <D.28031>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28033>;
              <D.28032>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28033>:
            }
            goto <D.24183>;
            <D.24186>:
            <D.24187>:
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28034 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28034;
              inst->prev = 0B;
              D.28035 = inst->prev;
              inst->next = D.28035;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28036 = inst->sreg3;
              inst->sreg2 = D.28036;
              D.28037 = inst->sreg2;
              inst->sreg1 = D.28037;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              inst->sreg1 = D.28022;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 0;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28038>; else goto <D.28039>;
              <D.28038>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28040>;
              <D.28039>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28040>:
            }
            goto <D.24183>;
            <D.24189>:
            <D.24190>:
            <D.24191>:
            <D.24192>:
            D.28041 = call2->inst.opcode;
            D.28042 = (int) D.28041;
            switch (D.28042) <default: <D.28043>, case 346: <D.24193>, case 347: <D.24195>, case 348: <D.24196>>
            <D.24193>:
            call2->inst.opcode = 352;
            goto <D.24194>;
            <D.24195>:
            call2->inst.opcode = 353;
            goto <D.24194>;
            <D.24196>:
            call2->inst.opcode = 354;
            goto <D.24194>;
            <D.28043>:
            <D.24194>:
            D.28044 = alloc_lreg (cfg);
            D.28045 = (int) D.28044;
            call2->inst.dreg = D.28045;
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28046 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28046;
              inst->prev = 0B;
              D.28047 = inst->prev;
              inst->next = D.28047;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28048 = inst->sreg3;
              inst->sreg2 = D.28048;
              D.28049 = inst->sreg2;
              inst->sreg1 = D.28049;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              D.28050 = D.28022 + 2;
              inst->sreg1 = D.28050;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 4;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28051>; else goto <D.28052>;
              <D.28051>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28053>;
              <D.28052>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28053>:
            }
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28054 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28054;
              inst->prev = 0B;
              D.28055 = inst->prev;
              inst->next = D.28055;
              inst->opcode = 377;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28056 = inst->sreg3;
              inst->sreg2 = D.28056;
              D.28057 = inst->sreg2;
              inst->sreg1 = D.28057;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              D.28058 = D.28022 + 1;
              inst->sreg1 = D.28058;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 0;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28059>; else goto <D.28060>;
              <D.28059>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28061>;
              <D.28060>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28061>:
            }
            goto <D.24183>;
            <D.24199>:
            {
              struct MonoInst * inst;

              D.27441 = cfg->mempool;
              inst = mono_mempool_alloc (D.27441, 48);
              inst->data.op[1].const_val = 0;
              D.28062 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28062;
              inst->prev = 0B;
              D.28063 = inst->prev;
              inst->next = D.28063;
              inst->opcode = 374;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28064 = inst->sreg3;
              inst->sreg2 = D.28064;
              D.28065 = inst->sreg2;
              inst->sreg1 = D.28065;
              D.27488 = cfg->ip;
              inst->cil_code = D.27488;
              D.28022 = call2->inst.dreg;
              inst->sreg1 = D.28022;
              D.28023 = dest->dreg;
              inst->dreg = D.28023;
              inst->data.op[0].const_val = 0;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              if (D.27447 != 0B) goto <D.28066>; else goto <D.28067>;
              <D.28066>:
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              D.27447->next = inst;
              D.27446 = cfg->cbb;
              D.27447 = D.27446->last_ins;
              inst->prev = D.27447;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              goto <D.28068>;
              <D.28067>:
              D.27446 = cfg->cbb;
              D.27446 = cfg->cbb;
              D.27446->last_ins = inst;
              D.27447 = D.27446->last_ins;
              D.27446->code = D.27447;
              <D.28068>:
            }
            goto <D.24183>;
            <D.24183>:
          }
          goto <D.28069>;
          <D.27948>:
          D.27448 = ins->opcode;
          D.27449 = (int) D.27448;
          switch (D.27449) <default: <D.28070>, case 355: <D.24201>, case 356: <D.24203>, case 357: <D.24204>>
          <D.24201>:
          ins->opcode = 358;
          goto <D.24202>;
          <D.24203>:
          ins->opcode = 359;
          goto <D.24202>;
          <D.24204>:
          ins->opcode = 360;
          goto <D.24202>;
          <D.28070>:
          <D.24202>:
          ins->dreg = -1;
          <D.28069>:
          goto <D.24149>;
        }
        <D.24205>:
        goto <D.24149>;
        <D.24149>:
        D.27446 = cfg->cbb;
        D.28071 = D.27446 != first_bb;
        D.28072 = (long int) D.28071;
        D.28073 = __builtin_expect (D.28072, 0);
        if (D.28073 != 0) goto <D.28074>; else goto <D.28075>;
        <D.28074>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1345, "cfg->cbb == first_bb");
        <D.28075>:
        D.27446 = cfg->cbb;
        D.28079 = D.27446->code;
        if (D.28079 != 0B) goto <D.28076>; else goto <D.28080>;
        <D.28080>:
        D.27446 = cfg->cbb;
        if (D.27446 != first_bb) goto <D.28076>; else goto <D.28077>;
        <D.28076>:
        D.27446 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.27446);
        first_bb->last_ins = 0B;
        D.28081 = first_bb->last_ins;
        first_bb->code = D.28081;
        first_bb->out_count = 0;
        D.28082 = first_bb->out_count;
        first_bb->in_count = D.28082;
        cfg->cbb = first_bb;
        goto <D.28078>;
        <D.28077>:
        prev = ins;
        <D.28078>:
        ins = ins->next;
        <D.24207>:
        if (ins != 0B) goto <D.24206>; else goto <D.24208>;
        <D.24208>:
        <D.24210>:
        if (restart != 0) goto <D.24209>; else goto <D.24211>;
        <D.24211>:
        D.27443 = cfg->verbose_level;
        if (D.27443 > 2) goto <D.28083>; else goto <D.28084>;
        <D.28083>:
        mono_print_bb (bb, "AFTER LOWER-VTYPE-OPTS ");
        <D.28084>:
      }
    finally
      {
        prev = {CLOBBER};
      }
  }
  bb = bb->next_bb;
  <D.24213>:
  if (bb != 0B) goto <D.24212>; else goto <D.24214>;
  <D.24214>:
}


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

  D.28087 = __builtin_object_size (__dest, 0);
  D.28086 = __builtin___memcpy_chk (__dest, __src, __len, D.28087);
  return D.28086;
}


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

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


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

  switch (stack_type) <default: <D.21811>, case 1: <D.21804>, case 2: <D.21809>, case 3: <D.21805>, case 4: <D.21808>, case 5: <D.21806>, case 6: <D.21807>, case 7: <D.21810>>
  <D.21804>:
  <D.21805>:
  D.28091 = alloc_ireg (cfg);
  return D.28091;
  <D.21806>:
  D.28091 = alloc_ireg_mp (cfg);
  return D.28091;
  <D.21807>:
  D.28091 = alloc_ireg_ref (cfg);
  return D.28091;
  <D.21808>:
  D.28091 = alloc_freg (cfg);
  return D.28091;
  <D.21809>:
  D.28091 = alloc_lreg (cfg);
  return D.28091;
  <D.21810>:
  D.28091 = alloc_ireg (cfg);
  return D.28091;
  <D.21811>:
  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.28091 = 4294967295;
  return D.28091;
}


alloc_ireg_mp (struct MonoCompile * cfg)
{
  unsigned int D.28093;
  unsigned char D.28094;
  unsigned char D.28095;
  guint32 D.28098;
  int vreg;

  D.28093 = alloc_ireg (cfg);
  vreg = (int) D.28093;
  D.28094 = BIT_FIELD_REF <*cfg, 8, 3424>;
  D.28095 = D.28094 & 128;
  if (D.28095 != 0) goto <D.28096>; else goto <D.28097>;
  <D.28096>:
  mono_mark_vreg_as_mp (cfg, vreg);
  <D.28097>:
  D.28098 = (guint32) vreg;
  return D.28098;
}


alloc_ireg_ref (struct MonoCompile * cfg)
{
  unsigned int D.28100;
  unsigned char D.28101;
  unsigned char D.28102;
  guint32 D.28105;
  int vreg;

  D.28100 = alloc_ireg (cfg);
  vreg = (int) D.28100;
  D.28101 = BIT_FIELD_REF <*cfg, 8, 3424>;
  D.28102 = D.28101 & 128;
  if (D.28102 != 0) goto <D.28103>; else goto <D.28104>;
  <D.28103>:
  mono_mark_vreg_as_ref (cfg, vreg);
  <D.28104>:
  D.28105 = (guint32) vreg;
  return D.28105;
}


alloc_freg (struct MonoCompile * cfg)
{
  int D.28107;
  guint32 D.28110;
  unsigned int D.28111;
  unsigned int D.28112;
  unsigned int D.28113;

  D.28107 = mono_arch_is_soft_float ();
  if (D.28107 != 0) goto <D.28108>; else goto <D.28109>;
  <D.28108>:
  D.28110 = alloc_lreg (cfg);
  return D.28110;
  <D.28109>:
  D.28111 = cfg->next_vreg;
  D.28112 = D.28111;
  D.28113 = D.28112 + 1;
  cfg->next_vreg = D.28113;
  D.28110 = D.28112;
  return D.28110;
}


handle_gsharedvt_ldaddr (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.28115;
  int D.28116;
  struct MonoInst * D.28117;
  int D.28118;
  int D.28119;
  const unsigned char * D.28120;
  struct MonoInst * D.28121;
  int D.28122;
  struct MonoBasicBlock * D.28123;
  struct MonoInst * D.28124;
  struct MonoInst * D.28128;
  int D.28129;
  struct MonoInst * use;

  D.28115 = cfg->mempool;
  use = mono_mempool_alloc (D.28115, 48);
  use->data.op[1].const_val = 0;
  D.28116 = use->data.op[1].const_val;
  use->data.op[0].const_val = D.28116;
  use->prev = 0B;
  D.28117 = use->prev;
  use->next = D.28117;
  use->opcode = 800;
  use->flags = 0;
  use->type = 0;
  use->dreg = -1;
  use->sreg3 = -1;
  D.28118 = use->sreg3;
  use->sreg2 = D.28118;
  D.28119 = use->sreg2;
  use->sreg1 = D.28119;
  D.28120 = cfg->ip;
  use->cil_code = D.28120;
  D.28121 = cfg->gsharedvt_info_var;
  D.28122 = D.28121->dreg;
  use->sreg1 = D.28122;
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  if (D.28124 != 0B) goto <D.28125>; else goto <D.28126>;
  <D.28125>:
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  D.28124->next = use;
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  use->prev = D.28124;
  D.28123 = cfg->cbb;
  D.28123->last_ins = use;
  goto <D.28127>;
  <D.28126>:
  D.28123 = cfg->cbb;
  D.28123 = cfg->cbb;
  D.28123->last_ins = use;
  D.28124 = D.28123->last_ins;
  D.28123->code = D.28124;
  <D.28127>:
  D.28115 = cfg->mempool;
  use = mono_mempool_alloc (D.28115, 48);
  use->data.op[1].const_val = 0;
  D.28116 = use->data.op[1].const_val;
  use->data.op[0].const_val = D.28116;
  use->prev = 0B;
  D.28117 = use->prev;
  use->next = D.28117;
  use->opcode = 800;
  use->flags = 0;
  use->type = 0;
  use->dreg = -1;
  use->sreg3 = -1;
  D.28118 = use->sreg3;
  use->sreg2 = D.28118;
  D.28119 = use->sreg2;
  use->sreg1 = D.28119;
  D.28120 = cfg->ip;
  use->cil_code = D.28120;
  D.28128 = cfg->gsharedvt_locals_var;
  D.28129 = D.28128->dreg;
  use->sreg1 = D.28129;
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  if (D.28124 != 0B) goto <D.28130>; else goto <D.28131>;
  <D.28130>:
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  D.28124->next = use;
  D.28123 = cfg->cbb;
  D.28124 = D.28123->last_ins;
  use->prev = D.28124;
  D.28123 = cfg->cbb;
  D.28123->last_ins = use;
  goto <D.28132>;
  <D.28131>:
  D.28123 = cfg->cbb;
  D.28123 = cfg->cbb;
  D.28123->last_ins = use;
  D.28124 = D.28123->last_ins;
  D.28123->code = D.28124;
  <D.28132>:
}


mono_arch_is_soft_float ()
{
  gboolean D.28133;

  D.28133 = 0;
  return D.28133;
}


alloc_lreg (struct MonoCompile * cfg)
{
  unsigned int D.28135;
  unsigned int D.28136;
  guint32 D.28137;
  guint32 res;

  res = cfg->next_vreg;
  D.28135 = cfg->next_vreg;
  D.28136 = D.28135 + 3;
  cfg->next_vreg = D.28136;
  D.28137 = res;
  return D.28137;
}


mono_decompose_vtype_opts_llvm (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.28139;
  void * D.28140;
  unsigned int D.28141;
  struct MonoBasicBlock * D.28144;
  struct MonoInst * D.28145;
  short unsigned int D.28146;
  int D.28147;
  struct MonoInst * iftmp.40;
  int D.28149;
  unsigned int D.28150;
  unsigned int D.28151;
  struct MonoInst * * D.28154;
  unsigned int D.28155;
  unsigned int D.28156;
  struct MonoInst * * D.28157;
  struct MonoClass * D.28161;
  _Bool D.28162;
  long int D.28163;
  long int D.28164;
  struct MonoType * D.28167;
  struct MonoInst * iftmp.41;
  int D.28174;
  struct MonoInst * D.28175;
  int D.28176;
  int D.28177;
  const unsigned char * D.28178;
  unsigned char D.28179;
  unsigned char D.28180;
  struct MonoClass * D.28181;
  unsigned int D.28182;
  int D.28183;
  int D.28184;
  _Bool D.28185;
  long int D.28186;
  long int D.28187;
  struct MonoType * D.28190;
  int D.28191;
  _Bool iftmp.42;
  int D.28195;
  unsigned char D.28198;
  _Bool D.28199;
  _Bool D.28200;
  _Bool D.28201;
  int D.28202;
  unsigned char D.28204;
  struct MonoInst * iftmp.43;
  int D.28208;
  int D.28209;
  unsigned int D.28210;
  sizetype D.28213;
  sizetype D.28214;
  sizetype D.28215;
  struct MonoInst * * D.28216;
  struct MonoInst * iftmp.44;
  int D.28219;
  unsigned int D.28220;
  sizetype D.28223;
  sizetype D.28224;
  struct MonoInst * * D.28225;
  _Bool D.28227;
  long int D.28228;
  long int D.28229;
  _Bool D.28232;
  long int D.28233;
  long int D.28234;
  unsigned char D.28237;
  unsigned char D.28238;
  unsigned char D.28239;
  unsigned char D.28240;
  unsigned int D.28244;
  int D.28245;
  struct MonoInst * D.28246;
  int D.28247;
  int D.28248;
  int D.28249;
  int D.28250;
  int D.28254;
  struct MonoClass * D.28255;
  _Bool D.28256;
  long int D.28257;
  long int D.28258;
  struct MonoInst * D.28264;
  struct MonoInst * D.28266;
  short int D.28267;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

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

    try
      {
        prev = 0B;
        D.28141 = cfg->verbose_level;
        if (D.28141 > 2) goto <D.28142>; else goto <D.28143>;
        <D.28142>:
        mono_print_bb (bb, "BEFORE LOWER-VTYPE-OPTS(LLVM) ");
        <D.28143>:
        D.28144 = cfg->cbb;
        D.28144 = cfg->cbb;
        D.28144->last_ins = 0B;
        D.28145 = D.28144->last_ins;
        D.28144->code = D.28145;
        restart = 1;
        goto <D.24237>;
        <D.24236>:
        restart = 0;
        ins = bb->code;
        goto <D.24234>;
        <D.24233>:
        D.28146 = ins->opcode;
        D.28147 = (int) D.28146;
        switch (D.28147) <default: <D.24232>, case 390: <D.24227>>
        <D.24227>:
        D.28149 = ins->sreg1;
        D.28150 = (unsigned int) D.28149;
        D.28151 = cfg->vreg_to_inst_len;
        if (D.28150 < D.28151) goto <D.28152>; else goto <D.28153>;
        <D.28152>:
        D.28154 = cfg->vreg_to_inst;
        D.28149 = ins->sreg1;
        D.28155 = (unsigned int) D.28149;
        D.28156 = D.28155 * 4;
        D.28157 = D.28154 + D.28156;
        iftmp.40 = *D.28157;
        goto <D.28158>;
        <D.28153>:
        iftmp.40 = 0B;
        <D.28158>:
        src_var = iftmp.40;
        if (src_var == 0B) goto <D.28159>; else goto <D.28160>;
        <D.28159>:
        D.28161 = ins->klass;
        D.28162 = D.28161 == 0B;
        D.28163 = (long int) D.28162;
        D.28164 = __builtin_expect (D.28163, 0);
        if (D.28164 != 0) goto <D.28165>; else goto <D.28166>;
        <D.28165>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1395, "ins->klass");
        <D.28166>:
        D.28149 = ins->sreg1;
        D.28161 = ins->klass;
        D.28167 = &D.28161->byval_arg;
        src_var = mono_compile_create_var_for_vreg (cfg, D.28167, 329, D.28149);
        <D.28160>:
        {
          struct MonoInst * var;

          D.28149 = ins->sreg1;
          D.28150 = (unsigned int) D.28149;
          D.28151 = cfg->vreg_to_inst_len;
          if (D.28150 < D.28151) goto <D.28169>; else goto <D.28170>;
          <D.28169>:
          D.28154 = cfg->vreg_to_inst;
          D.28149 = ins->sreg1;
          D.28155 = (unsigned int) D.28149;
          D.28156 = D.28155 * 4;
          D.28157 = D.28154 + D.28156;
          iftmp.41 = *D.28157;
          goto <D.28171>;
          <D.28170>:
          iftmp.41 = 0B;
          <D.28171>:
          var = iftmp.41;
          if (var == 0B) goto <D.28172>; else goto <D.28173>;
          <D.28172>:
          D.28149 = ins->sreg1;
          D.28161 = ins->klass;
          D.28167 = &D.28161->byval_arg;
          var = mono_compile_create_var_for_vreg (cfg, D.28167, 329, D.28149);
          <D.28173>:
          D.28139 = cfg->mempool;
          src = mono_mempool_alloc (D.28139, 48);
          src->data.op[1].const_val = 0;
          D.28174 = src->data.op[1].const_val;
          src->data.op[0].const_val = D.28174;
          src->prev = 0B;
          D.28175 = src->prev;
          src->next = D.28175;
          src->opcode = 314;
          src->flags = 0;
          src->type = 0;
          src->dreg = -1;
          src->sreg3 = -1;
          D.28176 = src->sreg3;
          src->sreg2 = D.28176;
          D.28177 = src->sreg2;
          src->sreg1 = D.28177;
          D.28178 = cfg->ip;
          src->cil_code = D.28178;
          src->data.op[0].p = var;
          D.28179 = var->flags;
          D.28180 = D.28179 | 16;
          var->flags = D.28180;
          src->type = 5;
          D.28181 = var->klass;
          src->klass = D.28181;
          D.28182 = alloc_dreg (cfg, 5);
          D.28183 = (int) D.28182;
          src->dreg = D.28183;
          cfg->has_indirection = 1;
          D.28184 = cfg->gsharedvt;
          D.28185 = D.28184 != 0;
          D.28186 = (long int) D.28185;
          D.28187 = __builtin_expect (D.28186, 0);
          if (D.28187 != 0) goto <D.28188>; else goto <D.28189>;
          <D.28188>:
          D.28190 = var->data.op[1].vtype;
          D.28191 = mini_is_gsharedvt_variable_type (cfg, D.28190);
          if (D.28191 != 0) goto <D.28192>; else goto <D.28193>;
          <D.28192>:
          handle_gsharedvt_ldaddr (cfg);
          <D.28193>:
          <D.28189>:
          D.28195 = mono_arch_is_soft_float ();
          if (D.28195 != 0) goto <D.28196>; else goto <D.28197>;
          <D.28196>:
          D.28198 = var->type;
          D.28199 = D.28198 == 2;
          D.28200 = D.28198 == 4;
          D.28201 = D.28199 | D.28200;
          D.28202 = (int) D.28201;
          iftmp.42 = (_Bool) D.28202;
          goto <D.28203>;
          <D.28197>:
          D.28204 = var->type;
          iftmp.42 = D.28204 == 2;
          <D.28203>:
          if (iftmp.42 != 0) goto <D.28205>; else goto <D.28206>;
          <D.28205>:
          {
            struct MonoInst * var1;
            struct MonoInst * var2;

            D.28208 = var->dreg;
            D.28209 = D.28208 + 1;
            D.28210 = (unsigned int) D.28209;
            D.28151 = cfg->vreg_to_inst_len;
            if (D.28210 < D.28151) goto <D.28211>; else goto <D.28212>;
            <D.28211>:
            D.28154 = cfg->vreg_to_inst;
            D.28208 = var->dreg;
            D.28213 = (sizetype) D.28208;
            D.28214 = D.28213 + 1;
            D.28215 = D.28214 * 4;
            D.28216 = D.28154 + D.28215;
            iftmp.43 = *D.28216;
            goto <D.28217>;
            <D.28212>:
            iftmp.43 = 0B;
            <D.28217>:
            var1 = iftmp.43;
            D.28208 = var->dreg;
            D.28219 = D.28208 + 2;
            D.28220 = (unsigned int) D.28219;
            D.28151 = cfg->vreg_to_inst_len;
            if (D.28220 < D.28151) goto <D.28221>; else goto <D.28222>;
            <D.28221>:
            D.28154 = cfg->vreg_to_inst;
            D.28208 = var->dreg;
            D.28213 = (sizetype) D.28208;
            D.28223 = D.28213 + 2;
            D.28224 = D.28223 * 4;
            D.28225 = D.28154 + D.28224;
            iftmp.44 = *D.28225;
            goto <D.28226>;
            <D.28222>:
            iftmp.44 = 0B;
            <D.28226>:
            var2 = iftmp.44;
            D.28227 = var1 == 0B;
            D.28228 = (long int) D.28227;
            D.28229 = __builtin_expect (D.28228, 0);
            if (D.28229 != 0) goto <D.28230>; else goto <D.28231>;
            <D.28230>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1399, "var1");
            <D.28231>:
            D.28232 = var2 == 0B;
            D.28233 = (long int) D.28232;
            D.28234 = __builtin_expect (D.28233, 0);
            if (D.28234 != 0) goto <D.28235>; else goto <D.28236>;
            <D.28235>:
            monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1399, "var2");
            <D.28236>:
            D.28237 = var1->flags;
            D.28238 = D.28237 | 16;
            var1->flags = D.28238;
            D.28239 = var2->flags;
            D.28240 = D.28239 | 16;
            var2->flags = D.28240;
          }
          <D.28206>:
        }
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        if (D.28145 != 0B) goto <D.28241>; else goto <D.28242>;
        <D.28241>:
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        D.28145->next = src;
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        src->prev = D.28145;
        D.28144 = cfg->cbb;
        D.28144->last_ins = src;
        goto <D.28243>;
        <D.28242>:
        D.28144 = cfg->cbb;
        D.28144 = cfg->cbb;
        D.28144->last_ins = src;
        D.28145 = D.28144->last_ins;
        D.28144->code = D.28145;
        <D.28243>:
        D.28244 = alloc_preg (cfg);
        dreg = (int) D.28244;
        D.28139 = cfg->mempool;
        dest = mono_mempool_alloc (D.28139, 48);
        dest->data.op[1].const_val = 0;
        D.28245 = dest->data.op[1].const_val;
        dest->data.op[0].const_val = D.28245;
        dest->prev = 0B;
        D.28246 = dest->prev;
        dest->next = D.28246;
        dest->opcode = 433;
        dest->flags = 0;
        dest->type = 0;
        dest->dreg = -1;
        dest->sreg3 = -1;
        D.28247 = dest->sreg3;
        dest->sreg2 = D.28247;
        D.28248 = dest->sreg2;
        dest->sreg1 = D.28248;
        D.28178 = cfg->ip;
        dest->cil_code = D.28178;
        dest->dreg = dreg;
        D.28249 = ins->dreg;
        dest->sreg1 = D.28249;
        D.28250 = ins->data.op[0].const_val;
        dest->data.op[1].const_val = D.28250;
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        if (D.28145 != 0B) goto <D.28251>; else goto <D.28252>;
        <D.28251>:
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        D.28145->next = dest;
        D.28144 = cfg->cbb;
        D.28145 = D.28144->last_ins;
        dest->prev = D.28145;
        D.28144 = cfg->cbb;
        D.28144->last_ins = dest;
        goto <D.28253>;
        <D.28252>:
        D.28144 = cfg->cbb;
        D.28144 = cfg->cbb;
        D.28144->last_ins = dest;
        D.28145 = D.28144->last_ins;
        D.28144->code = D.28145;
        <D.28253>:
        D.28254 = src_var->backend.is_pinvoke;
        D.28255 = src_var->klass;
        mini_emit_stobj (cfg, dest, src, D.28255, D.28254);
        goto <D.24231>;
        <D.24232>:
        goto <D.24231>;
        <D.24231>:
        D.28144 = cfg->cbb;
        D.28256 = D.28144 != first_bb;
        D.28257 = (long int) D.28256;
        D.28258 = __builtin_expect (D.28257, 0);
        if (D.28258 != 0) goto <D.28259>; else goto <D.28260>;
        <D.28259>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1410, "cfg->cbb == first_bb");
        <D.28260>:
        D.28144 = cfg->cbb;
        D.28264 = D.28144->code;
        if (D.28264 != 0B) goto <D.28261>; else goto <D.28265>;
        <D.28265>:
        D.28144 = cfg->cbb;
        if (D.28144 != first_bb) goto <D.28261>; else goto <D.28262>;
        <D.28261>:
        D.28144 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.28144);
        first_bb->last_ins = 0B;
        D.28266 = first_bb->last_ins;
        first_bb->code = D.28266;
        first_bb->out_count = 0;
        D.28267 = first_bb->out_count;
        first_bb->in_count = D.28267;
        cfg->cbb = first_bb;
        goto <D.28263>;
        <D.28262>:
        prev = ins;
        <D.28263>:
        ins = ins->next;
        <D.24234>:
        if (ins != 0B) goto <D.24233>; else goto <D.24235>;
        <D.24235>:
        <D.24237>:
        if (restart != 0) goto <D.24236>; else goto <D.24238>;
        <D.24238>:
        D.28141 = cfg->verbose_level;
        if (D.28141 > 2) goto <D.28268>; else goto <D.28269>;
        <D.28268>:
        mono_print_bb (bb, "AFTER LOWER-VTYPE-OPTS(LLVM) ");
        <D.28269>:
      }
    finally
      {
        prev = {CLOBBER};
      }
  }
  bb = bb->next_bb;
  <D.24240>:
  if (bb != 0B) goto <D.24239>; else goto <D.24241>;
  <D.24241>:
}


mono_decompose_array_access_opts (struct MonoCompile * cfg)
{
  struct MonoMemPool * D.28271;
  void * D.28272;
  unsigned char D.28273;
  unsigned char D.28274;
  unsigned int D.28277;
  struct MonoBasicBlock * D.28280;
  struct MonoInst * D.28281;
  short unsigned int D.28282;
  int D.28283;
  unsigned char D.28284;
  unsigned char D.28285;
  int D.28286;
  unsigned char D.28289;
  unsigned char D.28290;
  int D.28293;
  struct MonoInst * D.28294;
  int D.28295;
  int D.28296;
  const unsigned char * D.28297;
  int D.28298;
  int D.28302;
  struct MonoInst * D.28303;
  int D.28304;
  int D.28305;
  int D.28310;
  struct MonoInst * D.28311;
  int D.28312;
  int D.28313;
  int D.28314;
  unsigned char D.28315;
  int D.28321;
  struct MonoInst * D.28322;
  int D.28323;
  int D.28324;
  int D.28328;
  struct MonoInst * D.28329;
  int D.28330;
  int D.28331;
  unsigned int D.28338;
  int D.28339;
  int D.28340;
  int D.28343;
  int D.28348;
  struct MonoInst * D.28349;
  int D.28350;
  int D.28351;
  int D.28355;
  struct MonoInst * D.28356;
  int D.28357;
  int D.28358;
  int D.28363;
  struct MonoInst * D.28364;
  int D.28365;
  int D.28366;
  int D.28367;
  unsigned char D.28368;
  int D.28373;
  int D.28378;
  struct MonoInst * D.28379;
  int D.28380;
  int D.28381;
  int D.28385;
  struct MonoInst * D.28386;
  int D.28387;
  int D.28388;
  int D.28393;
  struct MonoInst * D.28394;
  int D.28395;
  int D.28396;
  unsigned char D.28397;
  int D.28401;
  struct MonoInst * D.28402;
  int D.28403;
  int D.28404;
  int D.28405;
  int D.28409;
  struct MonoInst * D.28410;
  int D.28411;
  int D.28412;
  int D.28417;
  struct MonoInst * D.28418;
  int D.28419;
  int D.28420;
  int D.28424;
  struct MonoInst * D.28425;
  int D.28426;
  int D.28427;
  unsigned int D.28431;
  unsigned int D.28432;
  unsigned char D.28439;
  unsigned char D.28440;
  void * D.28441;
  struct MonoInst * D.28442;
  int D.28443;
  struct MonoInst * D.28444;
  int D.28445;
  int D.28446;
  struct MonoInst * * D.28447;
  int D.28448;
  unsigned int D.28449;
  unsigned int D.28450;
  struct MonoInst * * D.28451;
  struct MonoInst * D.28452;
  struct MonoType * D.28453;
  unsigned int D.28454;
  short unsigned int D.28455;
  struct MonoClass * D.28456;
  int D.28457;
  unsigned char D.28458;
  <unnamed type> D.28459;
  unsigned int D.28460;
  int D.28461;
  short unsigned int D.28462;
  struct MonoClass * D.28465;
  void * D.28466;
  struct MonoDomain * D.28467;
  unsigned int D.28468;
  int D.28469;
  void * D.28473;
  struct MonoInst * D.28474;
  int D.28475;
  struct MonoInst * D.28476;
  guint16 iftmp.45;
  int D.28481;
  int D.28482;
  int D.28485;
  struct MonoInst * D.28486;
  int D.28487;
  int D.28488;
  struct MonoClass * D.28489;
  int D.28490;
  unsigned int D.28492;
  int D.28493;
  void * D.28497;
  struct MonoInst * D.28498;
  int D.28499;
  struct MonoInst * D.28500;
  int D.28501;
  int D.28502;
  _Bool D.28504;
  long int D.28505;
  long int D.28506;
  void * D.28509;
  guint16 iftmp.46;
  int D.28516;
  struct MonoInst * D.28517;
  int D.28518;
  int D.28519;
  struct MonoInst * iftmp.47;
  int D.28524;
  void * iftmp.48;
  unsigned int D.28530;
  int D.28531;
  void * D.28535;
  int D.28539;
  int D.28544;
  struct MonoInst * D.28545;
  int D.28546;
  int D.28547;
  int D.28551;
  struct MonoInst * D.28552;
  int D.28553;
  int D.28554;
  int D.28559;
  struct MonoInst * D.28560;
  int D.28561;
  int D.28562;
  unsigned char D.28563;
  _Bool D.28567;
  long int D.28568;
  long int D.28569;
  struct MonoInst * D.28575;
  struct MonoInst * D.28577;
  short int D.28578;
  struct MonoBasicBlock * bb;
  struct MonoBasicBlock * first_bb;

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

    try
      {
        prev = 0B;
        D.28273 = BIT_FIELD_REF <*bb, 8, 912>;
        D.28274 = D.28273 & 4;
        if (D.28274 == 0) goto <D.28275>; else goto <D.28276>;
        <D.28275>:
        // predicted unlikely by continue predictor.
        goto <D.24255>;
        <D.28276>:
        D.28277 = cfg->verbose_level;
        if (D.28277 > 3) goto <D.28278>; else goto <D.28279>;
        <D.28278>:
        mono_print_bb (bb, "BEFORE DECOMPOSE-ARRAY-ACCESS-OPTS ");
        <D.28279>:
        D.28280 = cfg->cbb;
        D.28280 = cfg->cbb;
        D.28280->last_ins = 0B;
        D.28281 = D.28280->last_ins;
        D.28280->code = D.28281;
        restart = 1;
        goto <D.24296>;
        <D.24295>:
        restart = 0;
        ins = bb->code;
        goto <D.24293>;
        <D.24292>:
        D.28282 = ins->opcode;
        D.28283 = (int) D.28282;
        switch (D.28283) <default: <D.24291>, case 785: <D.24286>, case 786: <D.24277>, case 787: <D.24256>, case 788: <D.24261>>
        <D.24256>:
        {
          int __ins_flags;

          D.28284 = ins->flags;
          D.28285 = D.28284 | 64;
          __ins_flags = (int) D.28285;
          D.28286 = __ins_flags & 32;
          if (D.28286 != 0) goto <D.28287>; else goto <D.28288>;
          <D.28287>:
          D.28289 = BIT_FIELD_REF <*cfg, 8, 3424>;
          D.28290 = D.28289 & 64;
          if (D.28290 != 0) goto <D.28291>; else goto <D.28292>;
          <D.28291>:
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28293 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28293;
            inst->prev = 0B;
            D.28294 = inst->prev;
            inst->next = D.28294;
            inst->opcode = 323;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28295 = inst->sreg3;
            inst->sreg2 = D.28295;
            D.28296 = inst->sreg2;
            inst->sreg1 = D.28296;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->dreg = -1;
            D.28298 = ins->sreg1;
            inst->sreg1 = D.28298;
            inst->data.op[1].const_val = 0;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28299>; else goto <D.28300>;
            <D.28299>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28301>;
            <D.28300>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28301>:
          }
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28302 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28302;
            inst->prev = 0B;
            D.28303 = inst->prev;
            inst->next = D.28303;
            inst->opcode = 455;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28304 = inst->sreg3;
            inst->sreg2 = D.28304;
            D.28305 = inst->sreg2;
            inst->sreg1 = D.28305;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->data.op[1].p = "NullReferenceException";
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28306>; else goto <D.28307>;
            <D.28306>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28308>;
            <D.28307>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28308>:
          }
          goto <D.28309>;
          <D.28292>:
          <D.28309>:
          <D.28288>:
          D.28271 = cfg->mempool;
          dest = mono_mempool_alloc (D.28271, 48);
          dest->data.op[1].const_val = 0;
          D.28310 = dest->data.op[1].const_val;
          dest->data.op[0].const_val = D.28310;
          dest->prev = 0B;
          D.28311 = dest->prev;
          dest->next = D.28311;
          dest->opcode = 396;
          dest->flags = 0;
          dest->type = 0;
          dest->dreg = -1;
          dest->sreg3 = -1;
          D.28312 = dest->sreg3;
          dest->sreg2 = D.28312;
          D.28313 = dest->sreg2;
          dest->sreg1 = D.28313;
          D.28297 = cfg->ip;
          dest->cil_code = D.28297;
          D.28314 = ins->dreg;
          dest->dreg = D.28314;
          D.28298 = ins->sreg1;
          dest->sreg1 = D.28298;
          dest->data.op[0].const_val = 12;
          dest->type = 1;
          D.28315 = (unsigned char) __ins_flags;
          dest->flags = D.28315;
        }
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        if (D.28281 != 0B) goto <D.28316>; else goto <D.28317>;
        <D.28316>:
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        D.28281->next = dest;
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        dest->prev = D.28281;
        D.28280 = cfg->cbb;
        D.28280->last_ins = dest;
        goto <D.28318>;
        <D.28317>:
        D.28280 = cfg->cbb;
        D.28280 = cfg->cbb;
        D.28280->last_ins = dest;
        D.28281 = D.28280->last_ins;
        D.28280->code = D.28281;
        <D.28318>:
        goto <D.24260>;
        <D.24261>:
        D.28289 = BIT_FIELD_REF <*cfg, 8, 3424>;
        D.28290 = D.28289 & 64;
        if (D.28290 != 0) goto <D.28319>; else goto <D.28320>;
        <D.28319>:
        {
          struct MonoInst * inst;

          D.28271 = cfg->mempool;
          inst = mono_mempool_alloc (D.28271, 48);
          inst->data.op[1].const_val = 0;
          D.28321 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.28321;
          inst->prev = 0B;
          D.28322 = inst->prev;
          inst->next = D.28322;
          inst->opcode = 323;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.28323 = inst->sreg3;
          inst->sreg2 = D.28323;
          D.28324 = inst->sreg2;
          inst->sreg1 = D.28324;
          D.28297 = cfg->ip;
          inst->cil_code = D.28297;
          inst->dreg = -1;
          D.28298 = ins->sreg1;
          inst->sreg1 = D.28298;
          inst->data.op[1].const_val = 0;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          if (D.28281 != 0B) goto <D.28325>; else goto <D.28326>;
          <D.28325>:
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28281->next = inst;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          inst->prev = D.28281;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          goto <D.28327>;
          <D.28326>:
          D.28280 = cfg->cbb;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          D.28281 = D.28280->last_ins;
          D.28280->code = D.28281;
          <D.28327>:
        }
        {
          struct MonoInst * inst;

          D.28271 = cfg->mempool;
          inst = mono_mempool_alloc (D.28271, 48);
          inst->data.op[1].const_val = 0;
          D.28328 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.28328;
          inst->prev = 0B;
          D.28329 = inst->prev;
          inst->next = D.28329;
          inst->opcode = 455;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.28330 = inst->sreg3;
          inst->sreg2 = D.28330;
          D.28331 = inst->sreg2;
          inst->sreg1 = D.28331;
          D.28297 = cfg->ip;
          inst->cil_code = D.28297;
          inst->data.op[1].p = "NullReferenceException";
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          if (D.28281 != 0B) goto <D.28332>; else goto <D.28333>;
          <D.28332>:
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28281->next = inst;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          inst->prev = D.28281;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          goto <D.28334>;
          <D.28333>:
          D.28280 = cfg->cbb;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          D.28281 = D.28280->last_ins;
          D.28280->code = D.28281;
          <D.28334>:
        }
        goto <D.28335>;
        <D.28320>:
        <D.28335>:
        if (0 != 0) goto <D.28336>; else goto <D.28337>;
        <D.28336>:
        {
          int _length_reg;

          D.28338 = alloc_ireg (cfg);
          _length_reg = (int) D.28338;
          D.28284 = ins->flags;
          D.28339 = (int) D.28284;
          D.28340 = D.28339 & 32;
          if (D.28340 != 0) goto <D.28341>; else goto <D.28342>;
          <D.28341>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 32;
            D.28343 = __ins_flags & 32;
            if (D.28343 != 0) goto <D.28344>; else goto <D.28345>;
            <D.28344>:
            D.28289 = BIT_FIELD_REF <*cfg, 8, 3424>;
            D.28290 = D.28289 & 64;
            if (D.28290 != 0) goto <D.28346>; else goto <D.28347>;
            <D.28346>:
            {
              struct MonoInst * inst;

              D.28271 = cfg->mempool;
              inst = mono_mempool_alloc (D.28271, 48);
              inst->data.op[1].const_val = 0;
              D.28348 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28348;
              inst->prev = 0B;
              D.28349 = inst->prev;
              inst->next = D.28349;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28350 = inst->sreg3;
              inst->sreg2 = D.28350;
              D.28351 = inst->sreg2;
              inst->sreg1 = D.28351;
              D.28297 = cfg->ip;
              inst->cil_code = D.28297;
              inst->dreg = -1;
              D.28298 = ins->sreg1;
              inst->sreg1 = D.28298;
              inst->data.op[1].const_val = 0;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              if (D.28281 != 0B) goto <D.28352>; else goto <D.28353>;
              <D.28352>:
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              D.28281->next = inst;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              inst->prev = D.28281;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              goto <D.28354>;
              <D.28353>:
              D.28280 = cfg->cbb;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              D.28281 = D.28280->last_ins;
              D.28280->code = D.28281;
              <D.28354>:
            }
            {
              struct MonoInst * inst;

              D.28271 = cfg->mempool;
              inst = mono_mempool_alloc (D.28271, 48);
              inst->data.op[1].const_val = 0;
              D.28355 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28355;
              inst->prev = 0B;
              D.28356 = inst->prev;
              inst->next = D.28356;
              inst->opcode = 455;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28357 = inst->sreg3;
              inst->sreg2 = D.28357;
              D.28358 = inst->sreg2;
              inst->sreg1 = D.28358;
              D.28297 = cfg->ip;
              inst->cil_code = D.28297;
              inst->data.op[1].p = "NullReferenceException";
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              if (D.28281 != 0B) goto <D.28359>; else goto <D.28360>;
              <D.28359>:
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              D.28281->next = inst;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              inst->prev = D.28281;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              goto <D.28361>;
              <D.28360>:
              D.28280 = cfg->cbb;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              D.28281 = D.28280->last_ins;
              D.28280->code = D.28281;
              <D.28361>:
            }
            goto <D.28362>;
            <D.28347>:
            <D.28362>:
            <D.28345>:
            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28363 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28363;
            inst->prev = 0B;
            D.28364 = inst->prev;
            inst->next = D.28364;
            inst->opcode = 396;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28365 = inst->sreg3;
            inst->sreg2 = D.28365;
            D.28366 = inst->sreg2;
            inst->sreg1 = D.28366;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->dreg = _length_reg;
            D.28298 = ins->sreg1;
            inst->sreg1 = D.28298;
            D.28367 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.28367;
            inst->type = 1;
            D.28368 = (unsigned char) __ins_flags;
            inst->flags = D.28368;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28369>; else goto <D.28370>;
            <D.28369>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28371>;
            <D.28370>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28371>:
          }
          goto <D.28372>;
          <D.28342>:
          {
            struct MonoInst * inst;
            int __ins_flags;

            __ins_flags = 64;
            D.28373 = __ins_flags & 32;
            if (D.28373 != 0) goto <D.28374>; else goto <D.28375>;
            <D.28374>:
            D.28289 = BIT_FIELD_REF <*cfg, 8, 3424>;
            D.28290 = D.28289 & 64;
            if (D.28290 != 0) goto <D.28376>; else goto <D.28377>;
            <D.28376>:
            {
              struct MonoInst * inst;

              D.28271 = cfg->mempool;
              inst = mono_mempool_alloc (D.28271, 48);
              inst->data.op[1].const_val = 0;
              D.28378 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28378;
              inst->prev = 0B;
              D.28379 = inst->prev;
              inst->next = D.28379;
              inst->opcode = 323;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28380 = inst->sreg3;
              inst->sreg2 = D.28380;
              D.28381 = inst->sreg2;
              inst->sreg1 = D.28381;
              D.28297 = cfg->ip;
              inst->cil_code = D.28297;
              inst->dreg = -1;
              D.28298 = ins->sreg1;
              inst->sreg1 = D.28298;
              inst->data.op[1].const_val = 0;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              if (D.28281 != 0B) goto <D.28382>; else goto <D.28383>;
              <D.28382>:
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              D.28281->next = inst;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              inst->prev = D.28281;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              goto <D.28384>;
              <D.28383>:
              D.28280 = cfg->cbb;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              D.28281 = D.28280->last_ins;
              D.28280->code = D.28281;
              <D.28384>:
            }
            {
              struct MonoInst * inst;

              D.28271 = cfg->mempool;
              inst = mono_mempool_alloc (D.28271, 48);
              inst->data.op[1].const_val = 0;
              D.28385 = inst->data.op[1].const_val;
              inst->data.op[0].const_val = D.28385;
              inst->prev = 0B;
              D.28386 = inst->prev;
              inst->next = D.28386;
              inst->opcode = 455;
              inst->flags = 0;
              inst->type = 0;
              inst->dreg = -1;
              inst->sreg3 = -1;
              D.28387 = inst->sreg3;
              inst->sreg2 = D.28387;
              D.28388 = inst->sreg2;
              inst->sreg1 = D.28388;
              D.28297 = cfg->ip;
              inst->cil_code = D.28297;
              inst->data.op[1].p = "NullReferenceException";
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              if (D.28281 != 0B) goto <D.28389>; else goto <D.28390>;
              <D.28389>:
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              D.28281->next = inst;
              D.28280 = cfg->cbb;
              D.28281 = D.28280->last_ins;
              inst->prev = D.28281;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              goto <D.28391>;
              <D.28390>:
              D.28280 = cfg->cbb;
              D.28280 = cfg->cbb;
              D.28280->last_ins = inst;
              D.28281 = D.28280->last_ins;
              D.28280->code = D.28281;
              <D.28391>:
            }
            goto <D.28392>;
            <D.28377>:
            <D.28392>:
            <D.28375>:
            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28393 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28393;
            inst->prev = 0B;
            D.28394 = inst->prev;
            inst->next = D.28394;
            inst->opcode = 396;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28395 = inst->sreg3;
            inst->sreg2 = D.28395;
            D.28396 = inst->sreg2;
            inst->sreg1 = D.28396;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->dreg = _length_reg;
            D.28298 = ins->sreg1;
            inst->sreg1 = D.28298;
            D.28367 = ins->data.op[1].const_val;
            inst->data.op[0].const_val = D.28367;
            inst->type = 1;
            D.28397 = (unsigned char) __ins_flags;
            inst->flags = D.28397;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28398>; else goto <D.28399>;
            <D.28398>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28400>;
            <D.28399>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28400>:
          }
          <D.28372>:
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28401 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28401;
            inst->prev = 0B;
            D.28402 = inst->prev;
            inst->next = D.28402;
            inst->opcode = 322;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28403 = inst->sreg3;
            inst->sreg2 = D.28403;
            D.28404 = inst->sreg2;
            inst->sreg1 = D.28404;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->dreg = -1;
            inst->sreg1 = _length_reg;
            D.28405 = ins->sreg2;
            inst->sreg2 = D.28405;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28406>; else goto <D.28407>;
            <D.28406>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28408>;
            <D.28407>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28408>:
          }
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28409 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28409;
            inst->prev = 0B;
            D.28410 = inst->prev;
            inst->next = D.28410;
            inst->opcode = 463;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28411 = inst->sreg3;
            inst->sreg2 = D.28411;
            D.28412 = inst->sreg2;
            inst->sreg1 = D.28412;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->data.op[1].p = "IndexOutOfRangeException";
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28413>; else goto <D.28414>;
            <D.28413>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28415>;
            <D.28414>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28415>:
          }
        }
        goto <D.28416>;
        <D.28337>:
        {
          struct MonoInst * inst;

          D.28271 = cfg->mempool;
          inst = mono_mempool_alloc (D.28271, 48);
          inst->data.op[1].const_val = 0;
          D.28417 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.28417;
          inst->prev = 0B;
          D.28418 = inst->prev;
          inst->next = D.28418;
          inst->opcode = 1006;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.28419 = inst->sreg3;
          inst->sreg2 = D.28419;
          D.28420 = inst->sreg2;
          inst->sreg1 = D.28420;
          D.28297 = cfg->ip;
          inst->cil_code = D.28297;
          D.28298 = ins->sreg1;
          inst->sreg1 = D.28298;
          D.28367 = ins->data.op[1].const_val;
          inst->data.op[0].const_val = D.28367;
          D.28405 = ins->sreg2;
          inst->sreg2 = D.28405;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          if (D.28281 != 0B) goto <D.28421>; else goto <D.28422>;
          <D.28421>:
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28281->next = inst;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          inst->prev = D.28281;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          goto <D.28423>;
          <D.28422>:
          D.28280 = cfg->cbb;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          D.28281 = D.28280->last_ins;
          D.28280->code = D.28281;
          <D.28423>:
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28424 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28424;
            inst->prev = 0B;
            D.28425 = inst->prev;
            inst->next = D.28425;
            inst->opcode = 463;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28426 = inst->sreg3;
            inst->sreg2 = D.28426;
            D.28427 = inst->sreg2;
            inst->sreg1 = D.28427;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->data.op[1].p = "IndexOutOfRangeException";
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28428>; else goto <D.28429>;
            <D.28428>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28430>;
            <D.28429>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28430>:
          }
        }
        <D.28416>:
        goto <D.24260>;
        <D.24277>:
        D.28431 = cfg->opt;
        D.28432 = D.28431 & 512;
        if (D.28432 != 0) goto <D.28433>; else goto <D.28434>;
        <D.28433>:
        D.28431 = cfg->opt;
        D.28432 = D.28431 & 512;
        if (D.28432 != 0) goto <D.28435>; else goto <D.28438>;
        <D.28438>:
        D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.28440 = D.28439 & 64;
        if (D.28440 != 0) goto <D.28435>; else goto <D.28436>;
        <D.28435>:
        {
          struct MonoInst * __domain_var;

          __domain_var = mono_get_domainvar (cfg);
          D.28271 = cfg->mempool;
          D.28441 = mono_mempool_alloc (D.28271, 48);
          iargs[0] = D.28441;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->data.op[1].const_val = 0;
          D.28443 = D.28442->data.op[1].const_val;
          D.28442->data.op[0].const_val = D.28443;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->prev = 0B;
          D.28444 = D.28442->prev;
          D.28442->next = D.28444;
          D.28442 = iargs[0];
          D.28442->opcode = 428;
          D.28442 = iargs[0];
          D.28442->flags = 0;
          D.28442 = iargs[0];
          D.28442->type = 0;
          D.28442 = iargs[0];
          D.28442->dreg = -1;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->sreg3 = -1;
          D.28445 = D.28442->sreg3;
          D.28442->sreg2 = D.28445;
          D.28446 = D.28442->sreg2;
          D.28442->sreg1 = D.28446;
          D.28442 = iargs[0];
          D.28297 = cfg->ip;
          D.28442->cil_code = D.28297;
          D.28442 = iargs[0];
          D.28447 = cfg->varinfo;
          D.28448 = __domain_var->data.op[0].const_val;
          D.28449 = (unsigned int) D.28448;
          D.28450 = D.28449 * 4;
          D.28451 = D.28447 + D.28450;
          D.28452 = *D.28451;
          D.28453 = D.28452->data.op[1].vtype;
          D.28454 = mono_type_to_regmove (cfg, D.28453);
          D.28455 = (short unsigned int) D.28454;
          D.28442->opcode = D.28455;
          D.28442 = iargs[0];
          D.28447 = cfg->varinfo;
          D.28448 = __domain_var->data.op[0].const_val;
          D.28449 = (unsigned int) D.28448;
          D.28450 = D.28449 * 4;
          D.28451 = D.28447 + D.28450;
          D.28452 = *D.28451;
          D.28453 = D.28452->data.op[1].vtype;
          type_to_eval_stack_type (cfg, D.28453, D.28442);
          D.28442 = iargs[0];
          D.28447 = cfg->varinfo;
          D.28448 = __domain_var->data.op[0].const_val;
          D.28449 = (unsigned int) D.28448;
          D.28450 = D.28449 * 4;
          D.28451 = D.28447 + D.28450;
          D.28452 = *D.28451;
          D.28456 = D.28452->klass;
          D.28442->klass = D.28456;
          D.28442 = iargs[0];
          D.28447 = cfg->varinfo;
          D.28448 = __domain_var->data.op[0].const_val;
          D.28449 = (unsigned int) D.28448;
          D.28450 = D.28449 * 4;
          D.28451 = D.28447 + D.28450;
          D.28452 = *D.28451;
          D.28457 = D.28452->dreg;
          D.28442->sreg1 = D.28457;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28458 = D.28442->type;
          D.28459 = (<unnamed type>) D.28458;
          D.28460 = alloc_dreg (cfg, D.28459);
          D.28461 = (int) D.28460;
          D.28442->dreg = D.28461;
          D.28442 = iargs[0];
          D.28462 = D.28442->opcode;
          if (D.28462 == 431) goto <D.28463>; else goto <D.28464>;
          <D.28463>:
          D.28442 = iargs[0];
          D.28447 = cfg->varinfo;
          D.28448 = __domain_var->data.op[0].const_val;
          D.28449 = (unsigned int) D.28448;
          D.28450 = D.28449 * 4;
          D.28451 = D.28447 + D.28450;
          D.28452 = *D.28451;
          D.28453 = D.28452->data.op[1].vtype;
          D.28465 = mono_class_from_mono_type (D.28453);
          D.28442->klass = D.28465;
          <D.28464>:
        }
        goto <D.28437>;
        <D.28436>:
        D.28271 = cfg->mempool;
        D.28466 = mono_mempool_alloc (D.28271, 48);
        iargs[0] = D.28466;
        D.28442 = iargs[0];
        D.28442 = iargs[0];
        D.28442->data.op[1].const_val = 0;
        D.28443 = D.28442->data.op[1].const_val;
        D.28442->data.op[0].const_val = D.28443;
        D.28442 = iargs[0];
        D.28442 = iargs[0];
        D.28442->prev = 0B;
        D.28444 = D.28442->prev;
        D.28442->next = D.28444;
        D.28442 = iargs[0];
        D.28442->opcode = 362;
        D.28442 = iargs[0];
        D.28442->flags = 0;
        D.28442 = iargs[0];
        D.28442->type = 0;
        D.28442 = iargs[0];
        D.28442->dreg = -1;
        D.28442 = iargs[0];
        D.28442 = iargs[0];
        D.28442 = iargs[0];
        D.28442->sreg3 = -1;
        D.28445 = D.28442->sreg3;
        D.28442->sreg2 = D.28445;
        D.28446 = D.28442->sreg2;
        D.28442->sreg1 = D.28446;
        D.28442 = iargs[0];
        D.28297 = cfg->ip;
        D.28442->cil_code = D.28297;
        D.28442 = iargs[0];
        D.28467 = cfg->domain;
        D.28442->data.op[0].p = D.28467;
        D.28442 = iargs[0];
        D.28442->type = 3;
        D.28442 = iargs[0];
        D.28468 = alloc_dreg (cfg, 3);
        D.28469 = (int) D.28468;
        D.28442->dreg = D.28469;
        <D.28437>:
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        if (D.28281 != 0B) goto <D.28470>; else goto <D.28471>;
        <D.28470>:
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        D.28442 = iargs[0];
        D.28281->next = D.28442;
        D.28442 = iargs[0];
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        D.28442->prev = D.28281;
        D.28280 = cfg->cbb;
        D.28442 = iargs[0];
        D.28280->last_ins = D.28442;
        goto <D.28472>;
        <D.28471>:
        D.28280 = cfg->cbb;
        D.28280 = cfg->cbb;
        D.28442 = iargs[0];
        D.28280->last_ins = D.28442;
        D.28281 = D.28280->last_ins;
        D.28280->code = D.28281;
        <D.28472>:
        D.28271 = cfg->mempool;
        D.28473 = mono_mempool_alloc (D.28271, 48);
        iargs[1] = D.28473;
        D.28474 = iargs[1];
        D.28474 = iargs[1];
        D.28474->data.op[1].const_val = 0;
        D.28475 = D.28474->data.op[1].const_val;
        D.28474->data.op[0].const_val = D.28475;
        D.28474 = iargs[1];
        D.28474 = iargs[1];
        D.28474->prev = 0B;
        D.28476 = D.28474->prev;
        D.28474->next = D.28476;
        D.28474 = iargs[1];
        D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.28440 = D.28439 & 64;
        if (D.28440 != 0) goto <D.28478>; else goto <D.28479>;
        <D.28478>:
        iftmp.45 = 738;
        goto <D.28480>;
        <D.28479>:
        iftmp.45 = 362;
        <D.28480>:
        D.28474->opcode = iftmp.45;
        D.28474 = iargs[1];
        D.28474->flags = 0;
        D.28474 = iargs[1];
        D.28474->type = 0;
        D.28474 = iargs[1];
        D.28474->dreg = -1;
        D.28474 = iargs[1];
        D.28474 = iargs[1];
        D.28474 = iargs[1];
        D.28474->sreg3 = -1;
        D.28481 = D.28474->sreg3;
        D.28474->sreg2 = D.28481;
        D.28482 = D.28474->sreg2;
        D.28474->sreg1 = D.28482;
        D.28474 = iargs[1];
        D.28297 = cfg->ip;
        D.28474->cil_code = D.28297;
        D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
        D.28440 = D.28439 & 64;
        if (D.28440 != 0) goto <D.28483>; else goto <D.28484>;
        <D.28483>:
        {
          struct MonoInst * group;
          struct MonoInst * got_loc;

          got_loc = mono_get_got_var (cfg);
          D.28271 = cfg->mempool;
          group = mono_mempool_alloc (D.28271, 48);
          group->data.op[1].const_val = 0;
          D.28485 = group->data.op[1].const_val;
          group->data.op[0].const_val = D.28485;
          group->prev = 0B;
          D.28486 = group->prev;
          group->next = D.28486;
          group->opcode = 737;
          group->flags = 0;
          group->type = 0;
          group->dreg = -1;
          group->sreg3 = -1;
          D.28487 = group->sreg3;
          group->sreg2 = D.28487;
          D.28488 = group->sreg2;
          group->sreg1 = D.28488;
          D.28297 = cfg->ip;
          group->cil_code = D.28297;
          D.28489 = ins->data.op[1].klass;
          group->data.op[0].src = D.28489;
          group->data.op[1].src = 11B;
          D.28474 = iargs[1];
          D.28490 = got_loc->dreg;
          D.28474->sreg1 = D.28490;
          D.28474 = iargs[1];
          D.28474->data.op[1].p = group;
        }
        goto <D.28491>;
        <D.28484>:
        D.28474 = iargs[1];
        D.28489 = ins->data.op[1].klass;
        D.28474->data.op[0].p = D.28489;
        D.28474 = iargs[1];
        D.28474->data.op[1].src = 11B;
        <D.28491>:
        D.28474 = iargs[1];
        D.28474->type = 3;
        D.28474 = iargs[1];
        D.28492 = alloc_dreg (cfg, 3);
        D.28493 = (int) D.28492;
        D.28474->dreg = D.28493;
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        if (D.28281 != 0B) goto <D.28494>; else goto <D.28495>;
        <D.28494>:
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        D.28474 = iargs[1];
        D.28281->next = D.28474;
        D.28474 = iargs[1];
        D.28280 = cfg->cbb;
        D.28281 = D.28280->last_ins;
        D.28474->prev = D.28281;
        D.28280 = cfg->cbb;
        D.28474 = iargs[1];
        D.28280->last_ins = D.28474;
        goto <D.28496>;
        <D.28495>:
        D.28280 = cfg->cbb;
        D.28280 = cfg->cbb;
        D.28474 = iargs[1];
        D.28280->last_ins = D.28474;
        D.28281 = D.28280->last_ins;
        D.28280->code = D.28281;
        <D.28496>:
        D.28271 = cfg->mempool;
        D.28497 = mono_mempool_alloc (D.28271, 48);
        iargs[2] = D.28497;
        D.28498 = iargs[2];
        D.28498 = iargs[2];
        D.28498->data.op[1].const_val = 0;
        D.28499 = D.28498->data.op[1].const_val;
        D.28498->data.op[0].const_val = D.28499;
        D.28498 = iargs[2];
        D.28498 = iargs[2];
        D.28498->prev = 0B;
        D.28500 = D.28498->prev;
        D.28498->next = D.28500;
        D.28498 = iargs[2];
        D.28498->opcode = 428;
        D.28498 = iargs[2];
        D.28498->flags = 0;
        D.28498 = iargs[2];
        D.28498->type = 0;
        D.28498 = iargs[2];
        D.28498->dreg = -1;
        D.28498 = iargs[2];
        D.28498 = iargs[2];
        D.28498 = iargs[2];
        D.28498->sreg3 = -1;
        D.28501 = D.28498->sreg3;
        D.28498->sreg2 = D.28501;
        D.28502 = D.28498->sreg2;
        D.28498->sreg1 = D.28502;
        D.28498 = iargs[2];
        D.28297 = cfg->ip;
        D.28498->cil_code = D.28297;
        D.28498 = iargs[2];
        D.28298 = ins->sreg1;
        D.28498->dreg = D.28298;
        dest = mono_emit_jit_icall (cfg, mono_array_new, &iargs);
        D.28314 = ins->dreg;
        dest->dreg = D.28314;
        goto <D.28503>;
        <D.28434>:
        {
          struct MonoClass * array_class;
          struct MonoVTable * vtable;
          struct MonoMethod * managed_alloc;

          D.28489 = ins->data.op[1].klass;
          array_class = mono_array_class_get (D.28489, 1);
          D.28467 = cfg->domain;
          vtable = mono_class_vtable (D.28467, array_class);
          managed_alloc = mono_gc_get_managed_array_allocator (array_class);
          D.28504 = vtable == 0B;
          D.28505 = (long int) D.28504;
          D.28506 = __builtin_expect (D.28505, 0);
          if (D.28506 != 0) goto <D.28507>; else goto <D.28508>;
          <D.28507>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1505, "vtable");
          <D.28508>:
          D.28271 = cfg->mempool;
          D.28509 = mono_mempool_alloc (D.28271, 48);
          iargs[0] = D.28509;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->data.op[1].const_val = 0;
          D.28443 = D.28442->data.op[1].const_val;
          D.28442->data.op[0].const_val = D.28443;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->prev = 0B;
          D.28444 = D.28442->prev;
          D.28442->next = D.28444;
          D.28442 = iargs[0];
          D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.28440 = D.28439 & 64;
          if (D.28440 != 0) goto <D.28511>; else goto <D.28512>;
          <D.28511>:
          iftmp.46 = 738;
          goto <D.28513>;
          <D.28512>:
          iftmp.46 = 362;
          <D.28513>:
          D.28442->opcode = iftmp.46;
          D.28442 = iargs[0];
          D.28442->flags = 0;
          D.28442 = iargs[0];
          D.28442->type = 0;
          D.28442 = iargs[0];
          D.28442->dreg = -1;
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442 = iargs[0];
          D.28442->sreg3 = -1;
          D.28445 = D.28442->sreg3;
          D.28442->sreg2 = D.28445;
          D.28446 = D.28442->sreg2;
          D.28442->sreg1 = D.28446;
          D.28442 = iargs[0];
          D.28297 = cfg->ip;
          D.28442->cil_code = D.28297;
          D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.28440 = D.28439 & 64;
          if (D.28440 != 0) goto <D.28514>; else goto <D.28515>;
          <D.28514>:
          {
            struct MonoInst * group;
            struct MonoInst * got_loc;

            got_loc = mono_get_got_var (cfg);
            D.28271 = cfg->mempool;
            group = mono_mempool_alloc (D.28271, 48);
            group->data.op[1].const_val = 0;
            D.28516 = group->data.op[1].const_val;
            group->data.op[0].const_val = D.28516;
            group->prev = 0B;
            D.28517 = group->prev;
            group->next = D.28517;
            group->opcode = 737;
            group->flags = 0;
            group->type = 0;
            group->dreg = -1;
            group->sreg3 = -1;
            D.28518 = group->sreg3;
            group->sreg2 = D.28518;
            D.28519 = group->sreg2;
            group->sreg1 = D.28519;
            D.28297 = cfg->ip;
            group->cil_code = D.28297;
            D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
            D.28440 = D.28439 & 64;
            if (D.28440 != 0) goto <D.28521>; else goto <D.28522>;
            <D.28521>:
            iftmp.47 = vtable->klass;
            goto <D.28523>;
            <D.28522>:
            iftmp.47 = vtable;
            <D.28523>:
            group->data.op[0].src = iftmp.47;
            group->data.op[1].src = 14B;
            D.28442 = iargs[0];
            D.28524 = got_loc->dreg;
            D.28442->sreg1 = D.28524;
            D.28442 = iargs[0];
            D.28442->data.op[1].p = group;
          }
          goto <D.28525>;
          <D.28515>:
          D.28442 = iargs[0];
          D.28439 = BIT_FIELD_REF <*cfg, 8, 3392>;
          D.28440 = D.28439 & 64;
          if (D.28440 != 0) goto <D.28527>; else goto <D.28528>;
          <D.28527>:
          iftmp.48 = vtable->klass;
          goto <D.28529>;
          <D.28528>:
          iftmp.48 = vtable;
          <D.28529>:
          D.28442->data.op[0].p = iftmp.48;
          D.28442 = iargs[0];
          D.28442->data.op[1].src = 14B;
          <D.28525>:
          D.28442 = iargs[0];
          D.28442->type = 3;
          D.28442 = iargs[0];
          D.28530 = alloc_dreg (cfg, 3);
          D.28531 = (int) D.28530;
          D.28442->dreg = D.28531;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          if (D.28281 != 0B) goto <D.28532>; else goto <D.28533>;
          <D.28532>:
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28442 = iargs[0];
          D.28281->next = D.28442;
          D.28442 = iargs[0];
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28442->prev = D.28281;
          D.28280 = cfg->cbb;
          D.28442 = iargs[0];
          D.28280->last_ins = D.28442;
          goto <D.28534>;
          <D.28533>:
          D.28280 = cfg->cbb;
          D.28280 = cfg->cbb;
          D.28442 = iargs[0];
          D.28280->last_ins = D.28442;
          D.28281 = D.28280->last_ins;
          D.28280->code = D.28281;
          <D.28534>:
          D.28271 = cfg->mempool;
          D.28535 = mono_mempool_alloc (D.28271, 48);
          iargs[1] = D.28535;
          D.28474 = iargs[1];
          D.28474 = iargs[1];
          D.28474->data.op[1].const_val = 0;
          D.28475 = D.28474->data.op[1].const_val;
          D.28474->data.op[0].const_val = D.28475;
          D.28474 = iargs[1];
          D.28474 = iargs[1];
          D.28474->prev = 0B;
          D.28476 = D.28474->prev;
          D.28474->next = D.28476;
          D.28474 = iargs[1];
          D.28474->opcode = 428;
          D.28474 = iargs[1];
          D.28474->flags = 0;
          D.28474 = iargs[1];
          D.28474->type = 0;
          D.28474 = iargs[1];
          D.28474->dreg = -1;
          D.28474 = iargs[1];
          D.28474 = iargs[1];
          D.28474 = iargs[1];
          D.28474->sreg3 = -1;
          D.28481 = D.28474->sreg3;
          D.28474->sreg2 = D.28481;
          D.28482 = D.28474->sreg2;
          D.28474->sreg1 = D.28482;
          D.28474 = iargs[1];
          D.28297 = cfg->ip;
          D.28474->cil_code = D.28297;
          D.28474 = iargs[1];
          D.28298 = ins->sreg1;
          D.28474->dreg = D.28298;
          if (managed_alloc != 0B) goto <D.28536>; else goto <D.28537>;
          <D.28536>:
          dest = mono_emit_method_call (cfg, managed_alloc, &iargs, 0B);
          goto <D.28538>;
          <D.28537>:
          dest = mono_emit_jit_icall (cfg, mono_array_new_specific, &iargs);
          <D.28538>:
          D.28314 = ins->dreg;
          dest->dreg = D.28314;
        }
        <D.28503>:
        goto <D.24260>;
        <D.24286>:
        {
          struct MonoInst * inst;
          int __ins_flags;

          D.28284 = ins->flags;
          D.28285 = D.28284 | 64;
          __ins_flags = (int) D.28285;
          D.28539 = __ins_flags & 32;
          if (D.28539 != 0) goto <D.28540>; else goto <D.28541>;
          <D.28540>:
          D.28289 = BIT_FIELD_REF <*cfg, 8, 3424>;
          D.28290 = D.28289 & 64;
          if (D.28290 != 0) goto <D.28542>; else goto <D.28543>;
          <D.28542>:
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28544 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28544;
            inst->prev = 0B;
            D.28545 = inst->prev;
            inst->next = D.28545;
            inst->opcode = 323;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28546 = inst->sreg3;
            inst->sreg2 = D.28546;
            D.28547 = inst->sreg2;
            inst->sreg1 = D.28547;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->dreg = -1;
            D.28298 = ins->sreg1;
            inst->sreg1 = D.28298;
            inst->data.op[1].const_val = 0;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28548>; else goto <D.28549>;
            <D.28548>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28550>;
            <D.28549>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28550>:
          }
          {
            struct MonoInst * inst;

            D.28271 = cfg->mempool;
            inst = mono_mempool_alloc (D.28271, 48);
            inst->data.op[1].const_val = 0;
            D.28551 = inst->data.op[1].const_val;
            inst->data.op[0].const_val = D.28551;
            inst->prev = 0B;
            D.28552 = inst->prev;
            inst->next = D.28552;
            inst->opcode = 455;
            inst->flags = 0;
            inst->type = 0;
            inst->dreg = -1;
            inst->sreg3 = -1;
            D.28553 = inst->sreg3;
            inst->sreg2 = D.28553;
            D.28554 = inst->sreg2;
            inst->sreg1 = D.28554;
            D.28297 = cfg->ip;
            inst->cil_code = D.28297;
            inst->data.op[1].p = "NullReferenceException";
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            if (D.28281 != 0B) goto <D.28555>; else goto <D.28556>;
            <D.28555>:
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            D.28281->next = inst;
            D.28280 = cfg->cbb;
            D.28281 = D.28280->last_ins;
            inst->prev = D.28281;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            goto <D.28557>;
            <D.28556>:
            D.28280 = cfg->cbb;
            D.28280 = cfg->cbb;
            D.28280->last_ins = inst;
            D.28281 = D.28280->last_ins;
            D.28280->code = D.28281;
            <D.28557>:
          }
          goto <D.28558>;
          <D.28543>:
          <D.28558>:
          <D.28541>:
          D.28271 = cfg->mempool;
          inst = mono_mempool_alloc (D.28271, 48);
          inst->data.op[1].const_val = 0;
          D.28559 = inst->data.op[1].const_val;
          inst->data.op[0].const_val = D.28559;
          inst->prev = 0B;
          D.28560 = inst->prev;
          inst->next = D.28560;
          inst->opcode = 396;
          inst->flags = 0;
          inst->type = 0;
          inst->dreg = -1;
          inst->sreg3 = -1;
          D.28561 = inst->sreg3;
          inst->sreg2 = D.28561;
          D.28562 = inst->sreg2;
          inst->sreg1 = D.28562;
          D.28297 = cfg->ip;
          inst->cil_code = D.28297;
          D.28314 = ins->dreg;
          inst->dreg = D.28314;
          D.28298 = ins->sreg1;
          inst->sreg1 = D.28298;
          inst->data.op[0].const_val = 8;
          inst->type = 1;
          D.28563 = (unsigned char) __ins_flags;
          inst->flags = D.28563;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          if (D.28281 != 0B) goto <D.28564>; else goto <D.28565>;
          <D.28564>:
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          D.28281->next = inst;
          D.28280 = cfg->cbb;
          D.28281 = D.28280->last_ins;
          inst->prev = D.28281;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          goto <D.28566>;
          <D.28565>:
          D.28280 = cfg->cbb;
          D.28280 = cfg->cbb;
          D.28280->last_ins = inst;
          D.28281 = D.28280->last_ins;
          D.28280->code = D.28281;
          <D.28566>:
        }
        goto <D.24260>;
        <D.24291>:
        goto <D.24260>;
        <D.24260>:
        D.28280 = cfg->cbb;
        D.28567 = D.28280 != first_bb;
        D.28568 = (long int) D.28567;
        D.28569 = __builtin_expect (D.28568, 0);
        if (D.28569 != 0) goto <D.28570>; else goto <D.28571>;
        <D.28570>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "decompose.c", 1526, "cfg->cbb == first_bb");
        <D.28571>:
        D.28280 = cfg->cbb;
        D.28575 = D.28280->code;
        if (D.28575 != 0B) goto <D.28572>; else goto <D.28576>;
        <D.28576>:
        D.28280 = cfg->cbb;
        if (D.28280 != first_bb) goto <D.28572>; else goto <D.28573>;
        <D.28572>:
        D.28280 = cfg->cbb;
        mono_replace_ins (cfg, bb, ins, &prev, first_bb, D.28280);
        first_bb->last_ins = 0B;
        D.28577 = first_bb->last_ins;
        first_bb->code = D.28577;
        first_bb->out_count = 0;
        D.28578 = first_bb->out_count;
        first_bb->in_count = D.28578;
        cfg->cbb = first_bb;
        goto <D.28574>;
        <D.28573>:
        prev = ins;
        <D.28574>:
        ins = ins->next;
        <D.24293>:
        if (ins != 0B) goto <D.24292>; else goto <D.24294>;
        <D.24294>:
        <D.24296>:
        if (restart != 0) goto <D.24295>; else goto <D.24297>;
        <D.24297>:
        D.28277 = cfg->verbose_level;
        if (D.28277 > 3) goto <D.28579>; else goto <D.28580>;
        <D.28579>:
        mono_print_bb (bb, "AFTER DECOMPOSE-ARRAY-ACCESS-OPTS ");
        <D.28580>:
      }
    finally
      {
        prev = {CLOBBER};
        iargs = {CLOBBER};
      }
  }
  <D.24255>:
  bb = bb->next_bb;
  <D.24299>:
  if (bb != 0B) goto <D.24298>; else goto <D.24300>;
  <D.24300>:
}


mono_get_domainvar (struct MonoCompile * cfg)
{
  struct MonoInst * D.28584;
  struct MonoClass * D.28587;
  struct MonoType * D.28588;
  struct MonoInst * D.28589;
  struct MonoInst * D.28590;

  D.28584 = cfg->domainvar;
  if (D.28584 == 0B) goto <D.28585>; else goto <D.28586>;
  <D.28585>:
  D.28587 = mono_defaults.int_class;
  D.28588 = &D.28587->byval_arg;
  D.28589 = mono_compile_create_var (cfg, D.28588, 329);
  cfg->domainvar = D.28589;
  <D.28586>:
  D.28590 = cfg->domainvar;
  return D.28590;
}


