mono_arch_get_unbox_trampoline (struct MonoMethod * m, void * addr)
{
  void * code.0;
  guint8 * code.1;
  unsigned char iftmp.2;
  guint8 * code.3;
  guint8 * code.4;
  unsigned char D.24367;
  guint8 * code.5;
  guint8 * code.6;
  guint8 * code.7;
  guint8 * code.8;
  signed char D.24372;
  signed char D.24373;
  signed char D.24374;
  unsigned char D.24375;
  guint8 * code.9;
  guint8 * code.10;
  guint8 * code.11;
  unsigned char D.24384;
  guint8 * code.12;
  guint8 * code.13;
  guint8 * code.14;
  guint8 * code.15;
  unsigned char D.24389;
  guint8 * code.16;
  guint8 * code.17;
  unsigned char D.24392;
  guint8 * code.18;
  guint8 * code.19;
  unsigned char D.24395;
  guint8 * code.20;
  guint8 * code.21;
  unsigned char D.24398;
  unsigned char iftmp.22;
  guint8 * code.23;
  guint8 * code.24;
  unsigned char D.24408;
  guint8 * code.25;
  guint8 * code.26;
  guint8 * code.27;
  guint8 * code.28;
  guint8 * code.29;
  guint8 * code.30;
  unsigned char D.24415;
  guint8 * code.31;
  guint8 * code.32;
  unsigned char D.24418;
  guint8 * code.33;
  guint8 * code.34;
  unsigned char D.24421;
  guint8 * code.35;
  guint8 * code.36;
  unsigned char D.24424;
  long unsigned int addr.37;
  long int addr.38;
  int D.24427;
  long unsigned int D.24428;
  _Bool D.24429;
  unsigned char iftmp.39;
  guint8 * code.40;
  guint8 * code.41;
  unsigned char D.24438;
  guint8 * code.42;
  guint8 * code.43;
  guint8 * code.44;
  guint8 * code.45;
  unsigned char D.24445;
  guint8 * code.46;
  guint8 * code.47;
  unsigned char D.24448;
  guint8 * code.48;
  guint8 * code.49;
  unsigned char D.24451;
  guint8 * code.50;
  guint8 * code.51;
  unsigned char D.24454;
  guint8 * code.52;
  guint8 * code.53;
  unsigned char D.24457;
  guint8 * code.54;
  guint8 * code.55;
  unsigned char D.24460;
  guint8 * code.56;
  guint8 * code.57;
  unsigned char D.24463;
  guint8 * code.58;
  guint8 * code.59;
  unsigned char D.24466;
  guint8 * code.60;
  guint8 * code.61;
  unsigned char D.24470;
  guint8 * code.62;
  guint8 * code.63;
  unsigned char D.24473;
  guint8 * code.64;
  guint8 * code.65;
  unsigned char D.24476;
  guint8 * code.66;
  guint8 * code.67;
  unsigned char D.24479;
  guint8 * code.68;
  guint8 * code.69;
  unsigned char D.24484;
  guint8 * code.70;
  guint8 * code.71;
  guint8 * code.72;
  guint8 * code.73;
  long int code.74;
  guint8 * start.75;
  long int start.76;
  long int D.24492;
  long int D.24493;
  _Bool D.24494;
  long int D.24495;
  long int D.24496;
  int D.24499;
  void * D.24500;
  guint8 * code;
  guint8 * start;
  int this_reg;
  int size;
  struct MonoDomain * domain;

  try
    {
      size = 20;
      domain = mono_domain_get ();
      this_reg = mono_arch_get_this_arg_reg (0B);
      code.0 = mono_domain_code_reserve (domain, size);
      code = code.0;
      code.1 = code;
      start = code.1;
      if (1 != 0) goto <D.24357>; else goto <D.24358>;
      <D.24357>:
      {
        unsigned char _amd64_rex_bits;

        if (this_reg > 7) goto <D.24360>; else goto <D.24361>;
        <D.24360>:
        iftmp.2 = 9;
        goto <D.24362>;
        <D.24361>:
        iftmp.2 = 8;
        <D.24362>:
        _amd64_rex_bits = iftmp.2;
        if (_amd64_rex_bits != 0) goto <D.24363>; else goto <D.24364>;
        <D.24363>:
        code.1 = code;
        code.3 = code.1;
        code.4 = code.3 + 1;
        code = code.4;
        D.24367 = _amd64_rex_bits | 64;
        *code.3 = D.24367;
        <D.24364>:
      }
      code.1 = code;
      code.5 = code.1;
      code.6 = code.5 + 1;
      code = code.6;
      *code.5 = 131;
      code.1 = code;
      code.7 = code.1;
      code.8 = code.7 + 1;
      code = code.8;
      D.24372 = (signed char) this_reg;
      D.24373 = D.24372 & 7;
      D.24374 = D.24373 | -64;
      D.24375 = (unsigned char) D.24374;
      *code.7 = D.24375;
      code.1 = code;
      *code.1 = 16;
      code.1 = code;
      code.9 = code.1 + 1;
      code = code.9;
      goto <D.24377>;
      <D.24358>:
      if (this_reg == 0) goto <D.24378>; else goto <D.24379>;
      <D.24378>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.24380>; else goto <D.24381>;
        <D.24380>:
        code.1 = code;
        code.10 = code.1;
        code.11 = code.10 + 1;
        code = code.11;
        D.24384 = _amd64_rex_bits | 64;
        *code.10 = D.24384;
        <D.24381>:
      }
      code.1 = code;
      code.12 = code.1;
      code.13 = code.12 + 1;
      code = code.13;
      *code.12 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 16;
            code.1 = code;
            code.14 = code.1;
            code.15 = code.14 + 1;
            code = code.15;
            D.24389 = imb.b[0];
            *code.14 = D.24389;
            code.1 = code;
            code.16 = code.1;
            code.17 = code.16 + 1;
            code = code.17;
            D.24392 = imb.b[1];
            *code.16 = D.24392;
            code.1 = code;
            code.18 = code.1;
            code.19 = code.18 + 1;
            code = code.19;
            D.24395 = imb.b[2];
            *code.18 = D.24395;
            code.1 = code;
            code.20 = code.1;
            code.21 = code.20 + 1;
            code = code.21;
            D.24398 = imb.b[3];
            *code.20 = D.24398;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.24399>;
      <D.24379>:
      {
        unsigned char _amd64_rex_bits;

        if (this_reg > 7) goto <D.24401>; else goto <D.24402>;
        <D.24401>:
        iftmp.22 = 9;
        goto <D.24403>;
        <D.24402>:
        iftmp.22 = 8;
        <D.24403>:
        _amd64_rex_bits = iftmp.22;
        if (_amd64_rex_bits != 0) goto <D.24404>; else goto <D.24405>;
        <D.24404>:
        code.1 = code;
        code.23 = code.1;
        code.24 = code.23 + 1;
        code = code.24;
        D.24408 = _amd64_rex_bits | 64;
        *code.23 = D.24408;
        <D.24405>:
      }
      code.1 = code;
      code.25 = code.1;
      code.26 = code.25 + 1;
      code = code.26;
      *code.25 = 129;
      code.1 = code;
      code.27 = code.1;
      code.28 = code.27 + 1;
      code = code.28;
      D.24372 = (signed char) this_reg;
      D.24373 = D.24372 & 7;
      D.24374 = D.24373 | -64;
      D.24375 = (unsigned char) D.24374;
      *code.27 = D.24375;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 16;
            code.1 = code;
            code.29 = code.1;
            code.30 = code.29 + 1;
            code = code.30;
            D.24415 = imb.b[0];
            *code.29 = D.24415;
            code.1 = code;
            code.31 = code.1;
            code.32 = code.31 + 1;
            code = code.32;
            D.24418 = imb.b[1];
            *code.31 = D.24418;
            code.1 = code;
            code.33 = code.1;
            code.34 = code.33 + 1;
            code = code.34;
            D.24421 = imb.b[2];
            *code.33 = D.24421;
            code.1 = code;
            code.35 = code.1;
            code.36 = code.35 + 1;
            code = code.36;
            D.24424 = imb.b[3];
            *code.35 = D.24424;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24399>:
      <D.24377>:
      {
        int _amd64_width_temp;

        addr.37 = (long unsigned int) addr;
        addr.38 = (long int) addr;
        D.24427 = (int) addr.38;
        D.24428 = (long unsigned int) D.24427;
        D.24429 = addr.37 == D.24428;
        _amd64_width_temp = (int) D.24429;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.24431>; else goto <D.24432>;
          <D.24431>:
          iftmp.39 = 8;
          goto <D.24433>;
          <D.24432>:
          iftmp.39 = 0;
          <D.24433>:
          _amd64_rex_bits = iftmp.39;
          if (_amd64_rex_bits != 0) goto <D.24434>; else goto <D.24435>;
          <D.24434>:
          code.1 = code;
          code.40 = code.1;
          code.41 = code.40 + 1;
          code = code.41;
          D.24438 = _amd64_rex_bits | 64;
          *code.40 = D.24438;
          <D.24435>:
        }
        code.1 = code;
        code.42 = code.1;
        code.43 = code.42 + 1;
        code = code.43;
        *code.42 = 184;
        if (_amd64_width_temp == 0) goto <D.24441>; else goto <D.24442>;
        <D.24441>:
        {
          union amd64_imm_buf imb;

          try
            {
              addr.37 = (long unsigned int) addr;
              imb.val = addr.37;
              code.1 = code;
              code.44 = code.1;
              code.45 = code.44 + 1;
              code = code.45;
              D.24445 = imb.b[0];
              *code.44 = D.24445;
              code.1 = code;
              code.46 = code.1;
              code.47 = code.46 + 1;
              code = code.47;
              D.24448 = imb.b[1];
              *code.46 = D.24448;
              code.1 = code;
              code.48 = code.1;
              code.49 = code.48 + 1;
              code = code.49;
              D.24451 = imb.b[2];
              *code.48 = D.24451;
              code.1 = code;
              code.50 = code.1;
              code.51 = code.50 + 1;
              code = code.51;
              D.24454 = imb.b[3];
              *code.50 = D.24454;
              code.1 = code;
              code.52 = code.1;
              code.53 = code.52 + 1;
              code = code.53;
              D.24457 = imb.b[4];
              *code.52 = D.24457;
              code.1 = code;
              code.54 = code.1;
              code.55 = code.54 + 1;
              code = code.55;
              D.24460 = imb.b[5];
              *code.54 = D.24460;
              code.1 = code;
              code.56 = code.1;
              code.57 = code.56 + 1;
              code = code.57;
              D.24463 = imb.b[6];
              *code.56 = D.24463;
              code.1 = code;
              code.58 = code.1;
              code.59 = code.58 + 1;
              code = code.59;
              D.24466 = imb.b[7];
              *code.58 = D.24466;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.24467>;
        <D.24442>:
        {
          union x86_imm_buf imb;

          try
            {
              addr.38 = (long int) addr;
              D.24427 = (int) addr.38;
              imb.val = D.24427;
              code.1 = code;
              code.60 = code.1;
              code.61 = code.60 + 1;
              code = code.61;
              D.24470 = imb.b[0];
              *code.60 = D.24470;
              code.1 = code;
              code.62 = code.1;
              code.63 = code.62 + 1;
              code = code.63;
              D.24473 = imb.b[1];
              *code.62 = D.24473;
              code.1 = code;
              code.64 = code.1;
              code.65 = code.64 + 1;
              code = code.65;
              D.24476 = imb.b[2];
              *code.64 = D.24476;
              code.1 = code;
              code.66 = code.1;
              code.67 = code.66 + 1;
              code = code.67;
              D.24479 = imb.b[3];
              *code.66 = D.24479;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.24467>:
      }
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.24480>; else goto <D.24481>;
        <D.24480>:
        code.1 = code;
        code.68 = code.1;
        code.69 = code.68 + 1;
        code = code.69;
        D.24484 = _amd64_rex_bits | 64;
        *code.68 = D.24484;
        <D.24481>:
      }
      code.1 = code;
      code.70 = code.1;
      code.71 = code.70 + 1;
      code = code.71;
      *code.70 = 255;
      code.1 = code;
      code.72 = code.1;
      code.73 = code.72 + 1;
      code = code.73;
      *code.72 = 224;
      code.1 = code;
      code.74 = (long int) code.1;
      start.75 = start;
      start.76 = (long int) start.75;
      D.24492 = code.74 - start.76;
      D.24493 = (long int) size;
      D.24494 = D.24492 >= D.24493;
      D.24495 = (long int) D.24494;
      D.24496 = __builtin_expect (D.24495, 0);
      if (D.24496 != 0) goto <D.24497>; else goto <D.24498>;
      <D.24497>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 62, "(code - start) < size");
      <D.24498>:
      nacl_domain_code_validate (domain, &start, size, &code);
      code.1 = code;
      code.74 = (long int) code.1;
      start.75 = start;
      start.76 = (long int) start.75;
      D.24492 = code.74 - start.76;
      D.24499 = (int) D.24492;
      start.75 = start;
      mono_arch_flush_icache (start.75, D.24499);
      D.24500 = start;
      return D.24500;
    }
  finally
    {
      code = {CLOBBER};
      start = {CLOBBER};
    }
}


mono_arch_get_static_rgctx_trampoline (struct MonoMethod * m, struct MonoMethodRuntimeGenericContext * mrgctx, void * addr)
{
  long unsigned int addr.77;
  long unsigned int D.24504;
  void * code.78;
  guint8 * code.79;
  long unsigned int mrgctx.80;
  long int mrgctx.81;
  int D.24512;
  long unsigned int D.24513;
  _Bool D.24514;
  unsigned char iftmp.82;
  guint8 * code.83;
  guint8 * code.84;
  unsigned char D.24523;
  guint8 * code.85;
  guint8 * code.86;
  guint8 * code.87;
  guint8 * code.88;
  unsigned char D.24530;
  guint8 * code.89;
  guint8 * code.90;
  unsigned char D.24533;
  guint8 * code.91;
  guint8 * code.92;
  unsigned char D.24536;
  guint8 * code.93;
  guint8 * code.94;
  unsigned char D.24539;
  guint8 * code.95;
  guint8 * code.96;
  unsigned char D.24542;
  guint8 * code.97;
  guint8 * code.98;
  unsigned char D.24545;
  guint8 * code.99;
  guint8 * code.100;
  unsigned char D.24548;
  guint8 * code.101;
  guint8 * code.102;
  unsigned char D.24551;
  guint8 * code.103;
  guint8 * code.104;
  unsigned char D.24555;
  guint8 * code.105;
  guint8 * code.106;
  unsigned char D.24558;
  guint8 * code.107;
  guint8 * code.108;
  unsigned char D.24561;
  guint8 * code.109;
  guint8 * code.110;
  unsigned char D.24564;
  long int addr.111;
  long int code.112;
  long int D.24567;
  unsigned long D.24568;
  unsigned long D.24569;
  unsigned int D.24572;
  unsigned int D.24573;
  unsigned int t.113;
  unsigned int D.24575;
  guint8 * code.114;
  guint8 * code.115;
  unsigned char D.24580;
  guint8 * code.116;
  unsigned int D.24583;
  guint8 * code.117;
  guint8 * code.118;
  guint8 * code.119;
  guint8 * code.120;
  unsigned char D.24588;
  guint8 * code.121;
  guint8 * code.122;
  unsigned char D.24591;
  guint8 * code.123;
  guint8 * code.124;
  unsigned char D.24594;
  guint8 * code.125;
  guint8 * code.126;
  unsigned char D.24597;
  guint8 * code.127;
  guint8 * code.128;
  unsigned char D.24603;
  guint8 * code.129;
  guint8 * code.130;
  guint8 * code.131;
  guint8 * code.132;
  guint8 * code.133;
  guint8 * code.134;
  unsigned char D.24612;
  guint8 * code.135;
  guint8 * code.136;
  unsigned char D.24615;
  guint8 * code.137;
  guint8 * code.138;
  unsigned char D.24618;
  guint8 * code.139;
  guint8 * code.140;
  unsigned char D.24621;
  guint8 * code.141;
  guint8 * code.142;
  guint8 * code.143;
  guint8 * code.144;
  guint8 * code.145;
  guint8 * code.146;
  guint8 * code.147;
  guint8 * code.148;
  guint8 * code.149;
  guint8 * code.150;
  guint8 * code.151;
  guint8 * code.152;
  guint8 * code.153;
  guint8 * code.154;
  unsigned char D.24645;
  guint8 * code.155;
  guint8 * code.156;
  unsigned char D.24648;
  guint8 * code.157;
  guint8 * code.158;
  unsigned char D.24651;
  guint8 * code.159;
  guint8 * code.160;
  unsigned char D.24654;
  guint8 * code.161;
  guint8 * code.162;
  guint8 * code.163;
  guint8 * code.164;
  guint8 * code.165;
  guint8 * code.166;
  guint8 * code.167;
  guint8 * code.168;
  unsigned char D.24668;
  guint8 * code.169;
  guint8 * code.170;
  unsigned char D.24671;
  guint8 * code.171;
  guint8 * code.172;
  unsigned char D.24674;
  guint8 * code.173;
  guint8 * code.174;
  unsigned char D.24677;
  guint8 * code.175;
  guint8 * start.176;
  long int start.177;
  long int D.24681;
  long int D.24682;
  _Bool D.24683;
  long int D.24684;
  long int D.24685;
  int D.24688;
  void * D.24689;
  guint8 * code;
  guint8 * start;
  int buf_len;
  struct MonoDomain * domain;

  try
    {
      domain = mono_domain_get ();
      addr.77 = (long unsigned int) addr;
      D.24504 = addr.77 >> 32;
      if (D.24504 == 0) goto <D.24505>; else goto <D.24506>;
      <D.24505>:
      buf_len = 16;
      goto <D.24507>;
      <D.24506>:
      buf_len = 30;
      <D.24507>:
      code.78 = mono_domain_code_reserve (domain, buf_len);
      code = code.78;
      code.79 = code;
      start = code.79;
      {
        int _amd64_width_temp;

        mrgctx.80 = (long unsigned int) mrgctx;
        mrgctx.81 = (long int) mrgctx;
        D.24512 = (int) mrgctx.81;
        D.24513 = (long unsigned int) D.24512;
        D.24514 = mrgctx.80 == D.24513;
        _amd64_width_temp = (int) D.24514;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.24516>; else goto <D.24517>;
          <D.24516>:
          iftmp.82 = 9;
          goto <D.24518>;
          <D.24517>:
          iftmp.82 = 1;
          <D.24518>:
          _amd64_rex_bits = iftmp.82;
          if (_amd64_rex_bits != 0) goto <D.24519>; else goto <D.24520>;
          <D.24519>:
          code.79 = code;
          code.83 = code.79;
          code.84 = code.83 + 1;
          code = code.84;
          D.24523 = _amd64_rex_bits | 64;
          *code.83 = D.24523;
          <D.24520>:
        }
        code.79 = code;
        code.85 = code.79;
        code.86 = code.85 + 1;
        code = code.86;
        *code.85 = 186;
        if (_amd64_width_temp == 0) goto <D.24526>; else goto <D.24527>;
        <D.24526>:
        {
          union amd64_imm_buf imb;

          try
            {
              mrgctx.80 = (long unsigned int) mrgctx;
              imb.val = mrgctx.80;
              code.79 = code;
              code.87 = code.79;
              code.88 = code.87 + 1;
              code = code.88;
              D.24530 = imb.b[0];
              *code.87 = D.24530;
              code.79 = code;
              code.89 = code.79;
              code.90 = code.89 + 1;
              code = code.90;
              D.24533 = imb.b[1];
              *code.89 = D.24533;
              code.79 = code;
              code.91 = code.79;
              code.92 = code.91 + 1;
              code = code.92;
              D.24536 = imb.b[2];
              *code.91 = D.24536;
              code.79 = code;
              code.93 = code.79;
              code.94 = code.93 + 1;
              code = code.94;
              D.24539 = imb.b[3];
              *code.93 = D.24539;
              code.79 = code;
              code.95 = code.79;
              code.96 = code.95 + 1;
              code = code.96;
              D.24542 = imb.b[4];
              *code.95 = D.24542;
              code.79 = code;
              code.97 = code.79;
              code.98 = code.97 + 1;
              code = code.98;
              D.24545 = imb.b[5];
              *code.97 = D.24545;
              code.79 = code;
              code.99 = code.79;
              code.100 = code.99 + 1;
              code = code.100;
              D.24548 = imb.b[6];
              *code.99 = D.24548;
              code.79 = code;
              code.101 = code.79;
              code.102 = code.101 + 1;
              code = code.102;
              D.24551 = imb.b[7];
              *code.101 = D.24551;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.24552>;
        <D.24527>:
        {
          union x86_imm_buf imb;

          try
            {
              mrgctx.81 = (long int) mrgctx;
              D.24512 = (int) mrgctx.81;
              imb.val = D.24512;
              code.79 = code;
              code.103 = code.79;
              code.104 = code.103 + 1;
              code = code.104;
              D.24555 = imb.b[0];
              *code.103 = D.24555;
              code.79 = code;
              code.105 = code.79;
              code.106 = code.105 + 1;
              code = code.106;
              D.24558 = imb.b[1];
              *code.105 = D.24558;
              code.79 = code;
              code.107 = code.79;
              code.108 = code.107 + 1;
              code = code.108;
              D.24561 = imb.b[2];
              *code.107 = D.24561;
              code.79 = code;
              code.109 = code.79;
              code.110 = code.109 + 1;
              code = code.110;
              D.24564 = imb.b[3];
              *code.109 = D.24564;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.24552>:
      }
      addr.111 = (long int) addr;
      code.79 = code;
      code.112 = (long int) code.79;
      D.24567 = addr.111 - code.112;
      D.24568 = (unsigned long) D.24567;
      D.24569 = D.24568 + 2147483648;
      if (D.24569 <= 4294967295) goto <D.24570>; else goto <D.24571>;
      <D.24570>:
      {
        int t;

        addr.111 = (long int) addr;
        code.79 = code;
        code.112 = (long int) code.79;
        D.24567 = addr.111 - code.112;
        D.24572 = (unsigned int) D.24567;
        D.24573 = D.24572 + 4294967294;
        t = (int) D.24573;
        t.113 = (unsigned int) t;
        D.24575 = t.113 + 128;
        if (D.24575 <= 255) goto <D.24576>; else goto <D.24577>;
        <D.24576>:
        code.79 = code;
        code.114 = code.79;
        code.115 = code.114 + 1;
        code = code.115;
        *code.114 = 235;
        code.79 = code;
        D.24580 = (unsigned char) t;
        *code.79 = D.24580;
        code.79 = code;
        code.116 = code.79 + 1;
        code = code.116;
        goto <D.24582>;
        <D.24577>:
        addr.111 = (long int) addr;
        code.79 = code;
        code.112 = (long int) code.79;
        D.24567 = addr.111 - code.112;
        D.24572 = (unsigned int) D.24567;
        D.24583 = D.24572 + 4294967291;
        t = (int) D.24583;
        code.79 = code;
        code.117 = code.79;
        code.118 = code.117 + 1;
        code = code.118;
        *code.117 = 233;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = t;
              code.79 = code;
              code.119 = code.79;
              code.120 = code.119 + 1;
              code = code.120;
              D.24588 = imb.b[0];
              *code.119 = D.24588;
              code.79 = code;
              code.121 = code.79;
              code.122 = code.121 + 1;
              code = code.122;
              D.24591 = imb.b[1];
              *code.121 = D.24591;
              code.79 = code;
              code.123 = code.79;
              code.124 = code.123 + 1;
              code = code.124;
              D.24594 = imb.b[2];
              *code.123 = D.24594;
              code.79 = code;
              code.125 = code.79;
              code.126 = code.125 + 1;
              code = code.126;
              D.24597 = imb.b[3];
              *code.125 = D.24597;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.24582>:
      }
      goto <D.24598>;
      <D.24571>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.24599>; else goto <D.24600>;
        <D.24599>:
        code.79 = code;
        code.127 = code.79;
        code.128 = code.127 + 1;
        code = code.128;
        D.24603 = _amd64_rex_bits | 64;
        *code.127 = D.24603;
        <D.24600>:
      }
      code.79 = code;
      code.129 = code.79;
      code.130 = code.129 + 1;
      code = code.130;
      *code.129 = 255;
      if (1 != 0) goto <D.24606>; else goto <D.24607>;
      <D.24606>:
      code.79 = code;
      code.131 = code.79;
      code.132 = code.131 + 1;
      code = code.132;
      *code.131 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.79 = code;
            code.133 = code.79;
            code.134 = code.133 + 1;
            code = code.134;
            D.24612 = imb.b[0];
            *code.133 = D.24612;
            code.79 = code;
            code.135 = code.79;
            code.136 = code.135 + 1;
            code = code.136;
            D.24615 = imb.b[1];
            *code.135 = D.24615;
            code.79 = code;
            code.137 = code.79;
            code.138 = code.137 + 1;
            code = code.138;
            D.24618 = imb.b[2];
            *code.137 = D.24618;
            code.79 = code;
            code.139 = code.79;
            code.140 = code.139 + 1;
            code = code.140;
            D.24621 = imb.b[3];
            *code.139 = D.24621;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.24622>;
      <D.24607>:
      if (0 != 0) goto <D.24623>; else goto <D.24624>;
      <D.24623>:
      if (1 != 0) goto <D.24625>; else goto <D.24626>;
      <D.24625>:
      code.79 = code;
      code.141 = code.79;
      code.142 = code.141 + 1;
      code = code.142;
      *code.141 = 36;
      code.79 = code;
      code.143 = code.79;
      code.144 = code.143 + 1;
      code = code.144;
      *code.143 = 36;
      goto <D.24631>;
      <D.24626>:
      if (1 != 0) goto <D.24632>; else goto <D.24633>;
      <D.24632>:
      code.79 = code;
      code.145 = code.79;
      code.146 = code.145 + 1;
      code = code.146;
      *code.145 = 100;
      code.79 = code;
      code.147 = code.79;
      code.148 = code.147 + 1;
      code = code.148;
      *code.147 = 36;
      code.79 = code;
      *code.79 = 0;
      code.79 = code;
      code.116 = code.79 + 1;
      code = code.116;
      goto <D.24638>;
      <D.24633>:
      code.79 = code;
      code.149 = code.79;
      code.150 = code.149 + 1;
      code = code.150;
      *code.149 = 164;
      code.79 = code;
      code.151 = code.79;
      code.152 = code.151 + 1;
      code = code.152;
      *code.151 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.79 = code;
            code.153 = code.79;
            code.154 = code.153 + 1;
            code = code.154;
            D.24645 = imb.b[0];
            *code.153 = D.24645;
            code.79 = code;
            code.155 = code.79;
            code.156 = code.155 + 1;
            code = code.156;
            D.24648 = imb.b[1];
            *code.155 = D.24648;
            code.79 = code;
            code.157 = code.79;
            code.158 = code.157 + 1;
            code = code.158;
            D.24651 = imb.b[2];
            *code.157 = D.24651;
            code.79 = code;
            code.159 = code.79;
            code.160 = code.159 + 1;
            code = code.160;
            D.24654 = imb.b[3];
            *code.159 = D.24654;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24638>:
      <D.24631>:
      goto <D.22928>;
      <D.24624>:
      if (1 != 0) goto <D.24655>; else goto <D.24656>;
      <D.24655>:
      code.79 = code;
      code.161 = code.79;
      code.162 = code.161 + 1;
      code = code.162;
      *code.161 = 32;
      goto <D.22928>;
      <D.24656>:
      if (1 != 0) goto <D.24659>; else goto <D.24660>;
      <D.24659>:
      code.79 = code;
      code.163 = code.79;
      code.164 = code.163 + 1;
      code = code.164;
      *code.163 = 96;
      code.79 = code;
      *code.79 = 0;
      code.79 = code;
      code.116 = code.79 + 1;
      code = code.116;
      goto <D.24663>;
      <D.24660>:
      code.79 = code;
      code.165 = code.79;
      code.166 = code.165 + 1;
      code = code.166;
      *code.165 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.79 = code;
            code.167 = code.79;
            code.168 = code.167 + 1;
            code = code.168;
            D.24668 = imb.b[0];
            *code.167 = D.24668;
            code.79 = code;
            code.169 = code.79;
            code.170 = code.169 + 1;
            code = code.170;
            D.24671 = imb.b[1];
            *code.169 = D.24671;
            code.79 = code;
            code.171 = code.79;
            code.172 = code.171 + 1;
            code = code.172;
            D.24674 = imb.b[2];
            *code.171 = D.24674;
            code.79 = code;
            code.173 = code.79;
            code.174 = code.173 + 1;
            code = code.174;
            D.24677 = imb.b[3];
            *code.173 = D.24677;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24663>:
      <D.22928>:
      <D.24622>:
      code.79 = code;
      addr.77 = (long unsigned int) addr;
      MEM[(guint64 *)code.79] = addr.77;
      code.79 = code;
      code.175 = code.79 + 8;
      code = code.175;
      <D.24598>:
      code.79 = code;
      code.112 = (long int) code.79;
      start.176 = start;
      start.177 = (long int) start.176;
      D.24681 = code.112 - start.177;
      D.24682 = (long int) buf_len;
      D.24683 = D.24681 >= D.24682;
      D.24684 = (long int) D.24683;
      D.24685 = __builtin_expect (D.24684, 0);
      if (D.24685 != 0) goto <D.24686>; else goto <D.24687>;
      <D.24686>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 98, "(code - start) < buf_len");
      <D.24687>:
      nacl_domain_code_validate (domain, &start, buf_len, &code);
      code.79 = code;
      code.112 = (long int) code.79;
      start.176 = start;
      start.177 = (long int) start.176;
      D.24681 = code.112 - start.177;
      D.24688 = (int) D.24681;
      start.176 = start;
      mono_arch_flush_icache (start.176, D.24688);
      D.24689 = start;
      return D.24689;
    }
  finally
    {
      code = {CLOBBER};
      start = {CLOBBER};
    }
}


mono_arch_get_llvm_imt_trampoline (struct MonoDomain * domain, struct MonoMethod * m, int vt_offset)
{
  void * code.178;
  guint8 * code.179;
  long unsigned int m.180;
  long int m.181;
  int D.24696;
  long unsigned int D.24697;
  _Bool D.24698;
  unsigned char iftmp.182;
  guint8 * code.183;
  guint8 * code.184;
  unsigned char D.24707;
  guint8 * code.185;
  guint8 * code.186;
  guint8 * code.187;
  guint8 * code.188;
  unsigned char D.24714;
  guint8 * code.189;
  guint8 * code.190;
  unsigned char D.24717;
  guint8 * code.191;
  guint8 * code.192;
  unsigned char D.24720;
  guint8 * code.193;
  guint8 * code.194;
  unsigned char D.24723;
  guint8 * code.195;
  guint8 * code.196;
  unsigned char D.24726;
  guint8 * code.197;
  guint8 * code.198;
  unsigned char D.24729;
  guint8 * code.199;
  guint8 * code.200;
  unsigned char D.24732;
  guint8 * code.201;
  guint8 * code.202;
  unsigned char D.24735;
  guint8 * code.203;
  guint8 * code.204;
  unsigned char D.24739;
  guint8 * code.205;
  guint8 * code.206;
  unsigned char D.24742;
  guint8 * code.207;
  guint8 * code.208;
  unsigned char D.24745;
  guint8 * code.209;
  guint8 * code.210;
  unsigned char D.24748;
  guint8 * code.211;
  guint8 * code.212;
  unsigned char iftmp.213;
  guint8 * code.214;
  guint8 * code.215;
  unsigned char D.24761;
  guint8 * code.216;
  guint8 * code.217;
  guint8 * code.218;
  guint8 * code.219;
  guint8 * code.220;
  guint8 * code.221;
  guint8 * code.222;
  guint8 * code.223;
  unsigned char D.24772;
  guint8 * code.224;
  guint8 * code.225;
  unsigned char D.24775;
  guint8 * code.226;
  guint8 * code.227;
  unsigned char D.24778;
  guint8 * code.228;
  guint8 * code.229;
  unsigned char D.24781;
  int D.24783;
  guint8 * code.230;
  guint8 * code.231;
  guint8 * code.232;
  guint8 * code.233;
  guint8 * code.234;
  guint8 * code.235;
  guint8 * code.236;
  guint8 * code.237;
  guint8 * code.238;
  guint8 * code.239;
  guint8 * code.240;
  guint8 * code.241;
  guint8 * code.242;
  guint8 * code.243;
  guint8 * code.244;
  unsigned char D.24807;
  guint8 * code.245;
  guint8 * code.246;
  unsigned char D.24810;
  guint8 * code.247;
  guint8 * code.248;
  unsigned char D.24813;
  guint8 * code.249;
  guint8 * code.250;
  unsigned char D.24816;
  guint8 * code.251;
  guint8 * code.252;
  unsigned char D.24821;
  unsigned char D.24822;
  guint8 * code.253;
  guint8 * code.254;
  signed char D.24827;
  signed char D.24828;
  signed char D.24829;
  unsigned char D.24830;
  guint8 * code.255;
  guint8 * code.256;
  signed char D.24834;
  unsigned char D.24835;
  guint8 * code.257;
  guint8 * code.258;
  unsigned char D.24838;
  guint8 * code.259;
  guint8 * code.260;
  unsigned char D.24841;
  guint8 * code.261;
  guint8 * code.262;
  unsigned char D.24844;
  guint8 * code.263;
  guint8 * code.264;
  unsigned char D.24847;
  guint8 * code.265;
  guint8 * code.266;
  unsigned char D.24852;
  guint8 * code.267;
  guint8 * code.268;
  guint8 * code.269;
  guint8 * code.270;
  guint8 * code.271;
  guint8 * code.272;
  unsigned char D.24861;
  guint8 * code.273;
  guint8 * code.274;
  unsigned char D.24864;
  guint8 * code.275;
  guint8 * code.276;
  unsigned char D.24867;
  guint8 * code.277;
  guint8 * code.278;
  unsigned char D.24870;
  guint8 * code.279;
  guint8 * code.280;
  guint8 * code.281;
  guint8 * code.282;
  unsigned int vt_offset.283;
  unsigned int D.24882;
  guint8 * code.284;
  guint8 * code.285;
  guint8 * code.286;
  guint8 * code.287;
  unsigned char D.24889;
  guint8 * code.288;
  guint8 * code.289;
  guint8 * code.290;
  guint8 * code.291;
  guint8 * code.292;
  guint8 * code.293;
  unsigned char D.24897;
  guint8 * code.294;
  guint8 * code.295;
  unsigned char D.24900;
  guint8 * code.296;
  guint8 * code.297;
  unsigned char D.24903;
  guint8 * code.298;
  guint8 * code.299;
  unsigned char D.24906;
  guint8 * code.300;
  guint8 * code.301;
  guint8 * code.302;
  guint8 * code.303;
  guint8 * code.304;
  guint8 * code.305;
  guint8 * code.306;
  guint8 * code.307;
  unsigned char D.24920;
  guint8 * code.308;
  guint8 * code.309;
  unsigned char D.24923;
  guint8 * code.310;
  guint8 * code.311;
  unsigned char D.24926;
  guint8 * code.312;
  guint8 * code.313;
  unsigned char D.24929;
  guint8 * code.314;
  guint8 * code.315;
  long int code.316;
  guint8 * start.317;
  long int start.318;
  long int D.24935;
  long int D.24936;
  _Bool D.24937;
  long int D.24938;
  long int D.24939;
  int D.24942;
  void * D.24943;
  guint8 * code;
  guint8 * start;
  int buf_len;
  int this_reg;
  static const char __PRETTY_FUNCTION__[34] = "mono_arch_get_llvm_imt_trampoline";

  try
    {
      buf_len = 32;
      code.178 = mono_domain_code_reserve (domain, buf_len);
      code = code.178;
      code.179 = code;
      start = code.179;
      this_reg = mono_arch_get_this_arg_reg (0B);
      {
        int _amd64_width_temp;

        m.180 = (long unsigned int) m;
        m.181 = (long int) m;
        D.24696 = (int) m.181;
        D.24697 = (long unsigned int) D.24696;
        D.24698 = m.180 == D.24697;
        _amd64_width_temp = (int) D.24698;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.24700>; else goto <D.24701>;
          <D.24700>:
          iftmp.182 = 9;
          goto <D.24702>;
          <D.24701>:
          iftmp.182 = 1;
          <D.24702>:
          _amd64_rex_bits = iftmp.182;
          if (_amd64_rex_bits != 0) goto <D.24703>; else goto <D.24704>;
          <D.24703>:
          code.179 = code;
          code.183 = code.179;
          code.184 = code.183 + 1;
          code = code.184;
          D.24707 = _amd64_rex_bits | 64;
          *code.183 = D.24707;
          <D.24704>:
        }
        code.179 = code;
        code.185 = code.179;
        code.186 = code.185 + 1;
        code = code.186;
        *code.185 = 186;
        if (_amd64_width_temp == 0) goto <D.24710>; else goto <D.24711>;
        <D.24710>:
        {
          union amd64_imm_buf imb;

          try
            {
              m.180 = (long unsigned int) m;
              imb.val = m.180;
              code.179 = code;
              code.187 = code.179;
              code.188 = code.187 + 1;
              code = code.188;
              D.24714 = imb.b[0];
              *code.187 = D.24714;
              code.179 = code;
              code.189 = code.179;
              code.190 = code.189 + 1;
              code = code.190;
              D.24717 = imb.b[1];
              *code.189 = D.24717;
              code.179 = code;
              code.191 = code.179;
              code.192 = code.191 + 1;
              code = code.192;
              D.24720 = imb.b[2];
              *code.191 = D.24720;
              code.179 = code;
              code.193 = code.179;
              code.194 = code.193 + 1;
              code = code.194;
              D.24723 = imb.b[3];
              *code.193 = D.24723;
              code.179 = code;
              code.195 = code.179;
              code.196 = code.195 + 1;
              code = code.196;
              D.24726 = imb.b[4];
              *code.195 = D.24726;
              code.179 = code;
              code.197 = code.179;
              code.198 = code.197 + 1;
              code = code.198;
              D.24729 = imb.b[5];
              *code.197 = D.24729;
              code.179 = code;
              code.199 = code.179;
              code.200 = code.199 + 1;
              code = code.200;
              D.24732 = imb.b[6];
              *code.199 = D.24732;
              code.179 = code;
              code.201 = code.179;
              code.202 = code.201 + 1;
              code = code.202;
              D.24735 = imb.b[7];
              *code.201 = D.24735;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.24736>;
        <D.24711>:
        {
          union x86_imm_buf imb;

          try
            {
              m.181 = (long int) m;
              D.24696 = (int) m.181;
              imb.val = D.24696;
              code.179 = code;
              code.203 = code.179;
              code.204 = code.203 + 1;
              code = code.204;
              D.24739 = imb.b[0];
              *code.203 = D.24739;
              code.179 = code;
              code.205 = code.179;
              code.206 = code.205 + 1;
              code = code.206;
              D.24742 = imb.b[1];
              *code.205 = D.24742;
              code.179 = code;
              code.207 = code.179;
              code.208 = code.207 + 1;
              code = code.208;
              D.24745 = imb.b[2];
              *code.207 = D.24745;
              code.179 = code;
              code.209 = code.179;
              code.210 = code.209 + 1;
              code = code.210;
              D.24748 = imb.b[3];
              *code.209 = D.24748;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.24736>:
      }
      if (0 != 0) goto <D.24749>; else goto <D.24750>;
      <D.24749>:
      code.179 = code;
      code.211 = code.179;
      code.212 = code.211 + 1;
      code = code.212;
      *code.211 = 102;
      <D.24750>:
      {
        unsigned char _amd64_rex_bits;

        if (this_reg > 7) goto <D.24754>; else goto <D.24755>;
        <D.24754>:
        iftmp.213 = 9;
        goto <D.24756>;
        <D.24755>:
        iftmp.213 = 8;
        <D.24756>:
        _amd64_rex_bits = iftmp.213;
        if (_amd64_rex_bits != 0) goto <D.24757>; else goto <D.24758>;
        <D.24757>:
        code.179 = code;
        code.214 = code.179;
        code.215 = code.214 + 1;
        code = code.215;
        D.24761 = _amd64_rex_bits | 64;
        *code.214 = D.24761;
        <D.24758>:
      }
      switch (8) <default: <D.22949>, case 1: <D.22944>, case 2: <D.22946>, case 4: <D.22947>, case 8: <D.22948>>
      <D.22944>:
      code.179 = code;
      code.216 = code.179;
      code.217 = code.216 + 1;
      code = code.217;
      *code.216 = 138;
      goto <D.22945>;
      <D.22946>:
      <D.22947>:
      <D.22948>:
      code.179 = code;
      code.218 = code.179;
      code.219 = code.218 + 1;
      code = code.219;
      *code.218 = 139;
      goto <D.22945>;
      <D.22949>:
      __assert_fail ("0", "tramp-amd64.c", 122, &__PRETTY_FUNCTION__);
      <D.22945>:
      if (this_reg == 16) goto <D.24766>; else goto <D.24767>;
      <D.24766>:
      code.179 = code;
      code.220 = code.179;
      code.221 = code.220 + 1;
      code = code.221;
      *code.220 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.179 = code;
            code.222 = code.179;
            code.223 = code.222 + 1;
            code = code.223;
            D.24772 = imb.b[0];
            *code.222 = D.24772;
            code.179 = code;
            code.224 = code.179;
            code.225 = code.224 + 1;
            code = code.225;
            D.24775 = imb.b[1];
            *code.224 = D.24775;
            code.179 = code;
            code.226 = code.179;
            code.227 = code.226 + 1;
            code = code.227;
            D.24778 = imb.b[2];
            *code.226 = D.24778;
            code.179 = code;
            code.228 = code.179;
            code.229 = code.228 + 1;
            code = code.229;
            D.24781 = imb.b[3];
            *code.228 = D.24781;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.24782>;
      <D.24767>:
      D.24783 = this_reg & 7;
      if (D.24783 == 4) goto <D.24784>; else goto <D.24785>;
      <D.24784>:
      if (1 != 0) goto <D.24786>; else goto <D.24787>;
      <D.24786>:
      code.179 = code;
      code.230 = code.179;
      code.231 = code.230 + 1;
      code = code.231;
      *code.230 = 4;
      code.179 = code;
      code.232 = code.179;
      code.233 = code.232 + 1;
      code = code.233;
      *code.232 = 36;
      goto <D.24792>;
      <D.24787>:
      if (1 != 0) goto <D.24793>; else goto <D.24794>;
      <D.24793>:
      code.179 = code;
      code.234 = code.179;
      code.235 = code.234 + 1;
      code = code.235;
      *code.234 = 68;
      code.179 = code;
      code.236 = code.179;
      code.237 = code.236 + 1;
      code = code.237;
      *code.236 = 36;
      code.179 = code;
      *code.179 = 0;
      code.179 = code;
      code.238 = code.179 + 1;
      code = code.238;
      goto <D.24800>;
      <D.24794>:
      code.179 = code;
      code.239 = code.179;
      code.240 = code.239 + 1;
      code = code.240;
      *code.239 = 132;
      code.179 = code;
      code.241 = code.179;
      code.242 = code.241 + 1;
      code = code.242;
      *code.241 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.179 = code;
            code.243 = code.179;
            code.244 = code.243 + 1;
            code = code.244;
            D.24807 = imb.b[0];
            *code.243 = D.24807;
            code.179 = code;
            code.245 = code.179;
            code.246 = code.245 + 1;
            code = code.246;
            D.24810 = imb.b[1];
            *code.245 = D.24810;
            code.179 = code;
            code.247 = code.179;
            code.248 = code.247 + 1;
            code = code.248;
            D.24813 = imb.b[2];
            *code.247 = D.24813;
            code.179 = code;
            code.249 = code.179;
            code.250 = code.249 + 1;
            code = code.250;
            D.24816 = imb.b[3];
            *code.249 = D.24816;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24800>:
      <D.24792>:
      goto <D.22953>;
      <D.24785>:
      D.24783 = this_reg & 7;
      if (D.24783 != 5) goto <D.24817>; else goto <D.24818>;
      <D.24817>:
      code.179 = code;
      code.251 = code.179;
      code.252 = code.251 + 1;
      code = code.252;
      D.24821 = (unsigned char) this_reg;
      D.24822 = D.24821 & 7;
      *code.251 = D.24822;
      goto <D.22953>;
      <D.24818>:
      if (1 != 0) goto <D.24823>; else goto <D.24824>;
      <D.24823>:
      code.179 = code;
      code.253 = code.179;
      code.254 = code.253 + 1;
      code = code.254;
      D.24827 = (signed char) this_reg;
      D.24828 = D.24827 & 7;
      D.24829 = D.24828 | 64;
      D.24830 = (unsigned char) D.24829;
      *code.253 = D.24830;
      code.179 = code;
      *code.179 = 0;
      code.179 = code;
      code.238 = code.179 + 1;
      code = code.238;
      goto <D.24831>;
      <D.24824>:
      code.179 = code;
      code.255 = code.179;
      code.256 = code.255 + 1;
      code = code.256;
      D.24827 = (signed char) this_reg;
      D.24828 = D.24827 & 7;
      D.24834 = D.24828 | -128;
      D.24835 = (unsigned char) D.24834;
      *code.255 = D.24835;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.179 = code;
            code.257 = code.179;
            code.258 = code.257 + 1;
            code = code.258;
            D.24838 = imb.b[0];
            *code.257 = D.24838;
            code.179 = code;
            code.259 = code.179;
            code.260 = code.259 + 1;
            code = code.260;
            D.24841 = imb.b[1];
            *code.259 = D.24841;
            code.179 = code;
            code.261 = code.179;
            code.262 = code.261 + 1;
            code = code.262;
            D.24844 = imb.b[2];
            *code.261 = D.24844;
            code.179 = code;
            code.263 = code.179;
            code.264 = code.263 + 1;
            code = code.264;
            D.24847 = imb.b[3];
            *code.263 = D.24847;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24831>:
      <D.22953>:
      <D.24782>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.24848>; else goto <D.24849>;
        <D.24848>:
        code.179 = code;
        code.265 = code.179;
        code.266 = code.265 + 1;
        code = code.266;
        D.24852 = _amd64_rex_bits | 64;
        *code.265 = D.24852;
        <D.24849>:
      }
      code.179 = code;
      code.267 = code.179;
      code.268 = code.267 + 1;
      code = code.268;
      *code.267 = 255;
      if (0 != 0) goto <D.24855>; else goto <D.24856>;
      <D.24855>:
      code.179 = code;
      code.269 = code.179;
      code.270 = code.269 + 1;
      code = code.270;
      *code.269 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = vt_offset;
            code.179 = code;
            code.271 = code.179;
            code.272 = code.271 + 1;
            code = code.272;
            D.24861 = imb.b[0];
            *code.271 = D.24861;
            code.179 = code;
            code.273 = code.179;
            code.274 = code.273 + 1;
            code = code.274;
            D.24864 = imb.b[1];
            *code.273 = D.24864;
            code.179 = code;
            code.275 = code.179;
            code.276 = code.275 + 1;
            code = code.276;
            D.24867 = imb.b[2];
            *code.275 = D.24867;
            code.179 = code;
            code.277 = code.179;
            code.278 = code.277 + 1;
            code = code.278;
            D.24870 = imb.b[3];
            *code.277 = D.24870;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.24871>;
      <D.24856>:
      if (0 != 0) goto <D.24872>; else goto <D.24873>;
      <D.24872>:
      if (vt_offset == 0) goto <D.24874>; else goto <D.24875>;
      <D.24874>:
      code.179 = code;
      code.279 = code.179;
      code.280 = code.279 + 1;
      code = code.280;
      *code.279 = 36;
      code.179 = code;
      code.281 = code.179;
      code.282 = code.281 + 1;
      code = code.282;
      *code.281 = 36;
      goto <D.24880>;
      <D.24875>:
      vt_offset.283 = (unsigned int) vt_offset;
      D.24882 = vt_offset.283 + 128;
      if (D.24882 <= 255) goto <D.24883>; else goto <D.24884>;
      <D.24883>:
      code.179 = code;
      code.284 = code.179;
      code.285 = code.284 + 1;
      code = code.285;
      *code.284 = 100;
      code.179 = code;
      code.286 = code.179;
      code.287 = code.286 + 1;
      code = code.287;
      *code.286 = 36;
      code.179 = code;
      D.24889 = (unsigned char) vt_offset;
      *code.179 = D.24889;
      code.179 = code;
      code.238 = code.179 + 1;
      code = code.238;
      goto <D.24890>;
      <D.24884>:
      code.179 = code;
      code.288 = code.179;
      code.289 = code.288 + 1;
      code = code.289;
      *code.288 = 164;
      code.179 = code;
      code.290 = code.179;
      code.291 = code.290 + 1;
      code = code.291;
      *code.290 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = vt_offset;
            code.179 = code;
            code.292 = code.179;
            code.293 = code.292 + 1;
            code = code.293;
            D.24897 = imb.b[0];
            *code.292 = D.24897;
            code.179 = code;
            code.294 = code.179;
            code.295 = code.294 + 1;
            code = code.295;
            D.24900 = imb.b[1];
            *code.294 = D.24900;
            code.179 = code;
            code.296 = code.179;
            code.297 = code.296 + 1;
            code = code.297;
            D.24903 = imb.b[2];
            *code.296 = D.24903;
            code.179 = code;
            code.298 = code.179;
            code.299 = code.298 + 1;
            code = code.299;
            D.24906 = imb.b[3];
            *code.298 = D.24906;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24890>:
      <D.24880>:
      goto <D.22958>;
      <D.24873>:
      if (vt_offset == 0) goto <D.24907>; else goto <D.24908>;
      <D.24907>:
      code.179 = code;
      code.300 = code.179;
      code.301 = code.300 + 1;
      code = code.301;
      *code.300 = 32;
      goto <D.22958>;
      <D.24908>:
      vt_offset.283 = (unsigned int) vt_offset;
      D.24882 = vt_offset.283 + 128;
      if (D.24882 <= 255) goto <D.24911>; else goto <D.24912>;
      <D.24911>:
      code.179 = code;
      code.302 = code.179;
      code.303 = code.302 + 1;
      code = code.303;
      *code.302 = 96;
      code.179 = code;
      D.24889 = (unsigned char) vt_offset;
      *code.179 = D.24889;
      code.179 = code;
      code.238 = code.179 + 1;
      code = code.238;
      goto <D.24915>;
      <D.24912>:
      code.179 = code;
      code.304 = code.179;
      code.305 = code.304 + 1;
      code = code.305;
      *code.304 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = vt_offset;
            code.179 = code;
            code.306 = code.179;
            code.307 = code.306 + 1;
            code = code.307;
            D.24920 = imb.b[0];
            *code.306 = D.24920;
            code.179 = code;
            code.308 = code.179;
            code.309 = code.308 + 1;
            code = code.309;
            D.24923 = imb.b[1];
            *code.308 = D.24923;
            code.179 = code;
            code.310 = code.179;
            code.311 = code.310 + 1;
            code = code.311;
            D.24926 = imb.b[2];
            *code.310 = D.24926;
            code.179 = code;
            code.312 = code.179;
            code.313 = code.312 + 1;
            code = code.313;
            D.24929 = imb.b[3];
            *code.312 = D.24929;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.24915>:
      <D.22958>:
      <D.24871>:
      code.179 = code;
      code.314 = code.179;
      code.315 = code.314 + 1;
      code = code.315;
      *code.314 = 195;
      code.179 = code;
      code.316 = (long int) code.179;
      start.317 = start;
      start.318 = (long int) start.317;
      D.24935 = code.316 - start.318;
      D.24936 = (long int) buf_len;
      D.24937 = D.24935 >= D.24936;
      D.24938 = (long int) D.24937;
      D.24939 = __builtin_expect (D.24938, 0);
      if (D.24939 != 0) goto <D.24940>; else goto <D.24941>;
      <D.24940>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 126, "(code - start) < buf_len");
      <D.24941>:
      nacl_domain_code_validate (domain, &start, buf_len, &code);
      code.179 = code;
      code.316 = (long int) code.179;
      start.317 = start;
      start.318 = (long int) start.317;
      D.24935 = code.316 - start.318;
      D.24942 = (int) D.24935;
      start.317 = start;
      mono_arch_flush_icache (start.317, D.24942);
      D.24943 = start;
      return D.24943;
    }
  finally
    {
      code = {CLOBBER};
      start = {CLOBBER};
    }
}


mono_arch_patch_callsite (guint8 * method_start, guint8 * orig_code, guint8 * addr)
{
  guint8 * D.24950;
  unsigned char D.24951;
  guint8 * D.24953;
  unsigned char D.24954;
  guint8 * D.24955;
  unsigned char D.24956;
  void * volatile * D.24961;
  volatile long long unsigned int D.22970;
  guint8 * D.24962;
  long long unsigned int D.24963;
  long int addr.319;
  long int orig_code.320;
  long int D.24967;
  unsigned long D.24968;
  unsigned long D.24969;
  _Bool D.24970;
  long unsigned int addr.321;
  long unsigned int D.24972;
  struct MonoDomain * D.24977;
  guint8 * thunk_code.322;
  unsigned char D.24981;
  guint8 * thunk_code.323;
  guint8 * thunk_code.324;
  guint8 * thunk_code.325;
  unsigned char D.24987;
  guint8 * thunk_code.326;
  unsigned char D.24989;
  guint8 * thunk_code.327;
  unsigned char D.24991;
  guint8 * thunk_code.328;
  unsigned char D.24993;
  guint8 * thunk_code.329;
  guint8 * thunk_code.330;
  guint8 * thunk_code.331;
  guint8 * thunk_code.332;
  guint8 * thunk_code.333;
  guint8 * thunk_code.334;
  guint8 * thunk_code.335;
  unsigned char D.25010;
  guint8 * thunk_code.336;
  unsigned char D.25012;
  guint8 * thunk_code.337;
  unsigned char D.25014;
  guint8 * thunk_code.338;
  unsigned char D.25016;
  guint8 * thunk_code.339;
  guint8 * thunk_code.340;
  guint8 * thunk_code.341;
  guint8 * thunk_code.342;
  unsigned char D.25026;
  guint8 * thunk_code.343;
  unsigned char D.25028;
  guint8 * thunk_code.344;
  unsigned char D.25030;
  guint8 * thunk_code.345;
  unsigned char D.25032;
  _Bool D.25033;
  long int D.25034;
  long int D.25035;
  long int thunk_code.346;
  long int thunk_start.347;
  long int D.25040;
  int D.25041;
  int D.25044;
  volatile gint32 * D.25045;
  volatile long long unsigned int D.22981;
  guint8 * D.25046;
  long long unsigned int D.25047;
  guint8 * D.25048;
  unsigned char D.25049;
  guint8 * D.25052;
  unsigned char D.25053;
  guint32 * D.25058;
  unsigned int D.25059;
  sizetype D.25060;
  volatile long long unsigned int D.22985;
  guint8 * code;
  guint8 buf[16];
  gboolean can_write;

  try
    {
      can_write = mono_breakpoint_clean_code (method_start, orig_code, 14, &buf, 16);
      code = &MEM[(void *)&buf + 14B];
      D.24950 = code + 18446744073709551603;
      D.24951 = *D.24950;
      if (D.24951 == 73) goto <D.24952>; else goto <D.24946>;
      <D.24952>:
      D.24953 = code + 18446744073709551604;
      D.24954 = *D.24953;
      if (D.24954 == 187) goto <D.24947>; else goto <D.24946>;
      <D.24946>:
      D.24955 = code + 18446744073709551611;
      D.24956 = *D.24955;
      if (D.24956 == 232) goto <D.24947>; else goto <D.24948>;
      <D.24947>:
      D.24955 = code + 18446744073709551611;
      D.24956 = *D.24955;
      if (D.24956 != 232) goto <D.24957>; else goto <D.24958>;
      <D.24957>:
      if (can_write != 0) goto <D.24959>; else goto <D.24960>;
      <D.24959>:
      D.24961 = orig_code + 18446744073709551605;
      InterlockedExchangePointer (D.24961, addr);
      {
        volatile long long unsigned int _zzq_args[6];
        volatile long long unsigned int _zzq_result;

        _zzq_args[0] = 4098;
        D.24962 = orig_code + 18446744073709551605;
        D.24963 = (long long unsigned int) D.24962;
        _zzq_args[1] = D.24963;
        _zzq_args[2] = 8;
        _zzq_args[3] = 0;
        _zzq_args[4] = 0;
        _zzq_args[5] = 0;
        __asm__ __volatile__("rolq $3,  %%rdi ; rolq $13, %%rdi
	rolq $61, %%rdi ; rolq $51, %%rdi
	xchgq %%rbx,%%rbx" : "=d" _zzq_result : "a" &_zzq_args[0], "0" 0 : "memory", "cc");
        D.22970 = _zzq_result;
      }
      <D.24960>:
      goto <D.24964>;
      <D.24958>:
      {
        gboolean disp_32bit;

        addr.319 = (long int) addr;
        orig_code.320 = (long int) orig_code;
        D.24967 = addr.319 - orig_code.320;
        D.24968 = (unsigned long) D.24967;
        D.24969 = D.24968 + 1073741823;
        D.24970 = D.24969 <= 2147483646;
        disp_32bit = (gboolean) D.24970;
        addr.321 = (long unsigned int) addr;
        D.24972 = addr.321 >> 32;
        if (D.24972 != 0) goto <D.24973>; else goto <D.24974>;
        <D.24973>:
        if (disp_32bit == 0) goto <D.24975>; else goto <D.24976>;
        <D.24975>:
        {
          guint8 * thunk_start;
          guint8 * thunk_code;

          D.24977 = mono_domain_get ();
          thunk_code = mono_domain_code_reserve (D.24977, 32);
          thunk_start = thunk_code;
          {
            unsigned char _amd64_rex_bits;

            _amd64_rex_bits = 1;
            if (_amd64_rex_bits != 0) goto <D.24978>; else goto <D.24979>;
            <D.24978>:
            thunk_code.322 = thunk_code;
            thunk_code = thunk_code.322 + 1;
            D.24981 = _amd64_rex_bits | 64;
            *thunk_code.322 = D.24981;
            <D.24979>:
          }
          thunk_code.323 = thunk_code;
          thunk_code = thunk_code.323 + 1;
          *thunk_code.323 = 255;
          if (1 != 0) goto <D.24983>; else goto <D.24984>;
          <D.24983>:
          thunk_code.324 = thunk_code;
          thunk_code = thunk_code.324 + 1;
          *thunk_code.324 = 37;
          {
            union x86_imm_buf imb;

            try
              {
                imb.val = 0;
                thunk_code.325 = thunk_code;
                thunk_code = thunk_code.325 + 1;
                D.24987 = imb.b[0];
                *thunk_code.325 = D.24987;
                thunk_code.326 = thunk_code;
                thunk_code = thunk_code.326 + 1;
                D.24989 = imb.b[1];
                *thunk_code.326 = D.24989;
                thunk_code.327 = thunk_code;
                thunk_code = thunk_code.327 + 1;
                D.24991 = imb.b[2];
                *thunk_code.327 = D.24991;
                thunk_code.328 = thunk_code;
                thunk_code = thunk_code.328 + 1;
                D.24993 = imb.b[3];
                *thunk_code.328 = D.24993;
              }
            finally
              {
                imb = {CLOBBER};
              }
          }
          goto <D.24994>;
          <D.24984>:
          if (0 != 0) goto <D.24995>; else goto <D.24996>;
          <D.24995>:
          if (1 != 0) goto <D.24997>; else goto <D.24998>;
          <D.24997>:
          thunk_code.329 = thunk_code;
          thunk_code = thunk_code.329 + 1;
          *thunk_code.329 = 36;
          thunk_code.330 = thunk_code;
          thunk_code = thunk_code.330 + 1;
          *thunk_code.330 = 36;
          goto <D.25001>;
          <D.24998>:
          if (1 != 0) goto <D.25002>; else goto <D.25003>;
          <D.25002>:
          thunk_code.331 = thunk_code;
          thunk_code = thunk_code.331 + 1;
          *thunk_code.331 = 100;
          thunk_code.332 = thunk_code;
          thunk_code = thunk_code.332 + 1;
          *thunk_code.332 = 36;
          *thunk_code = 0;
          thunk_code = thunk_code + 1;
          goto <D.25006>;
          <D.25003>:
          thunk_code.333 = thunk_code;
          thunk_code = thunk_code.333 + 1;
          *thunk_code.333 = 164;
          thunk_code.334 = thunk_code;
          thunk_code = thunk_code.334 + 1;
          *thunk_code.334 = 36;
          {
            union x86_imm_buf imb;

            try
              {
                imb.val = 0;
                thunk_code.335 = thunk_code;
                thunk_code = thunk_code.335 + 1;
                D.25010 = imb.b[0];
                *thunk_code.335 = D.25010;
                thunk_code.336 = thunk_code;
                thunk_code = thunk_code.336 + 1;
                D.25012 = imb.b[1];
                *thunk_code.336 = D.25012;
                thunk_code.337 = thunk_code;
                thunk_code = thunk_code.337 + 1;
                D.25014 = imb.b[2];
                *thunk_code.337 = D.25014;
                thunk_code.338 = thunk_code;
                thunk_code = thunk_code.338 + 1;
                D.25016 = imb.b[3];
                *thunk_code.338 = D.25016;
              }
            finally
              {
                imb = {CLOBBER};
              }
          }
          <D.25006>:
          <D.25001>:
          goto <D.22977>;
          <D.24996>:
          if (1 != 0) goto <D.25017>; else goto <D.25018>;
          <D.25017>:
          thunk_code.339 = thunk_code;
          thunk_code = thunk_code.339 + 1;
          *thunk_code.339 = 32;
          goto <D.22977>;
          <D.25018>:
          if (1 != 0) goto <D.25020>; else goto <D.25021>;
          <D.25020>:
          thunk_code.340 = thunk_code;
          thunk_code = thunk_code.340 + 1;
          *thunk_code.340 = 96;
          *thunk_code = 0;
          thunk_code = thunk_code + 1;
          goto <D.25023>;
          <D.25021>:
          thunk_code.341 = thunk_code;
          thunk_code = thunk_code.341 + 1;
          *thunk_code.341 = 160;
          {
            union x86_imm_buf imb;

            try
              {
                imb.val = 0;
                thunk_code.342 = thunk_code;
                thunk_code = thunk_code.342 + 1;
                D.25026 = imb.b[0];
                *thunk_code.342 = D.25026;
                thunk_code.343 = thunk_code;
                thunk_code = thunk_code.343 + 1;
                D.25028 = imb.b[1];
                *thunk_code.343 = D.25028;
                thunk_code.344 = thunk_code;
                thunk_code = thunk_code.344 + 1;
                D.25030 = imb.b[2];
                *thunk_code.344 = D.25030;
                thunk_code.345 = thunk_code;
                thunk_code = thunk_code.345 + 1;
                D.25032 = imb.b[3];
                *thunk_code.345 = D.25032;
              }
            finally
              {
                imb = {CLOBBER};
              }
          }
          <D.25023>:
          <D.22977>:
          <D.24994>:
          addr.321 = (long unsigned int) addr;
          MEM[(guint64 *)thunk_code] = addr.321;
          addr = thunk_start;
          addr.321 = (long unsigned int) addr;
          D.24972 = addr.321 >> 32;
          D.25033 = D.24972 != 0;
          D.25034 = (long int) D.25033;
          D.25035 = __builtin_expect (D.25034, 0);
          if (D.25035 != 0) goto <D.25036>; else goto <D.25037>;
          <D.25036>:
          monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 182, "(((guint64)(addr)) >> 32) == 0");
          <D.25037>:
          thunk_code.346 = (long int) thunk_code;
          thunk_start.347 = (long int) thunk_start;
          D.25040 = thunk_code.346 - thunk_start.347;
          D.25041 = (int) D.25040;
          mono_arch_flush_icache (thunk_start, D.25041);
        }
        <D.24976>:
        <D.24974>:
        if (can_write != 0) goto <D.25042>; else goto <D.25043>;
        <D.25042>:
        addr.319 = (long int) addr;
        orig_code.320 = (long int) orig_code;
        D.24967 = addr.319 - orig_code.320;
        D.25044 = (int) D.24967;
        D.25045 = orig_code + 18446744073709551612;
        InterlockedExchange (D.25045, D.25044);
        {
          volatile long long unsigned int _zzq_args[6];
          volatile long long unsigned int _zzq_result;

          _zzq_args[0] = 4098;
          D.25046 = orig_code + 18446744073709551611;
          D.25047 = (long long unsigned int) D.25046;
          _zzq_args[1] = D.25047;
          _zzq_args[2] = 4;
          _zzq_args[3] = 0;
          _zzq_args[4] = 0;
          _zzq_args[5] = 0;
          __asm__ __volatile__("rolq $3,  %%rdi ; rolq $13, %%rdi
	rolq $61, %%rdi ; rolq $51, %%rdi
	xchgq %%rbx,%%rbx" : "=d" _zzq_result : "a" &_zzq_args[0], "0" 0 : "memory", "cc");
          D.22981 = _zzq_result;
        }
        <D.25043>:
      }
      <D.24964>:
      goto <D.24949>;
      <D.24948>:
      D.25048 = code + 18446744073709551609;
      D.25049 = *D.25048;
      if (D.25049 == 65) goto <D.25050>; else goto <D.25051>;
      <D.25050>:
      D.25052 = code + 18446744073709551610;
      D.25053 = *D.25052;
      if (D.25053 == 255) goto <D.25054>; else goto <D.25055>;
      <D.25054>:
      D.24955 = code + 18446744073709551611;
      D.24956 = *D.24955;
      if (D.24956 == 21) goto <D.25056>; else goto <D.25057>;
      <D.25056>:
      {
        void * * got_entry;

        D.25058 = orig_code + 18446744073709551612;
        D.25059 = *D.25058;
        D.25060 = (sizetype) D.25059;
        got_entry = orig_code + D.25060;
        if (can_write != 0) goto <D.25061>; else goto <D.25062>;
        <D.25061>:
        InterlockedExchangePointer (got_entry, addr);
        {
          volatile long long unsigned int _zzq_args[6];
          volatile long long unsigned int _zzq_result;

          _zzq_args[0] = 4098;
          D.25046 = orig_code + 18446744073709551611;
          D.25047 = (long long unsigned int) D.25046;
          _zzq_args[1] = D.25047;
          _zzq_args[2] = 8;
          _zzq_args[3] = 0;
          _zzq_args[4] = 0;
          _zzq_args[5] = 0;
          __asm__ __volatile__("rolq $3,  %%rdi ; rolq $13, %%rdi
	rolq $61, %%rdi ; rolq $51, %%rdi
	xchgq %%rbx,%%rbx" : "=d" _zzq_result : "a" &_zzq_args[0], "0" 0 : "memory", "cc");
          D.22985 = _zzq_result;
        }
        <D.25062>:
      }
      <D.25057>:
      <D.25055>:
      <D.25051>:
      <D.24949>:
    }
  finally
    {
      buf = {CLOBBER};
    }
}


InterlockedExchange (volatile gint32 * val, gint32 new_val)
{
  unsigned int new_val.348;
  unsigned int old_val.349;
  unsigned int D.25065;
  int D.25066;
  gint32 D.25067;
  gint32 old_val;

  <D.18635>:
  old_val = *val;
  new_val.348 = (unsigned int) new_val;
  old_val.349 = (unsigned int) old_val;
  D.25065 = __sync_val_compare_and_swap_4 (val, old_val.349, new_val.348);
  D.25066 = (int) D.25065;
  if (D.25066 != old_val) goto <D.18635>; else goto <D.18636>;
  <D.18636>:
  D.25067 = old_val;
  return D.25067;
}


InterlockedExchangePointer (void * volatile * val, void * new_val)
{
  long unsigned int new_val.350;
  long unsigned int old_val.351;
  long unsigned int D.25071;
  void * D.25072;
  void * D.25073;
  void * old_val;

  <D.18642>:
  old_val = *val;
  new_val.350 = (long unsigned int) new_val;
  old_val.351 = (long unsigned int) old_val;
  D.25071 = __sync_val_compare_and_swap_8 (val, old_val.351, new_val.350);
  D.25072 = (void *) D.25071;
  if (D.25072 != old_val) goto <D.18642>; else goto <D.18643>;
  <D.18643>:
  D.25073 = old_val;
  return D.25073;
}


mono_arch_create_llvm_native_thunk (struct MonoDomain * domain, guint8 * addr)
{
  struct MonoDomain * D.25075;
  guint8 * thunk_code.352;
  unsigned char D.25079;
  guint8 * thunk_code.353;
  guint8 * thunk_code.354;
  guint8 * thunk_code.355;
  unsigned char D.25085;
  guint8 * thunk_code.356;
  unsigned char D.25087;
  guint8 * thunk_code.357;
  unsigned char D.25089;
  guint8 * thunk_code.358;
  unsigned char D.25091;
  guint8 * thunk_code.359;
  guint8 * thunk_code.360;
  guint8 * thunk_code.361;
  guint8 * thunk_code.362;
  guint8 * thunk_code.363;
  guint8 * thunk_code.364;
  guint8 * thunk_code.365;
  unsigned char D.25108;
  guint8 * thunk_code.366;
  unsigned char D.25110;
  guint8 * thunk_code.367;
  unsigned char D.25112;
  guint8 * thunk_code.368;
  unsigned char D.25114;
  guint8 * thunk_code.369;
  guint8 * thunk_code.370;
  guint8 * thunk_code.371;
  guint8 * thunk_code.372;
  unsigned char D.25124;
  guint8 * thunk_code.373;
  unsigned char D.25126;
  guint8 * thunk_code.374;
  unsigned char D.25128;
  guint8 * thunk_code.375;
  unsigned char D.25130;
  long unsigned int addr.376;
  long int thunk_code.377;
  long int thunk_start.378;
  long int D.25134;
  int D.25135;
  guint8 * D.25136;
  guint8 * thunk_start;
  guint8 * thunk_code;

  D.25075 = mono_domain_get ();
  thunk_code = mono_domain_code_reserve (D.25075, 32);
  thunk_start = thunk_code;
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 1;
    if (_amd64_rex_bits != 0) goto <D.25076>; else goto <D.25077>;
    <D.25076>:
    thunk_code.352 = thunk_code;
    thunk_code = thunk_code.352 + 1;
    D.25079 = _amd64_rex_bits | 64;
    *thunk_code.352 = D.25079;
    <D.25077>:
  }
  thunk_code.353 = thunk_code;
  thunk_code = thunk_code.353 + 1;
  *thunk_code.353 = 255;
  if (1 != 0) goto <D.25081>; else goto <D.25082>;
  <D.25081>:
  thunk_code.354 = thunk_code;
  thunk_code = thunk_code.354 + 1;
  *thunk_code.354 = 37;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        thunk_code.355 = thunk_code;
        thunk_code = thunk_code.355 + 1;
        D.25085 = imb.b[0];
        *thunk_code.355 = D.25085;
        thunk_code.356 = thunk_code;
        thunk_code = thunk_code.356 + 1;
        D.25087 = imb.b[1];
        *thunk_code.356 = D.25087;
        thunk_code.357 = thunk_code;
        thunk_code = thunk_code.357 + 1;
        D.25089 = imb.b[2];
        *thunk_code.357 = D.25089;
        thunk_code.358 = thunk_code;
        thunk_code = thunk_code.358 + 1;
        D.25091 = imb.b[3];
        *thunk_code.358 = D.25091;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  goto <D.25092>;
  <D.25082>:
  if (0 != 0) goto <D.25093>; else goto <D.25094>;
  <D.25093>:
  if (1 != 0) goto <D.25095>; else goto <D.25096>;
  <D.25095>:
  thunk_code.359 = thunk_code;
  thunk_code = thunk_code.359 + 1;
  *thunk_code.359 = 36;
  thunk_code.360 = thunk_code;
  thunk_code = thunk_code.360 + 1;
  *thunk_code.360 = 36;
  goto <D.25099>;
  <D.25096>:
  if (1 != 0) goto <D.25100>; else goto <D.25101>;
  <D.25100>:
  thunk_code.361 = thunk_code;
  thunk_code = thunk_code.361 + 1;
  *thunk_code.361 = 100;
  thunk_code.362 = thunk_code;
  thunk_code = thunk_code.362 + 1;
  *thunk_code.362 = 36;
  *thunk_code = 0;
  thunk_code = thunk_code + 1;
  goto <D.25104>;
  <D.25101>:
  thunk_code.363 = thunk_code;
  thunk_code = thunk_code.363 + 1;
  *thunk_code.363 = 164;
  thunk_code.364 = thunk_code;
  thunk_code = thunk_code.364 + 1;
  *thunk_code.364 = 36;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        thunk_code.365 = thunk_code;
        thunk_code = thunk_code.365 + 1;
        D.25108 = imb.b[0];
        *thunk_code.365 = D.25108;
        thunk_code.366 = thunk_code;
        thunk_code = thunk_code.366 + 1;
        D.25110 = imb.b[1];
        *thunk_code.366 = D.25110;
        thunk_code.367 = thunk_code;
        thunk_code = thunk_code.367 + 1;
        D.25112 = imb.b[2];
        *thunk_code.367 = D.25112;
        thunk_code.368 = thunk_code;
        thunk_code = thunk_code.368 + 1;
        D.25114 = imb.b[3];
        *thunk_code.368 = D.25114;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.25104>:
  <D.25099>:
  goto <D.22995>;
  <D.25094>:
  if (1 != 0) goto <D.25115>; else goto <D.25116>;
  <D.25115>:
  thunk_code.369 = thunk_code;
  thunk_code = thunk_code.369 + 1;
  *thunk_code.369 = 32;
  goto <D.22995>;
  <D.25116>:
  if (1 != 0) goto <D.25118>; else goto <D.25119>;
  <D.25118>:
  thunk_code.370 = thunk_code;
  thunk_code = thunk_code.370 + 1;
  *thunk_code.370 = 96;
  *thunk_code = 0;
  thunk_code = thunk_code + 1;
  goto <D.25121>;
  <D.25119>:
  thunk_code.371 = thunk_code;
  thunk_code = thunk_code.371 + 1;
  *thunk_code.371 = 160;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        thunk_code.372 = thunk_code;
        thunk_code = thunk_code.372 + 1;
        D.25124 = imb.b[0];
        *thunk_code.372 = D.25124;
        thunk_code.373 = thunk_code;
        thunk_code = thunk_code.373 + 1;
        D.25126 = imb.b[1];
        *thunk_code.373 = D.25126;
        thunk_code.374 = thunk_code;
        thunk_code = thunk_code.374 + 1;
        D.25128 = imb.b[2];
        *thunk_code.374 = D.25128;
        thunk_code.375 = thunk_code;
        thunk_code = thunk_code.375 + 1;
        D.25130 = imb.b[3];
        *thunk_code.375 = D.25130;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.25121>:
  <D.22995>:
  <D.25092>:
  addr.376 = (long unsigned int) addr;
  MEM[(guint64 *)thunk_code] = addr.376;
  addr = thunk_start;
  thunk_code.377 = (long int) thunk_code;
  thunk_start.378 = (long int) thunk_start;
  D.25134 = thunk_code.377 - thunk_start.378;
  D.25135 = (int) D.25134;
  mono_arch_flush_icache (thunk_start, D.25135);
  D.25136 = addr;
  return D.25136;
}


mono_arch_patch_plt_entry (guint8 * code, void * * got, mgreg_t * regs, guint8 * addr)
{
  unsigned char D.25138;
  _Bool D.25139;
  long int D.25140;
  long int D.25141;
  guint8 * D.25144;
  unsigned char D.25145;
  _Bool D.25146;
  long int D.25147;
  long int D.25148;
  sizetype D.25151;
  sizetype D.25152;
  gint32 disp;
  void * * plt_jump_table_entry;

  D.25138 = *code;
  D.25139 = D.25138 != 255;
  D.25140 = (long int) D.25139;
  D.25141 = __builtin_expect (D.25140, 0);
  if (D.25141 != 0) goto <D.25142>; else goto <D.25143>;
  <D.25142>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 261, "code [0] == 0xff");
  <D.25143>:
  D.25144 = code + 1;
  D.25145 = *D.25144;
  D.25146 = D.25145 != 37;
  D.25147 = (long int) D.25146;
  D.25148 = __builtin_expect (D.25147, 0);
  if (D.25148 != 0) goto <D.25149>; else goto <D.25150>;
  <D.25149>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 262, "code [1] == 0x25");
  <D.25150>:
  disp = MEM[(gint32 *)code + 2B];
  D.25151 = (sizetype) disp;
  D.25152 = D.25151 + 6;
  plt_jump_table_entry = code + D.25152;
  InterlockedExchangePointer (plt_jump_table_entry, addr);
}


mono_arch_nullify_class_init_trampoline (guint8 * code, mgreg_t * regs)
{
  int mono_use_llvm.379;
  struct MonoDomain * D.25156;
  guint8 * iftmp.380;
  unsigned char D.25165;
  unsigned char D.25167;
  unsigned char D.25169;
  _Bool D.25171;
  long int D.25172;
  long int D.25173;
  guint8 * D.25178;
  unsigned char D.25182;
  unsigned char D.25184;
  unsigned char D.25185;
  unsigned char D.25187;
  int D.25188;
  int D.25189;
  guint8 * D.25191;
  unsigned char D.25192;
  int D.25200;
  int D.25201;
  int D.25202;
  unsigned char D.25203;
  int D.25204;
  int D.25205;
  int D.25206;
  int D.25207;
  guint8 buf[16];
  struct MonoJitInfo * ji;
  gboolean can_write;
  void * tramp;

  try
    {
      ji = 0B;
      tramp = mini_get_nullified_class_init_trampoline ();
      mono_use_llvm.379 = mono_use_llvm;
      if (mono_use_llvm.379 != 0) goto <D.25154>; else goto <D.25155>;
      <D.25154>:
      D.25156 = mono_domain_get ();
      ji = mono_jit_info_table_find (D.25156, code);
      <D.25155>:
      if (ji != 0B) goto <D.25158>; else goto <D.25159>;
      <D.25158>:
      iftmp.380 = ji->code_start;
      goto <D.25160>;
      <D.25159>:
      iftmp.380 = 0B;
      <D.25160>:
      can_write = mono_breakpoint_clean_code (iftmp.380, code, 7, &buf, 16);
      if (can_write == 0) goto <D.25161>; else goto <D.25162>;
      <D.25161>:
      return;
      <D.25162>:
      D.25165 = buf[0];
      if (D.25165 == 65) goto <D.25166>; else goto <D.25163>;
      <D.25166>:
      D.25167 = buf[1];
      if (D.25167 == 255) goto <D.25168>; else goto <D.25163>;
      <D.25168>:
      D.25169 = buf[2];
      if (D.25169 == 21) goto <D.25170>; else goto <D.25163>;
      <D.25170>:
      {
        void * * vtable_slot;

        vtable_slot = get_vcall_slot_addr (code, regs);
        D.25171 = vtable_slot == 0B;
        D.25172 = (long int) D.25171;
        D.25173 = __builtin_expect (D.25172, 0);
        if (D.25173 != 0) goto <D.25174>; else goto <D.25175>;
        <D.25174>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 360, "vtable_slot");
        <D.25175>:
        *vtable_slot = tramp;
      }
      goto <D.25164>;
      <D.25163>:
      D.25169 = buf[2];
      if (D.25169 == 232) goto <D.25176>; else goto <D.25177>;
      <D.25176>:
      D.25178 = code + 18446744073709551611;
      mono_arch_patch_callsite (D.25178, code, tramp);
      goto <D.25179>;
      <D.25177>:
      D.25182 = buf[5];
      if (D.25182 == 255) goto <D.25183>; else goto <D.25180>;
      <D.25183>:
      D.25184 = buf[6];
      D.25185 = D.25184 >> 6;
      if (D.25185 == 3) goto <D.25186>; else goto <D.25180>;
      <D.25186>:
      D.25184 = buf[6];
      D.25187 = D.25184 >> 3;
      D.25188 = (int) D.25187;
      D.25189 = D.25188 & 7;
      if (D.25189 == 2) goto <D.25190>; else goto <D.25180>;
      <D.25190>:
      D.25191 = code + 18446744073709551603;
      mono_arch_patch_callsite (D.25191, code, tramp);
      goto <D.25181>;
      <D.25180>:
      D.25192 = buf[4];
      if (D.25192 == 144) goto <D.25193>; else goto <D.25194>;
      <D.25194>:
      D.25182 = buf[5];
      if (D.25182 == 235) goto <D.25195>; else goto <D.25196>;
      <D.25196>:
      D.25184 = buf[6];
      if (D.25184 == 102) goto <D.25197>; else goto <D.25198>;
      <D.25197>:
      goto <D.25199>;
      <D.25198>:
      D.25184 = buf[6];
      D.25200 = (int) D.25184;
      D.25182 = buf[5];
      D.25201 = (int) D.25182;
      D.25192 = buf[4];
      D.25202 = (int) D.25192;
      D.25203 = buf[3];
      D.25204 = (int) D.25203;
      D.25169 = buf[2];
      D.25205 = (int) D.25169;
      D.25167 = buf[1];
      D.25206 = (int) D.25167;
      D.25165 = buf[0];
      D.25207 = (int) D.25165;
      printf ("Invalid trampoline sequence: %x %x %x %x %x %x %x\n", D.25207, D.25206, D.25205, D.25204, D.25202, D.25201, D.25200);
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "tramp-amd64.c", 391);
      <D.25199>:
      <D.25195>:
      <D.25193>:
      <D.25181>:
      <D.25179>:
      <D.25164>:
    }
  finally
    {
      buf = {CLOBBER};
    }
}


get_vcall_slot_addr (guint8 * code, mgreg_t * regs)
{
  void * * D.25213;
  int displacement.381;
  sizetype D.25215;
  void * vt;
  int displacement;

  try
    {
      vt = get_vcall_slot (code, regs, &displacement);
      if (vt == 0B) goto <D.25211>; else goto <D.25212>;
      <D.25211>:
      D.25213 = 0B;
      return D.25213;
      <D.25212>:
      displacement.381 = displacement;
      D.25215 = (sizetype) displacement.381;
      D.25213 = vt + D.25215;
      return D.25213;
    }
  finally
    {
      displacement = {CLOBBER};
    }
}


get_vcall_slot (guint8 * code, mgreg_t * regs, int * displacement)
{
  guint8 * iftmp.382;
  unsigned char D.25223;
  guint8 * D.25225;
  unsigned char D.25226;
  guint8 * D.25228;
  unsigned char D.25229;
  guint32 * D.25231;
  unsigned int D.25232;
  int D.25233;
  void * D.25234;
  sizetype D.25235;
  sizetype D.25236;
  guint8 buf[10];
  gint32 disp;
  struct MonoJitInfo * ji;

  try
    {
      ji = 0B;
      if (ji != 0B) goto <D.25219>; else goto <D.25220>;
      <D.25219>:
      iftmp.382 = ji->code_start;
      goto <D.25221>;
      <D.25220>:
      iftmp.382 = 0B;
      <D.25221>:
      mono_breakpoint_clean_code (iftmp.382, code, 9, &buf, 10);
      code = &MEM[(void *)&buf + 9B];
      *displacement = 0;
      code = code + 18446744073709551609;
      D.25223 = *code;
      if (D.25223 == 65) goto <D.25224>; else goto <D.25222>;
      <D.25224>:
      D.25225 = code + 1;
      D.25226 = *D.25225;
      if (D.25226 == 255) goto <D.25227>; else goto <D.25222>;
      <D.25227>:
      D.25228 = code + 2;
      D.25229 = *D.25228;
      if (D.25229 == 21) goto <D.25230>; else goto <D.25222>;
      <D.25230>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "tramp-amd64.c", 311);
      D.25231 = code + 3;
      D.25232 = *D.25231;
      D.25233 = (int) D.25232;
      *displacement = D.25233;
      D.25235 = (sizetype) disp;
      D.25236 = D.25235 + 7;
      D.25234 = code + D.25236;
      return D.25234;
      <D.25222>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "tramp-amd64.c", 315);
      D.25234 = 0B;
      return D.25234;
    }
  finally
    {
      buf = {CLOBBER};
    }
}


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

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


mono_arch_nullify_plt_entry (guint8 * code, mgreg_t * regs)
{
  void * D.25241;

  D.25241 = mini_get_nullified_class_init_trampoline ();
  mono_arch_patch_plt_entry (code, 0B, regs, D.25241);
}


mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, struct MonoTrampInfo * * info, gboolean aot)
{
  _Bool D.25242;
  _Bool D.25243;
  _Bool D.25244;
  int kMaxCodeSize.383;
  void * buf.384;
  guint8 * buf.385;
  int D.25251;
  guint8 * code.386;
  guint8 * code.387;
  long int code.388;
  long int buf.389;
  long int D.25256;
  int D.25257;
  struct MonoUnwindOp * D.25258;
  struct MonoUnwindOp * D.25259;
  guint8 * code.390;
  guint8 * code.391;
  unsigned char D.25264;
  guint8 * code.392;
  guint8 * code.393;
  unsigned int orig_rsp_to_rbp_offset.394;
  unsigned int D.25268;
  unsigned int cfa_offset.395;
  unsigned int D.25270;
  struct MonoUnwindOp * D.25271;
  guint8 * code.396;
  guint8 * code.397;
  unsigned char D.25276;
  guint8 * code.398;
  guint8 * code.399;
  unsigned int D.25279;
  struct MonoUnwindOp * D.25280;
  int D.25281;
  struct MonoUnwindOp * D.25282;
  unsigned int D.25283;
  guint8 * code.400;
  guint8 * code.401;
  guint8 * code.402;
  guint8 * code.403;
  unsigned char D.25292;
  guint8 * code.404;
  guint8 * code.405;
  guint8 * code.406;
  guint8 * code.407;
  guint8 * code.408;
  guint8 * code.409;
  struct MonoUnwindOp * D.25299;
  unsigned int framesize.410;
  unsigned int D.25301;
  guint8 * code.411;
  guint8 * code.412;
  unsigned char D.25308;
  guint8 * code.413;
  guint8 * code.414;
  guint8 * code.415;
  guint8 * code.416;
  unsigned char D.25313;
  guint8 * code.417;
  guint8 * code.418;
  guint8 * code.419;
  unsigned char D.25322;
  guint8 * code.420;
  guint8 * code.421;
  guint8 * code.422;
  guint8 * code.423;
  unsigned char D.25327;
  guint8 * code.424;
  guint8 * code.425;
  unsigned char D.25330;
  guint8 * code.426;
  guint8 * code.427;
  unsigned char D.25333;
  guint8 * code.428;
  guint8 * code.429;
  unsigned char D.25336;
  guint8 * code.430;
  guint8 * code.431;
  unsigned char D.25342;
  guint8 * code.432;
  guint8 * code.433;
  guint8 * code.434;
  guint8 * code.435;
  guint8 * code.436;
  guint8 * code.437;
  unsigned char D.25349;
  guint8 * code.438;
  guint8 * code.439;
  unsigned char D.25352;
  guint8 * code.440;
  guint8 * code.441;
  unsigned char D.25355;
  guint8 * code.442;
  guint8 * code.443;
  unsigned char D.25358;
  unsigned int offset.444;
  unsigned int D.25360;
  guint8 * code.445;
  guint8 * code.446;
  unsigned char D.25369;
  guint8 * code.447;
  guint8 * code.448;
  guint8 * code.449;
  guint8 * code.450;
  guint8 * code.451;
  guint8 * code.452;
  unsigned char D.25381;
  guint8 * code.453;
  guint8 * code.454;
  guint8 * code.455;
  guint8 * code.456;
  unsigned char D.25386;
  guint8 * code.457;
  guint8 * code.458;
  unsigned char D.25389;
  guint8 * code.459;
  guint8 * code.460;
  unsigned char D.25392;
  guint8 * code.461;
  guint8 * code.462;
  unsigned char D.25395;
  guint8 * code.463;
  guint8 * code.464;
  unsigned char D.25401;
  guint8 * code.465;
  guint8 * code.466;
  guint8 * code.467;
  guint8 * code.468;
  guint8 * code.469;
  guint8 * code.470;
  unsigned char D.25408;
  guint8 * code.471;
  guint8 * code.472;
  unsigned char D.25411;
  guint8 * code.473;
  guint8 * code.474;
  unsigned char D.25414;
  guint8 * code.475;
  guint8 * code.476;
  unsigned char D.25417;
  guint8 * code.477;
  guint8 * code.478;
  unsigned char D.25425;
  guint8 * code.479;
  guint8 * code.480;
  guint8 * code.481;
  guint8 * code.482;
  guint8 * code.483;
  guint8 * code.484;
  unsigned char D.25437;
  guint8 * code.485;
  guint8 * code.486;
  guint8 * code.487;
  guint8 * code.488;
  unsigned char D.25442;
  guint8 * code.489;
  guint8 * code.490;
  unsigned char D.25445;
  guint8 * code.491;
  guint8 * code.492;
  unsigned char D.25448;
  guint8 * code.493;
  guint8 * code.494;
  unsigned char D.25451;
  guint8 * code.495;
  guint8 * code.496;
  unsigned char D.25457;
  guint8 * code.497;
  guint8 * code.498;
  guint8 * code.499;
  guint8 * code.500;
  guint8 * code.501;
  guint8 * code.502;
  unsigned char D.25464;
  guint8 * code.503;
  guint8 * code.504;
  unsigned char D.25467;
  guint8 * code.505;
  guint8 * code.506;
  unsigned char D.25470;
  guint8 * code.507;
  guint8 * code.508;
  unsigned char D.25473;
  guint8 * code.509;
  guint8 * code.510;
  guint8 * code.511;
  guint8 * code.512;
  unsigned char D.25482;
  guint8 * code.513;
  guint8 * code.514;
  guint8 * code.515;
  guint8 * code.516;
  guint8 * code.517;
  guint8 * code.518;
  guint8 * code.519;
  guint8 * code.520;
  unsigned int tramp_offset.521;
  unsigned int D.25497;
  guint8 * code.522;
  guint8 * code.523;
  guint8 * code.524;
  guint8 * code.525;
  unsigned char D.25504;
  guint8 * code.526;
  guint8 * code.527;
  guint8 * code.528;
  guint8 * code.529;
  guint8 * code.530;
  guint8 * code.531;
  unsigned char D.25512;
  guint8 * code.532;
  guint8 * code.533;
  unsigned char D.25515;
  guint8 * code.534;
  guint8 * code.535;
  unsigned char D.25518;
  guint8 * code.536;
  guint8 * code.537;
  unsigned char D.25521;
  guint8 * code.538;
  guint8 * code.539;
  guint8 * code.540;
  guint8 * code.541;
  guint8 * code.542;
  guint8 * code.543;
  guint8 * code.544;
  guint8 * code.545;
  unsigned char D.25535;
  guint8 * code.546;
  guint8 * code.547;
  unsigned char D.25538;
  guint8 * code.548;
  guint8 * code.549;
  unsigned char D.25541;
  guint8 * code.550;
  guint8 * code.551;
  unsigned char D.25544;
  unsigned int D.25545;
  guint8 * code.552;
  guint8 * code.553;
  guint8 * code.554;
  guint8 * code.555;
  unsigned char D.25556;
  guint8 * code.556;
  guint8 * code.557;
  guint8 * code.558;
  guint8 * code.559;
  guint8 * code.560;
  guint8 * code.561;
  guint8 * code.562;
  guint8 * code.563;
  unsigned char D.25567;
  guint8 * code.564;
  guint8 * code.565;
  unsigned char D.25570;
  guint8 * code.566;
  guint8 * code.567;
  unsigned char D.25573;
  guint8 * code.568;
  guint8 * code.569;
  unsigned char D.25576;
  guint8 * code.570;
  guint8 * code.571;
  guint8 * code.572;
  guint8 * code.573;
  unsigned int rbp_offset.574;
  unsigned int D.25588;
  guint8 * code.575;
  guint8 * code.576;
  guint8 * code.577;
  guint8 * code.578;
  unsigned char D.25595;
  guint8 * code.579;
  guint8 * code.580;
  guint8 * code.581;
  guint8 * code.582;
  guint8 * code.583;
  guint8 * code.584;
  unsigned char D.25603;
  guint8 * code.585;
  guint8 * code.586;
  unsigned char D.25606;
  guint8 * code.587;
  guint8 * code.588;
  unsigned char D.25609;
  guint8 * code.589;
  guint8 * code.590;
  unsigned char D.25612;
  guint8 * code.591;
  guint8 * code.592;
  guint8 * code.593;
  guint8 * code.594;
  guint8 * code.595;
  guint8 * code.596;
  guint8 * code.597;
  guint8 * code.598;
  unsigned char D.25626;
  guint8 * code.599;
  guint8 * code.600;
  unsigned char D.25629;
  guint8 * code.601;
  guint8 * code.602;
  unsigned char D.25632;
  guint8 * code.603;
  guint8 * code.604;
  unsigned char D.25635;
  guint8 * code.605;
  guint8 * code.606;
  guint8 * code.607;
  guint8 * code.608;
  unsigned char D.25644;
  guint8 * code.609;
  guint8 * code.610;
  guint8 * code.611;
  guint8 * code.612;
  long unsigned int D.25651;
  long unsigned int D.25652;
  long unsigned int D.25653;
  long unsigned int D.25654;
  guint8 * code.613;
  guint8 * code.614;
  guint8 * code.615;
  guint8 * code.616;
  unsigned int D.25664;
  unsigned int D.25665;
  unsigned int saved_regs_offset.617;
  unsigned int D.25667;
  int D.25668;
  guint8 * code.618;
  guint8 * code.619;
  guint8 * code.620;
  guint8 * code.621;
  unsigned char D.25675;
  unsigned char D.25676;
  unsigned char D.25677;
  unsigned char D.25678;
  guint8 * code.622;
  guint8 * code.623;
  guint8 * code.624;
  guint8 * code.625;
  guint8 * code.626;
  guint8 * code.627;
  unsigned char D.25685;
  guint8 * code.628;
  guint8 * code.629;
  unsigned char D.25688;
  guint8 * code.630;
  guint8 * code.631;
  unsigned char D.25691;
  guint8 * code.632;
  guint8 * code.633;
  unsigned char D.25694;
  guint8 * code.634;
  guint8 * code.635;
  guint8 * code.636;
  guint8 * code.637;
  guint8 * code.638;
  guint8 * code.639;
  guint8 * code.640;
  guint8 * code.641;
  unsigned char D.25709;
  guint8 * code.642;
  guint8 * code.643;
  unsigned char D.25712;
  guint8 * code.644;
  guint8 * code.645;
  unsigned char D.25715;
  guint8 * code.646;
  guint8 * code.647;
  unsigned char D.25718;
  guint8 * code.648;
  guint8 * code.649;
  unsigned char iftmp.650;
  guint8 * code.651;
  guint8 * code.652;
  unsigned char D.25734;
  guint8 * code.653;
  guint8 * code.654;
  guint8 * code.655;
  guint8 * code.656;
  guint8 * code.657;
  guint8 * code.658;
  int D.25745;
  int D.25746;
  signed char D.25747;
  signed char D.25748;
  unsigned char D.25749;
  guint8 * code.659;
  guint8 * code.660;
  guint8 * code.661;
  guint8 * code.662;
  signed char D.25759;
  unsigned char D.25760;
  guint8 * code.663;
  guint8 * code.664;
  guint8 * code.665;
  guint8 * code.666;
  signed char D.25765;
  unsigned char D.25766;
  guint8 * code.667;
  guint8 * code.668;
  guint8 * code.669;
  guint8 * code.670;
  unsigned char D.25771;
  guint8 * code.671;
  guint8 * code.672;
  unsigned char D.25774;
  guint8 * code.673;
  guint8 * code.674;
  unsigned char D.25777;
  guint8 * code.675;
  guint8 * code.676;
  unsigned char D.25780;
  guint8 * code.677;
  guint8 * code.678;
  signed char D.25785;
  unsigned char D.25786;
  guint8 * code.679;
  guint8 * code.680;
  signed char D.25793;
  unsigned char D.25794;
  guint8 * code.681;
  guint8 * code.682;
  signed char D.25797;
  unsigned char D.25798;
  guint8 * code.683;
  guint8 * code.684;
  unsigned char D.25801;
  guint8 * code.685;
  guint8 * code.686;
  unsigned char D.25804;
  guint8 * code.687;
  guint8 * code.688;
  unsigned char D.25807;
  guint8 * code.689;
  guint8 * code.690;
  unsigned char D.25810;
  guint8 * r11_save_code.691;
  unsigned char iftmp.692;
  guint8 * r11_save_code.693;
  unsigned char D.25822;
  guint8 * r11_save_code.694;
  guint8 * r11_save_code.695;
  int D.25827;
  long unsigned int D.25828;
  long unsigned int D.25829;
  guint8 * r11_save_code.696;
  guint8 * r11_save_code.697;
  unsigned int D.25837;
  unsigned int D.25838;
  int D.25839;
  guint8 * r11_save_code.698;
  guint8 * r11_save_code.699;
  unsigned char D.25844;
  unsigned char D.25845;
  unsigned char D.25846;
  guint8 * r11_save_code.700;
  guint8 * r11_save_code.701;
  guint8 * r11_save_code.702;
  unsigned char D.25850;
  guint8 * r11_save_code.703;
  unsigned char D.25852;
  guint8 * r11_save_code.704;
  unsigned char D.25854;
  guint8 * r11_save_code.705;
  unsigned char D.25856;
  guint8 * r11_save_code.706;
  guint8 * r11_save_code.707;
  guint8 * r11_save_code.708;
  guint8 * r11_save_code.709;
  unsigned char D.25867;
  guint8 * r11_save_code.710;
  unsigned char D.25869;
  guint8 * r11_save_code.711;
  unsigned char D.25871;
  guint8 * r11_save_code.712;
  unsigned char D.25873;
  _Bool D.25874;
  long int D.25875;
  long int D.25876;
  unsigned int D.25879;
  guint8 * code.713;
  guint8 * code.714;
  unsigned char iftmp.715;
  guint8 * code.716;
  guint8 * code.717;
  unsigned char D.25890;
  guint8 * code.718;
  guint8 * code.719;
  guint8 * code.720;
  guint8 * code.721;
  long unsigned int D.25897;
  long unsigned int D.25898;
  guint8 * code.722;
  guint8 * code.723;
  guint8 * code.724;
  guint8 * code.725;
  unsigned int saved_fpregs_offset.726;
  unsigned int D.25909;
  int D.25910;
  guint8 * code.727;
  guint8 * code.728;
  guint8 * code.729;
  guint8 * code.730;
  unsigned char D.25917;
  unsigned char D.25918;
  guint8 * code.731;
  guint8 * code.732;
  guint8 * code.733;
  guint8 * code.734;
  guint8 * code.735;
  guint8 * code.736;
  unsigned char D.25925;
  guint8 * code.737;
  guint8 * code.738;
  unsigned char D.25928;
  guint8 * code.739;
  guint8 * code.740;
  unsigned char D.25931;
  guint8 * code.741;
  guint8 * code.742;
  unsigned char D.25934;
  guint8 * code.743;
  guint8 * code.744;
  guint8 * code.745;
  guint8 * code.746;
  guint8 * code.747;
  guint8 * code.748;
  guint8 * code.749;
  guint8 * code.750;
  unsigned char D.25949;
  guint8 * code.751;
  guint8 * code.752;
  unsigned char D.25952;
  guint8 * code.753;
  guint8 * code.754;
  unsigned char D.25955;
  guint8 * code.755;
  guint8 * code.756;
  unsigned char D.25958;
  guint8 * code.757;
  guint8 * code.758;
  guint8 * code.759;
  guint8 * code.760;
  unsigned char D.25967;
  guint8 * code.761;
  guint8 * code.762;
  guint8 * code.763;
  guint8 * code.764;
  guint8 * code.765;
  guint8 * code.766;
  guint8 * code.767;
  guint8 * code.768;
  unsigned char D.25980;
  guint8 * code.769;
  guint8 * code.770;
  guint8 * code.771;
  guint8 * code.772;
  guint8 * code.773;
  guint8 * code.774;
  unsigned char D.25992;
  guint8 * code.775;
  guint8 * code.776;
  guint8 * code.777;
  guint8 * code.778;
  unsigned char D.25997;
  guint8 * code.779;
  guint8 * code.780;
  unsigned char D.26000;
  guint8 * code.781;
  guint8 * code.782;
  unsigned char D.26003;
  guint8 * code.783;
  guint8 * code.784;
  unsigned char D.26006;
  guint8 * code.785;
  guint8 * code.786;
  unsigned char D.26012;
  guint8 * code.787;
  guint8 * code.788;
  guint8 * code.789;
  guint8 * code.790;
  guint8 * code.791;
  guint8 * code.792;
  unsigned char D.26019;
  guint8 * code.793;
  guint8 * code.794;
  unsigned char D.26022;
  guint8 * code.795;
  guint8 * code.796;
  unsigned char D.26025;
  guint8 * code.797;
  guint8 * code.798;
  unsigned char D.26028;
  guint8 * code.799;
  guint8 * code.800;
  unsigned char D.26035;
  guint8 * code.801;
  guint8 * code.802;
  guint8 * code.803;
  guint8 * code.804;
  guint8 * code.805;
  guint8 * code.806;
  unsigned char D.26047;
  guint8 * code.807;
  guint8 * code.808;
  guint8 * code.809;
  guint8 * code.810;
  unsigned char D.26052;
  guint8 * code.811;
  guint8 * code.812;
  unsigned char D.26055;
  guint8 * code.813;
  guint8 * code.814;
  unsigned char D.26058;
  guint8 * code.815;
  guint8 * code.816;
  unsigned char D.26061;
  guint8 * code.817;
  guint8 * code.818;
  unsigned char D.26067;
  guint8 * code.819;
  guint8 * code.820;
  guint8 * code.821;
  guint8 * code.822;
  guint8 * code.823;
  guint8 * code.824;
  unsigned char D.26074;
  guint8 * code.825;
  guint8 * code.826;
  unsigned char D.26077;
  guint8 * code.827;
  guint8 * code.828;
  unsigned char D.26080;
  guint8 * code.829;
  guint8 * code.830;
  unsigned char D.26083;
  guint8 * code.831;
  guint8 * code.832;
  unsigned char D.26088;
  unsigned int offset.833;
  unsigned int D.26090;
  guint8 * code.834;
  guint8 * code.835;
  unsigned char D.26097;
  guint8 * code.836;
  guint8 * code.837;
  unsigned char D.26101;
  unsigned char D.26102;
  guint8 * code.838;
  guint8 * code.839;
  guint8 * code.840;
  guint8 * code.841;
  unsigned char D.26110;
  guint8 * code.842;
  guint8 * code.843;
  unsigned char D.26114;
  guint8 * code.844;
  guint8 * code.845;
  unsigned char D.26117;
  guint8 * code.846;
  guint8 * code.847;
  unsigned char D.26120;
  guint8 * code.848;
  guint8 * code.849;
  unsigned char D.26123;
  guint8 * code.850;
  guint8 * code.851;
  unsigned char D.26126;
  unsigned char iftmp.852;
  guint8 * code.853;
  guint8 * code.854;
  unsigned char D.26137;
  guint8 * code.855;
  guint8 * code.856;
  guint8 * code.857;
  guint8 * code.858;
  unsigned char D.26144;
  guint8 * code.859;
  guint8 * code.860;
  unsigned char D.26147;
  guint8 * code.861;
  guint8 * code.862;
  unsigned char D.26150;
  guint8 * code.863;
  guint8 * code.864;
  unsigned char D.26153;
  guint8 * code.865;
  guint8 * code.866;
  unsigned char D.26156;
  guint8 * code.867;
  guint8 * code.868;
  unsigned char D.26159;
  guint8 * code.869;
  guint8 * code.870;
  unsigned char D.26162;
  guint8 * code.871;
  guint8 * code.872;
  unsigned char D.26165;
  guint8 * code.873;
  guint8 * code.874;
  unsigned char D.26169;
  guint8 * code.875;
  guint8 * code.876;
  unsigned char D.26172;
  guint8 * code.877;
  guint8 * code.878;
  unsigned char D.26175;
  guint8 * code.879;
  guint8 * code.880;
  unsigned char D.26178;
  guint8 * code.881;
  guint8 * code.882;
  guint8 * code.883;
  guint8 * code.884;
  unsigned char D.26187;
  guint8 * code.885;
  guint8 * code.886;
  guint8 * code.887;
  guint8 * code.888;
  guint8 * code.889;
  guint8 * code.890;
  guint8 * code.891;
  guint8 * code.892;
  unsigned char D.26198;
  guint8 * code.893;
  guint8 * code.894;
  unsigned char D.26201;
  guint8 * code.895;
  guint8 * code.896;
  unsigned char D.26204;
  guint8 * code.897;
  guint8 * code.898;
  unsigned char D.26207;
  guint8 * code.899;
  guint8 * code.900;
  guint8 * code.901;
  guint8 * code.902;
  guint8 * code.903;
  guint8 * code.904;
  guint8 * code.905;
  guint8 * code.906;
  guint8 * code.907;
  guint8 * code.908;
  guint8 * code.909;
  guint8 * code.910;
  guint8 * code.911;
  guint8 * code.912;
  unsigned char D.26231;
  guint8 * code.913;
  guint8 * code.914;
  unsigned char D.26234;
  guint8 * code.915;
  guint8 * code.916;
  unsigned char D.26237;
  guint8 * code.917;
  guint8 * code.918;
  unsigned char D.26240;
  guint8 * code.919;
  guint8 * code.920;
  guint8 * code.921;
  guint8 * code.922;
  guint8 * code.923;
  guint8 * code.924;
  guint8 * code.925;
  guint8 * code.926;
  unsigned char D.26254;
  guint8 * code.927;
  guint8 * code.928;
  unsigned char D.26257;
  guint8 * code.929;
  guint8 * code.930;
  unsigned char D.26260;
  guint8 * code.931;
  guint8 * code.932;
  unsigned char D.26263;
  long unsigned int D.26265;
  int tramp_type.933;
  long unsigned int D.26267;
  _Bool D.26268;
  unsigned char iftmp.934;
  guint8 * code.935;
  guint8 * code.936;
  unsigned char D.26277;
  guint8 * code.937;
  guint8 * code.938;
  guint8 * code.939;
  guint8 * code.940;
  unsigned char D.26284;
  guint8 * code.941;
  guint8 * code.942;
  unsigned char D.26287;
  guint8 * code.943;
  guint8 * code.944;
  unsigned char D.26290;
  guint8 * code.945;
  guint8 * code.946;
  unsigned char D.26293;
  guint8 * code.947;
  guint8 * code.948;
  unsigned char D.26296;
  guint8 * code.949;
  guint8 * code.950;
  unsigned char D.26299;
  guint8 * code.951;
  guint8 * code.952;
  unsigned char D.26302;
  guint8 * code.953;
  guint8 * code.954;
  unsigned char D.26305;
  guint8 * code.955;
  guint8 * code.956;
  unsigned char D.26309;
  guint8 * code.957;
  guint8 * code.958;
  unsigned char D.26312;
  guint8 * code.959;
  guint8 * code.960;
  unsigned char D.26315;
  guint8 * code.961;
  guint8 * code.962;
  unsigned char D.26318;
  long int stack_unaligned.963;
  int D.26320;
  long unsigned int D.26321;
  long unsigned int stack_unaligned.964;
  _Bool D.26323;
  unsigned char iftmp.965;
  guint8 * code.966;
  guint8 * code.967;
  unsigned char D.26332;
  guint8 * code.968;
  guint8 * code.969;
  guint8 * code.970;
  guint8 * code.971;
  unsigned char D.26339;
  guint8 * code.972;
  guint8 * code.973;
  unsigned char D.26342;
  guint8 * code.974;
  guint8 * code.975;
  unsigned char D.26345;
  guint8 * code.976;
  guint8 * code.977;
  unsigned char D.26348;
  guint8 * code.978;
  guint8 * code.979;
  unsigned char D.26351;
  guint8 * code.980;
  guint8 * code.981;
  unsigned char D.26354;
  guint8 * code.982;
  guint8 * code.983;
  unsigned char D.26357;
  guint8 * code.984;
  guint8 * code.985;
  unsigned char D.26360;
  guint8 * code.986;
  guint8 * code.987;
  unsigned char D.26364;
  guint8 * code.988;
  guint8 * code.989;
  unsigned char D.26367;
  guint8 * code.990;
  guint8 * code.991;
  unsigned char D.26370;
  guint8 * code.992;
  guint8 * code.993;
  unsigned char D.26373;
  guint8 * code.994;
  guint8 * code.995;
  unsigned char D.26378;
  guint8 * code.996;
  guint8 * code.997;
  guint8 * code.998;
  guint8 * code.999;
  guint8 * D.26383;
  _Bool D.26385;
  _Bool D.26386;
  _Bool D.26387;
  _Bool D.26389;
  _Bool D.26390;
  _Bool D.26391;
  guint8 * code.1000;
  guint8 * code.1001;
  guint8 * code.1002;
  guint8 * code.1003;
  unsigned char D.26403;
  guint8 * code.1004;
  guint8 * code.1005;
  guint8 * code.1006;
  guint8 * code.1007;
  guint8 * code.1008;
  guint8 * code.1009;
  guint8 * code.1010;
  guint8 * code.1011;
  unsigned char D.26414;
  guint8 * code.1012;
  guint8 * code.1013;
  unsigned char D.26417;
  guint8 * code.1014;
  guint8 * code.1015;
  unsigned char D.26420;
  guint8 * code.1016;
  guint8 * code.1017;
  unsigned char D.26423;
  guint8 * code.1018;
  guint8 * code.1019;
  guint8 * code.1020;
  guint8 * code.1021;
  guint8 * code.1022;
  guint8 * code.1023;
  guint8 * code.1024;
  guint8 * code.1025;
  guint8 * code.1026;
  guint8 * code.1027;
  guint8 * code.1028;
  guint8 * code.1029;
  guint8 * code.1030;
  guint8 * code.1031;
  unsigned char D.26447;
  guint8 * code.1032;
  guint8 * code.1033;
  unsigned char D.26450;
  guint8 * code.1034;
  guint8 * code.1035;
  unsigned char D.26453;
  guint8 * code.1036;
  guint8 * code.1037;
  unsigned char D.26456;
  guint8 * code.1038;
  guint8 * code.1039;
  guint8 * code.1040;
  guint8 * code.1041;
  guint8 * code.1042;
  guint8 * code.1043;
  guint8 * code.1044;
  guint8 * code.1045;
  unsigned char D.26470;
  guint8 * code.1046;
  guint8 * code.1047;
  unsigned char D.26473;
  guint8 * code.1048;
  guint8 * code.1049;
  unsigned char D.26476;
  guint8 * code.1050;
  guint8 * code.1051;
  unsigned char D.26479;
  guint8 * code.1052;
  guint8 * code.1053;
  guint8 * code.1054;
  guint8 * code.1055;
  unsigned char D.26488;
  guint8 * code.1056;
  guint8 * code.1057;
  guint8 * code.1058;
  guint8 * code.1059;
  guint8 * code.1060;
  guint8 * code.1061;
  guint8 * code.1062;
  guint8 * code.1063;
  unsigned char D.26499;
  guint8 * code.1064;
  guint8 * code.1065;
  unsigned char D.26502;
  guint8 * code.1066;
  guint8 * code.1067;
  unsigned char D.26505;
  guint8 * code.1068;
  guint8 * code.1069;
  unsigned char D.26508;
  guint8 * code.1070;
  guint8 * code.1071;
  guint8 * code.1072;
  guint8 * code.1073;
  guint8 * code.1074;
  guint8 * code.1075;
  guint8 * code.1076;
  guint8 * code.1077;
  guint8 * code.1078;
  guint8 * code.1079;
  guint8 * code.1080;
  guint8 * code.1081;
  guint8 * code.1082;
  guint8 * code.1083;
  unsigned char D.26532;
  guint8 * code.1084;
  guint8 * code.1085;
  unsigned char D.26535;
  guint8 * code.1086;
  guint8 * code.1087;
  unsigned char D.26538;
  guint8 * code.1088;
  guint8 * code.1089;
  unsigned char D.26541;
  guint8 * code.1090;
  guint8 * code.1091;
  guint8 * code.1092;
  guint8 * code.1093;
  guint8 * code.1094;
  guint8 * code.1095;
  guint8 * code.1096;
  guint8 * code.1097;
  unsigned char D.26555;
  guint8 * code.1098;
  guint8 * code.1099;
  unsigned char D.26558;
  guint8 * code.1100;
  guint8 * code.1101;
  unsigned char D.26561;
  guint8 * code.1102;
  guint8 * code.1103;
  unsigned char D.26564;
  guint8 * code.1104;
  guint8 * code.1105;
  unsigned char D.26569;
  guint8 * code.1106;
  guint8 * code.1107;
  guint8 * code.1108;
  guint8 * code.1109;
  guint8 * code.1110;
  guint8 * code.1111;
  guint8 * code.1112;
  guint8 * code.1113;
  unsigned char D.26582;
  guint8 * code.1114;
  guint8 * code.1115;
  guint8 * code.1116;
  guint8 * code.1117;
  guint8 * code.1118;
  guint8 * code.1119;
  guint8 * code.1120;
  guint8 * code.1121;
  unsigned char D.26593;
  guint8 * code.1122;
  guint8 * code.1123;
  unsigned char D.26596;
  guint8 * code.1124;
  guint8 * code.1125;
  unsigned char D.26599;
  guint8 * code.1126;
  guint8 * code.1127;
  unsigned char D.26602;
  guint8 * code.1128;
  guint8 * code.1129;
  guint8 * code.1130;
  guint8 * code.1131;
  guint8 * code.1132;
  guint8 * code.1133;
  guint8 * code.1134;
  guint8 * code.1135;
  guint8 * code.1136;
  guint8 * code.1137;
  guint8 * code.1138;
  guint8 * code.1139;
  guint8 * code.1140;
  guint8 * code.1141;
  unsigned char D.26626;
  guint8 * code.1142;
  guint8 * code.1143;
  unsigned char D.26629;
  guint8 * code.1144;
  guint8 * code.1145;
  unsigned char D.26632;
  guint8 * code.1146;
  guint8 * code.1147;
  unsigned char D.26635;
  guint8 * code.1148;
  guint8 * code.1149;
  guint8 * code.1150;
  guint8 * code.1151;
  guint8 * code.1152;
  guint8 * code.1153;
  guint8 * code.1154;
  guint8 * code.1155;
  unsigned char D.26649;
  guint8 * code.1156;
  guint8 * code.1157;
  unsigned char D.26652;
  guint8 * code.1158;
  guint8 * code.1159;
  unsigned char D.26655;
  guint8 * code.1160;
  guint8 * code.1161;
  unsigned char D.26658;
  guint8 * code.1162;
  guint8 * code.1163;
  guint8 * code.1164;
  guint8 * code.1165;
  unsigned char D.26668;
  guint8 * code.1166;
  guint8 * code.1167;
  guint8 * code.1168;
  guint8 * code.1169;
  guint8 * code.1170;
  guint8 * code.1171;
  guint8 * code.1172;
  guint8 * code.1173;
  unsigned char D.26679;
  guint8 * code.1174;
  guint8 * code.1175;
  unsigned char D.26682;
  guint8 * code.1176;
  guint8 * code.1177;
  unsigned char D.26685;
  guint8 * code.1178;
  guint8 * code.1179;
  unsigned char D.26688;
  guint8 * code.1180;
  guint8 * code.1181;
  guint8 * code.1182;
  guint8 * code.1183;
  guint8 * code.1184;
  guint8 * code.1185;
  guint8 * code.1186;
  guint8 * code.1187;
  guint8 * code.1188;
  guint8 * code.1189;
  guint8 * code.1190;
  guint8 * code.1191;
  guint8 * code.1192;
  guint8 * code.1193;
  unsigned char D.26712;
  guint8 * code.1194;
  guint8 * code.1195;
  unsigned char D.26715;
  guint8 * code.1196;
  guint8 * code.1197;
  unsigned char D.26718;
  guint8 * code.1198;
  guint8 * code.1199;
  unsigned char D.26721;
  guint8 * code.1200;
  guint8 * code.1201;
  guint8 * code.1202;
  guint8 * code.1203;
  guint8 * code.1204;
  guint8 * code.1205;
  guint8 * code.1206;
  guint8 * code.1207;
  unsigned char D.26735;
  guint8 * code.1208;
  guint8 * code.1209;
  unsigned char D.26738;
  guint8 * code.1210;
  guint8 * code.1211;
  unsigned char D.26741;
  guint8 * code.1212;
  guint8 * code.1213;
  unsigned char D.26744;
  guint8 * code.1214;
  guint8 * code.1215;
  guint8 * code.1216;
  guint8 * code.1217;
  unsigned char D.26753;
  guint8 * code.1218;
  guint8 * code.1219;
  guint8 * code.1220;
  guint8 * code.1221;
  guint8 * code.1222;
  guint8 * code.1223;
  guint8 * code.1224;
  guint8 * code.1225;
  unsigned char D.26764;
  guint8 * code.1226;
  guint8 * code.1227;
  unsigned char D.26767;
  guint8 * code.1228;
  guint8 * code.1229;
  unsigned char D.26770;
  guint8 * code.1230;
  guint8 * code.1231;
  unsigned char D.26773;
  guint8 * code.1232;
  guint8 * code.1233;
  guint8 * code.1234;
  guint8 * code.1235;
  guint8 * code.1236;
  guint8 * code.1237;
  guint8 * code.1238;
  guint8 * code.1239;
  guint8 * code.1240;
  guint8 * code.1241;
  guint8 * code.1242;
  guint8 * code.1243;
  guint8 * code.1244;
  guint8 * code.1245;
  unsigned char D.26797;
  guint8 * code.1246;
  guint8 * code.1247;
  unsigned char D.26800;
  guint8 * code.1248;
  guint8 * code.1249;
  unsigned char D.26803;
  guint8 * code.1250;
  guint8 * code.1251;
  unsigned char D.26806;
  guint8 * code.1252;
  guint8 * code.1253;
  guint8 * code.1254;
  guint8 * code.1255;
  guint8 * code.1256;
  guint8 * code.1257;
  guint8 * code.1258;
  guint8 * code.1259;
  unsigned char D.26820;
  guint8 * code.1260;
  guint8 * code.1261;
  unsigned char D.26823;
  guint8 * code.1262;
  guint8 * code.1263;
  unsigned char D.26826;
  guint8 * code.1264;
  guint8 * code.1265;
  unsigned char D.26829;
  guint8 * code.1266;
  guint8 * code.1267;
  unsigned char D.26834;
  guint8 * code.1268;
  guint8 * code.1269;
  guint8 * code.1270;
  guint8 * code.1271;
  guint8 * code.1272;
  guint8 * code.1273;
  guint8 * code.1274;
  guint8 * code.1275;
  unsigned char D.26853;
  guint8 * code.1276;
  guint8 * code.1277;
  guint8 * code.1278;
  guint8 * code.1279;
  guint8 * code.1280;
  guint8 * code.1281;
  unsigned char D.26865;
  guint8 * code.1282;
  guint8 * code.1283;
  guint8 * code.1284;
  guint8 * code.1285;
  unsigned char D.26870;
  guint8 * code.1286;
  guint8 * code.1287;
  unsigned char D.26873;
  guint8 * code.1288;
  guint8 * code.1289;
  unsigned char D.26876;
  guint8 * code.1290;
  guint8 * code.1291;
  unsigned char D.26879;
  guint8 * code.1292;
  guint8 * code.1293;
  unsigned char D.26885;
  guint8 * code.1294;
  guint8 * code.1295;
  guint8 * code.1296;
  guint8 * code.1297;
  guint8 * code.1298;
  guint8 * code.1299;
  unsigned char D.26892;
  guint8 * code.1300;
  guint8 * code.1301;
  unsigned char D.26895;
  guint8 * code.1302;
  guint8 * code.1303;
  unsigned char D.26898;
  guint8 * code.1304;
  guint8 * code.1305;
  unsigned char D.26901;
  guint8 * code.1306;
  guint8 * code.1307;
  unsigned char D.26906;
  guint8 * code.1308;
  guint8 * code.1309;
  unsigned char D.26910;
  guint8 * code.1310;
  guint8 * code.1311;
  guint8 * code.1312;
  guint8 * code.1313;
  unsigned char D.26919;
  guint8 * code.1314;
  guint8 * code.1315;
  guint8 * code.1316;
  guint8 * code.1317;
  guint8 * code.1318;
  guint8 * code.1319;
  guint8 * code.1320;
  guint8 * code.1321;
  unsigned char D.26930;
  guint8 * code.1322;
  guint8 * code.1323;
  unsigned char D.26933;
  guint8 * code.1324;
  guint8 * code.1325;
  unsigned char D.26936;
  guint8 * code.1326;
  guint8 * code.1327;
  unsigned char D.26939;
  guint8 * code.1328;
  guint8 * code.1329;
  guint8 * code.1330;
  guint8 * code.1331;
  guint8 * code.1332;
  guint8 * code.1333;
  guint8 * code.1334;
  guint8 * code.1335;
  guint8 * code.1336;
  guint8 * code.1337;
  guint8 * code.1338;
  guint8 * code.1339;
  guint8 * code.1340;
  guint8 * code.1341;
  unsigned char D.26963;
  guint8 * code.1342;
  guint8 * code.1343;
  unsigned char D.26966;
  guint8 * code.1344;
  guint8 * code.1345;
  unsigned char D.26969;
  guint8 * code.1346;
  guint8 * code.1347;
  unsigned char D.26972;
  guint8 * code.1348;
  guint8 * code.1349;
  guint8 * code.1350;
  guint8 * code.1351;
  guint8 * code.1352;
  guint8 * code.1353;
  guint8 * code.1354;
  guint8 * code.1355;
  unsigned char D.26986;
  guint8 * code.1356;
  guint8 * code.1357;
  unsigned char D.26989;
  guint8 * code.1358;
  guint8 * code.1359;
  unsigned char D.26992;
  guint8 * code.1360;
  guint8 * code.1361;
  unsigned char D.26995;
  guint8 * code.1362;
  guint8 * code.1363;
  guint8 * code.1364;
  guint8 * code.1365;
  guint8 * code.1366;
  guint8 * code.1367;
  unsigned char D.27006;
  guint8 * code.1368;
  guint8 * code.1369;
  guint8 * code.1370;
  guint8 * code.1371;
  guint8 * code.1372;
  guint8 * code.1373;
  guint8 * code.1374;
  guint8 * code.1375;
  unsigned char D.27017;
  guint8 * code.1376;
  guint8 * code.1377;
  unsigned char D.27020;
  guint8 * code.1378;
  guint8 * code.1379;
  unsigned char D.27023;
  guint8 * code.1380;
  guint8 * code.1381;
  unsigned char D.27026;
  guint8 * code.1382;
  guint8 * code.1383;
  guint8 * code.1384;
  guint8 * code.1385;
  guint8 * code.1386;
  guint8 * code.1387;
  guint8 * code.1388;
  guint8 * code.1389;
  guint8 * code.1390;
  guint8 * code.1391;
  guint8 * code.1392;
  guint8 * code.1393;
  guint8 * code.1394;
  guint8 * code.1395;
  unsigned char D.27050;
  guint8 * code.1396;
  guint8 * code.1397;
  unsigned char D.27053;
  guint8 * code.1398;
  guint8 * code.1399;
  unsigned char D.27056;
  guint8 * code.1400;
  guint8 * code.1401;
  unsigned char D.27059;
  guint8 * code.1402;
  guint8 * code.1403;
  guint8 * code.1404;
  guint8 * code.1405;
  guint8 * code.1406;
  guint8 * code.1407;
  guint8 * code.1408;
  guint8 * code.1409;
  unsigned char D.27073;
  guint8 * code.1410;
  guint8 * code.1411;
  unsigned char D.27076;
  guint8 * code.1412;
  guint8 * code.1413;
  unsigned char D.27079;
  guint8 * code.1414;
  guint8 * code.1415;
  unsigned char D.27082;
  guint8 * D.27083;
  guint8 * code.1416;
  guint8 * code.1417;
  guint8 * code.1418;
  guint8 * code.1419;
  unsigned char D.27092;
  guint8 * code.1420;
  guint8 * code.1421;
  guint8 * code.1422;
  guint8 * code.1423;
  guint8 * code.1424;
  guint8 * code.1425;
  guint8 * code.1426;
  guint8 * code.1427;
  unsigned int arg_offset.1428;
  unsigned int D.27107;
  guint8 * code.1429;
  guint8 * code.1430;
  guint8 * code.1431;
  guint8 * code.1432;
  unsigned char D.27114;
  guint8 * code.1433;
  guint8 * code.1434;
  guint8 * code.1435;
  guint8 * code.1436;
  guint8 * code.1437;
  guint8 * code.1438;
  unsigned char D.27122;
  guint8 * code.1439;
  guint8 * code.1440;
  unsigned char D.27125;
  guint8 * code.1441;
  guint8 * code.1442;
  unsigned char D.27128;
  guint8 * code.1443;
  guint8 * code.1444;
  unsigned char D.27131;
  guint8 * code.1445;
  guint8 * code.1446;
  guint8 * code.1447;
  guint8 * code.1448;
  guint8 * code.1449;
  guint8 * code.1450;
  guint8 * code.1451;
  guint8 * code.1452;
  unsigned char D.27145;
  guint8 * code.1453;
  guint8 * code.1454;
  unsigned char D.27148;
  guint8 * code.1455;
  guint8 * code.1456;
  unsigned char D.27151;
  guint8 * code.1457;
  guint8 * code.1458;
  unsigned char D.27154;
  guint8 * code.1459;
  guint8 * code.1460;
  guint8 * code.1461;
  guint8 * code.1462;
  unsigned char D.27163;
  guint8 * code.1463;
  guint8 * code.1464;
  guint8 * code.1465;
  guint8 * code.1466;
  guint8 * code.1467;
  guint8 * code.1468;
  unsigned int D.27172;
  int D.27173;
  guint8 * code.1469;
  guint8 * code.1470;
  unsigned char D.27176;
  guint8 * code.1471;
  guint8 * code.1472;
  unsigned char D.27179;
  guint8 * code.1473;
  guint8 * code.1474;
  unsigned char D.27182;
  guint8 * code.1475;
  guint8 * code.1476;
  unsigned char D.27185;
  guint8 * code.1477;
  guint8 * code.1478;
  guint8 * code.1479;
  guint8 * code.1480;
  guint8 * code.1481;
  guint8 * code.1482;
  guint8 * code.1483;
  guint8 * code.1484;
  unsigned char D.27204;
  guint8 * code.1485;
  guint8 * code.1486;
  guint8 * code.1487;
  guint8 * code.1488;
  guint8 * code.1489;
  guint8 * code.1490;
  unsigned char D.27211;
  guint8 * code.1491;
  guint8 * code.1492;
  unsigned char D.27214;
  guint8 * code.1493;
  guint8 * code.1494;
  unsigned char D.27217;
  guint8 * code.1495;
  guint8 * code.1496;
  unsigned char D.27220;
  guint8 * code.1497;
  guint8 * code.1498;
  guint8 * code.1499;
  guint8 * code.1500;
  guint8 * code.1501;
  guint8 * code.1502;
  guint8 * code.1503;
  guint8 * code.1504;
  unsigned char D.27235;
  guint8 * code.1505;
  guint8 * code.1506;
  unsigned char D.27238;
  guint8 * code.1507;
  guint8 * code.1508;
  unsigned char D.27241;
  guint8 * code.1509;
  guint8 * code.1510;
  unsigned char D.27244;
  guint8 * code.1511;
  guint8 * code.1512;
  guint8 * code.1513;
  guint8 * code.1514;
  unsigned char D.27253;
  guint8 * code.1515;
  guint8 * code.1516;
  guint8 * code.1517;
  guint8 * code.1518;
  guint8 * code.1519;
  guint8 * code.1520;
  guint8 * code.1521;
  guint8 * code.1522;
  guint8 * code.1523;
  guint8 * code.1524;
  guint8 * code.1525;
  guint8 * code.1526;
  guint8 * code.1527;
  guint8 * code.1528;
  guint8 * code.1529;
  guint8 * code.1530;
  guint8 * code.1531;
  guint8 * code.1532;
  unsigned char D.27280;
  guint8 * code.1533;
  guint8 * code.1534;
  unsigned char D.27283;
  guint8 * code.1535;
  guint8 * code.1536;
  unsigned char D.27286;
  guint8 * code.1537;
  guint8 * code.1538;
  unsigned char D.27289;
  guint8 * code.1539;
  guint8 * code.1540;
  guint8 * code.1541;
  guint8 * code.1542;
  guint8 * code.1543;
  guint8 * code.1544;
  guint8 * code.1545;
  guint8 * code.1546;
  unsigned char D.27303;
  guint8 * code.1547;
  guint8 * code.1548;
  unsigned char D.27306;
  guint8 * code.1549;
  guint8 * code.1550;
  unsigned char D.27309;
  guint8 * code.1551;
  guint8 * code.1552;
  unsigned char D.27312;
  unsigned int D.27313;
  guint8 * code.1553;
  guint8 * code.1554;
  guint8 * code.1555;
  guint8 * code.1556;
  unsigned char D.27324;
  guint8 * code.1557;
  guint8 * code.1558;
  guint8 * code.1559;
  guint8 * code.1560;
  guint8 * code.1561;
  guint8 * code.1562;
  guint8 * code.1563;
  guint8 * code.1564;
  unsigned char D.27335;
  guint8 * code.1565;
  guint8 * code.1566;
  unsigned char D.27338;
  guint8 * code.1567;
  guint8 * code.1568;
  unsigned char D.27341;
  guint8 * code.1569;
  guint8 * code.1570;
  unsigned char D.27344;
  guint8 * code.1571;
  guint8 * code.1572;
  guint8 * code.1573;
  guint8 * code.1574;
  guint8 * code.1575;
  guint8 * code.1576;
  guint8 * code.1577;
  guint8 * code.1578;
  guint8 * code.1579;
  guint8 * code.1580;
  guint8 * code.1581;
  guint8 * code.1582;
  guint8 * code.1583;
  guint8 * code.1584;
  unsigned char D.27368;
  guint8 * code.1585;
  guint8 * code.1586;
  unsigned char D.27371;
  guint8 * code.1587;
  guint8 * code.1588;
  unsigned char D.27374;
  guint8 * code.1589;
  guint8 * code.1590;
  unsigned char D.27377;
  guint8 * code.1591;
  guint8 * code.1592;
  guint8 * code.1593;
  guint8 * code.1594;
  guint8 * code.1595;
  guint8 * code.1596;
  guint8 * code.1597;
  guint8 * code.1598;
  unsigned char D.27391;
  guint8 * code.1599;
  guint8 * code.1600;
  unsigned char D.27394;
  guint8 * code.1601;
  guint8 * code.1602;
  unsigned char D.27397;
  guint8 * code.1603;
  guint8 * code.1604;
  unsigned char D.27400;
  unsigned char iftmp.1605;
  guint8 * code.1606;
  guint8 * code.1607;
  unsigned char D.27410;
  guint8 * code.1608;
  guint8 * code.1609;
  guint8 * code.1610;
  guint8 * code.1611;
  unsigned char D.27417;
  guint8 * code.1612;
  guint8 * code.1613;
  unsigned char D.27420;
  guint8 * code.1614;
  guint8 * code.1615;
  unsigned char D.27423;
  guint8 * code.1616;
  guint8 * code.1617;
  unsigned char D.27426;
  guint8 * code.1618;
  guint8 * code.1619;
  unsigned char D.27429;
  guint8 * code.1620;
  guint8 * code.1621;
  unsigned char D.27432;
  guint8 * code.1622;
  guint8 * code.1623;
  unsigned char D.27435;
  guint8 * code.1624;
  guint8 * code.1625;
  unsigned char D.27438;
  guint8 * code.1626;
  guint8 * code.1627;
  unsigned char D.27442;
  guint8 * code.1628;
  guint8 * code.1629;
  unsigned char D.27445;
  guint8 * code.1630;
  guint8 * code.1631;
  unsigned char D.27448;
  guint8 * code.1632;
  guint8 * code.1633;
  unsigned char D.27451;
  guint8 * code.1634;
  guint8 * code.1635;
  guint8 * code.1636;
  guint8 * code.1637;
  unsigned char D.27460;
  guint8 * code.1638;
  guint8 * code.1639;
  guint8 * code.1640;
  guint8 * code.1641;
  long unsigned int D.27467;
  guint8 * code.1642;
  guint8 * code.1643;
  guint8 * code.1644;
  guint8 * code.1645;
  unsigned int lmf_offset.1646;
  unsigned int D.27478;
  int D.27479;
  guint8 * code.1647;
  guint8 * code.1648;
  guint8 * code.1649;
  guint8 * code.1650;
  unsigned char D.27486;
  unsigned char D.27487;
  guint8 * code.1651;
  guint8 * code.1652;
  guint8 * code.1653;
  guint8 * code.1654;
  guint8 * code.1655;
  guint8 * code.1656;
  unsigned char D.27494;
  guint8 * code.1657;
  guint8 * code.1658;
  unsigned char D.27497;
  guint8 * code.1659;
  guint8 * code.1660;
  unsigned char D.27500;
  guint8 * code.1661;
  guint8 * code.1662;
  unsigned char D.27503;
  guint8 * code.1663;
  guint8 * code.1664;
  guint8 * code.1665;
  guint8 * code.1666;
  guint8 * code.1667;
  guint8 * code.1668;
  guint8 * code.1669;
  guint8 * code.1670;
  unsigned char D.27518;
  guint8 * code.1671;
  guint8 * code.1672;
  unsigned char D.27521;
  guint8 * code.1673;
  guint8 * code.1674;
  unsigned char D.27524;
  guint8 * code.1675;
  guint8 * code.1676;
  unsigned char D.27527;
  guint8 * code.1677;
  guint8 * code.1678;
  guint8 * code.1679;
  guint8 * code.1680;
  unsigned char D.27536;
  guint8 * code.1681;
  guint8 * code.1682;
  guint8 * code.1683;
  guint8 * code.1684;
  guint8 * code.1685;
  guint8 * code.1686;
  guint8 * code.1687;
  guint8 * code.1688;
  unsigned char D.27547;
  guint8 * code.1689;
  guint8 * code.1690;
  unsigned char D.27550;
  guint8 * code.1691;
  guint8 * code.1692;
  unsigned char D.27553;
  guint8 * code.1693;
  guint8 * code.1694;
  unsigned char D.27556;
  guint8 * code.1695;
  guint8 * code.1696;
  guint8 * code.1697;
  guint8 * code.1698;
  guint8 * code.1699;
  guint8 * code.1700;
  guint8 * code.1701;
  guint8 * code.1702;
  guint8 * code.1703;
  guint8 * code.1704;
  guint8 * code.1705;
  guint8 * code.1706;
  guint8 * code.1707;
  guint8 * code.1708;
  unsigned char D.27580;
  guint8 * code.1709;
  guint8 * code.1710;
  unsigned char D.27583;
  guint8 * code.1711;
  guint8 * code.1712;
  unsigned char D.27586;
  guint8 * code.1713;
  guint8 * code.1714;
  unsigned char D.27589;
  guint8 * code.1715;
  guint8 * code.1716;
  guint8 * code.1717;
  guint8 * code.1718;
  guint8 * code.1719;
  guint8 * code.1720;
  guint8 * code.1721;
  guint8 * code.1722;
  unsigned char D.27603;
  guint8 * code.1723;
  guint8 * code.1724;
  unsigned char D.27606;
  guint8 * code.1725;
  guint8 * code.1726;
  unsigned char D.27609;
  guint8 * code.1727;
  guint8 * code.1728;
  unsigned char D.27612;
  guint8 * code.1729;
  guint8 * code.1730;
  guint8 * code.1731;
  guint8 * code.1732;
  unsigned char D.27621;
  guint8 * code.1733;
  guint8 * code.1734;
  guint8 * code.1735;
  guint8 * code.1736;
  guint8 * code.1737;
  guint8 * code.1738;
  guint8 * code.1739;
  guint8 * code.1740;
  unsigned int D.27637;
  int D.27638;
  guint8 * code.1741;
  guint8 * code.1742;
  guint8 * code.1743;
  guint8 * code.1744;
  unsigned char D.27645;
  guint8 * code.1745;
  guint8 * code.1746;
  guint8 * code.1747;
  guint8 * code.1748;
  guint8 * code.1749;
  guint8 * code.1750;
  unsigned char D.27652;
  guint8 * code.1751;
  guint8 * code.1752;
  unsigned char D.27655;
  guint8 * code.1753;
  guint8 * code.1754;
  unsigned char D.27658;
  guint8 * code.1755;
  guint8 * code.1756;
  unsigned char D.27661;
  guint8 * code.1757;
  guint8 * code.1758;
  guint8 * code.1759;
  guint8 * code.1760;
  guint8 * code.1761;
  guint8 * code.1762;
  guint8 * code.1763;
  guint8 * code.1764;
  unsigned char D.27676;
  guint8 * code.1765;
  guint8 * code.1766;
  unsigned char D.27679;
  guint8 * code.1767;
  guint8 * code.1768;
  unsigned char D.27682;
  guint8 * code.1769;
  guint8 * code.1770;
  unsigned char D.27685;
  guint8 * code.1771;
  guint8 * code.1772;
  guint8 * code.1773;
  guint8 * code.1774;
  unsigned char D.27694;
  guint8 * code.1775;
  guint8 * code.1776;
  guint8 * code.1777;
  guint8 * code.1778;
  guint8 * code.1779;
  guint8 * code.1780;
  unsigned int D.27701;
  guint8 * code.1781;
  guint8 * code.1782;
  unsigned char D.27708;
  guint8 * code.1783;
  guint8 * code.1784;
  guint8 * code.1785;
  guint8 * code.1786;
  unsigned char D.27713;
  unsigned char D.27714;
  guint8 * code.1787;
  guint8 * code.1788;
  unsigned char D.27722;
  guint8 * code.1789;
  guint8 * code.1790;
  int D.27725;
  guint8 * code.1791;
  guint8 * code.1792;
  unsigned char D.27728;
  guint8 * code.1793;
  guint8 * code.1794;
  unsigned char D.27731;
  guint8 * code.1795;
  guint8 * code.1796;
  unsigned char D.27734;
  guint8 * code.1797;
  guint8 * code.1798;
  unsigned char D.27737;
  guint8 * code.1799;
  guint8 * code.1800;
  unsigned char D.27743;
  guint8 * code.1801;
  guint8 * code.1802;
  guint8 * code.1803;
  guint8 * code.1804;
  guint8 * code.1805;
  guint8 * code.1806;
  unsigned char D.27750;
  guint8 * code.1807;
  guint8 * code.1808;
  unsigned char D.27753;
  guint8 * code.1809;
  guint8 * code.1810;
  unsigned char D.27756;
  guint8 * code.1811;
  guint8 * code.1812;
  unsigned char D.27759;
  guint8 * code.1813;
  guint8 * code.1814;
  guint8 * code.1815;
  guint8 * code.1816;
  unsigned char D.27768;
  guint8 * code.1817;
  guint8 * code.1818;
  guint8 * code.1819;
  guint8 * code.1820;
  guint8 * code.1821;
  guint8 * code.1822;
  guint8 * code.1823;
  guint8 * code.1824;
  unsigned int D.27784;
  int D.27785;
  guint8 * code.1825;
  guint8 * code.1826;
  guint8 * code.1827;
  guint8 * code.1828;
  unsigned char D.27792;
  guint8 * code.1829;
  guint8 * code.1830;
  guint8 * code.1831;
  guint8 * code.1832;
  guint8 * code.1833;
  guint8 * code.1834;
  unsigned char D.27799;
  guint8 * code.1835;
  guint8 * code.1836;
  unsigned char D.27802;
  guint8 * code.1837;
  guint8 * code.1838;
  unsigned char D.27805;
  guint8 * code.1839;
  guint8 * code.1840;
  unsigned char D.27808;
  guint8 * code.1841;
  guint8 * code.1842;
  guint8 * code.1843;
  guint8 * code.1844;
  guint8 * code.1845;
  guint8 * code.1846;
  guint8 * code.1847;
  guint8 * code.1848;
  unsigned char D.27823;
  guint8 * code.1849;
  guint8 * code.1850;
  unsigned char D.27826;
  guint8 * code.1851;
  guint8 * code.1852;
  unsigned char D.27829;
  guint8 * code.1853;
  guint8 * code.1854;
  unsigned char D.27832;
  guint8 * code.1855;
  guint8 * code.1856;
  unsigned char D.27837;
  guint8 * code.1857;
  guint8 * code.1858;
  guint8 * code.1859;
  guint8 * code.1860;
  guint8 * code.1861;
  guint8 * code.1862;
  unsigned char D.27846;
  guint8 * code.1863;
  guint8 * code.1864;
  unsigned char D.27849;
  guint8 * code.1865;
  guint8 * code.1866;
  unsigned char D.27852;
  guint8 * code.1867;
  guint8 * code.1868;
  unsigned char D.27855;
  guint8 * code.1869;
  guint8 * code.1870;
  guint8 * code.1871;
  guint8 * code.1872;
  unsigned int D.27866;
  guint8 * code.1873;
  guint8 * code.1874;
  guint8 * code.1875;
  guint8 * code.1876;
  unsigned char D.27873;
  guint8 * code.1877;
  guint8 * code.1878;
  guint8 * code.1879;
  guint8 * code.1880;
  guint8 * code.1881;
  guint8 * code.1882;
  unsigned char D.27881;
  guint8 * code.1883;
  guint8 * code.1884;
  unsigned char D.27884;
  guint8 * code.1885;
  guint8 * code.1886;
  unsigned char D.27887;
  guint8 * code.1887;
  guint8 * code.1888;
  unsigned char D.27890;
  guint8 * code.1889;
  guint8 * code.1890;
  guint8 * code.1891;
  guint8 * code.1892;
  guint8 * code.1893;
  guint8 * code.1894;
  guint8 * code.1895;
  guint8 * code.1896;
  unsigned char D.27904;
  guint8 * code.1897;
  guint8 * code.1898;
  unsigned char D.27907;
  guint8 * code.1899;
  guint8 * code.1900;
  unsigned char D.27910;
  guint8 * code.1901;
  guint8 * code.1902;
  unsigned char D.27913;
  guint8 * code.1903;
  guint8 * code.1904;
  guint8 * code.1905;
  guint8 * code.1906;
  unsigned char D.27922;
  guint8 * code.1907;
  guint8 * code.1908;
  guint8 * code.1909;
  guint8 * code.1910;
  guint8 * code.1911;
  guint8 * code.1912;
  guint8 * code.1913;
  guint8 * code.1914;
  unsigned int D.27938;
  int D.27939;
  guint8 * code.1915;
  guint8 * code.1916;
  guint8 * code.1917;
  guint8 * code.1918;
  unsigned char D.27946;
  guint8 * code.1919;
  guint8 * code.1920;
  guint8 * code.1921;
  guint8 * code.1922;
  guint8 * code.1923;
  guint8 * code.1924;
  unsigned char D.27953;
  guint8 * code.1925;
  guint8 * code.1926;
  unsigned char D.27956;
  guint8 * code.1927;
  guint8 * code.1928;
  unsigned char D.27959;
  guint8 * code.1929;
  guint8 * code.1930;
  unsigned char D.27962;
  guint8 * code.1931;
  guint8 * code.1932;
  guint8 * code.1933;
  guint8 * code.1934;
  guint8 * code.1935;
  guint8 * code.1936;
  guint8 * code.1937;
  guint8 * code.1938;
  unsigned char D.27977;
  guint8 * code.1939;
  guint8 * code.1940;
  unsigned char D.27980;
  guint8 * code.1941;
  guint8 * code.1942;
  unsigned char D.27983;
  guint8 * code.1943;
  guint8 * code.1944;
  unsigned char D.27986;
  guint8 * code.1945;
  long int mono_get_lmf_addr.1946;
  int D.27992;
  long unsigned int D.27993;
  long unsigned int mono_get_lmf_addr.1947;
  _Bool D.27995;
  unsigned char iftmp.1948;
  guint8 * code.1949;
  guint8 * code.1950;
  unsigned char D.28004;
  guint8 * code.1951;
  guint8 * code.1952;
  guint8 * code.1953;
  guint8 * code.1954;
  unsigned char D.28011;
  guint8 * code.1955;
  guint8 * code.1956;
  unsigned char D.28014;
  guint8 * code.1957;
  guint8 * code.1958;
  unsigned char D.28017;
  guint8 * code.1959;
  guint8 * code.1960;
  unsigned char D.28020;
  guint8 * code.1961;
  guint8 * code.1962;
  unsigned char D.28023;
  guint8 * code.1963;
  guint8 * code.1964;
  unsigned char D.28026;
  guint8 * code.1965;
  guint8 * code.1966;
  unsigned char D.28029;
  guint8 * code.1967;
  guint8 * code.1968;
  unsigned char D.28032;
  guint8 * code.1969;
  guint8 * code.1970;
  unsigned char D.28036;
  guint8 * code.1971;
  guint8 * code.1972;
  unsigned char D.28039;
  guint8 * code.1973;
  guint8 * code.1974;
  unsigned char D.28042;
  guint8 * code.1975;
  guint8 * code.1976;
  unsigned char D.28045;
  guint8 * code.1977;
  guint8 * code.1978;
  unsigned char D.28050;
  guint8 * code.1979;
  guint8 * code.1980;
  guint8 * code.1981;
  guint8 * code.1982;
  guint8 * code.1983;
  guint8 * code.1984;
  guint8 * code.1985;
  guint8 * code.1986;
  unsigned char D.28063;
  guint8 * code.1987;
  guint8 * code.1988;
  guint8 * code.1989;
  guint8 * code.1990;
  guint8 * code.1991;
  guint8 * code.1992;
  guint8 * code.1993;
  guint8 * code.1994;
  unsigned int D.28079;
  int D.28080;
  guint8 * code.1995;
  guint8 * code.1996;
  guint8 * code.1997;
  guint8 * code.1998;
  unsigned char D.28087;
  guint8 * code.1999;
  guint8 * code.2000;
  guint8 * code.2001;
  guint8 * code.2002;
  guint8 * code.2003;
  guint8 * code.2004;
  unsigned char D.28094;
  guint8 * code.2005;
  guint8 * code.2006;
  unsigned char D.28097;
  guint8 * code.2007;
  guint8 * code.2008;
  unsigned char D.28100;
  guint8 * code.2009;
  guint8 * code.2010;
  unsigned char D.28103;
  guint8 * code.2011;
  guint8 * code.2012;
  guint8 * code.2013;
  guint8 * code.2014;
  guint8 * code.2015;
  guint8 * code.2016;
  guint8 * code.2017;
  guint8 * code.2018;
  unsigned char D.28118;
  guint8 * code.2019;
  guint8 * code.2020;
  unsigned char D.28121;
  guint8 * code.2021;
  guint8 * code.2022;
  unsigned char D.28124;
  guint8 * code.2023;
  guint8 * code.2024;
  unsigned char D.28127;
  guint8 * code.2025;
  guint8 * code.2026;
  guint8 * code.2027;
  guint8 * code.2028;
  unsigned char D.28136;
  guint8 * code.2029;
  guint8 * code.2030;
  guint8 * code.2031;
  guint8 * code.2032;
  guint8 * code.2033;
  guint8 * code.2034;
  guint8 * code.2035;
  guint8 * code.2036;
  unsigned char D.28147;
  guint8 * code.2037;
  guint8 * code.2038;
  unsigned char D.28150;
  guint8 * code.2039;
  guint8 * code.2040;
  unsigned char D.28153;
  guint8 * code.2041;
  guint8 * code.2042;
  unsigned char D.28156;
  guint8 * code.2043;
  guint8 * code.2044;
  guint8 * code.2045;
  guint8 * code.2046;
  guint8 * code.2047;
  guint8 * code.2048;
  guint8 * code.2049;
  guint8 * code.2050;
  guint8 * code.2051;
  guint8 * code.2052;
  guint8 * code.2053;
  guint8 * code.2054;
  guint8 * code.2055;
  guint8 * code.2056;
  unsigned char D.28180;
  guint8 * code.2057;
  guint8 * code.2058;
  unsigned char D.28183;
  guint8 * code.2059;
  guint8 * code.2060;
  unsigned char D.28186;
  guint8 * code.2061;
  guint8 * code.2062;
  unsigned char D.28189;
  guint8 * code.2063;
  guint8 * code.2064;
  guint8 * code.2065;
  guint8 * code.2066;
  guint8 * code.2067;
  guint8 * code.2068;
  guint8 * code.2069;
  guint8 * code.2070;
  unsigned char D.28203;
  guint8 * code.2071;
  guint8 * code.2072;
  unsigned char D.28206;
  guint8 * code.2073;
  guint8 * code.2074;
  unsigned char D.28209;
  guint8 * code.2075;
  guint8 * code.2076;
  unsigned char D.28212;
  guint8 * code.2077;
  guint8 * code.2078;
  unsigned char D.28219;
  guint8 * code.2079;
  guint8 * code.2080;
  guint8 * code.2081;
  guint8 * code.2082;
  guint8 * code.2083;
  guint8 * code.2084;
  unsigned char D.28231;
  guint8 * code.2085;
  guint8 * code.2086;
  guint8 * code.2087;
  guint8 * code.2088;
  unsigned char D.28236;
  guint8 * code.2089;
  guint8 * code.2090;
  unsigned char D.28239;
  guint8 * code.2091;
  guint8 * code.2092;
  unsigned char D.28242;
  guint8 * code.2093;
  guint8 * code.2094;
  unsigned char D.28245;
  guint8 * code.2095;
  guint8 * code.2096;
  unsigned char D.28251;
  guint8 * code.2097;
  guint8 * code.2098;
  guint8 * code.2099;
  guint8 * code.2100;
  guint8 * code.2101;
  guint8 * code.2102;
  unsigned char D.28258;
  guint8 * code.2103;
  guint8 * code.2104;
  unsigned char D.28261;
  guint8 * code.2105;
  guint8 * code.2106;
  unsigned char D.28264;
  guint8 * code.2107;
  guint8 * code.2108;
  unsigned char D.28267;
  guint8 * code.2109;
  guint8 * code.2110;
  guint8 * code.2111;
  guint8 * code.2112;
  unsigned char D.28276;
  guint8 * code.2113;
  guint8 * code.2114;
  guint8 * code.2115;
  guint8 * code.2116;
  guint8 * code.2117;
  guint8 * code.2118;
  guint8 * code.2119;
  guint8 * code.2120;
  unsigned int D.28290;
  guint8 * code.2121;
  guint8 * code.2122;
  guint8 * code.2123;
  guint8 * code.2124;
  guint8 * code.2125;
  guint8 * code.2126;
  guint8 * code.2127;
  guint8 * code.2128;
  guint8 * code.2129;
  guint8 * code.2130;
  unsigned char D.28304;
  guint8 * code.2131;
  guint8 * code.2132;
  unsigned char D.28307;
  guint8 * code.2133;
  guint8 * code.2134;
  unsigned char D.28310;
  guint8 * code.2135;
  guint8 * code.2136;
  unsigned char D.28313;
  guint8 * code.2137;
  guint8 * code.2138;
  guint8 * code.2139;
  guint8 * code.2140;
  guint8 * code.2141;
  guint8 * code.2142;
  guint8 * code.2143;
  guint8 * code.2144;
  unsigned char D.28327;
  guint8 * code.2145;
  guint8 * code.2146;
  unsigned char D.28330;
  guint8 * code.2147;
  guint8 * code.2148;
  unsigned char D.28333;
  guint8 * code.2149;
  guint8 * code.2150;
  unsigned char D.28336;
  guint8 * code.2151;
  guint8 * code.2152;
  unsigned char D.28341;
  guint8 * code.2153;
  guint8 * code.2154;
  guint8 * code.2155;
  guint8 * code.2156;
  guint8 * code.2157;
  guint8 * code.2158;
  unsigned char D.28350;
  guint8 * code.2159;
  guint8 * code.2160;
  unsigned char D.28353;
  guint8 * code.2161;
  guint8 * code.2162;
  unsigned char D.28356;
  guint8 * code.2163;
  guint8 * code.2164;
  unsigned char D.28359;
  guint8 * code.2165;
  guint8 * code.2166;
  guint8 * code.2167;
  guint8 * code.2168;
  guint8 * code.2169;
  guint8 * code.2170;
  guint8 * code.2171;
  guint8 * code.2172;
  unsigned char D.28376;
  guint8 * code.2173;
  guint8 * code.2174;
  guint8 * code.2175;
  guint8 * code.2176;
  guint8 * code.2177;
  guint8 * code.2178;
  unsigned char D.28384;
  guint8 * code.2179;
  guint8 * code.2180;
  unsigned char D.28387;
  guint8 * code.2181;
  guint8 * code.2182;
  unsigned char D.28390;
  guint8 * code.2183;
  guint8 * code.2184;
  unsigned char D.28393;
  guint8 * code.2185;
  guint8 * code.2186;
  guint8 * code.2187;
  guint8 * code.2188;
  guint8 * code.2189;
  guint8 * code.2190;
  guint8 * code.2191;
  guint8 * code.2192;
  unsigned char D.28407;
  guint8 * code.2193;
  guint8 * code.2194;
  unsigned char D.28410;
  guint8 * code.2195;
  guint8 * code.2196;
  unsigned char D.28413;
  guint8 * code.2197;
  guint8 * code.2198;
  unsigned char D.28416;
  guint8 * code.2199;
  guint8 * code.2200;
  guint8 * code.2201;
  guint8 * code.2202;
  unsigned char D.28425;
  guint8 * code.2203;
  guint8 * code.2204;
  guint8 * code.2205;
  guint8 * code.2206;
  guint8 * code.2207;
  guint8 * code.2208;
  guint8 * code.2209;
  guint8 * code.2210;
  guint8 * code.2211;
  guint8 * code.2212;
  guint8 * code.2213;
  guint8 * code.2214;
  guint8 * code.2215;
  guint8 * code.2216;
  guint8 * code.2217;
  guint8 * code.2218;
  guint8 * code.2219;
  guint8 * code.2220;
  unsigned char D.28452;
  guint8 * code.2221;
  guint8 * code.2222;
  unsigned char D.28455;
  guint8 * code.2223;
  guint8 * code.2224;
  unsigned char D.28458;
  guint8 * code.2225;
  guint8 * code.2226;
  unsigned char D.28461;
  guint8 * code.2227;
  guint8 * code.2228;
  guint8 * code.2229;
  guint8 * code.2230;
  guint8 * code.2231;
  guint8 * code.2232;
  guint8 * code.2233;
  guint8 * code.2234;
  unsigned char D.28475;
  guint8 * code.2235;
  guint8 * code.2236;
  unsigned char D.28478;
  guint8 * code.2237;
  guint8 * code.2238;
  unsigned char D.28481;
  guint8 * code.2239;
  guint8 * code.2240;
  unsigned char D.28484;
  guint8 * code.2241;
  guint8 * code.2242;
  unsigned char D.28489;
  guint8 * code.2243;
  guint8 * code.2244;
  guint8 * code.2245;
  guint8 * code.2246;
  guint8 * code.2247;
  guint8 * code.2248;
  unsigned char D.28498;
  guint8 * code.2249;
  guint8 * code.2250;
  unsigned char D.28501;
  guint8 * code.2251;
  guint8 * code.2252;
  unsigned char D.28504;
  guint8 * code.2253;
  guint8 * code.2254;
  unsigned char D.28507;
  guint8 * code.2255;
  guint8 * code.2256;
  guint8 * code.2257;
  guint8 * code.2258;
  guint8 * code.2259;
  guint8 * code.2260;
  guint8 * code.2261;
  guint8 * code.2262;
  guint8 * code.2263;
  guint8 * code.2264;
  guint8 * code.2265;
  guint8 * code.2266;
  guint8 * code.2267;
  guint8 * code.2268;
  unsigned char D.28531;
  guint8 * code.2269;
  guint8 * code.2270;
  unsigned char D.28534;
  guint8 * code.2271;
  guint8 * code.2272;
  unsigned char D.28537;
  guint8 * code.2273;
  guint8 * code.2274;
  unsigned char D.28540;
  guint8 * code.2275;
  guint8 * code.2276;
  guint8 * code.2277;
  guint8 * code.2278;
  guint8 * code.2279;
  guint8 * code.2280;
  guint8 * code.2281;
  guint8 * code.2282;
  unsigned char D.28554;
  guint8 * code.2283;
  guint8 * code.2284;
  unsigned char D.28557;
  guint8 * code.2285;
  guint8 * code.2286;
  unsigned char D.28560;
  guint8 * code.2287;
  guint8 * code.2288;
  unsigned char D.28563;
  guint8 * code.2289;
  guint8 * code.2290;
  guint8 * code.2291;
  guint8 * code.2292;
  unsigned char D.28574;
  guint8 * code.2293;
  guint8 * code.2294;
  guint8 * code.2295;
  guint8 * code.2296;
  guint8 * code.2297;
  guint8 * code.2298;
  guint8 * code.2299;
  guint8 * code.2300;
  unsigned char D.28585;
  guint8 * code.2301;
  guint8 * code.2302;
  unsigned char D.28588;
  guint8 * code.2303;
  guint8 * code.2304;
  unsigned char D.28591;
  guint8 * code.2305;
  guint8 * code.2306;
  unsigned char D.28594;
  guint8 * code.2307;
  guint8 * code.2308;
  guint8 * code.2309;
  guint8 * code.2310;
  guint8 * code.2311;
  guint8 * code.2312;
  guint8 * code.2313;
  guint8 * code.2314;
  guint8 * code.2315;
  guint8 * code.2316;
  guint8 * code.2317;
  guint8 * code.2318;
  guint8 * code.2319;
  guint8 * code.2320;
  unsigned char D.28618;
  guint8 * code.2321;
  guint8 * code.2322;
  unsigned char D.28621;
  guint8 * code.2323;
  guint8 * code.2324;
  unsigned char D.28624;
  guint8 * code.2325;
  guint8 * code.2326;
  unsigned char D.28627;
  guint8 * code.2327;
  guint8 * code.2328;
  guint8 * code.2329;
  guint8 * code.2330;
  guint8 * code.2331;
  guint8 * code.2332;
  guint8 * code.2333;
  guint8 * code.2334;
  unsigned char D.28641;
  guint8 * code.2335;
  guint8 * code.2336;
  unsigned char D.28644;
  guint8 * code.2337;
  guint8 * code.2338;
  unsigned char D.28647;
  guint8 * code.2339;
  guint8 * code.2340;
  unsigned char D.28650;
  unsigned char iftmp.2341;
  guint8 * code.2342;
  guint8 * code.2343;
  unsigned char D.28660;
  guint8 * code.2344;
  guint8 * code.2345;
  guint8 * code.2346;
  guint8 * code.2347;
  unsigned char D.28667;
  guint8 * code.2348;
  guint8 * code.2349;
  unsigned char D.28670;
  guint8 * code.2350;
  guint8 * code.2351;
  unsigned char D.28673;
  guint8 * code.2352;
  guint8 * code.2353;
  unsigned char D.28676;
  guint8 * code.2354;
  guint8 * code.2355;
  unsigned char D.28679;
  guint8 * code.2356;
  guint8 * code.2357;
  unsigned char D.28682;
  guint8 * code.2358;
  guint8 * code.2359;
  unsigned char D.28685;
  guint8 * code.2360;
  guint8 * code.2361;
  unsigned char D.28688;
  guint8 * code.2362;
  guint8 * code.2363;
  unsigned char D.28692;
  guint8 * code.2364;
  guint8 * code.2365;
  unsigned char D.28695;
  guint8 * code.2366;
  guint8 * code.2367;
  unsigned char D.28698;
  guint8 * code.2368;
  guint8 * code.2369;
  unsigned char D.28701;
  guint8 * code.2370;
  guint8 * code.2371;
  guint8 * code.2372;
  guint8 * code.2373;
  unsigned char D.28710;
  guint8 * code.2374;
  guint8 * code.2375;
  guint8 * code.2376;
  guint8 * code.2377;
  guint8 * code.2378;
  guint8 * code.2379;
  guint8 * code.2380;
  guint8 * code.2381;
  unsigned char D.28721;
  guint8 * code.2382;
  guint8 * code.2383;
  unsigned char D.28724;
  guint8 * code.2384;
  guint8 * code.2385;
  unsigned char D.28727;
  guint8 * code.2386;
  guint8 * code.2387;
  unsigned char D.28730;
  guint8 * code.2388;
  guint8 * code.2389;
  guint8 * code.2390;
  guint8 * code.2391;
  guint8 * code.2392;
  guint8 * code.2393;
  guint8 * code.2394;
  guint8 * code.2395;
  guint8 * code.2396;
  guint8 * code.2397;
  guint8 * code.2398;
  guint8 * code.2399;
  guint8 * code.2400;
  guint8 * code.2401;
  unsigned char D.28754;
  guint8 * code.2402;
  guint8 * code.2403;
  unsigned char D.28757;
  guint8 * code.2404;
  guint8 * code.2405;
  unsigned char D.28760;
  guint8 * code.2406;
  guint8 * code.2407;
  unsigned char D.28763;
  guint8 * code.2408;
  guint8 * code.2409;
  guint8 * code.2410;
  guint8 * code.2411;
  guint8 * code.2412;
  guint8 * code.2413;
  guint8 * code.2414;
  guint8 * code.2415;
  unsigned char D.28777;
  guint8 * code.2416;
  guint8 * code.2417;
  unsigned char D.28780;
  guint8 * code.2418;
  guint8 * code.2419;
  unsigned char D.28783;
  guint8 * code.2420;
  guint8 * code.2421;
  unsigned char D.28786;
  guint8 * code.2422;
  guint8 * code.2423;
  guint8 * code.2424;
  guint8 * code.2425;
  unsigned char D.28795;
  guint8 * code.2426;
  guint8 * code.2427;
  guint8 * code.2428;
  guint8 * code.2429;
  guint8 * code.2430;
  guint8 * code.2431;
  guint8 * code.2432;
  guint8 * code.2433;
  unsigned char D.28806;
  guint8 * code.2434;
  guint8 * code.2435;
  unsigned char D.28809;
  guint8 * code.2436;
  guint8 * code.2437;
  unsigned char D.28812;
  guint8 * code.2438;
  guint8 * code.2439;
  unsigned char D.28815;
  guint8 * code.2440;
  guint8 * code.2441;
  guint8 * code.2442;
  guint8 * code.2443;
  guint8 * code.2444;
  guint8 * code.2445;
  guint8 * code.2446;
  guint8 * code.2447;
  guint8 * code.2448;
  guint8 * code.2449;
  guint8 * code.2450;
  guint8 * code.2451;
  guint8 * code.2452;
  guint8 * code.2453;
  unsigned char D.28839;
  guint8 * code.2454;
  guint8 * code.2455;
  unsigned char D.28842;
  guint8 * code.2456;
  guint8 * code.2457;
  unsigned char D.28845;
  guint8 * code.2458;
  guint8 * code.2459;
  unsigned char D.28848;
  guint8 * code.2460;
  guint8 * code.2461;
  guint8 * code.2462;
  guint8 * code.2463;
  guint8 * code.2464;
  guint8 * code.2465;
  guint8 * code.2466;
  guint8 * code.2467;
  unsigned char D.28862;
  guint8 * code.2468;
  guint8 * code.2469;
  unsigned char D.28865;
  guint8 * code.2470;
  guint8 * code.2471;
  unsigned char D.28868;
  guint8 * code.2472;
  guint8 * code.2473;
  unsigned char D.28871;
  guint8 * code.2474;
  long unsigned int tramp.2475;
  long int tramp.2476;
  int D.28878;
  long unsigned int D.28879;
  _Bool D.28880;
  unsigned char iftmp.2477;
  guint8 * code.2478;
  guint8 * code.2479;
  unsigned char D.28889;
  guint8 * code.2480;
  guint8 * code.2481;
  guint8 * code.2482;
  guint8 * code.2483;
  unsigned char D.28896;
  guint8 * code.2484;
  guint8 * code.2485;
  unsigned char D.28899;
  guint8 * code.2486;
  guint8 * code.2487;
  unsigned char D.28902;
  guint8 * code.2488;
  guint8 * code.2489;
  unsigned char D.28905;
  guint8 * code.2490;
  guint8 * code.2491;
  unsigned char D.28908;
  guint8 * code.2492;
  guint8 * code.2493;
  unsigned char D.28911;
  guint8 * code.2494;
  guint8 * code.2495;
  unsigned char D.28914;
  guint8 * code.2496;
  guint8 * code.2497;
  unsigned char D.28917;
  guint8 * code.2498;
  guint8 * code.2499;
  unsigned char D.28921;
  guint8 * code.2500;
  guint8 * code.2501;
  unsigned char D.28924;
  guint8 * code.2502;
  guint8 * code.2503;
  unsigned char D.28927;
  guint8 * code.2504;
  guint8 * code.2505;
  unsigned char D.28930;
  guint8 * code.2506;
  guint8 * code.2507;
  unsigned char D.28935;
  guint8 * code.2508;
  guint8 * code.2509;
  guint8 * code.2510;
  guint8 * code.2511;
  guint8 * code.2512;
  guint8 * code.2513;
  guint8 * code.2514;
  guint8 * code.2515;
  unsigned char D.28948;
  guint8 * code.2516;
  guint8 * code.2517;
  guint8 * code.2518;
  guint8 * code.2519;
  guint8 * code.2520;
  guint8 * code.2521;
  guint8 * code.2522;
  guint8 * code.2523;
  unsigned int res_offset.2524;
  unsigned int D.28963;
  guint8 * code.2525;
  guint8 * code.2526;
  guint8 * code.2527;
  guint8 * code.2528;
  unsigned char D.28970;
  guint8 * code.2529;
  guint8 * code.2530;
  guint8 * code.2531;
  guint8 * code.2532;
  guint8 * code.2533;
  guint8 * code.2534;
  unsigned char D.28978;
  guint8 * code.2535;
  guint8 * code.2536;
  unsigned char D.28981;
  guint8 * code.2537;
  guint8 * code.2538;
  unsigned char D.28984;
  guint8 * code.2539;
  guint8 * code.2540;
  unsigned char D.28987;
  guint8 * code.2541;
  guint8 * code.2542;
  guint8 * code.2543;
  guint8 * code.2544;
  guint8 * code.2545;
  guint8 * code.2546;
  guint8 * code.2547;
  guint8 * code.2548;
  unsigned char D.29001;
  guint8 * code.2549;
  guint8 * code.2550;
  unsigned char D.29004;
  guint8 * code.2551;
  guint8 * code.2552;
  unsigned char D.29007;
  guint8 * code.2553;
  guint8 * code.2554;
  unsigned char D.29010;
  guint8 * code.2555;
  long int mono_thread_force_interruption_checkpoint.2556;
  int D.29016;
  long unsigned int D.29017;
  long unsigned int mono_thread_force_interruption_checkpoint.2557;
  _Bool D.29019;
  unsigned char iftmp.2558;
  guint8 * code.2559;
  guint8 * code.2560;
  unsigned char D.29028;
  guint8 * code.2561;
  guint8 * code.2562;
  guint8 * code.2563;
  guint8 * code.2564;
  unsigned char D.29035;
  guint8 * code.2565;
  guint8 * code.2566;
  unsigned char D.29038;
  guint8 * code.2567;
  guint8 * code.2568;
  unsigned char D.29041;
  guint8 * code.2569;
  guint8 * code.2570;
  unsigned char D.29044;
  guint8 * code.2571;
  guint8 * code.2572;
  unsigned char D.29047;
  guint8 * code.2573;
  guint8 * code.2574;
  unsigned char D.29050;
  guint8 * code.2575;
  guint8 * code.2576;
  unsigned char D.29053;
  guint8 * code.2577;
  guint8 * code.2578;
  unsigned char D.29056;
  guint8 * code.2579;
  guint8 * code.2580;
  unsigned char D.29060;
  guint8 * code.2581;
  guint8 * code.2582;
  unsigned char D.29063;
  guint8 * code.2583;
  guint8 * code.2584;
  unsigned char D.29066;
  guint8 * code.2585;
  guint8 * code.2586;
  unsigned char D.29069;
  guint8 * code.2587;
  guint8 * code.2588;
  unsigned char D.29074;
  guint8 * code.2589;
  guint8 * code.2590;
  guint8 * code.2591;
  guint8 * code.2592;
  guint8 * code.2593;
  guint8 * code.2594;
  guint8 * code.2595;
  guint8 * code.2596;
  unsigned char D.29087;
  guint8 * code.2597;
  guint8 * code.2598;
  guint8 * code.2599;
  guint8 * code.2600;
  guint8 * code.2601;
  guint8 * code.2602;
  guint8 * code.2603;
  guint8 * code.2604;
  unsigned char D.29098;
  guint8 * code.2605;
  guint8 * code.2606;
  unsigned char D.29101;
  guint8 * code.2607;
  guint8 * code.2608;
  unsigned char D.29104;
  guint8 * code.2609;
  guint8 * code.2610;
  unsigned char D.29107;
  guint8 * code.2611;
  guint8 * code.2612;
  guint8 * code.2613;
  guint8 * code.2614;
  guint8 * code.2615;
  guint8 * code.2616;
  guint8 * code.2617;
  guint8 * code.2618;
  guint8 * code.2619;
  guint8 * code.2620;
  guint8 * code.2621;
  guint8 * code.2622;
  guint8 * code.2623;
  guint8 * code.2624;
  unsigned char D.29131;
  guint8 * code.2625;
  guint8 * code.2626;
  unsigned char D.29134;
  guint8 * code.2627;
  guint8 * code.2628;
  unsigned char D.29137;
  guint8 * code.2629;
  guint8 * code.2630;
  unsigned char D.29140;
  guint8 * code.2631;
  guint8 * code.2632;
  guint8 * code.2633;
  guint8 * code.2634;
  guint8 * code.2635;
  guint8 * code.2636;
  guint8 * code.2637;
  guint8 * code.2638;
  unsigned char D.29154;
  guint8 * code.2639;
  guint8 * code.2640;
  unsigned char D.29157;
  guint8 * code.2641;
  guint8 * code.2642;
  unsigned char D.29160;
  guint8 * code.2643;
  guint8 * code.2644;
  unsigned char D.29163;
  guint8 * code.2645;
  guint8 * code.2646;
  guint8 * code.2647;
  guint8 * code.2648;
  unsigned char D.29172;
  guint8 * code.2649;
  guint8 * code.2650;
  guint8 * code.2651;
  guint8 * code.2652;
  guint8 * code.2653;
  guint8 * code.2654;
  guint8 * code.2655;
  guint8 * code.2656;
  unsigned char D.29183;
  guint8 * code.2657;
  guint8 * code.2658;
  unsigned char D.29186;
  guint8 * code.2659;
  guint8 * code.2660;
  unsigned char D.29189;
  guint8 * code.2661;
  guint8 * code.2662;
  unsigned char D.29192;
  guint8 * code.2663;
  guint8 * code.2664;
  guint8 * code.2665;
  guint8 * code.2666;
  guint8 * code.2667;
  guint8 * code.2668;
  guint8 * code.2669;
  guint8 * code.2670;
  guint8 * code.2671;
  guint8 * code.2672;
  guint8 * code.2673;
  guint8 * code.2674;
  guint8 * code.2675;
  guint8 * code.2676;
  unsigned char D.29216;
  guint8 * code.2677;
  guint8 * code.2678;
  unsigned char D.29219;
  guint8 * code.2679;
  guint8 * code.2680;
  unsigned char D.29222;
  guint8 * code.2681;
  guint8 * code.2682;
  unsigned char D.29225;
  guint8 * code.2683;
  guint8 * code.2684;
  guint8 * code.2685;
  guint8 * code.2686;
  guint8 * code.2687;
  guint8 * code.2688;
  guint8 * code.2689;
  guint8 * code.2690;
  unsigned char D.29239;
  guint8 * code.2691;
  guint8 * code.2692;
  unsigned char D.29242;
  guint8 * code.2693;
  guint8 * code.2694;
  unsigned char D.29245;
  guint8 * code.2695;
  guint8 * code.2696;
  unsigned char D.29248;
  guint8 * code.2697;
  guint8 * code.2698;
  unsigned char D.29255;
  guint8 * code.2699;
  guint8 * code.2700;
  guint8 * code.2701;
  guint8 * code.2702;
  guint8 * code.2703;
  guint8 * code.2704;
  unsigned char D.29267;
  guint8 * code.2705;
  guint8 * code.2706;
  guint8 * code.2707;
  guint8 * code.2708;
  unsigned char D.29272;
  guint8 * code.2709;
  guint8 * code.2710;
  unsigned char D.29275;
  guint8 * code.2711;
  guint8 * code.2712;
  unsigned char D.29278;
  guint8 * code.2713;
  guint8 * code.2714;
  unsigned char D.29281;
  guint8 * code.2715;
  guint8 * code.2716;
  unsigned char D.29287;
  guint8 * code.2717;
  guint8 * code.2718;
  guint8 * code.2719;
  guint8 * code.2720;
  guint8 * code.2721;
  guint8 * code.2722;
  unsigned char D.29294;
  guint8 * code.2723;
  guint8 * code.2724;
  unsigned char D.29297;
  guint8 * code.2725;
  guint8 * code.2726;
  unsigned char D.29300;
  guint8 * code.2727;
  guint8 * code.2728;
  unsigned char D.29303;
  guint8 * code.2729;
  guint8 * code.2730;
  guint8 * code.2731;
  guint8 * code.2732;
  unsigned char D.29312;
  guint8 * code.2733;
  guint8 * code.2734;
  guint8 * code.2735;
  guint8 * code.2736;
  guint8 * code.2737;
  guint8 * code.2738;
  guint8 * code.2739;
  guint8 * code.2740;
  unsigned char D.29323;
  guint8 * code.2741;
  guint8 * code.2742;
  unsigned char D.29326;
  guint8 * code.2743;
  guint8 * code.2744;
  unsigned char D.29329;
  guint8 * code.2745;
  guint8 * code.2746;
  unsigned char D.29332;
  guint8 * code.2747;
  guint8 * code.2748;
  guint8 * code.2749;
  guint8 * code.2750;
  guint8 * code.2751;
  guint8 * code.2752;
  guint8 * code.2753;
  guint8 * code.2754;
  guint8 * code.2755;
  guint8 * code.2756;
  guint8 * code.2757;
  guint8 * code.2758;
  guint8 * code.2759;
  guint8 * code.2760;
  unsigned char D.29357;
  guint8 * code.2761;
  guint8 * code.2762;
  unsigned char D.29360;
  guint8 * code.2763;
  guint8 * code.2764;
  unsigned char D.29363;
  guint8 * code.2765;
  guint8 * code.2766;
  unsigned char D.29366;
  guint8 * code.2767;
  guint8 * code.2768;
  guint8 * code.2769;
  guint8 * code.2770;
  guint8 * code.2771;
  guint8 * code.2772;
  guint8 * code.2773;
  guint8 * code.2774;
  unsigned char D.29381;
  guint8 * code.2775;
  guint8 * code.2776;
  unsigned char D.29384;
  guint8 * code.2777;
  guint8 * code.2778;
  unsigned char D.29387;
  guint8 * code.2779;
  guint8 * code.2780;
  unsigned char D.29390;
  guint8 * code.2781;
  guint8 * code.2782;
  guint8 * code.2783;
  guint8 * code.2784;
  unsigned char D.29399;
  guint8 * code.2785;
  guint8 * code.2786;
  guint8 * code.2787;
  guint8 * code.2788;
  guint8 * code.2789;
  guint8 * code.2790;
  guint8 * code.2791;
  guint8 * code.2792;
  guint8 * code.2793;
  guint8 * code.2794;
  guint8 * code.2795;
  guint8 * code.2796;
  guint8 * code.2797;
  guint8 * code.2798;
  guint8 * code.2799;
  guint8 * code.2800;
  guint8 * code.2801;
  guint8 * code.2802;
  unsigned char D.29426;
  guint8 * code.2803;
  guint8 * code.2804;
  unsigned char D.29429;
  guint8 * code.2805;
  guint8 * code.2806;
  unsigned char D.29432;
  guint8 * code.2807;
  guint8 * code.2808;
  unsigned char D.29435;
  guint8 * code.2809;
  guint8 * code.2810;
  guint8 * code.2811;
  guint8 * code.2812;
  guint8 * code.2813;
  guint8 * code.2814;
  guint8 * code.2815;
  guint8 * code.2816;
  unsigned char D.29449;
  guint8 * code.2817;
  guint8 * code.2818;
  unsigned char D.29452;
  guint8 * code.2819;
  guint8 * code.2820;
  unsigned char D.29455;
  guint8 * code.2821;
  guint8 * code.2822;
  unsigned char D.29458;
  guint8 * code.2823;
  guint8 * code.2824;
  guint8 * code.2825;
  guint8 * code.2826;
  unsigned char D.29467;
  guint8 * code.2827;
  guint8 * code.2828;
  guint8 * code.2829;
  guint8 * code.2830;
  guint8 * code.2831;
  guint8 * code.2832;
  guint8 * code.2833;
  guint8 * code.2834;
  unsigned int rax_offset.2835;
  unsigned int D.29482;
  guint8 * code.2836;
  guint8 * code.2837;
  guint8 * code.2838;
  guint8 * code.2839;
  unsigned char D.29489;
  guint8 * code.2840;
  guint8 * code.2841;
  guint8 * code.2842;
  guint8 * code.2843;
  guint8 * code.2844;
  guint8 * code.2845;
  unsigned char D.29497;
  guint8 * code.2846;
  guint8 * code.2847;
  unsigned char D.29500;
  guint8 * code.2848;
  guint8 * code.2849;
  unsigned char D.29503;
  guint8 * code.2850;
  guint8 * code.2851;
  unsigned char D.29506;
  guint8 * code.2852;
  guint8 * code.2853;
  guint8 * code.2854;
  guint8 * code.2855;
  guint8 * code.2856;
  guint8 * code.2857;
  guint8 * code.2858;
  guint8 * code.2859;
  unsigned char D.29520;
  guint8 * code.2860;
  guint8 * code.2861;
  unsigned char D.29523;
  guint8 * code.2862;
  guint8 * code.2863;
  unsigned char D.29526;
  guint8 * code.2864;
  guint8 * code.2865;
  unsigned char D.29529;
  int D.29532;
  int D.29533;
  _Bool D.29535;
  _Bool D.29536;
  _Bool D.29537;
  guint8 * code.2866;
  guint8 * code.2867;
  unsigned char iftmp.2868;
  guint8 * code.2869;
  guint8 * code.2870;
  unsigned char D.29550;
  guint8 * code.2871;
  guint8 * code.2872;
  guint8 * code.2873;
  guint8 * code.2874;
  guint8 * code.2875;
  guint8 * code.2876;
  guint8 * code.2877;
  guint8 * code.2878;
  unsigned char D.29561;
  guint8 * code.2879;
  guint8 * code.2880;
  unsigned char D.29564;
  guint8 * code.2881;
  guint8 * code.2882;
  unsigned char D.29567;
  guint8 * code.2883;
  guint8 * code.2884;
  unsigned char D.29570;
  guint8 * code.2885;
  guint8 * code.2886;
  guint8 * code.2887;
  guint8 * code.2888;
  guint8 * code.2889;
  guint8 * code.2890;
  guint8 * code.2891;
  guint8 * code.2892;
  guint8 * code.2893;
  guint8 * code.2894;
  guint8 * code.2895;
  guint8 * code.2896;
  guint8 * code.2897;
  guint8 * code.2898;
  unsigned char D.29595;
  guint8 * code.2899;
  guint8 * code.2900;
  unsigned char D.29598;
  guint8 * code.2901;
  guint8 * code.2902;
  unsigned char D.29601;
  guint8 * code.2903;
  guint8 * code.2904;
  unsigned char D.29604;
  guint8 * code.2905;
  guint8 * code.2906;
  guint8 * code.2907;
  guint8 * code.2908;
  guint8 * code.2909;
  guint8 * code.2910;
  guint8 * code.2911;
  guint8 * code.2912;
  unsigned char D.29619;
  guint8 * code.2913;
  guint8 * code.2914;
  unsigned char D.29622;
  guint8 * code.2915;
  guint8 * code.2916;
  unsigned char D.29625;
  guint8 * code.2917;
  guint8 * code.2918;
  unsigned char D.29628;
  guint8 * code.2919;
  guint8 * code.2920;
  unsigned char iftmp.2921;
  guint8 * code.2922;
  guint8 * code.2923;
  unsigned char D.29639;
  guint8 * code.2924;
  guint8 * code.2925;
  guint8 * code.2926;
  guint8 * code.2927;
  guint8 * code.2928;
  guint8 * code.2929;
  guint8 * code.2930;
  guint8 * code.2931;
  guint8 * code.2932;
  guint8 * code.2933;
  guint8 * code.2934;
  guint8 * code.2935;
  guint8 * code.2936;
  guint8 * code.2937;
  guint8 * code.2938;
  guint8 * code.2939;
  guint8 * code.2940;
  guint8 * code.2941;
  unsigned char D.29667;
  guint8 * code.2942;
  guint8 * code.2943;
  unsigned char D.29670;
  guint8 * code.2944;
  guint8 * code.2945;
  unsigned char D.29673;
  guint8 * code.2946;
  guint8 * code.2947;
  unsigned char D.29676;
  guint8 * code.2948;
  guint8 * code.2949;
  guint8 * code.2950;
  guint8 * code.2951;
  guint8 * code.2952;
  guint8 * code.2953;
  guint8 * code.2954;
  guint8 * code.2955;
  unsigned char D.29691;
  guint8 * code.2956;
  guint8 * code.2957;
  unsigned char D.29694;
  guint8 * code.2958;
  guint8 * code.2959;
  unsigned char D.29697;
  guint8 * code.2960;
  guint8 * code.2961;
  unsigned char D.29700;
  guint8 * code.2962;
  guint8 * code.2963;
  unsigned int D.29706;
  _Bool D.29707;
  _Bool D.29708;
  _Bool D.29709;
  _Bool D.29711;
  _Bool D.29712;
  _Bool D.29713;
  guint8 * code.2964;
  guint8 * code.2965;
  guint8 * code.2966;
  guint8 * code.2967;
  unsigned char D.29723;
  guint8 * code.2968;
  guint8 * code.2969;
  guint8 * code.2970;
  guint8 * code.2971;
  guint8 * code.2972;
  guint8 * code.2973;
  unsigned int D.29732;
  int D.29733;
  guint8 * code.2974;
  guint8 * code.2975;
  unsigned char D.29736;
  guint8 * code.2976;
  guint8 * code.2977;
  unsigned char D.29739;
  guint8 * code.2978;
  guint8 * code.2979;
  unsigned char D.29742;
  guint8 * code.2980;
  guint8 * code.2981;
  unsigned char D.29745;
  guint8 * code.2982;
  guint8 * code.2983;
  guint8 * code.2984;
  guint8 * code.2985;
  guint8 * code.2986;
  guint8 * code.2987;
  guint8 * code.2988;
  guint8 * code.2989;
  unsigned char D.29764;
  unsigned char D.29765;
  guint8 * code.2990;
  guint8 * code.2991;
  guint8 * code.2992;
  guint8 * code.2993;
  guint8 * code.2994;
  guint8 * code.2995;
  unsigned char D.29772;
  guint8 * code.2996;
  guint8 * code.2997;
  unsigned char D.29775;
  guint8 * code.2998;
  guint8 * code.2999;
  unsigned char D.29778;
  guint8 * code.3000;
  guint8 * code.3001;
  unsigned char D.29781;
  guint8 * code.3002;
  guint8 * code.3003;
  guint8 * code.3004;
  guint8 * code.3005;
  guint8 * code.3006;
  guint8 * code.3007;
  guint8 * code.3008;
  guint8 * code.3009;
  unsigned char D.29796;
  guint8 * code.3010;
  guint8 * code.3011;
  unsigned char D.29799;
  guint8 * code.3012;
  guint8 * code.3013;
  unsigned char D.29802;
  guint8 * code.3014;
  guint8 * code.3015;
  unsigned char D.29805;
  guint8 * code.3016;
  guint8 * code.3017;
  guint8 * code.3018;
  guint8 * code.3019;
  unsigned char D.29812;
  guint8 * code.3020;
  guint8 * code.3021;
  guint8 * code.3022;
  guint8 * code.3023;
  guint8 * code.3024;
  guint8 * code.3025;
  unsigned char D.29821;
  guint8 * code.3026;
  guint8 * code.3027;
  unsigned char D.29824;
  guint8 * code.3028;
  guint8 * code.3029;
  unsigned char D.29827;
  guint8 * code.3030;
  guint8 * code.3031;
  unsigned char D.29830;
  guint8 * code.3032;
  guint8 * code.3033;
  guint8 * code.3034;
  guint8 * code.3035;
  guint8 * code.3036;
  guint8 * code.3037;
  guint8 * code.3038;
  guint8 * code.3039;
  guint8 * code.3040;
  guint8 * code.3041;
  guint8 * code.3042;
  guint8 * code.3043;
  guint8 * code.3044;
  guint8 * code.3045;
  unsigned char D.29855;
  guint8 * code.3046;
  guint8 * code.3047;
  unsigned char D.29858;
  guint8 * code.3048;
  guint8 * code.3049;
  unsigned char D.29861;
  guint8 * code.3050;
  guint8 * code.3051;
  unsigned char D.29864;
  guint8 * code.3052;
  guint8 * code.3053;
  guint8 * code.3054;
  guint8 * code.3055;
  guint8 * code.3056;
  guint8 * code.3057;
  guint8 * code.3058;
  guint8 * code.3059;
  unsigned char D.29879;
  guint8 * code.3060;
  guint8 * code.3061;
  unsigned char D.29882;
  guint8 * code.3062;
  guint8 * code.3063;
  unsigned char D.29885;
  guint8 * code.3064;
  guint8 * code.3065;
  unsigned char D.29888;
  _Bool D.29889;
  long int D.29890;
  long int D.29891;
  int D.29894;
  struct MonoJumpInfo * ji.3066;
  unsigned int D.29898;
  struct MonoTrampInfo * D.29899;
  guchar * D.29900;
  char * tramp_name;
  guint8 * buf;
  guint8 * code;
  guint8 * tramp;
  guint8 * br[2];
  guint8 * r11_save_code;
  guint8 * after_r11_save_code;
  int i;
  int lmf_offset;
  int offset;
  int res_offset;
  int arg_offset;
  int rax_offset;
  int tramp_offset;
  int saved_regs_offset;
  int saved_fpregs_offset;
  int rbp_offset;
  int framesize;
  int orig_rsp_to_rbp_offset;
  int cfa_offset;
  gboolean has_caller;
  struct GSList * unwind_ops;
  struct MonoJumpInfo * ji;
  const guint kMaxCodeSize;
  static const char __PRETTY_FUNCTION__[36] = "mono_arch_create_generic_trampoline";

  try
    {
      unwind_ops = 0B;
      ji = 0B;
      kMaxCodeSize = 600;
      D.25242 = tramp_type == 1;
      D.25243 = tramp_type == 13;
      D.25244 = D.25242 | D.25243;
      if (D.25244 != 0) goto <D.25245>; else goto <D.25246>;
      <D.25245>:
      has_caller = 0;
      goto <D.25247>;
      <D.25246>:
      has_caller = 1;
      <D.25247>:
      kMaxCodeSize.383 = (int) kMaxCodeSize;
      buf.384 = mono_global_codeman_reserve (kMaxCodeSize.383);
      buf = buf.384;
      buf.385 = buf;
      code = buf.385;
      framesize = 688;
      D.25251 = framesize + 15;
      framesize = D.25251 & -16;
      orig_rsp_to_rbp_offset = 0;
      r11_save_code = code;
      code.386 = code;
      code.387 = code.386 + 5;
      code = code.387;
      after_r11_save_code = code;
      cfa_offset = 16;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25258 = mono_create_unwind_op (D.25257, 12, 4, 16);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25258);
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25259 = mono_create_unwind_op (D.25257, 128, 16, -8);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25259);
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.25260>; else goto <D.25261>;
        <D.25260>:
        code.386 = code;
        code.390 = code.386;
        code.391 = code.390 + 1;
        code = code.391;
        D.25264 = _amd64_rex_bits | 64;
        *code.390 = D.25264;
        <D.25261>:
      }
      code.386 = code;
      code.392 = code.386;
      code.393 = code.392 + 1;
      code = code.393;
      *code.392 = 91;
      orig_rsp_to_rbp_offset.394 = (unsigned int) orig_rsp_to_rbp_offset;
      D.25268 = orig_rsp_to_rbp_offset.394 + 8;
      orig_rsp_to_rbp_offset = (int) D.25268;
      cfa_offset.395 = (unsigned int) cfa_offset;
      D.25270 = cfa_offset.395 + 4294967288;
      cfa_offset = (int) D.25270;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25271 = mono_create_unwind_op (D.25257, 14, 0, cfa_offset);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25271);
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.25272>; else goto <D.25273>;
        <D.25272>:
        code.386 = code;
        code.396 = code.386;
        code.397 = code.396 + 1;
        code = code.397;
        D.25276 = _amd64_rex_bits | 64;
        *code.396 = D.25276;
        <D.25273>:
      }
      code.386 = code;
      code.398 = code.386;
      code.399 = code.398 + 1;
      code = code.399;
      *code.398 = 85;
      cfa_offset.395 = (unsigned int) cfa_offset;
      D.25279 = cfa_offset.395 + 8;
      cfa_offset = (int) D.25279;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25280 = mono_create_unwind_op (D.25257, 14, 0, cfa_offset);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25280);
      D.25281 = -cfa_offset;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25282 = mono_create_unwind_op (D.25257, 128, 5, D.25281);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25282);
      orig_rsp_to_rbp_offset.394 = (unsigned int) orig_rsp_to_rbp_offset;
      D.25283 = orig_rsp_to_rbp_offset.394 + 4294967288;
      orig_rsp_to_rbp_offset = (int) D.25283;
      if (0 != 0) goto <D.25284>; else goto <D.25285>;
      <D.25284>:
      code.386 = code;
      code.400 = code.386;
      code.401 = code.400 + 1;
      code = code.401;
      *code.400 = 102;
      <D.25285>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25288>; else goto <D.25289>;
        <D.25288>:
        code.386 = code;
        code.402 = code.386;
        code.403 = code.402 + 1;
        code = code.403;
        D.25292 = _amd64_rex_bits | 64;
        *code.402 = D.25292;
        <D.25289>:
      }
      switch (8) <default: <D.23072>, case 1: <D.23067>, case 2: <D.23069>, case 4: <D.23070>, case 8: <D.23071>>
      <D.23067>:
      code.386 = code;
      code.404 = code.386;
      code.405 = code.404 + 1;
      code = code.405;
      *code.404 = 138;
      goto <D.23068>;
      <D.23069>:
      <D.23070>:
      <D.23071>:
      code.386 = code;
      code.406 = code.386;
      code.407 = code.406 + 1;
      code = code.407;
      *code.406 = 139;
      goto <D.23068>;
      <D.23072>:
      __assert_fail ("0", "tramp-amd64.c", 462, &__PRETTY_FUNCTION__);
      <D.23068>:
      code.386 = code;
      code.408 = code.386;
      code.409 = code.408 + 1;
      code = code.409;
      *code.408 = 236;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.25257 = (int) D.25256;
      D.25299 = mono_create_unwind_op (D.25257, 13, 5, 0);
      unwind_ops = monoeg_g_slist_append (unwind_ops, D.25299);
      framesize.410 = (unsigned int) framesize;
      D.25301 = framesize.410 + 128;
      if (D.25301 <= 255) goto <D.25302>; else goto <D.25303>;
      <D.25302>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25304>; else goto <D.25305>;
        <D.25304>:
        code.386 = code;
        code.411 = code.386;
        code.412 = code.411 + 1;
        code = code.412;
        D.25308 = _amd64_rex_bits | 64;
        *code.411 = D.25308;
        <D.25305>:
      }
      code.386 = code;
      code.413 = code.386;
      code.414 = code.413 + 1;
      code = code.414;
      *code.413 = 131;
      code.386 = code;
      code.415 = code.386;
      code.416 = code.415 + 1;
      code = code.416;
      *code.415 = 236;
      code.386 = code;
      D.25313 = (unsigned char) framesize;
      *code.386 = D.25313;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25315>;
      <D.25303>:
      if (0 != 0) goto <D.25316>; else goto <D.25317>;
      <D.25316>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25318>; else goto <D.25319>;
        <D.25318>:
        code.386 = code;
        code.418 = code.386;
        code.419 = code.418 + 1;
        code = code.419;
        D.25322 = _amd64_rex_bits | 64;
        *code.418 = D.25322;
        <D.25319>:
      }
      code.386 = code;
      code.420 = code.386;
      code.421 = code.420 + 1;
      code = code.421;
      *code.420 = 45;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = framesize;
            code.386 = code;
            code.422 = code.386;
            code.423 = code.422 + 1;
            code = code.423;
            D.25327 = imb.b[0];
            *code.422 = D.25327;
            code.386 = code;
            code.424 = code.386;
            code.425 = code.424 + 1;
            code = code.425;
            D.25330 = imb.b[1];
            *code.424 = D.25330;
            code.386 = code;
            code.426 = code.386;
            code.427 = code.426 + 1;
            code = code.427;
            D.25333 = imb.b[2];
            *code.426 = D.25333;
            code.386 = code;
            code.428 = code.386;
            code.429 = code.428 + 1;
            code = code.429;
            D.25336 = imb.b[3];
            *code.428 = D.25336;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.25337>;
      <D.25317>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25338>; else goto <D.25339>;
        <D.25338>:
        code.386 = code;
        code.430 = code.386;
        code.431 = code.430 + 1;
        code = code.431;
        D.25342 = _amd64_rex_bits | 64;
        *code.430 = D.25342;
        <D.25339>:
      }
      code.386 = code;
      code.432 = code.386;
      code.433 = code.432 + 1;
      code = code.433;
      *code.432 = 129;
      code.386 = code;
      code.434 = code.386;
      code.435 = code.434 + 1;
      code = code.435;
      *code.434 = 236;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = framesize;
            code.386 = code;
            code.436 = code.386;
            code.437 = code.436 + 1;
            code = code.437;
            D.25349 = imb.b[0];
            *code.436 = D.25349;
            code.386 = code;
            code.438 = code.386;
            code.439 = code.438 + 1;
            code = code.439;
            D.25352 = imb.b[1];
            *code.438 = D.25352;
            code.386 = code;
            code.440 = code.386;
            code.441 = code.440 + 1;
            code = code.441;
            D.25355 = imb.b[2];
            *code.440 = D.25355;
            code.386 = code;
            code.442 = code.386;
            code.443 = code.442 + 1;
            code = code.443;
            D.25358 = imb.b[3];
            *code.442 = D.25358;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25337>:
      <D.25315>:
      offset = 0;
      rbp_offset = -offset;
      offset.444 = (unsigned int) offset;
      D.25360 = offset.444 + 8;
      offset = (int) D.25360;
      rax_offset = -offset;
      offset.444 = (unsigned int) offset;
      D.25360 = offset.444 + 8;
      offset = (int) D.25360;
      tramp_offset = -offset;
      offset.444 = (unsigned int) offset;
      D.25360 = offset.444 + 8;
      offset = (int) D.25360;
      arg_offset = -offset;
      if (aot != 0) goto <D.25361>; else goto <D.25362>;
      <D.25361>:
      if (1 != 0) goto <D.25363>; else goto <D.25364>;
      <D.25363>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.25365>; else goto <D.25366>;
        <D.25365>:
        code.386 = code;
        code.445 = code.386;
        code.446 = code.445 + 1;
        code = code.446;
        D.25369 = _amd64_rex_bits | 64;
        *code.445 = D.25369;
        <D.25366>:
      }
      code.386 = code;
      code.447 = code.386;
      code.448 = code.447 + 1;
      code = code.448;
      *code.447 = 131;
      code.386 = code;
      code.449 = code.386;
      code.450 = code.449 + 1;
      code = code.450;
      *code.449 = 235;
      code.386 = code;
      *code.386 = 7;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25374>;
      <D.25364>:
      if (0 != 0) goto <D.25375>; else goto <D.25376>;
      <D.25375>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25377>; else goto <D.25378>;
        <D.25377>:
        code.386 = code;
        code.451 = code.386;
        code.452 = code.451 + 1;
        code = code.452;
        D.25381 = _amd64_rex_bits | 64;
        *code.451 = D.25381;
        <D.25378>:
      }
      code.386 = code;
      code.453 = code.386;
      code.454 = code.453 + 1;
      code = code.454;
      *code.453 = 45;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 7;
            code.386 = code;
            code.455 = code.386;
            code.456 = code.455 + 1;
            code = code.456;
            D.25386 = imb.b[0];
            *code.455 = D.25386;
            code.386 = code;
            code.457 = code.386;
            code.458 = code.457 + 1;
            code = code.458;
            D.25389 = imb.b[1];
            *code.457 = D.25389;
            code.386 = code;
            code.459 = code.386;
            code.460 = code.459 + 1;
            code = code.460;
            D.25392 = imb.b[2];
            *code.459 = D.25392;
            code.386 = code;
            code.461 = code.386;
            code.462 = code.461 + 1;
            code = code.462;
            D.25395 = imb.b[3];
            *code.461 = D.25395;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.25396>;
      <D.25376>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.25397>; else goto <D.25398>;
        <D.25397>:
        code.386 = code;
        code.463 = code.386;
        code.464 = code.463 + 1;
        code = code.464;
        D.25401 = _amd64_rex_bits | 64;
        *code.463 = D.25401;
        <D.25398>:
      }
      code.386 = code;
      code.465 = code.386;
      code.466 = code.465 + 1;
      code = code.466;
      *code.465 = 129;
      code.386 = code;
      code.467 = code.386;
      code.468 = code.467 + 1;
      code = code.468;
      *code.467 = 235;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 7;
            code.386 = code;
            code.469 = code.386;
            code.470 = code.469 + 1;
            code = code.470;
            D.25408 = imb.b[0];
            *code.469 = D.25408;
            code.386 = code;
            code.471 = code.386;
            code.472 = code.471 + 1;
            code = code.472;
            D.25411 = imb.b[1];
            *code.471 = D.25411;
            code.386 = code;
            code.473 = code.386;
            code.474 = code.473 + 1;
            code = code.474;
            D.25414 = imb.b[2];
            *code.473 = D.25414;
            code.386 = code;
            code.475 = code.386;
            code.476 = code.475 + 1;
            code = code.476;
            D.25417 = imb.b[3];
            *code.475 = D.25417;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25396>:
      <D.25374>:
      goto <D.25418>;
      <D.25362>:
      if (1 != 0) goto <D.25419>; else goto <D.25420>;
      <D.25419>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.25421>; else goto <D.25422>;
        <D.25421>:
        code.386 = code;
        code.477 = code.386;
        code.478 = code.477 + 1;
        code = code.478;
        D.25425 = _amd64_rex_bits | 64;
        *code.477 = D.25425;
        <D.25422>:
      }
      code.386 = code;
      code.479 = code.386;
      code.480 = code.479 + 1;
      code = code.480;
      *code.479 = 131;
      code.386 = code;
      code.481 = code.386;
      code.482 = code.481 + 1;
      code = code.482;
      *code.481 = 235;
      code.386 = code;
      *code.386 = 5;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25430>;
      <D.25420>:
      if (0 != 0) goto <D.25431>; else goto <D.25432>;
      <D.25431>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25433>; else goto <D.25434>;
        <D.25433>:
        code.386 = code;
        code.483 = code.386;
        code.484 = code.483 + 1;
        code = code.484;
        D.25437 = _amd64_rex_bits | 64;
        *code.483 = D.25437;
        <D.25434>:
      }
      code.386 = code;
      code.485 = code.386;
      code.486 = code.485 + 1;
      code = code.486;
      *code.485 = 45;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.487 = code.386;
            code.488 = code.487 + 1;
            code = code.488;
            D.25442 = imb.b[0];
            *code.487 = D.25442;
            code.386 = code;
            code.489 = code.386;
            code.490 = code.489 + 1;
            code = code.490;
            D.25445 = imb.b[1];
            *code.489 = D.25445;
            code.386 = code;
            code.491 = code.386;
            code.492 = code.491 + 1;
            code = code.492;
            D.25448 = imb.b[2];
            *code.491 = D.25448;
            code.386 = code;
            code.493 = code.386;
            code.494 = code.493 + 1;
            code = code.494;
            D.25451 = imb.b[3];
            *code.493 = D.25451;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.25452>;
      <D.25432>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.25453>; else goto <D.25454>;
        <D.25453>:
        code.386 = code;
        code.495 = code.386;
        code.496 = code.495 + 1;
        code = code.496;
        D.25457 = _amd64_rex_bits | 64;
        *code.495 = D.25457;
        <D.25454>:
      }
      code.386 = code;
      code.497 = code.386;
      code.498 = code.497 + 1;
      code = code.498;
      *code.497 = 129;
      code.386 = code;
      code.499 = code.386;
      code.500 = code.499 + 1;
      code = code.500;
      *code.499 = 235;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.501 = code.386;
            code.502 = code.501 + 1;
            code = code.502;
            D.25464 = imb.b[0];
            *code.501 = D.25464;
            code.386 = code;
            code.503 = code.386;
            code.504 = code.503 + 1;
            code = code.504;
            D.25467 = imb.b[1];
            *code.503 = D.25467;
            code.386 = code;
            code.505 = code.386;
            code.506 = code.505 + 1;
            code = code.506;
            D.25470 = imb.b[2];
            *code.505 = D.25470;
            code.386 = code;
            code.507 = code.386;
            code.508 = code.507 + 1;
            code = code.508;
            D.25473 = imb.b[3];
            *code.507 = D.25473;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25452>:
      <D.25430>:
      <D.25418>:
      if (0 != 0) goto <D.25474>; else goto <D.25475>;
      <D.25474>:
      code.386 = code;
      code.509 = code.386;
      code.510 = code.509 + 1;
      code = code.510;
      *code.509 = 102;
      <D.25475>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.25478>; else goto <D.25479>;
        <D.25478>:
        code.386 = code;
        code.511 = code.386;
        code.512 = code.511 + 1;
        code = code.512;
        D.25482 = _amd64_rex_bits | 64;
        *code.511 = D.25482;
        <D.25479>:
      }
      switch (8) <default: <D.23095>, case 1: <D.23090>, case 2: <D.23092>, case 4: <D.23093>, case 8: <D.23094>>
      <D.23090>:
      code.386 = code;
      code.513 = code.386;
      code.514 = code.513 + 1;
      code = code.514;
      *code.513 = 136;
      goto <D.23091>;
      <D.23092>:
      <D.23093>:
      <D.23094>:
      code.386 = code;
      code.515 = code.386;
      code.516 = code.515 + 1;
      code = code.516;
      *code.515 = 137;
      goto <D.23091>;
      <D.23095>:
      __assert_fail ("0", "tramp-amd64.c", 490, &__PRETTY_FUNCTION__);
      <D.23091>:
      if (0 != 0) goto <D.25487>; else goto <D.25488>;
      <D.25487>:
      if (tramp_offset == 0) goto <D.25489>; else goto <D.25490>;
      <D.25489>:
      code.386 = code;
      code.517 = code.386;
      code.518 = code.517 + 1;
      code = code.518;
      *code.517 = 28;
      code.386 = code;
      code.519 = code.386;
      code.520 = code.519 + 1;
      code = code.520;
      *code.519 = 36;
      goto <D.25495>;
      <D.25490>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.25498>; else goto <D.25499>;
      <D.25498>:
      code.386 = code;
      code.522 = code.386;
      code.523 = code.522 + 1;
      code = code.523;
      *code.522 = 92;
      code.386 = code;
      code.524 = code.386;
      code.525 = code.524 + 1;
      code = code.525;
      *code.524 = 36;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25505>;
      <D.25499>:
      code.386 = code;
      code.526 = code.386;
      code.527 = code.526 + 1;
      code = code.527;
      *code.526 = 156;
      code.386 = code;
      code.528 = code.386;
      code.529 = code.528 + 1;
      code = code.529;
      *code.528 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.530 = code.386;
            code.531 = code.530 + 1;
            code = code.531;
            D.25512 = imb.b[0];
            *code.530 = D.25512;
            code.386 = code;
            code.532 = code.386;
            code.533 = code.532 + 1;
            code = code.533;
            D.25515 = imb.b[1];
            *code.532 = D.25515;
            code.386 = code;
            code.534 = code.386;
            code.535 = code.534 + 1;
            code = code.535;
            D.25518 = imb.b[2];
            *code.534 = D.25518;
            code.386 = code;
            code.536 = code.386;
            code.537 = code.536 + 1;
            code = code.537;
            D.25521 = imb.b[3];
            *code.536 = D.25521;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25505>:
      <D.25495>:
      goto <D.23097>;
      <D.25488>:
      if (0 != 0) goto <D.25522>; else goto <D.25523>;
      <D.25522>:
      code.386 = code;
      code.538 = code.386;
      code.539 = code.538 + 1;
      code = code.539;
      *code.538 = 29;
      goto <D.23097>;
      <D.25523>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.25526>; else goto <D.25527>;
      <D.25526>:
      code.386 = code;
      code.540 = code.386;
      code.541 = code.540 + 1;
      code = code.541;
      *code.540 = 93;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25530>;
      <D.25527>:
      code.386 = code;
      code.542 = code.386;
      code.543 = code.542 + 1;
      code = code.543;
      *code.542 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.544 = code.386;
            code.545 = code.544 + 1;
            code = code.545;
            D.25535 = imb.b[0];
            *code.544 = D.25535;
            code.386 = code;
            code.546 = code.386;
            code.547 = code.546 + 1;
            code = code.547;
            D.25538 = imb.b[1];
            *code.546 = D.25538;
            code.386 = code;
            code.548 = code.386;
            code.549 = code.548 + 1;
            code = code.549;
            D.25541 = imb.b[2];
            *code.548 = D.25541;
            code.386 = code;
            code.550 = code.386;
            code.551 = code.550 + 1;
            code = code.551;
            D.25544 = imb.b[3];
            *code.550 = D.25544;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25530>:
      <D.23097>:
      offset.444 = (unsigned int) offset;
      D.25360 = offset.444 + 8;
      offset = (int) D.25360;
      res_offset = -offset;
      offset.444 = (unsigned int) offset;
      D.25545 = offset.444 + 136;
      offset = (int) D.25545;
      saved_regs_offset = -offset;
      i = 0;
      goto <D.23141>;
      <D.23140>:
      if (i == 5) goto <D.25546>; else goto <D.25547>;
      <D.25546>:
      if (0 != 0) goto <D.25548>; else goto <D.25549>;
      <D.25548>:
      code.386 = code;
      code.552 = code.386;
      code.553 = code.552 + 1;
      code = code.553;
      *code.552 = 102;
      <D.25549>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25552>; else goto <D.25553>;
        <D.25552>:
        code.386 = code;
        code.554 = code.386;
        code.555 = code.554 + 1;
        code = code.555;
        D.25556 = _amd64_rex_bits | 64;
        *code.554 = D.25556;
        <D.25553>:
      }
      switch (8) <default: <D.23105>, case 1: <D.23100>, case 2: <D.23102>, case 4: <D.23103>, case 8: <D.23104>>
      <D.23100>:
      code.386 = code;
      code.556 = code.386;
      code.557 = code.556 + 1;
      code = code.557;
      *code.556 = 138;
      goto <D.23101>;
      <D.23102>:
      <D.23103>:
      <D.23104>:
      code.386 = code;
      code.558 = code.386;
      code.559 = code.558 + 1;
      code = code.559;
      *code.558 = 139;
      goto <D.23101>;
      <D.23105>:
      __assert_fail ("0", "tramp-amd64.c", 502, &__PRETTY_FUNCTION__);
      <D.23101>:
      if (0 != 0) goto <D.25561>; else goto <D.25562>;
      <D.25561>:
      code.386 = code;
      code.560 = code.386;
      code.561 = code.560 + 1;
      code = code.561;
      *code.560 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = rbp_offset;
            code.386 = code;
            code.562 = code.386;
            code.563 = code.562 + 1;
            code = code.563;
            D.25567 = imb.b[0];
            *code.562 = D.25567;
            code.386 = code;
            code.564 = code.386;
            code.565 = code.564 + 1;
            code = code.565;
            D.25570 = imb.b[1];
            *code.564 = D.25570;
            code.386 = code;
            code.566 = code.386;
            code.567 = code.566 + 1;
            code = code.567;
            D.25573 = imb.b[2];
            *code.566 = D.25573;
            code.386 = code;
            code.568 = code.386;
            code.569 = code.568 + 1;
            code = code.569;
            D.25576 = imb.b[3];
            *code.568 = D.25576;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.25577>;
      <D.25562>:
      if (0 != 0) goto <D.25578>; else goto <D.25579>;
      <D.25578>:
      if (rbp_offset == 0) goto <D.25580>; else goto <D.25581>;
      <D.25580>:
      code.386 = code;
      code.570 = code.386;
      code.571 = code.570 + 1;
      code = code.571;
      *code.570 = 4;
      code.386 = code;
      code.572 = code.386;
      code.573 = code.572 + 1;
      code = code.573;
      *code.572 = 36;
      goto <D.25586>;
      <D.25581>:
      rbp_offset.574 = (unsigned int) rbp_offset;
      D.25588 = rbp_offset.574 + 128;
      if (D.25588 <= 255) goto <D.25589>; else goto <D.25590>;
      <D.25589>:
      code.386 = code;
      code.575 = code.386;
      code.576 = code.575 + 1;
      code = code.576;
      *code.575 = 68;
      code.386 = code;
      code.577 = code.386;
      code.578 = code.577 + 1;
      code = code.578;
      *code.577 = 36;
      code.386 = code;
      D.25595 = (unsigned char) rbp_offset;
      *code.386 = D.25595;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25596>;
      <D.25590>:
      code.386 = code;
      code.579 = code.386;
      code.580 = code.579 + 1;
      code = code.580;
      *code.579 = 132;
      code.386 = code;
      code.581 = code.386;
      code.582 = code.581 + 1;
      code = code.582;
      *code.581 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = rbp_offset;
            code.386 = code;
            code.583 = code.386;
            code.584 = code.583 + 1;
            code = code.584;
            D.25603 = imb.b[0];
            *code.583 = D.25603;
            code.386 = code;
            code.585 = code.386;
            code.586 = code.585 + 1;
            code = code.586;
            D.25606 = imb.b[1];
            *code.585 = D.25606;
            code.386 = code;
            code.587 = code.386;
            code.588 = code.587 + 1;
            code = code.588;
            D.25609 = imb.b[2];
            *code.587 = D.25609;
            code.386 = code;
            code.589 = code.386;
            code.590 = code.589 + 1;
            code = code.590;
            D.25612 = imb.b[3];
            *code.589 = D.25612;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25596>:
      <D.25586>:
      goto <D.23108>;
      <D.25579>:
      if (0 != 0) goto <D.25613>; else goto <D.25614>;
      <D.25613>:
      code.386 = code;
      code.591 = code.386;
      code.592 = code.591 + 1;
      code = code.592;
      *code.591 = 5;
      goto <D.23108>;
      <D.25614>:
      rbp_offset.574 = (unsigned int) rbp_offset;
      D.25588 = rbp_offset.574 + 128;
      if (D.25588 <= 255) goto <D.25617>; else goto <D.25618>;
      <D.25617>:
      code.386 = code;
      code.593 = code.386;
      code.594 = code.593 + 1;
      code = code.594;
      *code.593 = 69;
      code.386 = code;
      D.25595 = (unsigned char) rbp_offset;
      *code.386 = D.25595;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25621>;
      <D.25618>:
      code.386 = code;
      code.595 = code.386;
      code.596 = code.595 + 1;
      code = code.596;
      *code.595 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = rbp_offset;
            code.386 = code;
            code.597 = code.386;
            code.598 = code.597 + 1;
            code = code.598;
            D.25626 = imb.b[0];
            *code.597 = D.25626;
            code.386 = code;
            code.599 = code.386;
            code.600 = code.599 + 1;
            code = code.600;
            D.25629 = imb.b[1];
            *code.599 = D.25629;
            code.386 = code;
            code.601 = code.386;
            code.602 = code.601 + 1;
            code = code.602;
            D.25632 = imb.b[2];
            *code.601 = D.25632;
            code.386 = code;
            code.603 = code.386;
            code.604 = code.603 + 1;
            code = code.604;
            D.25635 = imb.b[3];
            *code.603 = D.25635;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25621>:
      <D.23108>:
      <D.25577>:
      if (0 != 0) goto <D.25636>; else goto <D.25637>;
      <D.25636>:
      code.386 = code;
      code.605 = code.386;
      code.606 = code.605 + 1;
      code = code.606;
      *code.605 = 102;
      <D.25637>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25640>; else goto <D.25641>;
        <D.25640>:
        code.386 = code;
        code.607 = code.386;
        code.608 = code.607 + 1;
        code = code.608;
        D.25644 = _amd64_rex_bits | 64;
        *code.607 = D.25644;
        <D.25641>:
      }
      switch (8) <default: <D.23116>, case 1: <D.23111>, case 2: <D.23113>, case 4: <D.23114>, case 8: <D.23115>>
      <D.23111>:
      code.386 = code;
      code.609 = code.386;
      code.610 = code.609 + 1;
      code = code.610;
      *code.609 = 136;
      goto <D.23112>;
      <D.23113>:
      <D.23114>:
      <D.23115>:
      code.386 = code;
      code.611 = code.386;
      code.612 = code.611 + 1;
      code = code.612;
      *code.611 = 137;
      goto <D.23112>;
      <D.23116>:
      __assert_fail ("0", "tramp-amd64.c", 503, &__PRETTY_FUNCTION__);
      <D.23112>:
      if (0 != 0) goto <D.25649>; else goto <D.25650>;
      <D.25649>:
      D.25651 = (long unsigned int) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25654 = D.25651 + D.25653;
      if (D.25654 == 0) goto <D.25655>; else goto <D.25656>;
      <D.25655>:
      code.386 = code;
      code.613 = code.386;
      code.614 = code.613 + 1;
      code = code.614;
      *code.613 = 4;
      code.386 = code;
      code.615 = code.386;
      code.616 = code.615 + 1;
      code = code.616;
      *code.615 = 36;
      goto <D.25661>;
      <D.25656>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.25669>; else goto <D.25662>;
      <D.25669>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.25670>; else goto <D.25662>;
      <D.25670>:
      code.386 = code;
      code.618 = code.386;
      code.619 = code.618 + 1;
      code = code.619;
      *code.618 = 68;
      code.386 = code;
      code.620 = code.386;
      code.621 = code.620 + 1;
      code = code.621;
      *code.620 = 36;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25663>;
      <D.25662>:
      code.386 = code;
      code.622 = code.386;
      code.623 = code.622 + 1;
      code = code.623;
      *code.622 = 132;
      code.386 = code;
      code.624 = code.386;
      code.625 = code.624 + 1;
      code = code.625;
      *code.624 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.626 = code.386;
            code.627 = code.626 + 1;
            code = code.627;
            D.25685 = imb.b[0];
            *code.626 = D.25685;
            code.386 = code;
            code.628 = code.386;
            code.629 = code.628 + 1;
            code = code.629;
            D.25688 = imb.b[1];
            *code.628 = D.25688;
            code.386 = code;
            code.630 = code.386;
            code.631 = code.630 + 1;
            code = code.631;
            D.25691 = imb.b[2];
            *code.630 = D.25691;
            code.386 = code;
            code.632 = code.386;
            code.633 = code.632 + 1;
            code = code.633;
            D.25694 = imb.b[3];
            *code.632 = D.25694;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25663>:
      <D.25661>:
      goto <D.23118>;
      <D.25650>:
      if (0 != 0) goto <D.25695>; else goto <D.25696>;
      <D.25695>:
      code.386 = code;
      code.634 = code.386;
      code.635 = code.634 + 1;
      code = code.635;
      *code.634 = 5;
      goto <D.23118>;
      <D.25696>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.25701>; else goto <D.25699>;
      <D.25701>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.25702>; else goto <D.25699>;
      <D.25702>:
      code.386 = code;
      code.636 = code.386;
      code.637 = code.636 + 1;
      code = code.637;
      *code.636 = 69;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25700>;
      <D.25699>:
      code.386 = code;
      code.638 = code.386;
      code.639 = code.638 + 1;
      code = code.639;
      *code.638 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.640 = code.386;
            code.641 = code.640 + 1;
            code = code.641;
            D.25709 = imb.b[0];
            *code.640 = D.25709;
            code.386 = code;
            code.642 = code.386;
            code.643 = code.642 + 1;
            code = code.643;
            D.25712 = imb.b[1];
            *code.642 = D.25712;
            code.386 = code;
            code.644 = code.386;
            code.645 = code.644 + 1;
            code = code.645;
            D.25715 = imb.b[2];
            *code.644 = D.25715;
            code.386 = code;
            code.646 = code.386;
            code.647 = code.646 + 1;
            code = code.647;
            D.25718 = imb.b[3];
            *code.646 = D.25718;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25700>:
      <D.23118>:
      goto <D.25719>;
      <D.25547>:
      if (i != 11) goto <D.25720>; else goto <D.25721>;
      <D.25720>:
      if (0 != 0) goto <D.25722>; else goto <D.25723>;
      <D.25722>:
      code.386 = code;
      code.648 = code.386;
      code.649 = code.648 + 1;
      code = code.649;
      *code.648 = 102;
      <D.25723>:
      {
        unsigned char _amd64_rex_bits;

        if (i > 7) goto <D.25727>; else goto <D.25728>;
        <D.25727>:
        iftmp.650 = 12;
        goto <D.25729>;
        <D.25728>:
        iftmp.650 = 8;
        <D.25729>:
        _amd64_rex_bits = iftmp.650;
        if (_amd64_rex_bits != 0) goto <D.25730>; else goto <D.25731>;
        <D.25730>:
        code.386 = code;
        code.651 = code.386;
        code.652 = code.651 + 1;
        code = code.652;
        D.25734 = _amd64_rex_bits | 64;
        *code.651 = D.25734;
        <D.25731>:
      }
      switch (8) <default: <D.23126>, case 1: <D.23121>, case 2: <D.23123>, case 4: <D.23124>, case 8: <D.23125>>
      <D.23121>:
      code.386 = code;
      code.653 = code.386;
      code.654 = code.653 + 1;
      code = code.654;
      *code.653 = 136;
      goto <D.23122>;
      <D.23123>:
      <D.23124>:
      <D.23125>:
      code.386 = code;
      code.655 = code.386;
      code.656 = code.655 + 1;
      code = code.656;
      *code.655 = 137;
      goto <D.23122>;
      <D.23126>:
      __assert_fail ("0", "tramp-amd64.c", 505, &__PRETTY_FUNCTION__);
      <D.23122>:
      if (0 != 0) goto <D.25739>; else goto <D.25740>;
      <D.25739>:
      D.25651 = (long unsigned int) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25654 = D.25651 + D.25653;
      if (D.25654 == 0) goto <D.25741>; else goto <D.25742>;
      <D.25741>:
      code.386 = code;
      code.657 = code.386;
      code.658 = code.657 + 1;
      code = code.658;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *code.657 = D.25749;
      code.386 = code;
      code.659 = code.386;
      code.660 = code.659 + 1;
      code = code.660;
      *code.659 = 36;
      goto <D.25752>;
      <D.25742>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.25755>; else goto <D.25753>;
      <D.25755>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.25756>; else goto <D.25753>;
      <D.25756>:
      code.386 = code;
      code.661 = code.386;
      code.662 = code.661 + 1;
      code = code.662;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *code.661 = D.25760;
      code.386 = code;
      code.663 = code.386;
      code.664 = code.663 + 1;
      code = code.664;
      *code.663 = 36;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25754>;
      <D.25753>:
      code.386 = code;
      code.665 = code.386;
      code.666 = code.665 + 1;
      code = code.666;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *code.665 = D.25766;
      code.386 = code;
      code.667 = code.386;
      code.668 = code.667 + 1;
      code = code.668;
      *code.667 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.669 = code.386;
            code.670 = code.669 + 1;
            code = code.670;
            D.25771 = imb.b[0];
            *code.669 = D.25771;
            code.386 = code;
            code.671 = code.386;
            code.672 = code.671 + 1;
            code = code.672;
            D.25774 = imb.b[1];
            *code.671 = D.25774;
            code.386 = code;
            code.673 = code.386;
            code.674 = code.673 + 1;
            code = code.674;
            D.25777 = imb.b[2];
            *code.673 = D.25777;
            code.386 = code;
            code.675 = code.386;
            code.676 = code.675 + 1;
            code = code.676;
            D.25780 = imb.b[3];
            *code.675 = D.25780;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25754>:
      <D.25752>:
      goto <D.23128>;
      <D.25740>:
      if (0 != 0) goto <D.25781>; else goto <D.25782>;
      <D.25781>:
      code.386 = code;
      code.677 = code.386;
      code.678 = code.677 + 1;
      code = code.678;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25785 = D.25747 | 5;
      D.25786 = (unsigned char) D.25785;
      *code.677 = D.25786;
      goto <D.23128>;
      <D.25782>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.25789>; else goto <D.25787>;
      <D.25789>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.25790>; else goto <D.25787>;
      <D.25790>:
      code.386 = code;
      code.679 = code.386;
      code.680 = code.679 + 1;
      code = code.680;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25793 = D.25747 | 69;
      D.25794 = (unsigned char) D.25793;
      *code.679 = D.25794;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25788>;
      <D.25787>:
      code.386 = code;
      code.681 = code.386;
      code.682 = code.681 + 1;
      code = code.682;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25797 = D.25747 | -123;
      D.25798 = (unsigned char) D.25797;
      *code.681 = D.25798;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.683 = code.386;
            code.684 = code.683 + 1;
            code = code.684;
            D.25801 = imb.b[0];
            *code.683 = D.25801;
            code.386 = code;
            code.685 = code.386;
            code.686 = code.685 + 1;
            code = code.686;
            D.25804 = imb.b[1];
            *code.685 = D.25804;
            code.386 = code;
            code.687 = code.386;
            code.688 = code.687 + 1;
            code = code.688;
            D.25807 = imb.b[2];
            *code.687 = D.25807;
            code.386 = code;
            code.689 = code.386;
            code.690 = code.689 + 1;
            code = code.690;
            D.25810 = imb.b[3];
            *code.689 = D.25810;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25788>:
      <D.23128>:
      goto <D.25811>;
      <D.25721>:
      if (0 != 0) goto <D.25812>; else goto <D.25813>;
      <D.25812>:
      r11_save_code.691 = r11_save_code;
      r11_save_code = r11_save_code.691 + 1;
      *r11_save_code.691 = 102;
      <D.25813>:
      {
        unsigned char _amd64_rex_bits;

        if (i > 7) goto <D.25816>; else goto <D.25817>;
        <D.25816>:
        iftmp.692 = 12;
        goto <D.25818>;
        <D.25817>:
        iftmp.692 = 8;
        <D.25818>:
        _amd64_rex_bits = iftmp.692;
        if (_amd64_rex_bits != 0) goto <D.25819>; else goto <D.25820>;
        <D.25819>:
        r11_save_code.693 = r11_save_code;
        r11_save_code = r11_save_code.693 + 1;
        D.25822 = _amd64_rex_bits | 64;
        *r11_save_code.693 = D.25822;
        <D.25820>:
      }
      switch (8) <default: <D.23136>, case 1: <D.23131>, case 2: <D.23133>, case 4: <D.23134>, case 8: <D.23135>>
      <D.23131>:
      r11_save_code.694 = r11_save_code;
      r11_save_code = r11_save_code.694 + 1;
      *r11_save_code.694 = 136;
      goto <D.23132>;
      <D.23133>:
      <D.23134>:
      <D.23135>:
      r11_save_code.695 = r11_save_code;
      r11_save_code = r11_save_code.695 + 1;
      *r11_save_code.695 = 137;
      goto <D.23132>;
      <D.23136>:
      __assert_fail ("0", "tramp-amd64.c", 510, &__PRETTY_FUNCTION__);
      <D.23132>:
      if (1 != 0) goto <D.25825>; else goto <D.25826>;
      <D.25825>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25828 = (long unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25829 = D.25828 + D.25653;
      if (D.25829 == 0) goto <D.25830>; else goto <D.25831>;
      <D.25830>:
      r11_save_code.696 = r11_save_code;
      r11_save_code = r11_save_code.696 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *r11_save_code.696 = D.25749;
      r11_save_code.697 = r11_save_code;
      r11_save_code = r11_save_code.697 + 1;
      *r11_save_code.697 = 36;
      goto <D.25834>;
      <D.25831>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25837 = (unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      D.25838 = D.25837 + D.25665;
      D.25839 = (int) D.25838;
      if (D.25839 >= -128) goto <D.25840>; else goto <D.25835>;
      <D.25840>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25837 = (unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      D.25838 = D.25837 + D.25665;
      D.25839 = (int) D.25838;
      if (D.25839 <= 127) goto <D.25841>; else goto <D.25835>;
      <D.25841>:
      r11_save_code.698 = r11_save_code;
      r11_save_code = r11_save_code.698 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *r11_save_code.698 = D.25760;
      r11_save_code.699 = r11_save_code;
      r11_save_code = r11_save_code.699 + 1;
      *r11_save_code.699 = 36;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25844 = (unsigned char) orig_rsp_to_rbp_offset;
      D.25845 = D.25675 + D.25844;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25846 = D.25845 + D.25677;
      *r11_save_code = D.25846;
      r11_save_code = r11_save_code + 1;
      goto <D.25836>;
      <D.25835>:
      r11_save_code.700 = r11_save_code;
      r11_save_code = r11_save_code.700 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *r11_save_code.700 = D.25766;
      r11_save_code.701 = r11_save_code;
      r11_save_code = r11_save_code.701 + 1;
      *r11_save_code.701 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
            D.25837 = (unsigned int) D.25827;
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            D.25838 = D.25837 + D.25665;
            D.25839 = (int) D.25838;
            imb.val = D.25839;
            r11_save_code.702 = r11_save_code;
            r11_save_code = r11_save_code.702 + 1;
            D.25850 = imb.b[0];
            *r11_save_code.702 = D.25850;
            r11_save_code.703 = r11_save_code;
            r11_save_code = r11_save_code.703 + 1;
            D.25852 = imb.b[1];
            *r11_save_code.703 = D.25852;
            r11_save_code.704 = r11_save_code;
            r11_save_code = r11_save_code.704 + 1;
            D.25854 = imb.b[2];
            *r11_save_code.704 = D.25854;
            r11_save_code.705 = r11_save_code;
            r11_save_code = r11_save_code.705 + 1;
            D.25856 = imb.b[3];
            *r11_save_code.705 = D.25856;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25836>:
      <D.25834>:
      goto <D.23138>;
      <D.25826>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25828 = (long unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25829 = D.25828 + D.25653;
      if (D.25829 == 0) goto <D.25857>; else goto <D.25858>;
      <D.25857>:
      r11_save_code.706 = r11_save_code;
      r11_save_code = r11_save_code.706 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *r11_save_code.706 = D.25749;
      goto <D.23138>;
      <D.25858>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25837 = (unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      D.25838 = D.25837 + D.25665;
      D.25839 = (int) D.25838;
      if (D.25839 >= -128) goto <D.25862>; else goto <D.25860>;
      <D.25862>:
      D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
      D.25837 = (unsigned int) D.25827;
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      D.25838 = D.25837 + D.25665;
      D.25839 = (int) D.25838;
      if (D.25839 <= 127) goto <D.25863>; else goto <D.25860>;
      <D.25863>:
      r11_save_code.707 = r11_save_code;
      r11_save_code = r11_save_code.707 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *r11_save_code.707 = D.25760;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25844 = (unsigned char) orig_rsp_to_rbp_offset;
      D.25845 = D.25675 + D.25844;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25846 = D.25845 + D.25677;
      *r11_save_code = D.25846;
      r11_save_code = r11_save_code + 1;
      goto <D.25861>;
      <D.25860>:
      r11_save_code.708 = r11_save_code;
      r11_save_code = r11_save_code.708 + 1;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *r11_save_code.708 = D.25766;
      {
        union x86_imm_buf imb;

        try
          {
            D.25827 = saved_regs_offset + orig_rsp_to_rbp_offset;
            D.25837 = (unsigned int) D.25827;
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            D.25838 = D.25837 + D.25665;
            D.25839 = (int) D.25838;
            imb.val = D.25839;
            r11_save_code.709 = r11_save_code;
            r11_save_code = r11_save_code.709 + 1;
            D.25867 = imb.b[0];
            *r11_save_code.709 = D.25867;
            r11_save_code.710 = r11_save_code;
            r11_save_code = r11_save_code.710 + 1;
            D.25869 = imb.b[1];
            *r11_save_code.710 = D.25869;
            r11_save_code.711 = r11_save_code;
            r11_save_code = r11_save_code.711 + 1;
            D.25871 = imb.b[2];
            *r11_save_code.711 = D.25871;
            r11_save_code.712 = r11_save_code;
            r11_save_code = r11_save_code.712 + 1;
            D.25873 = imb.b[3];
            *r11_save_code.712 = D.25873;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25861>:
      <D.23138>:
      D.25874 = r11_save_code != after_r11_save_code;
      D.25875 = (long int) D.25874;
      D.25876 = __builtin_expect (D.25875, 0);
      if (D.25876 != 0) goto <D.25877>; else goto <D.25878>;
      <D.25877>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 511, "r11_save_code == after_r11_save_code");
      <D.25878>:
      <D.25811>:
      <D.25719>:
      i = i + 1;
      <D.23141>:
      if (i <= 16) goto <D.23140>; else goto <D.23142>;
      <D.23142>:
      offset.444 = (unsigned int) offset;
      D.25879 = offset.444 + 64;
      offset = (int) D.25879;
      saved_fpregs_offset = -offset;
      i = 0;
      goto <D.23148>;
      <D.23147>:
      code.386 = code;
      code.713 = code.386;
      code.714 = code.713 + 1;
      code = code.714;
      *code.713 = 242;
      {
        unsigned char _amd64_rex_bits;

        if (i > 7) goto <D.25883>; else goto <D.25884>;
        <D.25883>:
        iftmp.715 = 4;
        goto <D.25885>;
        <D.25884>:
        iftmp.715 = 0;
        <D.25885>:
        _amd64_rex_bits = iftmp.715;
        if (_amd64_rex_bits != 0) goto <D.25886>; else goto <D.25887>;
        <D.25886>:
        code.386 = code;
        code.716 = code.386;
        code.717 = code.716 + 1;
        code = code.717;
        D.25890 = _amd64_rex_bits | 64;
        *code.716 = D.25890;
        <D.25887>:
      }
      code.386 = code;
      code.718 = code.386;
      code.719 = code.718 + 1;
      code = code.719;
      *code.718 = 15;
      code.386 = code;
      code.720 = code.386;
      code.721 = code.720 + 1;
      code = code.721;
      *code.720 = 17;
      if (0 != 0) goto <D.25895>; else goto <D.25896>;
      <D.25895>:
      D.25897 = (long unsigned int) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25898 = D.25897 + D.25653;
      if (D.25898 == 0) goto <D.25899>; else goto <D.25900>;
      <D.25899>:
      code.386 = code;
      code.722 = code.386;
      code.723 = code.722 + 1;
      code = code.723;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *code.722 = D.25749;
      code.386 = code;
      code.724 = code.386;
      code.725 = code.724 + 1;
      code = code.725;
      *code.724 = 36;
      goto <D.25905>;
      <D.25900>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 >= -128) goto <D.25911>; else goto <D.25906>;
      <D.25911>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 <= 127) goto <D.25912>; else goto <D.25906>;
      <D.25912>:
      code.386 = code;
      code.727 = code.386;
      code.728 = code.727 + 1;
      code = code.728;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *code.727 = D.25760;
      code.386 = code;
      code.729 = code.386;
      code.730 = code.729 + 1;
      code = code.730;
      *code.729 = 36;
      code.386 = code;
      D.25917 = (unsigned char) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25918 = D.25917 + D.25677;
      *code.386 = D.25918;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25907>;
      <D.25906>:
      code.386 = code;
      code.731 = code.386;
      code.732 = code.731 + 1;
      code = code.732;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *code.731 = D.25766;
      code.386 = code;
      code.733 = code.386;
      code.734 = code.733 + 1;
      code = code.734;
      *code.733 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
            D.25909 = D.25665 + saved_fpregs_offset.726;
            D.25910 = (int) D.25909;
            imb.val = D.25910;
            code.386 = code;
            code.735 = code.386;
            code.736 = code.735 + 1;
            code = code.736;
            D.25925 = imb.b[0];
            *code.735 = D.25925;
            code.386 = code;
            code.737 = code.386;
            code.738 = code.737 + 1;
            code = code.738;
            D.25928 = imb.b[1];
            *code.737 = D.25928;
            code.386 = code;
            code.739 = code.386;
            code.740 = code.739 + 1;
            code = code.740;
            D.25931 = imb.b[2];
            *code.739 = D.25931;
            code.386 = code;
            code.741 = code.386;
            code.742 = code.741 + 1;
            code = code.742;
            D.25934 = imb.b[3];
            *code.741 = D.25934;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25907>:
      <D.25905>:
      goto <D.23145>;
      <D.25896>:
      if (0 != 0) goto <D.25935>; else goto <D.25936>;
      <D.25935>:
      code.386 = code;
      code.743 = code.386;
      code.744 = code.743 + 1;
      code = code.744;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25785 = D.25747 | 5;
      D.25786 = (unsigned char) D.25785;
      *code.743 = D.25786;
      goto <D.23145>;
      <D.25936>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 >= -128) goto <D.25941>; else goto <D.25939>;
      <D.25941>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 <= 127) goto <D.25942>; else goto <D.25939>;
      <D.25942>:
      code.386 = code;
      code.745 = code.386;
      code.746 = code.745 + 1;
      code = code.746;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25793 = D.25747 | 69;
      D.25794 = (unsigned char) D.25793;
      *code.745 = D.25794;
      code.386 = code;
      D.25917 = (unsigned char) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25918 = D.25917 + D.25677;
      *code.386 = D.25918;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25940>;
      <D.25939>:
      code.386 = code;
      code.747 = code.386;
      code.748 = code.747 + 1;
      code = code.748;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25797 = D.25747 | -123;
      D.25798 = (unsigned char) D.25797;
      *code.747 = D.25798;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
            D.25909 = D.25665 + saved_fpregs_offset.726;
            D.25910 = (int) D.25909;
            imb.val = D.25910;
            code.386 = code;
            code.749 = code.386;
            code.750 = code.749 + 1;
            code = code.750;
            D.25949 = imb.b[0];
            *code.749 = D.25949;
            code.386 = code;
            code.751 = code.386;
            code.752 = code.751 + 1;
            code = code.752;
            D.25952 = imb.b[1];
            *code.751 = D.25952;
            code.386 = code;
            code.753 = code.386;
            code.754 = code.753 + 1;
            code = code.754;
            D.25955 = imb.b[2];
            *code.753 = D.25955;
            code.386 = code;
            code.755 = code.386;
            code.756 = code.755 + 1;
            code = code.756;
            D.25958 = imb.b[3];
            *code.755 = D.25958;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.25940>:
      <D.23145>:
      i = i + 1;
      <D.23148>:
      if (i <= 7) goto <D.23147>; else goto <D.23149>;
      <D.23149>:
      if (0 != 0) goto <D.25959>; else goto <D.25960>;
      <D.25959>:
      code.386 = code;
      code.757 = code.386;
      code.758 = code.757 + 1;
      code = code.758;
      *code.757 = 102;
      <D.25960>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.25963>; else goto <D.25964>;
        <D.25963>:
        code.386 = code;
        code.759 = code.386;
        code.760 = code.759 + 1;
        code = code.760;
        D.25967 = _amd64_rex_bits | 64;
        *code.759 = D.25967;
        <D.25964>:
      }
      switch (8) <default: <D.23156>, case 1: <D.23151>, case 2: <D.23153>, case 4: <D.23154>, case 8: <D.23155>>
      <D.23151>:
      code.386 = code;
      code.761 = code.386;
      code.762 = code.761 + 1;
      code = code.762;
      *code.761 = 138;
      goto <D.23152>;
      <D.23153>:
      <D.23154>:
      <D.23155>:
      code.386 = code;
      code.763 = code.386;
      code.764 = code.763 + 1;
      code = code.764;
      *code.763 = 139;
      goto <D.23152>;
      <D.23156>:
      __assert_fail ("0", "tramp-amd64.c", 521, &__PRETTY_FUNCTION__);
      <D.23152>:
      code.386 = code;
      code.765 = code.386;
      code.766 = code.765 + 1;
      code = code.766;
      *code.765 = 220;
      if (1 != 0) goto <D.25974>; else goto <D.25975>;
      <D.25974>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.25976>; else goto <D.25977>;
        <D.25976>:
        code.386 = code;
        code.767 = code.386;
        code.768 = code.767 + 1;
        code = code.768;
        D.25980 = _amd64_rex_bits | 64;
        *code.767 = D.25980;
        <D.25977>:
      }
      code.386 = code;
      code.769 = code.386;
      code.770 = code.769 + 1;
      code = code.770;
      *code.769 = 131;
      code.386 = code;
      code.771 = code.386;
      code.772 = code.771 + 1;
      code = code.772;
      *code.771 = 227;
      code.386 = code;
      *code.386 = 15;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.25985>;
      <D.25975>:
      if (0 != 0) goto <D.25986>; else goto <D.25987>;
      <D.25986>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.25988>; else goto <D.25989>;
        <D.25988>:
        code.386 = code;
        code.773 = code.386;
        code.774 = code.773 + 1;
        code = code.774;
        D.25992 = _amd64_rex_bits | 64;
        *code.773 = D.25992;
        <D.25989>:
      }
      code.386 = code;
      code.775 = code.386;
      code.776 = code.775 + 1;
      code = code.776;
      *code.775 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 15;
            code.386 = code;
            code.777 = code.386;
            code.778 = code.777 + 1;
            code = code.778;
            D.25997 = imb.b[0];
            *code.777 = D.25997;
            code.386 = code;
            code.779 = code.386;
            code.780 = code.779 + 1;
            code = code.780;
            D.26000 = imb.b[1];
            *code.779 = D.26000;
            code.386 = code;
            code.781 = code.386;
            code.782 = code.781 + 1;
            code = code.782;
            D.26003 = imb.b[2];
            *code.781 = D.26003;
            code.386 = code;
            code.783 = code.386;
            code.784 = code.783 + 1;
            code = code.784;
            D.26006 = imb.b[3];
            *code.783 = D.26006;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26007>;
      <D.25987>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.26008>; else goto <D.26009>;
        <D.26008>:
        code.386 = code;
        code.785 = code.386;
        code.786 = code.785 + 1;
        code = code.786;
        D.26012 = _amd64_rex_bits | 64;
        *code.785 = D.26012;
        <D.26009>:
      }
      code.386 = code;
      code.787 = code.386;
      code.788 = code.787 + 1;
      code = code.788;
      *code.787 = 129;
      code.386 = code;
      code.789 = code.386;
      code.790 = code.789 + 1;
      code = code.790;
      *code.789 = 227;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 15;
            code.386 = code;
            code.791 = code.386;
            code.792 = code.791 + 1;
            code = code.792;
            D.26019 = imb.b[0];
            *code.791 = D.26019;
            code.386 = code;
            code.793 = code.386;
            code.794 = code.793 + 1;
            code = code.794;
            D.26022 = imb.b[1];
            *code.793 = D.26022;
            code.386 = code;
            code.795 = code.386;
            code.796 = code.795 + 1;
            code = code.796;
            D.26025 = imb.b[2];
            *code.795 = D.26025;
            code.386 = code;
            code.797 = code.386;
            code.798 = code.797 + 1;
            code = code.798;
            D.26028 = imb.b[3];
            *code.797 = D.26028;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26007>:
      <D.25985>:
      if (1 != 0) goto <D.26029>; else goto <D.26030>;
      <D.26029>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.26031>; else goto <D.26032>;
        <D.26031>:
        code.386 = code;
        code.799 = code.386;
        code.800 = code.799 + 1;
        code = code.800;
        D.26035 = _amd64_rex_bits | 64;
        *code.799 = D.26035;
        <D.26032>:
      }
      code.386 = code;
      code.801 = code.386;
      code.802 = code.801 + 1;
      code = code.802;
      *code.801 = 131;
      code.386 = code;
      code.803 = code.386;
      code.804 = code.803 + 1;
      code = code.804;
      *code.803 = 251;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26040>;
      <D.26030>:
      if (0 != 0) goto <D.26041>; else goto <D.26042>;
      <D.26041>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.26043>; else goto <D.26044>;
        <D.26043>:
        code.386 = code;
        code.805 = code.386;
        code.806 = code.805 + 1;
        code = code.806;
        D.26047 = _amd64_rex_bits | 64;
        *code.805 = D.26047;
        <D.26044>:
      }
      code.386 = code;
      code.807 = code.386;
      code.808 = code.807 + 1;
      code = code.808;
      *code.807 = 61;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.809 = code.386;
            code.810 = code.809 + 1;
            code = code.810;
            D.26052 = imb.b[0];
            *code.809 = D.26052;
            code.386 = code;
            code.811 = code.386;
            code.812 = code.811 + 1;
            code = code.812;
            D.26055 = imb.b[1];
            *code.811 = D.26055;
            code.386 = code;
            code.813 = code.386;
            code.814 = code.813 + 1;
            code = code.814;
            D.26058 = imb.b[2];
            *code.813 = D.26058;
            code.386 = code;
            code.815 = code.386;
            code.816 = code.815 + 1;
            code = code.816;
            D.26061 = imb.b[3];
            *code.815 = D.26061;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26062>;
      <D.26042>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.26063>; else goto <D.26064>;
        <D.26063>:
        code.386 = code;
        code.817 = code.386;
        code.818 = code.817 + 1;
        code = code.818;
        D.26067 = _amd64_rex_bits | 64;
        *code.817 = D.26067;
        <D.26064>:
      }
      code.386 = code;
      code.819 = code.386;
      code.820 = code.819 + 1;
      code = code.820;
      *code.819 = 129;
      code.386 = code;
      code.821 = code.386;
      code.822 = code.821 + 1;
      code = code.822;
      *code.821 = 251;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.823 = code.386;
            code.824 = code.823 + 1;
            code = code.824;
            D.26074 = imb.b[0];
            *code.823 = D.26074;
            code.386 = code;
            code.825 = code.386;
            code.826 = code.825 + 1;
            code = code.826;
            D.26077 = imb.b[1];
            *code.825 = D.26077;
            code.386 = code;
            code.827 = code.386;
            code.828 = code.827 + 1;
            code = code.828;
            D.26080 = imb.b[2];
            *code.827 = D.26080;
            code.386 = code;
            code.829 = code.386;
            code.830 = code.829 + 1;
            code = code.830;
            D.26083 = imb.b[3];
            *code.829 = D.26083;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26062>:
      <D.26040>:
      code.386 = code;
      br[0] = code.386;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.26084>; else goto <D.26085>;
        <D.26084>:
        code.386 = code;
        code.831 = code.386;
        code.832 = code.831 + 1;
        code = code.832;
        D.26088 = _amd64_rex_bits | 64;
        *code.831 = D.26088;
        <D.26085>:
      }
      {
        int offset;

        offset = -2;
        offset.833 = (unsigned int) offset;
        D.26090 = offset.833 + 128;
        if (D.26090 <= 255) goto <D.26091>; else goto <D.26092>;
        <D.26091>:
        if (0 != 0) goto <D.26093>; else goto <D.26094>;
        <D.26093>:
        code.386 = code;
        code.834 = code.386;
        code.835 = code.834 + 1;
        code = code.835;
        D.26097 = 116;
        *code.834 = D.26097;
        goto <D.26098>;
        <D.26094>:
        code.386 = code;
        code.836 = code.386;
        code.837 = code.836 + 1;
        code = code.837;
        D.26101 = 116;
        *code.836 = D.26101;
        <D.26098>:
        code.386 = code;
        D.26102 = (unsigned char) offset;
        *code.386 = D.26102;
        code.386 = code;
        code.417 = code.386 + 1;
        code = code.417;
        goto <D.26103>;
        <D.26092>:
        offset = offset + -4;
        code.386 = code;
        code.838 = code.386;
        code.839 = code.838 + 1;
        code = code.839;
        *code.838 = 15;
        if (0 != 0) goto <D.26106>; else goto <D.26107>;
        <D.26106>:
        code.386 = code;
        code.840 = code.386;
        code.841 = code.840 + 1;
        code = code.841;
        D.26097 = 116;
        D.26110 = D.26097 + 16;
        *code.840 = D.26110;
        goto <D.26111>;
        <D.26107>:
        code.386 = code;
        code.842 = code.386;
        code.843 = code.842 + 1;
        code = code.843;
        D.26101 = 116;
        D.26114 = D.26101 + 16;
        *code.842 = D.26114;
        <D.26111>:
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = offset;
              code.386 = code;
              code.844 = code.386;
              code.845 = code.844 + 1;
              code = code.845;
              D.26117 = imb.b[0];
              *code.844 = D.26117;
              code.386 = code;
              code.846 = code.386;
              code.847 = code.846 + 1;
              code = code.847;
              D.26120 = imb.b[1];
              *code.846 = D.26120;
              code.386 = code;
              code.848 = code.386;
              code.849 = code.848 + 1;
              code = code.849;
              D.26123 = imb.b[2];
              *code.848 = D.26123;
              code.386 = code;
              code.850 = code.386;
              code.851 = code.850 + 1;
              code = code.851;
              D.26126 = imb.b[3];
              *code.850 = D.26126;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.26103>:
      }
      if (aot != 0) goto <D.26127>; else goto <D.26128>;
      <D.26127>:
      {
        int _amd64_width_temp;

        _amd64_width_temp = 1;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.26130>; else goto <D.26131>;
          <D.26130>:
          iftmp.852 = 9;
          goto <D.26132>;
          <D.26131>:
          iftmp.852 = 1;
          <D.26132>:
          _amd64_rex_bits = iftmp.852;
          if (_amd64_rex_bits != 0) goto <D.26133>; else goto <D.26134>;
          <D.26133>:
          code.386 = code;
          code.853 = code.386;
          code.854 = code.853 + 1;
          code = code.854;
          D.26137 = _amd64_rex_bits | 64;
          *code.853 = D.26137;
          <D.26134>:
        }
        code.386 = code;
        code.855 = code.386;
        code.856 = code.855 + 1;
        code = code.856;
        *code.855 = 187;
        if (_amd64_width_temp == 0) goto <D.26140>; else goto <D.26141>;
        <D.26140>:
        {
          union amd64_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.857 = code.386;
              code.858 = code.857 + 1;
              code = code.858;
              D.26144 = imb.b[0];
              *code.857 = D.26144;
              code.386 = code;
              code.859 = code.386;
              code.860 = code.859 + 1;
              code = code.860;
              D.26147 = imb.b[1];
              *code.859 = D.26147;
              code.386 = code;
              code.861 = code.386;
              code.862 = code.861 + 1;
              code = code.862;
              D.26150 = imb.b[2];
              *code.861 = D.26150;
              code.386 = code;
              code.863 = code.386;
              code.864 = code.863 + 1;
              code = code.864;
              D.26153 = imb.b[3];
              *code.863 = D.26153;
              code.386 = code;
              code.865 = code.386;
              code.866 = code.865 + 1;
              code = code.866;
              D.26156 = imb.b[4];
              *code.865 = D.26156;
              code.386 = code;
              code.867 = code.386;
              code.868 = code.867 + 1;
              code = code.868;
              D.26159 = imb.b[5];
              *code.867 = D.26159;
              code.386 = code;
              code.869 = code.386;
              code.870 = code.869 + 1;
              code = code.870;
              D.26162 = imb.b[6];
              *code.869 = D.26162;
              code.386 = code;
              code.871 = code.386;
              code.872 = code.871 + 1;
              code = code.872;
              D.26165 = imb.b[7];
              *code.871 = D.26165;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.26166>;
        <D.26141>:
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.873 = code.386;
              code.874 = code.873 + 1;
              code = code.874;
              D.26169 = imb.b[0];
              *code.873 = D.26169;
              code.386 = code;
              code.875 = code.386;
              code.876 = code.875 + 1;
              code = code.876;
              D.26172 = imb.b[1];
              *code.875 = D.26172;
              code.386 = code;
              code.877 = code.386;
              code.878 = code.877 + 1;
              code = code.878;
              D.26175 = imb.b[2];
              *code.877 = D.26175;
              code.386 = code;
              code.879 = code.386;
              code.880 = code.879 + 1;
              code = code.880;
              D.26178 = imb.b[3];
              *code.879 = D.26178;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.26166>:
      }
      if (0 != 0) goto <D.26179>; else goto <D.26180>;
      <D.26179>:
      code.386 = code;
      code.881 = code.386;
      code.882 = code.881 + 1;
      code = code.882;
      *code.881 = 102;
      <D.26180>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 13;
        if (_amd64_rex_bits != 0) goto <D.26183>; else goto <D.26184>;
        <D.26183>:
        code.386 = code;
        code.883 = code.386;
        code.884 = code.883 + 1;
        code = code.884;
        D.26187 = _amd64_rex_bits | 64;
        *code.883 = D.26187;
        <D.26184>:
      }
      switch (8) <default: <D.23180>, case 1: <D.23175>, case 2: <D.23177>, case 4: <D.23178>, case 8: <D.23179>>
      <D.23175>:
      code.386 = code;
      code.885 = code.386;
      code.886 = code.885 + 1;
      code = code.886;
      *code.885 = 138;
      goto <D.23176>;
      <D.23177>:
      <D.23178>:
      <D.23179>:
      code.386 = code;
      code.887 = code.386;
      code.888 = code.887 + 1;
      code = code.888;
      *code.887 = 139;
      goto <D.23176>;
      <D.23180>:
      __assert_fail ("0", "tramp-amd64.c", 528, &__PRETTY_FUNCTION__);
      <D.23176>:
      if (0 != 0) goto <D.26192>; else goto <D.26193>;
      <D.26192>:
      code.386 = code;
      code.889 = code.386;
      code.890 = code.889 + 1;
      code = code.890;
      *code.889 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.891 = code.386;
            code.892 = code.891 + 1;
            code = code.892;
            D.26198 = imb.b[0];
            *code.891 = D.26198;
            code.386 = code;
            code.893 = code.386;
            code.894 = code.893 + 1;
            code = code.894;
            D.26201 = imb.b[1];
            *code.893 = D.26201;
            code.386 = code;
            code.895 = code.386;
            code.896 = code.895 + 1;
            code = code.896;
            D.26204 = imb.b[2];
            *code.895 = D.26204;
            code.386 = code;
            code.897 = code.386;
            code.898 = code.897 + 1;
            code = code.898;
            D.26207 = imb.b[3];
            *code.897 = D.26207;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26208>;
      <D.26193>:
      if (0 != 0) goto <D.26209>; else goto <D.26210>;
      <D.26209>:
      if (1 != 0) goto <D.26211>; else goto <D.26212>;
      <D.26211>:
      code.386 = code;
      code.899 = code.386;
      code.900 = code.899 + 1;
      code = code.900;
      *code.899 = 28;
      code.386 = code;
      code.901 = code.386;
      code.902 = code.901 + 1;
      code = code.902;
      *code.901 = 36;
      goto <D.26217>;
      <D.26212>:
      if (1 != 0) goto <D.26218>; else goto <D.26219>;
      <D.26218>:
      code.386 = code;
      code.903 = code.386;
      code.904 = code.903 + 1;
      code = code.904;
      *code.903 = 92;
      code.386 = code;
      code.905 = code.386;
      code.906 = code.905 + 1;
      code = code.906;
      *code.905 = 36;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26224>;
      <D.26219>:
      code.386 = code;
      code.907 = code.386;
      code.908 = code.907 + 1;
      code = code.908;
      *code.907 = 156;
      code.386 = code;
      code.909 = code.386;
      code.910 = code.909 + 1;
      code = code.910;
      *code.909 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.911 = code.386;
            code.912 = code.911 + 1;
            code = code.912;
            D.26231 = imb.b[0];
            *code.911 = D.26231;
            code.386 = code;
            code.913 = code.386;
            code.914 = code.913 + 1;
            code = code.914;
            D.26234 = imb.b[1];
            *code.913 = D.26234;
            code.386 = code;
            code.915 = code.386;
            code.916 = code.915 + 1;
            code = code.916;
            D.26237 = imb.b[2];
            *code.915 = D.26237;
            code.386 = code;
            code.917 = code.386;
            code.918 = code.917 + 1;
            code = code.918;
            D.26240 = imb.b[3];
            *code.917 = D.26240;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26224>:
      <D.26217>:
      goto <D.23183>;
      <D.26210>:
      if (1 != 0) goto <D.26241>; else goto <D.26242>;
      <D.26241>:
      code.386 = code;
      code.919 = code.386;
      code.920 = code.919 + 1;
      code = code.920;
      *code.919 = 27;
      goto <D.23183>;
      <D.26242>:
      if (1 != 0) goto <D.26245>; else goto <D.26246>;
      <D.26245>:
      code.386 = code;
      code.921 = code.386;
      code.922 = code.921 + 1;
      code = code.922;
      *code.921 = 91;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26249>;
      <D.26246>:
      code.386 = code;
      code.923 = code.386;
      code.924 = code.923 + 1;
      code = code.924;
      *code.923 = 155;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.925 = code.386;
            code.926 = code.925 + 1;
            code = code.926;
            D.26254 = imb.b[0];
            *code.925 = D.26254;
            code.386 = code;
            code.927 = code.386;
            code.928 = code.927 + 1;
            code = code.928;
            D.26257 = imb.b[1];
            *code.927 = D.26257;
            code.386 = code;
            code.929 = code.386;
            code.930 = code.929 + 1;
            code = code.930;
            D.26260 = imb.b[2];
            *code.929 = D.26260;
            code.386 = code;
            code.931 = code.386;
            code.932 = code.931 + 1;
            code = code.932;
            D.26263 = imb.b[3];
            *code.931 = D.26263;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26249>:
      <D.23183>:
      <D.26208>:
      goto <D.26264>;
      <D.26128>:
      {
        int _amd64_width_temp;

        D.26265 = (long unsigned int) tramp_type;
        tramp_type.933 = (int) tramp_type;
        D.26267 = (long unsigned int) tramp_type.933;
        D.26268 = D.26265 == D.26267;
        _amd64_width_temp = (int) D.26268;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.26270>; else goto <D.26271>;
          <D.26270>:
          iftmp.934 = 8;
          goto <D.26272>;
          <D.26271>:
          iftmp.934 = 0;
          <D.26272>:
          _amd64_rex_bits = iftmp.934;
          if (_amd64_rex_bits != 0) goto <D.26273>; else goto <D.26274>;
          <D.26273>:
          code.386 = code;
          code.935 = code.386;
          code.936 = code.935 + 1;
          code = code.936;
          D.26277 = _amd64_rex_bits | 64;
          *code.935 = D.26277;
          <D.26274>:
        }
        code.386 = code;
        code.937 = code.386;
        code.938 = code.937 + 1;
        code = code.938;
        *code.937 = 191;
        if (_amd64_width_temp == 0) goto <D.26280>; else goto <D.26281>;
        <D.26280>:
        {
          union amd64_imm_buf imb;

          try
            {
              D.26265 = (long unsigned int) tramp_type;
              imb.val = D.26265;
              code.386 = code;
              code.939 = code.386;
              code.940 = code.939 + 1;
              code = code.940;
              D.26284 = imb.b[0];
              *code.939 = D.26284;
              code.386 = code;
              code.941 = code.386;
              code.942 = code.941 + 1;
              code = code.942;
              D.26287 = imb.b[1];
              *code.941 = D.26287;
              code.386 = code;
              code.943 = code.386;
              code.944 = code.943 + 1;
              code = code.944;
              D.26290 = imb.b[2];
              *code.943 = D.26290;
              code.386 = code;
              code.945 = code.386;
              code.946 = code.945 + 1;
              code = code.946;
              D.26293 = imb.b[3];
              *code.945 = D.26293;
              code.386 = code;
              code.947 = code.386;
              code.948 = code.947 + 1;
              code = code.948;
              D.26296 = imb.b[4];
              *code.947 = D.26296;
              code.386 = code;
              code.949 = code.386;
              code.950 = code.949 + 1;
              code = code.950;
              D.26299 = imb.b[5];
              *code.949 = D.26299;
              code.386 = code;
              code.951 = code.386;
              code.952 = code.951 + 1;
              code = code.952;
              D.26302 = imb.b[6];
              *code.951 = D.26302;
              code.386 = code;
              code.953 = code.386;
              code.954 = code.953 + 1;
              code = code.954;
              D.26305 = imb.b[7];
              *code.953 = D.26305;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.26306>;
        <D.26281>:
        {
          union x86_imm_buf imb;

          try
            {
              tramp_type.933 = (int) tramp_type;
              imb.val = tramp_type.933;
              code.386 = code;
              code.955 = code.386;
              code.956 = code.955 + 1;
              code = code.956;
              D.26309 = imb.b[0];
              *code.955 = D.26309;
              code.386 = code;
              code.957 = code.386;
              code.958 = code.957 + 1;
              code = code.958;
              D.26312 = imb.b[1];
              *code.957 = D.26312;
              code.386 = code;
              code.959 = code.386;
              code.960 = code.959 + 1;
              code = code.960;
              D.26315 = imb.b[2];
              *code.959 = D.26315;
              code.386 = code;
              code.961 = code.386;
              code.962 = code.961 + 1;
              code = code.962;
              D.26318 = imb.b[3];
              *code.961 = D.26318;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.26306>:
      }
      {
        int _amd64_width_temp;

        stack_unaligned.963 = (long int) stack_unaligned;
        D.26320 = (int) stack_unaligned.963;
        D.26321 = (long unsigned int) D.26320;
        stack_unaligned.964 = (long unsigned int) stack_unaligned;
        D.26323 = D.26321 == stack_unaligned.964;
        _amd64_width_temp = (int) D.26323;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.26325>; else goto <D.26326>;
          <D.26325>:
          iftmp.965 = 9;
          goto <D.26327>;
          <D.26326>:
          iftmp.965 = 1;
          <D.26327>:
          _amd64_rex_bits = iftmp.965;
          if (_amd64_rex_bits != 0) goto <D.26328>; else goto <D.26329>;
          <D.26328>:
          code.386 = code;
          code.966 = code.386;
          code.967 = code.966 + 1;
          code = code.967;
          D.26332 = _amd64_rex_bits | 64;
          *code.966 = D.26332;
          <D.26329>:
        }
        code.386 = code;
        code.968 = code.386;
        code.969 = code.968 + 1;
        code = code.969;
        *code.968 = 187;
        if (_amd64_width_temp == 0) goto <D.26335>; else goto <D.26336>;
        <D.26335>:
        {
          union amd64_imm_buf imb;

          try
            {
              stack_unaligned.964 = (long unsigned int) stack_unaligned;
              imb.val = stack_unaligned.964;
              code.386 = code;
              code.970 = code.386;
              code.971 = code.970 + 1;
              code = code.971;
              D.26339 = imb.b[0];
              *code.970 = D.26339;
              code.386 = code;
              code.972 = code.386;
              code.973 = code.972 + 1;
              code = code.973;
              D.26342 = imb.b[1];
              *code.972 = D.26342;
              code.386 = code;
              code.974 = code.386;
              code.975 = code.974 + 1;
              code = code.975;
              D.26345 = imb.b[2];
              *code.974 = D.26345;
              code.386 = code;
              code.976 = code.386;
              code.977 = code.976 + 1;
              code = code.977;
              D.26348 = imb.b[3];
              *code.976 = D.26348;
              code.386 = code;
              code.978 = code.386;
              code.979 = code.978 + 1;
              code = code.979;
              D.26351 = imb.b[4];
              *code.978 = D.26351;
              code.386 = code;
              code.980 = code.386;
              code.981 = code.980 + 1;
              code = code.981;
              D.26354 = imb.b[5];
              *code.980 = D.26354;
              code.386 = code;
              code.982 = code.386;
              code.983 = code.982 + 1;
              code = code.983;
              D.26357 = imb.b[6];
              *code.982 = D.26357;
              code.386 = code;
              code.984 = code.386;
              code.985 = code.984 + 1;
              code = code.985;
              D.26360 = imb.b[7];
              *code.984 = D.26360;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.26361>;
        <D.26336>:
        {
          union x86_imm_buf imb;

          try
            {
              stack_unaligned.963 = (long int) stack_unaligned;
              D.26320 = (int) stack_unaligned.963;
              imb.val = D.26320;
              code.386 = code;
              code.986 = code.386;
              code.987 = code.986 + 1;
              code = code.987;
              D.26364 = imb.b[0];
              *code.986 = D.26364;
              code.386 = code;
              code.988 = code.386;
              code.989 = code.988 + 1;
              code = code.989;
              D.26367 = imb.b[1];
              *code.988 = D.26367;
              code.386 = code;
              code.990 = code.386;
              code.991 = code.990 + 1;
              code = code.991;
              D.26370 = imb.b[2];
              *code.990 = D.26370;
              code.386 = code;
              code.992 = code.386;
              code.993 = code.992 + 1;
              code = code.993;
              D.26373 = imb.b[3];
              *code.992 = D.26373;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.26361>:
      }
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.26374>; else goto <D.26375>;
        <D.26374>:
        code.386 = code;
        code.994 = code.386;
        code.995 = code.994 + 1;
        code = code.995;
        D.26378 = _amd64_rex_bits | 64;
        *code.994 = D.26378;
        <D.26375>:
      }
      code.386 = code;
      code.996 = code.386;
      code.997 = code.996 + 1;
      code = code.997;
      *code.996 = 255;
      code.386 = code;
      code.998 = code.386;
      code.999 = code.998 + 1;
      code = code.999;
      *code.998 = 211;
      <D.26264>:
      code.386 = code;
      D.26383 = br[0];
      mono_amd64_patch (D.26383, code.386);
      D.26385 = tramp_type != 3;
      D.26386 = tramp_type != 10;
      D.26387 = D.26385 & D.26386;
      if (D.26387 != 0) goto <D.26388>; else goto <D.26384>;
      <D.26388>:
      D.26389 = tramp_type != 11;
      D.26390 = tramp_type != 13;
      D.26391 = D.26389 & D.26390;
      if (D.26391 != 0) goto <D.26392>; else goto <D.26384>;
      <D.26392>:
      if (aot != 0) goto <D.26393>; else goto <D.26394>;
      <D.26393>:
      if (0 != 0) goto <D.26395>; else goto <D.26396>;
      <D.26395>:
      code.386 = code;
      code.1000 = code.386;
      code.1001 = code.1000 + 1;
      code = code.1001;
      *code.1000 = 102;
      <D.26396>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.26399>; else goto <D.26400>;
        <D.26399>:
        code.386 = code;
        code.1002 = code.386;
        code.1003 = code.1002 + 1;
        code = code.1003;
        D.26403 = _amd64_rex_bits | 64;
        *code.1002 = D.26403;
        <D.26400>:
      }
      switch (8) <default: <D.23200>, case 1: <D.23195>, case 2: <D.23197>, case 4: <D.23198>, case 8: <D.23199>>
      <D.23195>:
      code.386 = code;
      code.1004 = code.386;
      code.1005 = code.1004 + 1;
      code = code.1005;
      *code.1004 = 138;
      goto <D.23196>;
      <D.23197>:
      <D.23198>:
      <D.23199>:
      code.386 = code;
      code.1006 = code.386;
      code.1007 = code.1006 + 1;
      code = code.1007;
      *code.1006 = 139;
      goto <D.23196>;
      <D.23200>:
      __assert_fail ("0", "tramp-amd64.c", 545, &__PRETTY_FUNCTION__);
      <D.23196>:
      if (0 != 0) goto <D.26408>; else goto <D.26409>;
      <D.26408>:
      code.386 = code;
      code.1008 = code.386;
      code.1009 = code.1008 + 1;
      code = code.1009;
      *code.1008 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1010 = code.386;
            code.1011 = code.1010 + 1;
            code = code.1011;
            D.26414 = imb.b[0];
            *code.1010 = D.26414;
            code.386 = code;
            code.1012 = code.386;
            code.1013 = code.1012 + 1;
            code = code.1013;
            D.26417 = imb.b[1];
            *code.1012 = D.26417;
            code.386 = code;
            code.1014 = code.386;
            code.1015 = code.1014 + 1;
            code = code.1015;
            D.26420 = imb.b[2];
            *code.1014 = D.26420;
            code.386 = code;
            code.1016 = code.386;
            code.1017 = code.1016 + 1;
            code = code.1017;
            D.26423 = imb.b[3];
            *code.1016 = D.26423;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26424>;
      <D.26409>:
      if (0 != 0) goto <D.26425>; else goto <D.26426>;
      <D.26425>:
      if (tramp_offset == 0) goto <D.26427>; else goto <D.26428>;
      <D.26427>:
      code.386 = code;
      code.1018 = code.386;
      code.1019 = code.1018 + 1;
      code = code.1019;
      *code.1018 = 28;
      code.386 = code;
      code.1020 = code.386;
      code.1021 = code.1020 + 1;
      code = code.1021;
      *code.1020 = 36;
      goto <D.26433>;
      <D.26428>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.26434>; else goto <D.26435>;
      <D.26434>:
      code.386 = code;
      code.1022 = code.386;
      code.1023 = code.1022 + 1;
      code = code.1023;
      *code.1022 = 92;
      code.386 = code;
      code.1024 = code.386;
      code.1025 = code.1024 + 1;
      code = code.1025;
      *code.1024 = 36;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26440>;
      <D.26435>:
      code.386 = code;
      code.1026 = code.386;
      code.1027 = code.1026 + 1;
      code = code.1027;
      *code.1026 = 156;
      code.386 = code;
      code.1028 = code.386;
      code.1029 = code.1028 + 1;
      code = code.1029;
      *code.1028 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1030 = code.386;
            code.1031 = code.1030 + 1;
            code = code.1031;
            D.26447 = imb.b[0];
            *code.1030 = D.26447;
            code.386 = code;
            code.1032 = code.386;
            code.1033 = code.1032 + 1;
            code = code.1033;
            D.26450 = imb.b[1];
            *code.1032 = D.26450;
            code.386 = code;
            code.1034 = code.386;
            code.1035 = code.1034 + 1;
            code = code.1035;
            D.26453 = imb.b[2];
            *code.1034 = D.26453;
            code.386 = code;
            code.1036 = code.386;
            code.1037 = code.1036 + 1;
            code = code.1037;
            D.26456 = imb.b[3];
            *code.1036 = D.26456;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26440>:
      <D.26433>:
      goto <D.23203>;
      <D.26426>:
      if (0 != 0) goto <D.26457>; else goto <D.26458>;
      <D.26457>:
      code.386 = code;
      code.1038 = code.386;
      code.1039 = code.1038 + 1;
      code = code.1039;
      *code.1038 = 29;
      goto <D.23203>;
      <D.26458>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.26461>; else goto <D.26462>;
      <D.26461>:
      code.386 = code;
      code.1040 = code.386;
      code.1041 = code.1040 + 1;
      code = code.1041;
      *code.1040 = 93;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26465>;
      <D.26462>:
      code.386 = code;
      code.1042 = code.386;
      code.1043 = code.1042 + 1;
      code = code.1043;
      *code.1042 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1044 = code.386;
            code.1045 = code.1044 + 1;
            code = code.1045;
            D.26470 = imb.b[0];
            *code.1044 = D.26470;
            code.386 = code;
            code.1046 = code.386;
            code.1047 = code.1046 + 1;
            code = code.1047;
            D.26473 = imb.b[1];
            *code.1046 = D.26473;
            code.386 = code;
            code.1048 = code.386;
            code.1049 = code.1048 + 1;
            code = code.1049;
            D.26476 = imb.b[2];
            *code.1048 = D.26476;
            code.386 = code;
            code.1050 = code.386;
            code.1051 = code.1050 + 1;
            code = code.1051;
            D.26479 = imb.b[3];
            *code.1050 = D.26479;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26465>:
      <D.23203>:
      <D.26424>:
      if (0 != 0) goto <D.26480>; else goto <D.26481>;
      <D.26480>:
      code.386 = code;
      code.1052 = code.386;
      code.1053 = code.1052 + 1;
      code = code.1053;
      *code.1052 = 102;
      <D.26481>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.26484>; else goto <D.26485>;
        <D.26484>:
        code.386 = code;
        code.1054 = code.386;
        code.1055 = code.1054 + 1;
        code = code.1055;
        D.26488 = _amd64_rex_bits | 64;
        *code.1054 = D.26488;
        <D.26485>:
      }
      switch (4) <default: <D.23211>, case 1: <D.23206>, case 2: <D.23208>, case 4: <D.23209>, case 8: <D.23210>>
      <D.23206>:
      code.386 = code;
      code.1056 = code.386;
      code.1057 = code.1056 + 1;
      code = code.1057;
      *code.1056 = 138;
      goto <D.23207>;
      <D.23208>:
      <D.23209>:
      <D.23210>:
      code.386 = code;
      code.1058 = code.386;
      code.1059 = code.1058 + 1;
      code = code.1059;
      *code.1058 = 139;
      goto <D.23207>;
      <D.23211>:
      __assert_fail ("0", "tramp-amd64.c", 547, &__PRETTY_FUNCTION__);
      <D.23207>:
      if (0 != 0) goto <D.26493>; else goto <D.26494>;
      <D.26493>:
      code.386 = code;
      code.1060 = code.386;
      code.1061 = code.1060 + 1;
      code = code.1061;
      *code.1060 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 7;
            code.386 = code;
            code.1062 = code.386;
            code.1063 = code.1062 + 1;
            code = code.1063;
            D.26499 = imb.b[0];
            *code.1062 = D.26499;
            code.386 = code;
            code.1064 = code.386;
            code.1065 = code.1064 + 1;
            code = code.1065;
            D.26502 = imb.b[1];
            *code.1064 = D.26502;
            code.386 = code;
            code.1066 = code.386;
            code.1067 = code.1066 + 1;
            code = code.1067;
            D.26505 = imb.b[2];
            *code.1066 = D.26505;
            code.386 = code;
            code.1068 = code.386;
            code.1069 = code.1068 + 1;
            code = code.1069;
            D.26508 = imb.b[3];
            *code.1068 = D.26508;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26509>;
      <D.26494>:
      if (0 != 0) goto <D.26510>; else goto <D.26511>;
      <D.26510>:
      if (0 != 0) goto <D.26512>; else goto <D.26513>;
      <D.26512>:
      code.386 = code;
      code.1070 = code.386;
      code.1071 = code.1070 + 1;
      code = code.1071;
      *code.1070 = 4;
      code.386 = code;
      code.1072 = code.386;
      code.1073 = code.1072 + 1;
      code = code.1073;
      *code.1072 = 36;
      goto <D.26518>;
      <D.26513>:
      if (1 != 0) goto <D.26519>; else goto <D.26520>;
      <D.26519>:
      code.386 = code;
      code.1074 = code.386;
      code.1075 = code.1074 + 1;
      code = code.1075;
      *code.1074 = 68;
      code.386 = code;
      code.1076 = code.386;
      code.1077 = code.1076 + 1;
      code = code.1077;
      *code.1076 = 36;
      code.386 = code;
      *code.386 = 7;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26525>;
      <D.26520>:
      code.386 = code;
      code.1078 = code.386;
      code.1079 = code.1078 + 1;
      code = code.1079;
      *code.1078 = 132;
      code.386 = code;
      code.1080 = code.386;
      code.1081 = code.1080 + 1;
      code = code.1081;
      *code.1080 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 7;
            code.386 = code;
            code.1082 = code.386;
            code.1083 = code.1082 + 1;
            code = code.1083;
            D.26532 = imb.b[0];
            *code.1082 = D.26532;
            code.386 = code;
            code.1084 = code.386;
            code.1085 = code.1084 + 1;
            code = code.1085;
            D.26535 = imb.b[1];
            *code.1084 = D.26535;
            code.386 = code;
            code.1086 = code.386;
            code.1087 = code.1086 + 1;
            code = code.1087;
            D.26538 = imb.b[2];
            *code.1086 = D.26538;
            code.386 = code;
            code.1088 = code.386;
            code.1089 = code.1088 + 1;
            code = code.1089;
            D.26541 = imb.b[3];
            *code.1088 = D.26541;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26525>:
      <D.26518>:
      goto <D.23214>;
      <D.26511>:
      if (0 != 0) goto <D.26542>; else goto <D.26543>;
      <D.26542>:
      code.386 = code;
      code.1090 = code.386;
      code.1091 = code.1090 + 1;
      code = code.1091;
      *code.1090 = 3;
      goto <D.23214>;
      <D.26543>:
      if (1 != 0) goto <D.26546>; else goto <D.26547>;
      <D.26546>:
      code.386 = code;
      code.1092 = code.386;
      code.1093 = code.1092 + 1;
      code = code.1093;
      *code.1092 = 67;
      code.386 = code;
      *code.386 = 7;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26550>;
      <D.26547>:
      code.386 = code;
      code.1094 = code.386;
      code.1095 = code.1094 + 1;
      code = code.1095;
      *code.1094 = 131;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 7;
            code.386 = code;
            code.1096 = code.386;
            code.1097 = code.1096 + 1;
            code = code.1097;
            D.26555 = imb.b[0];
            *code.1096 = D.26555;
            code.386 = code;
            code.1098 = code.386;
            code.1099 = code.1098 + 1;
            code = code.1099;
            D.26558 = imb.b[1];
            *code.1098 = D.26558;
            code.386 = code;
            code.1100 = code.386;
            code.1101 = code.1100 + 1;
            code = code.1101;
            D.26561 = imb.b[2];
            *code.1100 = D.26561;
            code.386 = code;
            code.1102 = code.386;
            code.1103 = code.1102 + 1;
            code = code.1103;
            D.26564 = imb.b[3];
            *code.1102 = D.26564;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26550>:
      <D.23214>:
      <D.26509>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.26565>; else goto <D.26566>;
        <D.26565>:
        code.386 = code;
        code.1104 = code.386;
        code.1105 = code.1104 + 1;
        code = code.1105;
        D.26569 = _amd64_rex_bits | 64;
        *code.1104 = D.26569;
        <D.26566>:
      }
      code.386 = code;
      code.1106 = code.386;
      code.1107 = code.1106 + 1;
      code = code.1107;
      *code.1106 = 3;
      code.386 = code;
      code.1108 = code.386;
      code.1109 = code.1108 + 1;
      code = code.1109;
      *code.1108 = 216;
      if (0 != 0) goto <D.26574>; else goto <D.26575>;
      <D.26574>:
      code.386 = code;
      code.1110 = code.386;
      code.1111 = code.1110 + 1;
      code = code.1111;
      *code.1110 = 102;
      <D.26575>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 13;
        if (_amd64_rex_bits != 0) goto <D.26578>; else goto <D.26579>;
        <D.26578>:
        code.386 = code;
        code.1112 = code.386;
        code.1113 = code.1112 + 1;
        code = code.1113;
        D.26582 = _amd64_rex_bits | 64;
        *code.1112 = D.26582;
        <D.26579>:
      }
      switch (8) <default: <D.23223>, case 1: <D.23218>, case 2: <D.23220>, case 4: <D.23221>, case 8: <D.23222>>
      <D.23218>:
      code.386 = code;
      code.1114 = code.386;
      code.1115 = code.1114 + 1;
      code = code.1115;
      *code.1114 = 138;
      goto <D.23219>;
      <D.23220>:
      <D.23221>:
      <D.23222>:
      code.386 = code;
      code.1116 = code.386;
      code.1117 = code.1116 + 1;
      code = code.1117;
      *code.1116 = 139;
      goto <D.23219>;
      <D.23223>:
      __assert_fail ("0", "tramp-amd64.c", 556, &__PRETTY_FUNCTION__);
      <D.23219>:
      if (0 != 0) goto <D.26587>; else goto <D.26588>;
      <D.26587>:
      code.386 = code;
      code.1118 = code.386;
      code.1119 = code.1118 + 1;
      code = code.1119;
      *code.1118 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.1120 = code.386;
            code.1121 = code.1120 + 1;
            code = code.1121;
            D.26593 = imb.b[0];
            *code.1120 = D.26593;
            code.386 = code;
            code.1122 = code.386;
            code.1123 = code.1122 + 1;
            code = code.1123;
            D.26596 = imb.b[1];
            *code.1122 = D.26596;
            code.386 = code;
            code.1124 = code.386;
            code.1125 = code.1124 + 1;
            code = code.1125;
            D.26599 = imb.b[2];
            *code.1124 = D.26599;
            code.386 = code;
            code.1126 = code.386;
            code.1127 = code.1126 + 1;
            code = code.1127;
            D.26602 = imb.b[3];
            *code.1126 = D.26602;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26603>;
      <D.26588>:
      if (0 != 0) goto <D.26604>; else goto <D.26605>;
      <D.26604>:
      if (1 != 0) goto <D.26606>; else goto <D.26607>;
      <D.26606>:
      code.386 = code;
      code.1128 = code.386;
      code.1129 = code.1128 + 1;
      code = code.1129;
      *code.1128 = 28;
      code.386 = code;
      code.1130 = code.386;
      code.1131 = code.1130 + 1;
      code = code.1131;
      *code.1130 = 36;
      goto <D.26612>;
      <D.26607>:
      if (1 != 0) goto <D.26613>; else goto <D.26614>;
      <D.26613>:
      code.386 = code;
      code.1132 = code.386;
      code.1133 = code.1132 + 1;
      code = code.1133;
      *code.1132 = 92;
      code.386 = code;
      code.1134 = code.386;
      code.1135 = code.1134 + 1;
      code = code.1135;
      *code.1134 = 36;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26619>;
      <D.26614>:
      code.386 = code;
      code.1136 = code.386;
      code.1137 = code.1136 + 1;
      code = code.1137;
      *code.1136 = 156;
      code.386 = code;
      code.1138 = code.386;
      code.1139 = code.1138 + 1;
      code = code.1139;
      *code.1138 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.1140 = code.386;
            code.1141 = code.1140 + 1;
            code = code.1141;
            D.26626 = imb.b[0];
            *code.1140 = D.26626;
            code.386 = code;
            code.1142 = code.386;
            code.1143 = code.1142 + 1;
            code = code.1143;
            D.26629 = imb.b[1];
            *code.1142 = D.26629;
            code.386 = code;
            code.1144 = code.386;
            code.1145 = code.1144 + 1;
            code = code.1145;
            D.26632 = imb.b[2];
            *code.1144 = D.26632;
            code.386 = code;
            code.1146 = code.386;
            code.1147 = code.1146 + 1;
            code = code.1147;
            D.26635 = imb.b[3];
            *code.1146 = D.26635;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26619>:
      <D.26612>:
      goto <D.23226>;
      <D.26605>:
      if (1 != 0) goto <D.26636>; else goto <D.26637>;
      <D.26636>:
      code.386 = code;
      code.1148 = code.386;
      code.1149 = code.1148 + 1;
      code = code.1149;
      *code.1148 = 27;
      goto <D.23226>;
      <D.26637>:
      if (1 != 0) goto <D.26640>; else goto <D.26641>;
      <D.26640>:
      code.386 = code;
      code.1150 = code.386;
      code.1151 = code.1150 + 1;
      code = code.1151;
      *code.1150 = 91;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26644>;
      <D.26641>:
      code.386 = code;
      code.1152 = code.386;
      code.1153 = code.1152 + 1;
      code = code.1153;
      *code.1152 = 155;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.1154 = code.386;
            code.1155 = code.1154 + 1;
            code = code.1155;
            D.26649 = imb.b[0];
            *code.1154 = D.26649;
            code.386 = code;
            code.1156 = code.386;
            code.1157 = code.1156 + 1;
            code = code.1157;
            D.26652 = imb.b[1];
            *code.1156 = D.26652;
            code.386 = code;
            code.1158 = code.386;
            code.1159 = code.1158 + 1;
            code = code.1159;
            D.26655 = imb.b[2];
            *code.1158 = D.26655;
            code.386 = code;
            code.1160 = code.386;
            code.1161 = code.1160 + 1;
            code = code.1161;
            D.26658 = imb.b[3];
            *code.1160 = D.26658;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26644>:
      <D.23226>:
      <D.26603>:
      goto <D.26659>;
      <D.26394>:
      if (0 != 0) goto <D.26660>; else goto <D.26661>;
      <D.26660>:
      code.386 = code;
      code.1162 = code.386;
      code.1163 = code.1162 + 1;
      code = code.1163;
      *code.1162 = 102;
      <D.26661>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.26664>; else goto <D.26665>;
        <D.26664>:
        code.386 = code;
        code.1164 = code.386;
        code.1165 = code.1164 + 1;
        code = code.1165;
        D.26668 = _amd64_rex_bits | 64;
        *code.1164 = D.26668;
        <D.26665>:
      }
      switch (8) <default: <D.23234>, case 1: <D.23229>, case 2: <D.23231>, case 4: <D.23232>, case 8: <D.23233>>
      <D.23229>:
      code.386 = code;
      code.1166 = code.386;
      code.1167 = code.1166 + 1;
      code = code.1167;
      *code.1166 = 138;
      goto <D.23230>;
      <D.23231>:
      <D.23232>:
      <D.23233>:
      code.386 = code;
      code.1168 = code.386;
      code.1169 = code.1168 + 1;
      code = code.1169;
      *code.1168 = 139;
      goto <D.23230>;
      <D.23234>:
      __assert_fail ("0", "tramp-amd64.c", 558, &__PRETTY_FUNCTION__);
      <D.23230>:
      if (0 != 0) goto <D.26673>; else goto <D.26674>;
      <D.26673>:
      code.386 = code;
      code.1170 = code.386;
      code.1171 = code.1170 + 1;
      code = code.1171;
      *code.1170 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1172 = code.386;
            code.1173 = code.1172 + 1;
            code = code.1173;
            D.26679 = imb.b[0];
            *code.1172 = D.26679;
            code.386 = code;
            code.1174 = code.386;
            code.1175 = code.1174 + 1;
            code = code.1175;
            D.26682 = imb.b[1];
            *code.1174 = D.26682;
            code.386 = code;
            code.1176 = code.386;
            code.1177 = code.1176 + 1;
            code = code.1177;
            D.26685 = imb.b[2];
            *code.1176 = D.26685;
            code.386 = code;
            code.1178 = code.386;
            code.1179 = code.1178 + 1;
            code = code.1179;
            D.26688 = imb.b[3];
            *code.1178 = D.26688;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26689>;
      <D.26674>:
      if (0 != 0) goto <D.26690>; else goto <D.26691>;
      <D.26690>:
      if (tramp_offset == 0) goto <D.26692>; else goto <D.26693>;
      <D.26692>:
      code.386 = code;
      code.1180 = code.386;
      code.1181 = code.1180 + 1;
      code = code.1181;
      *code.1180 = 28;
      code.386 = code;
      code.1182 = code.386;
      code.1183 = code.1182 + 1;
      code = code.1183;
      *code.1182 = 36;
      goto <D.26698>;
      <D.26693>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.26699>; else goto <D.26700>;
      <D.26699>:
      code.386 = code;
      code.1184 = code.386;
      code.1185 = code.1184 + 1;
      code = code.1185;
      *code.1184 = 92;
      code.386 = code;
      code.1186 = code.386;
      code.1187 = code.1186 + 1;
      code = code.1187;
      *code.1186 = 36;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26705>;
      <D.26700>:
      code.386 = code;
      code.1188 = code.386;
      code.1189 = code.1188 + 1;
      code = code.1189;
      *code.1188 = 156;
      code.386 = code;
      code.1190 = code.386;
      code.1191 = code.1190 + 1;
      code = code.1191;
      *code.1190 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1192 = code.386;
            code.1193 = code.1192 + 1;
            code = code.1193;
            D.26712 = imb.b[0];
            *code.1192 = D.26712;
            code.386 = code;
            code.1194 = code.386;
            code.1195 = code.1194 + 1;
            code = code.1195;
            D.26715 = imb.b[1];
            *code.1194 = D.26715;
            code.386 = code;
            code.1196 = code.386;
            code.1197 = code.1196 + 1;
            code = code.1197;
            D.26718 = imb.b[2];
            *code.1196 = D.26718;
            code.386 = code;
            code.1198 = code.386;
            code.1199 = code.1198 + 1;
            code = code.1199;
            D.26721 = imb.b[3];
            *code.1198 = D.26721;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26705>:
      <D.26698>:
      goto <D.23237>;
      <D.26691>:
      if (0 != 0) goto <D.26722>; else goto <D.26723>;
      <D.26722>:
      code.386 = code;
      code.1200 = code.386;
      code.1201 = code.1200 + 1;
      code = code.1201;
      *code.1200 = 29;
      goto <D.23237>;
      <D.26723>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.26726>; else goto <D.26727>;
      <D.26726>:
      code.386 = code;
      code.1202 = code.386;
      code.1203 = code.1202 + 1;
      code = code.1203;
      *code.1202 = 93;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26730>;
      <D.26727>:
      code.386 = code;
      code.1204 = code.386;
      code.1205 = code.1204 + 1;
      code = code.1205;
      *code.1204 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.1206 = code.386;
            code.1207 = code.1206 + 1;
            code = code.1207;
            D.26735 = imb.b[0];
            *code.1206 = D.26735;
            code.386 = code;
            code.1208 = code.386;
            code.1209 = code.1208 + 1;
            code = code.1209;
            D.26738 = imb.b[1];
            *code.1208 = D.26738;
            code.386 = code;
            code.1210 = code.386;
            code.1211 = code.1210 + 1;
            code = code.1211;
            D.26741 = imb.b[2];
            *code.1210 = D.26741;
            code.386 = code;
            code.1212 = code.386;
            code.1213 = code.1212 + 1;
            code = code.1213;
            D.26744 = imb.b[3];
            *code.1212 = D.26744;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26730>:
      <D.23237>:
      <D.26689>:
      if (0 != 0) goto <D.26745>; else goto <D.26746>;
      <D.26745>:
      code.386 = code;
      code.1214 = code.386;
      code.1215 = code.1214 + 1;
      code = code.1215;
      *code.1214 = 102;
      <D.26746>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (1 != 0) goto <D.26749>; else goto <D.26750>;
        <D.26749>:
        code.386 = code;
        code.1216 = code.386;
        code.1217 = code.1216 + 1;
        code = code.1217;
        D.26753 = _amd64_rex_bits | 64;
        *code.1216 = D.26753;
        <D.26750>:
      }
      switch (1) <default: <D.23245>, case 1: <D.23240>, case 2: <D.23242>, case 4: <D.23243>, case 8: <D.23244>>
      <D.23240>:
      code.386 = code;
      code.1218 = code.386;
      code.1219 = code.1218 + 1;
      code = code.1219;
      *code.1218 = 138;
      goto <D.23241>;
      <D.23242>:
      <D.23243>:
      <D.23244>:
      code.386 = code;
      code.1220 = code.386;
      code.1221 = code.1220 + 1;
      code = code.1221;
      *code.1220 = 139;
      goto <D.23241>;
      <D.23245>:
      __assert_fail ("0", "tramp-amd64.c", 560, &__PRETTY_FUNCTION__);
      <D.23241>:
      if (0 != 0) goto <D.26758>; else goto <D.26759>;
      <D.26758>:
      code.386 = code;
      code.1222 = code.386;
      code.1223 = code.1222 + 1;
      code = code.1223;
      *code.1222 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.1224 = code.386;
            code.1225 = code.1224 + 1;
            code = code.1225;
            D.26764 = imb.b[0];
            *code.1224 = D.26764;
            code.386 = code;
            code.1226 = code.386;
            code.1227 = code.1226 + 1;
            code = code.1227;
            D.26767 = imb.b[1];
            *code.1226 = D.26767;
            code.386 = code;
            code.1228 = code.386;
            code.1229 = code.1228 + 1;
            code = code.1229;
            D.26770 = imb.b[2];
            *code.1228 = D.26770;
            code.386 = code;
            code.1230 = code.386;
            code.1231 = code.1230 + 1;
            code = code.1231;
            D.26773 = imb.b[3];
            *code.1230 = D.26773;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26774>;
      <D.26759>:
      if (0 != 0) goto <D.26775>; else goto <D.26776>;
      <D.26775>:
      if (0 != 0) goto <D.26777>; else goto <D.26778>;
      <D.26777>:
      code.386 = code;
      code.1232 = code.386;
      code.1233 = code.1232 + 1;
      code = code.1233;
      *code.1232 = 4;
      code.386 = code;
      code.1234 = code.386;
      code.1235 = code.1234 + 1;
      code = code.1235;
      *code.1234 = 36;
      goto <D.26783>;
      <D.26778>:
      if (1 != 0) goto <D.26784>; else goto <D.26785>;
      <D.26784>:
      code.386 = code;
      code.1236 = code.386;
      code.1237 = code.1236 + 1;
      code = code.1237;
      *code.1236 = 68;
      code.386 = code;
      code.1238 = code.386;
      code.1239 = code.1238 + 1;
      code = code.1239;
      *code.1238 = 36;
      code.386 = code;
      *code.386 = 5;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26790>;
      <D.26785>:
      code.386 = code;
      code.1240 = code.386;
      code.1241 = code.1240 + 1;
      code = code.1241;
      *code.1240 = 132;
      code.386 = code;
      code.1242 = code.386;
      code.1243 = code.1242 + 1;
      code = code.1243;
      *code.1242 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.1244 = code.386;
            code.1245 = code.1244 + 1;
            code = code.1245;
            D.26797 = imb.b[0];
            *code.1244 = D.26797;
            code.386 = code;
            code.1246 = code.386;
            code.1247 = code.1246 + 1;
            code = code.1247;
            D.26800 = imb.b[1];
            *code.1246 = D.26800;
            code.386 = code;
            code.1248 = code.386;
            code.1249 = code.1248 + 1;
            code = code.1249;
            D.26803 = imb.b[2];
            *code.1248 = D.26803;
            code.386 = code;
            code.1250 = code.386;
            code.1251 = code.1250 + 1;
            code = code.1251;
            D.26806 = imb.b[3];
            *code.1250 = D.26806;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26790>:
      <D.26783>:
      goto <D.23248>;
      <D.26776>:
      if (0 != 0) goto <D.26807>; else goto <D.26808>;
      <D.26807>:
      code.386 = code;
      code.1252 = code.386;
      code.1253 = code.1252 + 1;
      code = code.1253;
      *code.1252 = 3;
      goto <D.23248>;
      <D.26808>:
      if (1 != 0) goto <D.26811>; else goto <D.26812>;
      <D.26811>:
      code.386 = code;
      code.1254 = code.386;
      code.1255 = code.1254 + 1;
      code = code.1255;
      *code.1254 = 67;
      code.386 = code;
      *code.386 = 5;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26815>;
      <D.26812>:
      code.386 = code;
      code.1256 = code.386;
      code.1257 = code.1256 + 1;
      code = code.1257;
      *code.1256 = 131;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.1258 = code.386;
            code.1259 = code.1258 + 1;
            code = code.1259;
            D.26820 = imb.b[0];
            *code.1258 = D.26820;
            code.386 = code;
            code.1260 = code.386;
            code.1261 = code.1260 + 1;
            code = code.1261;
            D.26823 = imb.b[1];
            *code.1260 = D.26823;
            code.386 = code;
            code.1262 = code.386;
            code.1263 = code.1262 + 1;
            code = code.1263;
            D.26826 = imb.b[2];
            *code.1262 = D.26826;
            code.386 = code;
            code.1264 = code.386;
            code.1265 = code.1264 + 1;
            code = code.1265;
            D.26829 = imb.b[3];
            *code.1264 = D.26829;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26815>:
      <D.23248>:
      <D.26774>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.26830>; else goto <D.26831>;
        <D.26830>:
        code.386 = code;
        code.1266 = code.386;
        code.1267 = code.1266 + 1;
        code = code.1267;
        D.26834 = _amd64_rex_bits | 64;
        *code.1266 = D.26834;
        <D.26831>:
      }
      {
        unsigned char op;

        op = 182;
        if (0 != 0) goto <D.26835>; else goto <D.26836>;
        <D.26835>:
        monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 561, "(0) || X86_IS_BYTE_REG (((AMD64_RAX)&0x7))");
        <D.26836>:
        code.386 = code;
        code.1268 = code.386;
        code.1269 = code.1268 + 1;
        code = code.1269;
        *code.1268 = 15;
        if (1 != 0) goto <D.26839>; else goto <D.26840>;
        <D.26839>:
        op = op + 8;
        <D.26840>:
        if (0 != 0) goto <D.26841>; else goto <D.26842>;
        <D.26841>:
        op = op + 1;
        <D.26842>:
        code.386 = code;
        code.1270 = code.386;
        code.1271 = code.1270 + 1;
        code = code.1271;
        *code.1270 = op;
        code.386 = code;
        code.1272 = code.386;
        code.1273 = code.1272 + 1;
        code = code.1273;
        *code.1272 = 192;
      }
      if (1 != 0) goto <D.26847>; else goto <D.26848>;
      <D.26847>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (1 != 0) goto <D.26849>; else goto <D.26850>;
        <D.26849>:
        code.386 = code;
        code.1274 = code.386;
        code.1275 = code.1274 + 1;
        code = code.1275;
        D.26853 = _amd64_rex_bits | 64;
        *code.1274 = D.26853;
        <D.26850>:
      }
      code.386 = code;
      code.1276 = code.386;
      code.1277 = code.1276 + 1;
      code = code.1277;
      *code.1276 = 131;
      code.386 = code;
      code.1278 = code.386;
      code.1279 = code.1278 + 1;
      code = code.1279;
      *code.1278 = 248;
      code.386 = code;
      *code.386 = 4;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26858>;
      <D.26848>:
      if (1 != 0) goto <D.26859>; else goto <D.26860>;
      <D.26859>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (1 != 0) goto <D.26861>; else goto <D.26862>;
        <D.26861>:
        code.386 = code;
        code.1280 = code.386;
        code.1281 = code.1280 + 1;
        code = code.1281;
        D.26865 = _amd64_rex_bits | 64;
        *code.1280 = D.26865;
        <D.26862>:
      }
      code.386 = code;
      code.1282 = code.386;
      code.1283 = code.1282 + 1;
      code = code.1283;
      *code.1282 = 61;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 4;
            code.386 = code;
            code.1284 = code.386;
            code.1285 = code.1284 + 1;
            code = code.1285;
            D.26870 = imb.b[0];
            *code.1284 = D.26870;
            code.386 = code;
            code.1286 = code.386;
            code.1287 = code.1286 + 1;
            code = code.1287;
            D.26873 = imb.b[1];
            *code.1286 = D.26873;
            code.386 = code;
            code.1288 = code.386;
            code.1289 = code.1288 + 1;
            code = code.1289;
            D.26876 = imb.b[2];
            *code.1288 = D.26876;
            code.386 = code;
            code.1290 = code.386;
            code.1291 = code.1290 + 1;
            code = code.1291;
            D.26879 = imb.b[3];
            *code.1290 = D.26879;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26880>;
      <D.26860>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (1 != 0) goto <D.26881>; else goto <D.26882>;
        <D.26881>:
        code.386 = code;
        code.1292 = code.386;
        code.1293 = code.1292 + 1;
        code = code.1293;
        D.26885 = _amd64_rex_bits | 64;
        *code.1292 = D.26885;
        <D.26882>:
      }
      code.386 = code;
      code.1294 = code.386;
      code.1295 = code.1294 + 1;
      code = code.1295;
      *code.1294 = 129;
      code.386 = code;
      code.1296 = code.386;
      code.1297 = code.1296 + 1;
      code = code.1297;
      *code.1296 = 248;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 4;
            code.386 = code;
            code.1298 = code.386;
            code.1299 = code.1298 + 1;
            code = code.1299;
            D.26892 = imb.b[0];
            *code.1298 = D.26892;
            code.386 = code;
            code.1300 = code.386;
            code.1301 = code.1300 + 1;
            code = code.1301;
            D.26895 = imb.b[1];
            *code.1300 = D.26895;
            code.386 = code;
            code.1302 = code.386;
            code.1303 = code.1302 + 1;
            code = code.1303;
            D.26898 = imb.b[2];
            *code.1302 = D.26898;
            code.386 = code;
            code.1304 = code.386;
            code.1305 = code.1304 + 1;
            code = code.1305;
            D.26901 = imb.b[3];
            *code.1304 = D.26901;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26880>:
      <D.26858>:
      code.386 = code;
      br[0] = code.386;
      if (0 != 0) goto <D.26902>; else goto <D.26903>;
      <D.26902>:
      code.386 = code;
      code.1306 = code.386;
      code.1307 = code.1306 + 1;
      code = code.1307;
      D.26906 = 117;
      *code.1306 = D.26906;
      goto <D.26907>;
      <D.26903>:
      code.386 = code;
      code.1308 = code.386;
      code.1309 = code.1308 + 1;
      code = code.1309;
      D.26910 = 117;
      *code.1308 = D.26910;
      <D.26907>:
      code.386 = code;
      *code.386 = 6;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      if (0 != 0) goto <D.26911>; else goto <D.26912>;
      <D.26911>:
      code.386 = code;
      code.1310 = code.386;
      code.1311 = code.1310 + 1;
      code = code.1311;
      *code.1310 = 102;
      <D.26912>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 5;
        if (_amd64_rex_bits != 0) goto <D.26915>; else goto <D.26916>;
        <D.26915>:
        code.386 = code;
        code.1312 = code.386;
        code.1313 = code.1312 + 1;
        code = code.1313;
        D.26919 = _amd64_rex_bits | 64;
        *code.1312 = D.26919;
        <D.26916>:
      }
      switch (4) <default: <D.23263>, case 1: <D.23258>, case 2: <D.23260>, case 4: <D.23261>, case 8: <D.23262>>
      <D.23258>:
      code.386 = code;
      code.1314 = code.386;
      code.1315 = code.1314 + 1;
      code = code.1315;
      *code.1314 = 138;
      goto <D.23259>;
      <D.23260>:
      <D.23261>:
      <D.23262>:
      code.386 = code;
      code.1316 = code.386;
      code.1317 = code.1316 + 1;
      code = code.1317;
      *code.1316 = 139;
      goto <D.23259>;
      <D.23263>:
      __assert_fail ("0", "tramp-amd64.c", 566, &__PRETTY_FUNCTION__);
      <D.23259>:
      if (0 != 0) goto <D.26924>; else goto <D.26925>;
      <D.26924>:
      code.386 = code;
      code.1318 = code.386;
      code.1319 = code.1318 + 1;
      code = code.1319;
      *code.1318 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1320 = code.386;
            code.1321 = code.1320 + 1;
            code = code.1321;
            D.26930 = imb.b[0];
            *code.1320 = D.26930;
            code.386 = code;
            code.1322 = code.386;
            code.1323 = code.1322 + 1;
            code = code.1323;
            D.26933 = imb.b[1];
            *code.1322 = D.26933;
            code.386 = code;
            code.1324 = code.386;
            code.1325 = code.1324 + 1;
            code = code.1325;
            D.26936 = imb.b[2];
            *code.1324 = D.26936;
            code.386 = code;
            code.1326 = code.386;
            code.1327 = code.1326 + 1;
            code = code.1327;
            D.26939 = imb.b[3];
            *code.1326 = D.26939;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.26940>;
      <D.26925>:
      if (0 != 0) goto <D.26941>; else goto <D.26942>;
      <D.26941>:
      if (0 != 0) goto <D.26943>; else goto <D.26944>;
      <D.26943>:
      code.386 = code;
      code.1328 = code.386;
      code.1329 = code.1328 + 1;
      code = code.1329;
      *code.1328 = 28;
      code.386 = code;
      code.1330 = code.386;
      code.1331 = code.1330 + 1;
      code = code.1331;
      *code.1330 = 36;
      goto <D.26949>;
      <D.26944>:
      if (1 != 0) goto <D.26950>; else goto <D.26951>;
      <D.26950>:
      code.386 = code;
      code.1332 = code.386;
      code.1333 = code.1332 + 1;
      code = code.1333;
      *code.1332 = 92;
      code.386 = code;
      code.1334 = code.386;
      code.1335 = code.1334 + 1;
      code = code.1335;
      *code.1334 = 36;
      code.386 = code;
      *code.386 = 6;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26956>;
      <D.26951>:
      code.386 = code;
      code.1336 = code.386;
      code.1337 = code.1336 + 1;
      code = code.1337;
      *code.1336 = 156;
      code.386 = code;
      code.1338 = code.386;
      code.1339 = code.1338 + 1;
      code = code.1339;
      *code.1338 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1340 = code.386;
            code.1341 = code.1340 + 1;
            code = code.1341;
            D.26963 = imb.b[0];
            *code.1340 = D.26963;
            code.386 = code;
            code.1342 = code.386;
            code.1343 = code.1342 + 1;
            code = code.1343;
            D.26966 = imb.b[1];
            *code.1342 = D.26966;
            code.386 = code;
            code.1344 = code.386;
            code.1345 = code.1344 + 1;
            code = code.1345;
            D.26969 = imb.b[2];
            *code.1344 = D.26969;
            code.386 = code;
            code.1346 = code.386;
            code.1347 = code.1346 + 1;
            code = code.1347;
            D.26972 = imb.b[3];
            *code.1346 = D.26972;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26956>:
      <D.26949>:
      goto <D.23266>;
      <D.26942>:
      if (0 != 0) goto <D.26973>; else goto <D.26974>;
      <D.26973>:
      code.386 = code;
      code.1348 = code.386;
      code.1349 = code.1348 + 1;
      code = code.1349;
      *code.1348 = 27;
      goto <D.23266>;
      <D.26974>:
      if (1 != 0) goto <D.26977>; else goto <D.26978>;
      <D.26977>:
      code.386 = code;
      code.1350 = code.386;
      code.1351 = code.1350 + 1;
      code = code.1351;
      *code.1350 = 91;
      code.386 = code;
      *code.386 = 6;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.26981>;
      <D.26978>:
      code.386 = code;
      code.1352 = code.386;
      code.1353 = code.1352 + 1;
      code = code.1353;
      *code.1352 = 155;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1354 = code.386;
            code.1355 = code.1354 + 1;
            code = code.1355;
            D.26986 = imb.b[0];
            *code.1354 = D.26986;
            code.386 = code;
            code.1356 = code.386;
            code.1357 = code.1356 + 1;
            code = code.1357;
            D.26989 = imb.b[1];
            *code.1356 = D.26989;
            code.386 = code;
            code.1358 = code.386;
            code.1359 = code.1358 + 1;
            code = code.1359;
            D.26992 = imb.b[2];
            *code.1358 = D.26992;
            code.386 = code;
            code.1360 = code.386;
            code.1361 = code.1360 + 1;
            code = code.1361;
            D.26995 = imb.b[3];
            *code.1360 = D.26995;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.26981>:
      <D.23266>:
      <D.26940>:
      code.386 = code;
      br[1] = code.386;
      code.386 = code;
      code.1362 = code.386;
      code.1363 = code.1362 + 1;
      code = code.1363;
      *code.1362 = 235;
      code.386 = code;
      *code.386 = 10;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      code.386 = code;
      D.26383 = br[0];
      mono_amd64_patch (D.26383, code.386);
      if (0 != 0) goto <D.26998>; else goto <D.26999>;
      <D.26998>:
      code.386 = code;
      code.1364 = code.386;
      code.1365 = code.1364 + 1;
      code = code.1365;
      *code.1364 = 102;
      <D.26999>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 13;
        if (_amd64_rex_bits != 0) goto <D.27002>; else goto <D.27003>;
        <D.27002>:
        code.386 = code;
        code.1366 = code.386;
        code.1367 = code.1366 + 1;
        code = code.1367;
        D.27006 = _amd64_rex_bits | 64;
        *code.1366 = D.27006;
        <D.27003>:
      }
      switch (8) <default: <D.23274>, case 1: <D.23269>, case 2: <D.23271>, case 4: <D.23272>, case 8: <D.23273>>
      <D.23269>:
      code.386 = code;
      code.1368 = code.386;
      code.1369 = code.1368 + 1;
      code = code.1369;
      *code.1368 = 138;
      goto <D.23270>;
      <D.23271>:
      <D.23272>:
      <D.23273>:
      code.386 = code;
      code.1370 = code.386;
      code.1371 = code.1370 + 1;
      code = code.1371;
      *code.1370 = 139;
      goto <D.23270>;
      <D.23274>:
      __assert_fail ("0", "tramp-amd64.c", 571, &__PRETTY_FUNCTION__);
      <D.23270>:
      if (0 != 0) goto <D.27011>; else goto <D.27012>;
      <D.27011>:
      code.386 = code;
      code.1372 = code.386;
      code.1373 = code.1372 + 1;
      code = code.1373;
      *code.1372 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1374 = code.386;
            code.1375 = code.1374 + 1;
            code = code.1375;
            D.27017 = imb.b[0];
            *code.1374 = D.27017;
            code.386 = code;
            code.1376 = code.386;
            code.1377 = code.1376 + 1;
            code = code.1377;
            D.27020 = imb.b[1];
            *code.1376 = D.27020;
            code.386 = code;
            code.1378 = code.386;
            code.1379 = code.1378 + 1;
            code = code.1379;
            D.27023 = imb.b[2];
            *code.1378 = D.27023;
            code.386 = code;
            code.1380 = code.386;
            code.1381 = code.1380 + 1;
            code = code.1381;
            D.27026 = imb.b[3];
            *code.1380 = D.27026;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27027>;
      <D.27012>:
      if (0 != 0) goto <D.27028>; else goto <D.27029>;
      <D.27028>:
      if (0 != 0) goto <D.27030>; else goto <D.27031>;
      <D.27030>:
      code.386 = code;
      code.1382 = code.386;
      code.1383 = code.1382 + 1;
      code = code.1383;
      *code.1382 = 28;
      code.386 = code;
      code.1384 = code.386;
      code.1385 = code.1384 + 1;
      code = code.1385;
      *code.1384 = 36;
      goto <D.27036>;
      <D.27031>:
      if (1 != 0) goto <D.27037>; else goto <D.27038>;
      <D.27037>:
      code.386 = code;
      code.1386 = code.386;
      code.1387 = code.1386 + 1;
      code = code.1387;
      *code.1386 = 92;
      code.386 = code;
      code.1388 = code.386;
      code.1389 = code.1388 + 1;
      code = code.1389;
      *code.1388 = 36;
      code.386 = code;
      *code.386 = 6;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27043>;
      <D.27038>:
      code.386 = code;
      code.1390 = code.386;
      code.1391 = code.1390 + 1;
      code = code.1391;
      *code.1390 = 156;
      code.386 = code;
      code.1392 = code.386;
      code.1393 = code.1392 + 1;
      code = code.1393;
      *code.1392 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1394 = code.386;
            code.1395 = code.1394 + 1;
            code = code.1395;
            D.27050 = imb.b[0];
            *code.1394 = D.27050;
            code.386 = code;
            code.1396 = code.386;
            code.1397 = code.1396 + 1;
            code = code.1397;
            D.27053 = imb.b[1];
            *code.1396 = D.27053;
            code.386 = code;
            code.1398 = code.386;
            code.1399 = code.1398 + 1;
            code = code.1399;
            D.27056 = imb.b[2];
            *code.1398 = D.27056;
            code.386 = code;
            code.1400 = code.386;
            code.1401 = code.1400 + 1;
            code = code.1401;
            D.27059 = imb.b[3];
            *code.1400 = D.27059;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27043>:
      <D.27036>:
      goto <D.23277>;
      <D.27029>:
      if (0 != 0) goto <D.27060>; else goto <D.27061>;
      <D.27060>:
      code.386 = code;
      code.1402 = code.386;
      code.1403 = code.1402 + 1;
      code = code.1403;
      *code.1402 = 27;
      goto <D.23277>;
      <D.27061>:
      if (1 != 0) goto <D.27064>; else goto <D.27065>;
      <D.27064>:
      code.386 = code;
      code.1404 = code.386;
      code.1405 = code.1404 + 1;
      code = code.1405;
      *code.1404 = 91;
      code.386 = code;
      *code.386 = 6;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27068>;
      <D.27065>:
      code.386 = code;
      code.1406 = code.386;
      code.1407 = code.1406 + 1;
      code = code.1407;
      *code.1406 = 155;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 6;
            code.386 = code;
            code.1408 = code.386;
            code.1409 = code.1408 + 1;
            code = code.1409;
            D.27073 = imb.b[0];
            *code.1408 = D.27073;
            code.386 = code;
            code.1410 = code.386;
            code.1411 = code.1410 + 1;
            code = code.1411;
            D.27076 = imb.b[1];
            *code.1410 = D.27076;
            code.386 = code;
            code.1412 = code.386;
            code.1413 = code.1412 + 1;
            code = code.1413;
            D.27079 = imb.b[2];
            *code.1412 = D.27079;
            code.386 = code;
            code.1414 = code.386;
            code.1415 = code.1414 + 1;
            code = code.1415;
            D.27082 = imb.b[3];
            *code.1414 = D.27082;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27068>:
      <D.23277>:
      <D.27027>:
      code.386 = code;
      D.27083 = br[1];
      mono_amd64_patch (D.27083, code.386);
      <D.26659>:
      if (0 != 0) goto <D.27084>; else goto <D.27085>;
      <D.27084>:
      code.386 = code;
      code.1416 = code.386;
      code.1417 = code.1416 + 1;
      code = code.1417;
      *code.1416 = 102;
      <D.27085>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27088>; else goto <D.27089>;
        <D.27088>:
        code.386 = code;
        code.1418 = code.386;
        code.1419 = code.1418 + 1;
        code = code.1419;
        D.27092 = _amd64_rex_bits | 64;
        *code.1418 = D.27092;
        <D.27089>:
      }
      switch (8) <default: <D.23285>, case 1: <D.23280>, case 2: <D.23282>, case 4: <D.23283>, case 8: <D.23284>>
      <D.23280>:
      code.386 = code;
      code.1420 = code.386;
      code.1421 = code.1420 + 1;
      code = code.1421;
      *code.1420 = 136;
      goto <D.23281>;
      <D.23282>:
      <D.23283>:
      <D.23284>:
      code.386 = code;
      code.1422 = code.386;
      code.1423 = code.1422 + 1;
      code = code.1423;
      *code.1422 = 137;
      goto <D.23281>;
      <D.23285>:
      __assert_fail ("0", "tramp-amd64.c", 578, &__PRETTY_FUNCTION__);
      <D.23281>:
      if (0 != 0) goto <D.27097>; else goto <D.27098>;
      <D.27097>:
      if (arg_offset == 0) goto <D.27099>; else goto <D.27100>;
      <D.27099>:
      code.386 = code;
      code.1424 = code.386;
      code.1425 = code.1424 + 1;
      code = code.1425;
      *code.1424 = 28;
      code.386 = code;
      code.1426 = code.386;
      code.1427 = code.1426 + 1;
      code = code.1427;
      *code.1426 = 36;
      goto <D.27105>;
      <D.27100>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.27108>; else goto <D.27109>;
      <D.27108>:
      code.386 = code;
      code.1429 = code.386;
      code.1430 = code.1429 + 1;
      code = code.1430;
      *code.1429 = 92;
      code.386 = code;
      code.1431 = code.386;
      code.1432 = code.1431 + 1;
      code = code.1432;
      *code.1431 = 36;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27115>;
      <D.27109>:
      code.386 = code;
      code.1433 = code.386;
      code.1434 = code.1433 + 1;
      code = code.1434;
      *code.1433 = 156;
      code.386 = code;
      code.1435 = code.386;
      code.1436 = code.1435 + 1;
      code = code.1436;
      *code.1435 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.1437 = code.386;
            code.1438 = code.1437 + 1;
            code = code.1438;
            D.27122 = imb.b[0];
            *code.1437 = D.27122;
            code.386 = code;
            code.1439 = code.386;
            code.1440 = code.1439 + 1;
            code = code.1440;
            D.27125 = imb.b[1];
            *code.1439 = D.27125;
            code.386 = code;
            code.1441 = code.386;
            code.1442 = code.1441 + 1;
            code = code.1442;
            D.27128 = imb.b[2];
            *code.1441 = D.27128;
            code.386 = code;
            code.1443 = code.386;
            code.1444 = code.1443 + 1;
            code = code.1444;
            D.27131 = imb.b[3];
            *code.1443 = D.27131;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27115>:
      <D.27105>:
      goto <D.23287>;
      <D.27098>:
      if (0 != 0) goto <D.27132>; else goto <D.27133>;
      <D.27132>:
      code.386 = code;
      code.1445 = code.386;
      code.1446 = code.1445 + 1;
      code = code.1446;
      *code.1445 = 29;
      goto <D.23287>;
      <D.27133>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.27136>; else goto <D.27137>;
      <D.27136>:
      code.386 = code;
      code.1447 = code.386;
      code.1448 = code.1447 + 1;
      code = code.1448;
      *code.1447 = 93;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27140>;
      <D.27137>:
      code.386 = code;
      code.1449 = code.386;
      code.1450 = code.1449 + 1;
      code = code.1450;
      *code.1449 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.1451 = code.386;
            code.1452 = code.1451 + 1;
            code = code.1452;
            D.27145 = imb.b[0];
            *code.1451 = D.27145;
            code.386 = code;
            code.1453 = code.386;
            code.1454 = code.1453 + 1;
            code = code.1454;
            D.27148 = imb.b[1];
            *code.1453 = D.27148;
            code.386 = code;
            code.1455 = code.386;
            code.1456 = code.1455 + 1;
            code = code.1456;
            D.27151 = imb.b[2];
            *code.1455 = D.27151;
            code.386 = code;
            code.1457 = code.386;
            code.1458 = code.1457 + 1;
            code = code.1458;
            D.27154 = imb.b[3];
            *code.1457 = D.27154;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27140>:
      <D.23287>:
      goto <D.23308>;
      <D.26384>:
      if (0 != 0) goto <D.27155>; else goto <D.27156>;
      <D.27155>:
      code.386 = code;
      code.1459 = code.386;
      code.1460 = code.1459 + 1;
      code = code.1460;
      *code.1459 = 102;
      <D.27156>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27159>; else goto <D.27160>;
        <D.27159>:
        code.386 = code;
        code.1461 = code.386;
        code.1462 = code.1461 + 1;
        code = code.1462;
        D.27163 = _amd64_rex_bits | 64;
        *code.1461 = D.27163;
        <D.27160>:
      }
      switch (8) <default: <D.23295>, case 1: <D.23290>, case 2: <D.23292>, case 4: <D.23293>, case 8: <D.23294>>
      <D.23290>:
      code.386 = code;
      code.1463 = code.386;
      code.1464 = code.1463 + 1;
      code = code.1464;
      *code.1463 = 138;
      goto <D.23291>;
      <D.23292>:
      <D.23293>:
      <D.23294>:
      code.386 = code;
      code.1465 = code.386;
      code.1466 = code.1465 + 1;
      code = code.1466;
      *code.1465 = 139;
      goto <D.23291>;
      <D.23295>:
      __assert_fail ("0", "tramp-amd64.c", 580, &__PRETTY_FUNCTION__);
      <D.23291>:
      if (0 != 0) goto <D.27168>; else goto <D.27169>;
      <D.27168>:
      code.386 = code;
      code.1467 = code.386;
      code.1468 = code.1467 + 1;
      code = code.1468;
      *code.1467 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.27172 = saved_regs_offset.617 + 56;
            D.27173 = (int) D.27172;
            imb.val = D.27173;
            code.386 = code;
            code.1469 = code.386;
            code.1470 = code.1469 + 1;
            code = code.1470;
            D.27176 = imb.b[0];
            *code.1469 = D.27176;
            code.386 = code;
            code.1471 = code.386;
            code.1472 = code.1471 + 1;
            code = code.1472;
            D.27179 = imb.b[1];
            *code.1471 = D.27179;
            code.386 = code;
            code.1473 = code.386;
            code.1474 = code.1473 + 1;
            code = code.1474;
            D.27182 = imb.b[2];
            *code.1473 = D.27182;
            code.386 = code;
            code.1475 = code.386;
            code.1476 = code.1475 + 1;
            code = code.1476;
            D.27185 = imb.b[3];
            *code.1475 = D.27185;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27186>;
      <D.27169>:
      if (0 != 0) goto <D.27187>; else goto <D.27188>;
      <D.27187>:
      D.25651 = (long unsigned int) saved_regs_offset;
      if (D.25651 == 18446744073709551560) goto <D.27189>; else goto <D.27190>;
      <D.27189>:
      code.386 = code;
      code.1477 = code.386;
      code.1478 = code.1477 + 1;
      code = code.1478;
      *code.1477 = 28;
      code.386 = code;
      code.1479 = code.386;
      code.1480 = code.1479 + 1;
      code = code.1480;
      *code.1479 = 36;
      goto <D.27195>;
      <D.27190>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27172 = saved_regs_offset.617 + 56;
      D.27173 = (int) D.27172;
      if (D.27173 >= -128) goto <D.27198>; else goto <D.27196>;
      <D.27198>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27172 = saved_regs_offset.617 + 56;
      D.27173 = (int) D.27172;
      if (D.27173 <= 127) goto <D.27199>; else goto <D.27196>;
      <D.27199>:
      code.386 = code;
      code.1481 = code.386;
      code.1482 = code.1481 + 1;
      code = code.1482;
      *code.1481 = 92;
      code.386 = code;
      code.1483 = code.386;
      code.1484 = code.1483 + 1;
      code = code.1484;
      *code.1483 = 36;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.27204 = D.25675 + 56;
      *code.386 = D.27204;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27197>;
      <D.27196>:
      code.386 = code;
      code.1485 = code.386;
      code.1486 = code.1485 + 1;
      code = code.1486;
      *code.1485 = 156;
      code.386 = code;
      code.1487 = code.386;
      code.1488 = code.1487 + 1;
      code = code.1488;
      *code.1487 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.27172 = saved_regs_offset.617 + 56;
            D.27173 = (int) D.27172;
            imb.val = D.27173;
            code.386 = code;
            code.1489 = code.386;
            code.1490 = code.1489 + 1;
            code = code.1490;
            D.27211 = imb.b[0];
            *code.1489 = D.27211;
            code.386 = code;
            code.1491 = code.386;
            code.1492 = code.1491 + 1;
            code = code.1492;
            D.27214 = imb.b[1];
            *code.1491 = D.27214;
            code.386 = code;
            code.1493 = code.386;
            code.1494 = code.1493 + 1;
            code = code.1494;
            D.27217 = imb.b[2];
            *code.1493 = D.27217;
            code.386 = code;
            code.1495 = code.386;
            code.1496 = code.1495 + 1;
            code = code.1496;
            D.27220 = imb.b[3];
            *code.1495 = D.27220;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27197>:
      <D.27195>:
      goto <D.23298>;
      <D.27188>:
      if (0 != 0) goto <D.27221>; else goto <D.27222>;
      <D.27221>:
      code.386 = code;
      code.1497 = code.386;
      code.1498 = code.1497 + 1;
      code = code.1498;
      *code.1497 = 29;
      goto <D.23298>;
      <D.27222>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27172 = saved_regs_offset.617 + 56;
      D.27173 = (int) D.27172;
      if (D.27173 >= -128) goto <D.27227>; else goto <D.27225>;
      <D.27227>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27172 = saved_regs_offset.617 + 56;
      D.27173 = (int) D.27172;
      if (D.27173 <= 127) goto <D.27228>; else goto <D.27225>;
      <D.27228>:
      code.386 = code;
      code.1499 = code.386;
      code.1500 = code.1499 + 1;
      code = code.1500;
      *code.1499 = 93;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.27204 = D.25675 + 56;
      *code.386 = D.27204;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27226>;
      <D.27225>:
      code.386 = code;
      code.1501 = code.386;
      code.1502 = code.1501 + 1;
      code = code.1502;
      *code.1501 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.27172 = saved_regs_offset.617 + 56;
            D.27173 = (int) D.27172;
            imb.val = D.27173;
            code.386 = code;
            code.1503 = code.386;
            code.1504 = code.1503 + 1;
            code = code.1504;
            D.27235 = imb.b[0];
            *code.1503 = D.27235;
            code.386 = code;
            code.1505 = code.386;
            code.1506 = code.1505 + 1;
            code = code.1506;
            D.27238 = imb.b[1];
            *code.1505 = D.27238;
            code.386 = code;
            code.1507 = code.386;
            code.1508 = code.1507 + 1;
            code = code.1508;
            D.27241 = imb.b[2];
            *code.1507 = D.27241;
            code.386 = code;
            code.1509 = code.386;
            code.1510 = code.1509 + 1;
            code = code.1510;
            D.27244 = imb.b[3];
            *code.1509 = D.27244;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27226>:
      <D.23298>:
      <D.27186>:
      if (0 != 0) goto <D.27245>; else goto <D.27246>;
      <D.27245>:
      code.386 = code;
      code.1511 = code.386;
      code.1512 = code.1511 + 1;
      code = code.1512;
      *code.1511 = 102;
      <D.27246>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27249>; else goto <D.27250>;
        <D.27249>:
        code.386 = code;
        code.1513 = code.386;
        code.1514 = code.1513 + 1;
        code = code.1514;
        D.27253 = _amd64_rex_bits | 64;
        *code.1513 = D.27253;
        <D.27250>:
      }
      switch (8) <default: <D.23306>, case 1: <D.23301>, case 2: <D.23303>, case 4: <D.23304>, case 8: <D.23305>>
      <D.23301>:
      code.386 = code;
      code.1515 = code.386;
      code.1516 = code.1515 + 1;
      code = code.1516;
      *code.1515 = 136;
      goto <D.23302>;
      <D.23303>:
      <D.23304>:
      <D.23305>:
      code.386 = code;
      code.1517 = code.386;
      code.1518 = code.1517 + 1;
      code = code.1518;
      *code.1517 = 137;
      goto <D.23302>;
      <D.23306>:
      __assert_fail ("0", "tramp-amd64.c", 581, &__PRETTY_FUNCTION__);
      <D.23302>:
      if (0 != 0) goto <D.27258>; else goto <D.27259>;
      <D.27258>:
      if (arg_offset == 0) goto <D.27260>; else goto <D.27261>;
      <D.27260>:
      code.386 = code;
      code.1519 = code.386;
      code.1520 = code.1519 + 1;
      code = code.1520;
      *code.1519 = 28;
      code.386 = code;
      code.1521 = code.386;
      code.1522 = code.1521 + 1;
      code = code.1522;
      *code.1521 = 36;
      goto <D.27266>;
      <D.27261>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.27267>; else goto <D.27268>;
      <D.27267>:
      code.386 = code;
      code.1523 = code.386;
      code.1524 = code.1523 + 1;
      code = code.1524;
      *code.1523 = 92;
      code.386 = code;
      code.1525 = code.386;
      code.1526 = code.1525 + 1;
      code = code.1526;
      *code.1525 = 36;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27273>;
      <D.27268>:
      code.386 = code;
      code.1527 = code.386;
      code.1528 = code.1527 + 1;
      code = code.1528;
      *code.1527 = 156;
      code.386 = code;
      code.1529 = code.386;
      code.1530 = code.1529 + 1;
      code = code.1530;
      *code.1529 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.1531 = code.386;
            code.1532 = code.1531 + 1;
            code = code.1532;
            D.27280 = imb.b[0];
            *code.1531 = D.27280;
            code.386 = code;
            code.1533 = code.386;
            code.1534 = code.1533 + 1;
            code = code.1534;
            D.27283 = imb.b[1];
            *code.1533 = D.27283;
            code.386 = code;
            code.1535 = code.386;
            code.1536 = code.1535 + 1;
            code = code.1536;
            D.27286 = imb.b[2];
            *code.1535 = D.27286;
            code.386 = code;
            code.1537 = code.386;
            code.1538 = code.1537 + 1;
            code = code.1538;
            D.27289 = imb.b[3];
            *code.1537 = D.27289;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27273>:
      <D.27266>:
      goto <D.23308>;
      <D.27259>:
      if (0 != 0) goto <D.27290>; else goto <D.27291>;
      <D.27290>:
      code.386 = code;
      code.1539 = code.386;
      code.1540 = code.1539 + 1;
      code = code.1540;
      *code.1539 = 29;
      goto <D.23308>;
      <D.27291>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.27294>; else goto <D.27295>;
      <D.27294>:
      code.386 = code;
      code.1541 = code.386;
      code.1542 = code.1541 + 1;
      code = code.1542;
      *code.1541 = 93;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27298>;
      <D.27295>:
      code.386 = code;
      code.1543 = code.386;
      code.1544 = code.1543 + 1;
      code = code.1544;
      *code.1543 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.1545 = code.386;
            code.1546 = code.1545 + 1;
            code = code.1546;
            D.27303 = imb.b[0];
            *code.1545 = D.27303;
            code.386 = code;
            code.1547 = code.386;
            code.1548 = code.1547 + 1;
            code = code.1548;
            D.27306 = imb.b[1];
            *code.1547 = D.27306;
            code.386 = code;
            code.1549 = code.386;
            code.1550 = code.1549 + 1;
            code = code.1550;
            D.27309 = imb.b[2];
            *code.1549 = D.27309;
            code.386 = code;
            code.1551 = code.386;
            code.1552 = code.1551 + 1;
            code = code.1552;
            D.27312 = imb.b[3];
            *code.1551 = D.27312;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27298>:
      <D.23308>:
      offset.444 = (unsigned int) offset;
      D.27313 = offset.444 + 88;
      offset = (int) D.27313;
      lmf_offset = -offset;
      if (has_caller != 0) goto <D.27314>; else goto <D.27315>;
      <D.27314>:
      if (0 != 0) goto <D.27316>; else goto <D.27317>;
      <D.27316>:
      code.386 = code;
      code.1553 = code.386;
      code.1554 = code.1553 + 1;
      code = code.1554;
      *code.1553 = 102;
      <D.27317>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27320>; else goto <D.27321>;
        <D.27320>:
        code.386 = code;
        code.1555 = code.386;
        code.1556 = code.1555 + 1;
        code = code.1556;
        D.27324 = _amd64_rex_bits | 64;
        *code.1555 = D.27324;
        <D.27321>:
      }
      switch (8) <default: <D.23316>, case 1: <D.23311>, case 2: <D.23313>, case 4: <D.23314>, case 8: <D.23315>>
      <D.23311>:
      code.386 = code;
      code.1557 = code.386;
      code.1558 = code.1557 + 1;
      code = code.1558;
      *code.1557 = 138;
      goto <D.23312>;
      <D.23313>:
      <D.23314>:
      <D.23315>:
      code.386 = code;
      code.1559 = code.386;
      code.1560 = code.1559 + 1;
      code = code.1560;
      *code.1559 = 139;
      goto <D.23312>;
      <D.23316>:
      __assert_fail ("0", "tramp-amd64.c", 591, &__PRETTY_FUNCTION__);
      <D.23312>:
      if (0 != 0) goto <D.27329>; else goto <D.27330>;
      <D.27329>:
      code.386 = code;
      code.1561 = code.386;
      code.1562 = code.1561 + 1;
      code = code.1562;
      *code.1561 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.1563 = code.386;
            code.1564 = code.1563 + 1;
            code = code.1564;
            D.27335 = imb.b[0];
            *code.1563 = D.27335;
            code.386 = code;
            code.1565 = code.386;
            code.1566 = code.1565 + 1;
            code = code.1566;
            D.27338 = imb.b[1];
            *code.1565 = D.27338;
            code.386 = code;
            code.1567 = code.386;
            code.1568 = code.1567 + 1;
            code = code.1568;
            D.27341 = imb.b[2];
            *code.1567 = D.27341;
            code.386 = code;
            code.1569 = code.386;
            code.1570 = code.1569 + 1;
            code = code.1570;
            D.27344 = imb.b[3];
            *code.1569 = D.27344;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27345>;
      <D.27330>:
      if (0 != 0) goto <D.27346>; else goto <D.27347>;
      <D.27346>:
      if (0 != 0) goto <D.27348>; else goto <D.27349>;
      <D.27348>:
      code.386 = code;
      code.1571 = code.386;
      code.1572 = code.1571 + 1;
      code = code.1572;
      *code.1571 = 28;
      code.386 = code;
      code.1573 = code.386;
      code.1574 = code.1573 + 1;
      code = code.1574;
      *code.1573 = 36;
      goto <D.27354>;
      <D.27349>:
      if (1 != 0) goto <D.27355>; else goto <D.27356>;
      <D.27355>:
      code.386 = code;
      code.1575 = code.386;
      code.1576 = code.1575 + 1;
      code = code.1576;
      *code.1575 = 92;
      code.386 = code;
      code.1577 = code.386;
      code.1578 = code.1577 + 1;
      code = code.1578;
      *code.1577 = 36;
      code.386 = code;
      *code.386 = 8;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27361>;
      <D.27356>:
      code.386 = code;
      code.1579 = code.386;
      code.1580 = code.1579 + 1;
      code = code.1580;
      *code.1579 = 156;
      code.386 = code;
      code.1581 = code.386;
      code.1582 = code.1581 + 1;
      code = code.1582;
      *code.1581 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.1583 = code.386;
            code.1584 = code.1583 + 1;
            code = code.1584;
            D.27368 = imb.b[0];
            *code.1583 = D.27368;
            code.386 = code;
            code.1585 = code.386;
            code.1586 = code.1585 + 1;
            code = code.1586;
            D.27371 = imb.b[1];
            *code.1585 = D.27371;
            code.386 = code;
            code.1587 = code.386;
            code.1588 = code.1587 + 1;
            code = code.1588;
            D.27374 = imb.b[2];
            *code.1587 = D.27374;
            code.386 = code;
            code.1589 = code.386;
            code.1590 = code.1589 + 1;
            code = code.1590;
            D.27377 = imb.b[3];
            *code.1589 = D.27377;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27361>:
      <D.27354>:
      goto <D.23319>;
      <D.27347>:
      if (0 != 0) goto <D.27378>; else goto <D.27379>;
      <D.27378>:
      code.386 = code;
      code.1591 = code.386;
      code.1592 = code.1591 + 1;
      code = code.1592;
      *code.1591 = 29;
      goto <D.23319>;
      <D.27379>:
      if (1 != 0) goto <D.27382>; else goto <D.27383>;
      <D.27382>:
      code.386 = code;
      code.1593 = code.386;
      code.1594 = code.1593 + 1;
      code = code.1594;
      *code.1593 = 93;
      code.386 = code;
      *code.386 = 8;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27386>;
      <D.27383>:
      code.386 = code;
      code.1595 = code.386;
      code.1596 = code.1595 + 1;
      code = code.1596;
      *code.1595 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.1597 = code.386;
            code.1598 = code.1597 + 1;
            code = code.1598;
            D.27391 = imb.b[0];
            *code.1597 = D.27391;
            code.386 = code;
            code.1599 = code.386;
            code.1600 = code.1599 + 1;
            code = code.1600;
            D.27394 = imb.b[1];
            *code.1599 = D.27394;
            code.386 = code;
            code.1601 = code.386;
            code.1602 = code.1601 + 1;
            code = code.1602;
            D.27397 = imb.b[2];
            *code.1601 = D.27397;
            code.386 = code;
            code.1603 = code.386;
            code.1604 = code.1603 + 1;
            code = code.1604;
            D.27400 = imb.b[3];
            *code.1603 = D.27400;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27386>:
      <D.23319>:
      <D.27345>:
      goto <D.27401>;
      <D.27315>:
      {
        int _amd64_width_temp;

        _amd64_width_temp = 1;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.27403>; else goto <D.27404>;
          <D.27403>:
          iftmp.1605 = 9;
          goto <D.27405>;
          <D.27404>:
          iftmp.1605 = 1;
          <D.27405>:
          _amd64_rex_bits = iftmp.1605;
          if (_amd64_rex_bits != 0) goto <D.27406>; else goto <D.27407>;
          <D.27406>:
          code.386 = code;
          code.1606 = code.386;
          code.1607 = code.1606 + 1;
          code = code.1607;
          D.27410 = _amd64_rex_bits | 64;
          *code.1606 = D.27410;
          <D.27407>:
        }
        code.386 = code;
        code.1608 = code.386;
        code.1609 = code.1608 + 1;
        code = code.1609;
        *code.1608 = 187;
        if (_amd64_width_temp == 0) goto <D.27413>; else goto <D.27414>;
        <D.27413>:
        {
          union amd64_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.1610 = code.386;
              code.1611 = code.1610 + 1;
              code = code.1611;
              D.27417 = imb.b[0];
              *code.1610 = D.27417;
              code.386 = code;
              code.1612 = code.386;
              code.1613 = code.1612 + 1;
              code = code.1613;
              D.27420 = imb.b[1];
              *code.1612 = D.27420;
              code.386 = code;
              code.1614 = code.386;
              code.1615 = code.1614 + 1;
              code = code.1615;
              D.27423 = imb.b[2];
              *code.1614 = D.27423;
              code.386 = code;
              code.1616 = code.386;
              code.1617 = code.1616 + 1;
              code = code.1617;
              D.27426 = imb.b[3];
              *code.1616 = D.27426;
              code.386 = code;
              code.1618 = code.386;
              code.1619 = code.1618 + 1;
              code = code.1619;
              D.27429 = imb.b[4];
              *code.1618 = D.27429;
              code.386 = code;
              code.1620 = code.386;
              code.1621 = code.1620 + 1;
              code = code.1621;
              D.27432 = imb.b[5];
              *code.1620 = D.27432;
              code.386 = code;
              code.1622 = code.386;
              code.1623 = code.1622 + 1;
              code = code.1623;
              D.27435 = imb.b[6];
              *code.1622 = D.27435;
              code.386 = code;
              code.1624 = code.386;
              code.1625 = code.1624 + 1;
              code = code.1625;
              D.27438 = imb.b[7];
              *code.1624 = D.27438;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.27439>;
        <D.27414>:
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.1626 = code.386;
              code.1627 = code.1626 + 1;
              code = code.1627;
              D.27442 = imb.b[0];
              *code.1626 = D.27442;
              code.386 = code;
              code.1628 = code.386;
              code.1629 = code.1628 + 1;
              code = code.1629;
              D.27445 = imb.b[1];
              *code.1628 = D.27445;
              code.386 = code;
              code.1630 = code.386;
              code.1631 = code.1630 + 1;
              code = code.1631;
              D.27448 = imb.b[2];
              *code.1630 = D.27448;
              code.386 = code;
              code.1632 = code.386;
              code.1633 = code.1632 + 1;
              code = code.1633;
              D.27451 = imb.b[3];
              *code.1632 = D.27451;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.27439>:
      }
      <D.27401>:
      if (0 != 0) goto <D.27452>; else goto <D.27453>;
      <D.27452>:
      code.386 = code;
      code.1634 = code.386;
      code.1635 = code.1634 + 1;
      code = code.1635;
      *code.1634 = 102;
      <D.27453>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27456>; else goto <D.27457>;
        <D.27456>:
        code.386 = code;
        code.1636 = code.386;
        code.1637 = code.1636 + 1;
        code = code.1637;
        D.27460 = _amd64_rex_bits | 64;
        *code.1636 = D.27460;
        <D.27457>:
      }
      switch (8) <default: <D.23331>, case 1: <D.23326>, case 2: <D.23328>, case 4: <D.23329>, case 8: <D.23330>>
      <D.23326>:
      code.386 = code;
      code.1638 = code.386;
      code.1639 = code.1638 + 1;
      code = code.1639;
      *code.1638 = 136;
      goto <D.23327>;
      <D.23328>:
      <D.23329>:
      <D.23330>:
      code.386 = code;
      code.1640 = code.386;
      code.1641 = code.1640 + 1;
      code = code.1641;
      *code.1640 = 137;
      goto <D.23327>;
      <D.23331>:
      __assert_fail ("0", "tramp-amd64.c", 594, &__PRETTY_FUNCTION__);
      <D.23327>:
      if (0 != 0) goto <D.27465>; else goto <D.27466>;
      <D.27465>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551608) goto <D.27468>; else goto <D.27469>;
      <D.27468>:
      code.386 = code;
      code.1642 = code.386;
      code.1643 = code.1642 + 1;
      code = code.1643;
      *code.1642 = 28;
      code.386 = code;
      code.1644 = code.386;
      code.1645 = code.1644 + 1;
      code = code.1645;
      *code.1644 = 36;
      goto <D.27474>;
      <D.27469>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27478 = lmf_offset.1646 + 8;
      D.27479 = (int) D.27478;
      if (D.27479 >= -128) goto <D.27480>; else goto <D.27475>;
      <D.27480>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27478 = lmf_offset.1646 + 8;
      D.27479 = (int) D.27478;
      if (D.27479 <= 127) goto <D.27481>; else goto <D.27475>;
      <D.27481>:
      code.386 = code;
      code.1647 = code.386;
      code.1648 = code.1647 + 1;
      code = code.1648;
      *code.1647 = 92;
      code.386 = code;
      code.1649 = code.386;
      code.1650 = code.1649 + 1;
      code = code.1650;
      *code.1649 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27487 = D.27486 + 8;
      *code.386 = D.27487;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27476>;
      <D.27475>:
      code.386 = code;
      code.1651 = code.386;
      code.1652 = code.1651 + 1;
      code = code.1652;
      *code.1651 = 156;
      code.386 = code;
      code.1653 = code.386;
      code.1654 = code.1653 + 1;
      code = code.1654;
      *code.1653 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27478 = lmf_offset.1646 + 8;
            D.27479 = (int) D.27478;
            imb.val = D.27479;
            code.386 = code;
            code.1655 = code.386;
            code.1656 = code.1655 + 1;
            code = code.1656;
            D.27494 = imb.b[0];
            *code.1655 = D.27494;
            code.386 = code;
            code.1657 = code.386;
            code.1658 = code.1657 + 1;
            code = code.1658;
            D.27497 = imb.b[1];
            *code.1657 = D.27497;
            code.386 = code;
            code.1659 = code.386;
            code.1660 = code.1659 + 1;
            code = code.1660;
            D.27500 = imb.b[2];
            *code.1659 = D.27500;
            code.386 = code;
            code.1661 = code.386;
            code.1662 = code.1661 + 1;
            code = code.1662;
            D.27503 = imb.b[3];
            *code.1661 = D.27503;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27476>:
      <D.27474>:
      goto <D.23333>;
      <D.27466>:
      if (0 != 0) goto <D.27504>; else goto <D.27505>;
      <D.27504>:
      code.386 = code;
      code.1663 = code.386;
      code.1664 = code.1663 + 1;
      code = code.1664;
      *code.1663 = 29;
      goto <D.23333>;
      <D.27505>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27478 = lmf_offset.1646 + 8;
      D.27479 = (int) D.27478;
      if (D.27479 >= -128) goto <D.27510>; else goto <D.27508>;
      <D.27510>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27478 = lmf_offset.1646 + 8;
      D.27479 = (int) D.27478;
      if (D.27479 <= 127) goto <D.27511>; else goto <D.27508>;
      <D.27511>:
      code.386 = code;
      code.1665 = code.386;
      code.1666 = code.1665 + 1;
      code = code.1666;
      *code.1665 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27487 = D.27486 + 8;
      *code.386 = D.27487;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27509>;
      <D.27508>:
      code.386 = code;
      code.1667 = code.386;
      code.1668 = code.1667 + 1;
      code = code.1668;
      *code.1667 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27478 = lmf_offset.1646 + 8;
            D.27479 = (int) D.27478;
            imb.val = D.27479;
            code.386 = code;
            code.1669 = code.386;
            code.1670 = code.1669 + 1;
            code = code.1670;
            D.27518 = imb.b[0];
            *code.1669 = D.27518;
            code.386 = code;
            code.1671 = code.386;
            code.1672 = code.1671 + 1;
            code = code.1672;
            D.27521 = imb.b[1];
            *code.1671 = D.27521;
            code.386 = code;
            code.1673 = code.386;
            code.1674 = code.1673 + 1;
            code = code.1674;
            D.27524 = imb.b[2];
            *code.1673 = D.27524;
            code.386 = code;
            code.1675 = code.386;
            code.1676 = code.1675 + 1;
            code = code.1676;
            D.27527 = imb.b[3];
            *code.1675 = D.27527;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27509>:
      <D.23333>:
      if (0 != 0) goto <D.27528>; else goto <D.27529>;
      <D.27528>:
      code.386 = code;
      code.1677 = code.386;
      code.1678 = code.1677 + 1;
      code = code.1678;
      *code.1677 = 102;
      <D.27529>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27532>; else goto <D.27533>;
        <D.27532>:
        code.386 = code;
        code.1679 = code.386;
        code.1680 = code.1679 + 1;
        code = code.1680;
        D.27536 = _amd64_rex_bits | 64;
        *code.1679 = D.27536;
        <D.27533>:
      }
      switch (8) <default: <D.23341>, case 1: <D.23336>, case 2: <D.23338>, case 4: <D.23339>, case 8: <D.23340>>
      <D.23336>:
      code.386 = code;
      code.1681 = code.386;
      code.1682 = code.1681 + 1;
      code = code.1682;
      *code.1681 = 138;
      goto <D.23337>;
      <D.23338>:
      <D.23339>:
      <D.23340>:
      code.386 = code;
      code.1683 = code.386;
      code.1684 = code.1683 + 1;
      code = code.1684;
      *code.1683 = 139;
      goto <D.23337>;
      <D.23341>:
      __assert_fail ("0", "tramp-amd64.c", 596, &__PRETTY_FUNCTION__);
      <D.23337>:
      if (0 != 0) goto <D.27541>; else goto <D.27542>;
      <D.27541>:
      code.386 = code;
      code.1685 = code.386;
      code.1686 = code.1685 + 1;
      code = code.1686;
      *code.1685 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = framesize;
            code.386 = code;
            code.1687 = code.386;
            code.1688 = code.1687 + 1;
            code = code.1688;
            D.27547 = imb.b[0];
            *code.1687 = D.27547;
            code.386 = code;
            code.1689 = code.386;
            code.1690 = code.1689 + 1;
            code = code.1690;
            D.27550 = imb.b[1];
            *code.1689 = D.27550;
            code.386 = code;
            code.1691 = code.386;
            code.1692 = code.1691 + 1;
            code = code.1692;
            D.27553 = imb.b[2];
            *code.1691 = D.27553;
            code.386 = code;
            code.1693 = code.386;
            code.1694 = code.1693 + 1;
            code = code.1694;
            D.27556 = imb.b[3];
            *code.1693 = D.27556;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27557>;
      <D.27542>:
      if (1 != 0) goto <D.27558>; else goto <D.27559>;
      <D.27558>:
      if (framesize == 0) goto <D.27560>; else goto <D.27561>;
      <D.27560>:
      code.386 = code;
      code.1695 = code.386;
      code.1696 = code.1695 + 1;
      code = code.1696;
      *code.1695 = 28;
      code.386 = code;
      code.1697 = code.386;
      code.1698 = code.1697 + 1;
      code = code.1698;
      *code.1697 = 36;
      goto <D.27566>;
      <D.27561>:
      framesize.410 = (unsigned int) framesize;
      D.25301 = framesize.410 + 128;
      if (D.25301 <= 255) goto <D.27567>; else goto <D.27568>;
      <D.27567>:
      code.386 = code;
      code.1699 = code.386;
      code.1700 = code.1699 + 1;
      code = code.1700;
      *code.1699 = 92;
      code.386 = code;
      code.1701 = code.386;
      code.1702 = code.1701 + 1;
      code = code.1702;
      *code.1701 = 36;
      code.386 = code;
      D.25313 = (unsigned char) framesize;
      *code.386 = D.25313;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27573>;
      <D.27568>:
      code.386 = code;
      code.1703 = code.386;
      code.1704 = code.1703 + 1;
      code = code.1704;
      *code.1703 = 156;
      code.386 = code;
      code.1705 = code.386;
      code.1706 = code.1705 + 1;
      code = code.1706;
      *code.1705 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = framesize;
            code.386 = code;
            code.1707 = code.386;
            code.1708 = code.1707 + 1;
            code = code.1708;
            D.27580 = imb.b[0];
            *code.1707 = D.27580;
            code.386 = code;
            code.1709 = code.386;
            code.1710 = code.1709 + 1;
            code = code.1710;
            D.27583 = imb.b[1];
            *code.1709 = D.27583;
            code.386 = code;
            code.1711 = code.386;
            code.1712 = code.1711 + 1;
            code = code.1712;
            D.27586 = imb.b[2];
            *code.1711 = D.27586;
            code.386 = code;
            code.1713 = code.386;
            code.1714 = code.1713 + 1;
            code = code.1714;
            D.27589 = imb.b[3];
            *code.1713 = D.27589;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27573>:
      <D.27566>:
      goto <D.23344>;
      <D.27559>:
      if (framesize == 0) goto <D.27590>; else goto <D.27591>;
      <D.27590>:
      code.386 = code;
      code.1715 = code.386;
      code.1716 = code.1715 + 1;
      code = code.1716;
      *code.1715 = 28;
      goto <D.23344>;
      <D.27591>:
      framesize.410 = (unsigned int) framesize;
      D.25301 = framesize.410 + 128;
      if (D.25301 <= 255) goto <D.27594>; else goto <D.27595>;
      <D.27594>:
      code.386 = code;
      code.1717 = code.386;
      code.1718 = code.1717 + 1;
      code = code.1718;
      *code.1717 = 92;
      code.386 = code;
      D.25313 = (unsigned char) framesize;
      *code.386 = D.25313;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27598>;
      <D.27595>:
      code.386 = code;
      code.1719 = code.386;
      code.1720 = code.1719 + 1;
      code = code.1720;
      *code.1719 = 156;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = framesize;
            code.386 = code;
            code.1721 = code.386;
            code.1722 = code.1721 + 1;
            code = code.1722;
            D.27603 = imb.b[0];
            *code.1721 = D.27603;
            code.386 = code;
            code.1723 = code.386;
            code.1724 = code.1723 + 1;
            code = code.1724;
            D.27606 = imb.b[1];
            *code.1723 = D.27606;
            code.386 = code;
            code.1725 = code.386;
            code.1726 = code.1725 + 1;
            code = code.1726;
            D.27609 = imb.b[2];
            *code.1725 = D.27609;
            code.386 = code;
            code.1727 = code.386;
            code.1728 = code.1727 + 1;
            code = code.1728;
            D.27612 = imb.b[3];
            *code.1727 = D.27612;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27598>:
      <D.23344>:
      <D.27557>:
      if (0 != 0) goto <D.27613>; else goto <D.27614>;
      <D.27613>:
      code.386 = code;
      code.1729 = code.386;
      code.1730 = code.1729 + 1;
      code = code.1730;
      *code.1729 = 102;
      <D.27614>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27617>; else goto <D.27618>;
        <D.27617>:
        code.386 = code;
        code.1731 = code.386;
        code.1732 = code.1731 + 1;
        code = code.1732;
        D.27621 = _amd64_rex_bits | 64;
        *code.1731 = D.27621;
        <D.27618>:
      }
      switch (8) <default: <D.23352>, case 1: <D.23347>, case 2: <D.23349>, case 4: <D.23350>, case 8: <D.23351>>
      <D.23347>:
      code.386 = code;
      code.1733 = code.386;
      code.1734 = code.1733 + 1;
      code = code.1734;
      *code.1733 = 136;
      goto <D.23348>;
      <D.23349>:
      <D.23350>:
      <D.23351>:
      code.386 = code;
      code.1735 = code.386;
      code.1736 = code.1735 + 1;
      code = code.1736;
      *code.1735 = 137;
      goto <D.23348>;
      <D.23352>:
      __assert_fail ("0", "tramp-amd64.c", 597, &__PRETTY_FUNCTION__);
      <D.23348>:
      if (0 != 0) goto <D.27626>; else goto <D.27627>;
      <D.27626>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551592) goto <D.27628>; else goto <D.27629>;
      <D.27628>:
      code.386 = code;
      code.1737 = code.386;
      code.1738 = code.1737 + 1;
      code = code.1738;
      *code.1737 = 28;
      code.386 = code;
      code.1739 = code.386;
      code.1740 = code.1739 + 1;
      code = code.1740;
      *code.1739 = 36;
      goto <D.27634>;
      <D.27629>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27637 = lmf_offset.1646 + 24;
      D.27638 = (int) D.27637;
      if (D.27638 >= -128) goto <D.27639>; else goto <D.27635>;
      <D.27639>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27637 = lmf_offset.1646 + 24;
      D.27638 = (int) D.27637;
      if (D.27638 <= 127) goto <D.27640>; else goto <D.27635>;
      <D.27640>:
      code.386 = code;
      code.1741 = code.386;
      code.1742 = code.1741 + 1;
      code = code.1742;
      *code.1741 = 92;
      code.386 = code;
      code.1743 = code.386;
      code.1744 = code.1743 + 1;
      code = code.1744;
      *code.1743 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27645 = D.27486 + 24;
      *code.386 = D.27645;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27636>;
      <D.27635>:
      code.386 = code;
      code.1745 = code.386;
      code.1746 = code.1745 + 1;
      code = code.1746;
      *code.1745 = 156;
      code.386 = code;
      code.1747 = code.386;
      code.1748 = code.1747 + 1;
      code = code.1748;
      *code.1747 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27637 = lmf_offset.1646 + 24;
            D.27638 = (int) D.27637;
            imb.val = D.27638;
            code.386 = code;
            code.1749 = code.386;
            code.1750 = code.1749 + 1;
            code = code.1750;
            D.27652 = imb.b[0];
            *code.1749 = D.27652;
            code.386 = code;
            code.1751 = code.386;
            code.1752 = code.1751 + 1;
            code = code.1752;
            D.27655 = imb.b[1];
            *code.1751 = D.27655;
            code.386 = code;
            code.1753 = code.386;
            code.1754 = code.1753 + 1;
            code = code.1754;
            D.27658 = imb.b[2];
            *code.1753 = D.27658;
            code.386 = code;
            code.1755 = code.386;
            code.1756 = code.1755 + 1;
            code = code.1756;
            D.27661 = imb.b[3];
            *code.1755 = D.27661;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27636>:
      <D.27634>:
      goto <D.23354>;
      <D.27627>:
      if (0 != 0) goto <D.27662>; else goto <D.27663>;
      <D.27662>:
      code.386 = code;
      code.1757 = code.386;
      code.1758 = code.1757 + 1;
      code = code.1758;
      *code.1757 = 29;
      goto <D.23354>;
      <D.27663>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27637 = lmf_offset.1646 + 24;
      D.27638 = (int) D.27637;
      if (D.27638 >= -128) goto <D.27668>; else goto <D.27666>;
      <D.27668>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27637 = lmf_offset.1646 + 24;
      D.27638 = (int) D.27637;
      if (D.27638 <= 127) goto <D.27669>; else goto <D.27666>;
      <D.27669>:
      code.386 = code;
      code.1759 = code.386;
      code.1760 = code.1759 + 1;
      code = code.1760;
      *code.1759 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27645 = D.27486 + 24;
      *code.386 = D.27645;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27667>;
      <D.27666>:
      code.386 = code;
      code.1761 = code.386;
      code.1762 = code.1761 + 1;
      code = code.1762;
      *code.1761 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27637 = lmf_offset.1646 + 24;
            D.27638 = (int) D.27637;
            imb.val = D.27638;
            code.386 = code;
            code.1763 = code.386;
            code.1764 = code.1763 + 1;
            code = code.1764;
            D.27676 = imb.b[0];
            *code.1763 = D.27676;
            code.386 = code;
            code.1765 = code.386;
            code.1766 = code.1765 + 1;
            code = code.1766;
            D.27679 = imb.b[1];
            *code.1765 = D.27679;
            code.386 = code;
            code.1767 = code.386;
            code.1768 = code.1767 + 1;
            code = code.1768;
            D.27682 = imb.b[2];
            *code.1767 = D.27682;
            code.386 = code;
            code.1769 = code.386;
            code.1770 = code.1769 + 1;
            code = code.1770;
            D.27685 = imb.b[3];
            *code.1769 = D.27685;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27667>:
      <D.23354>:
      if (0 != 0) goto <D.27686>; else goto <D.27687>;
      <D.27686>:
      code.386 = code;
      code.1771 = code.386;
      code.1772 = code.1771 + 1;
      code = code.1772;
      *code.1771 = 102;
      <D.27687>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27690>; else goto <D.27691>;
        <D.27690>:
        code.386 = code;
        code.1773 = code.386;
        code.1774 = code.1773 + 1;
        code = code.1774;
        D.27694 = _amd64_rex_bits | 64;
        *code.1773 = D.27694;
        <D.27691>:
      }
      switch (8) <default: <D.23362>, case 1: <D.23357>, case 2: <D.23359>, case 4: <D.23360>, case 8: <D.23361>>
      <D.23357>:
      code.386 = code;
      code.1775 = code.386;
      code.1776 = code.1775 + 1;
      code = code.1776;
      *code.1775 = 138;
      goto <D.23358>;
      <D.23359>:
      <D.23360>:
      <D.23361>:
      code.386 = code;
      code.1777 = code.386;
      code.1778 = code.1777 + 1;
      code = code.1778;
      *code.1777 = 139;
      goto <D.23358>;
      <D.23362>:
      __assert_fail ("0", "tramp-amd64.c", 599, &__PRETTY_FUNCTION__);
      <D.23358>:
      code.386 = code;
      code.1779 = code.386;
      code.1780 = code.1779 + 1;
      code = code.1780;
      *code.1779 = 220;
      framesize.410 = (unsigned int) framesize;
      D.27701 = framesize.410 + 144;
      if (D.27701 <= 255) goto <D.27702>; else goto <D.27703>;
      <D.27702>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.27704>; else goto <D.27705>;
        <D.27704>:
        code.386 = code;
        code.1781 = code.386;
        code.1782 = code.1781 + 1;
        code = code.1782;
        D.27708 = _amd64_rex_bits | 64;
        *code.1781 = D.27708;
        <D.27705>:
      }
      code.386 = code;
      code.1783 = code.386;
      code.1784 = code.1783 + 1;
      code = code.1784;
      *code.1783 = 131;
      code.386 = code;
      code.1785 = code.386;
      code.1786 = code.1785 + 1;
      code = code.1786;
      *code.1785 = 195;
      code.386 = code;
      D.27713 = (unsigned char) framesize;
      D.27714 = D.27713 + 16;
      *code.386 = D.27714;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27715>;
      <D.27703>:
      if (0 != 0) goto <D.27716>; else goto <D.27717>;
      <D.27716>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.27718>; else goto <D.27719>;
        <D.27718>:
        code.386 = code;
        code.1787 = code.386;
        code.1788 = code.1787 + 1;
        code = code.1788;
        D.27722 = _amd64_rex_bits | 64;
        *code.1787 = D.27722;
        <D.27719>:
      }
      code.386 = code;
      code.1789 = code.386;
      code.1790 = code.1789 + 1;
      code = code.1790;
      *code.1789 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            D.27725 = framesize + 16;
            imb.val = D.27725;
            code.386 = code;
            code.1791 = code.386;
            code.1792 = code.1791 + 1;
            code = code.1792;
            D.27728 = imb.b[0];
            *code.1791 = D.27728;
            code.386 = code;
            code.1793 = code.386;
            code.1794 = code.1793 + 1;
            code = code.1794;
            D.27731 = imb.b[1];
            *code.1793 = D.27731;
            code.386 = code;
            code.1795 = code.386;
            code.1796 = code.1795 + 1;
            code = code.1796;
            D.27734 = imb.b[2];
            *code.1795 = D.27734;
            code.386 = code;
            code.1797 = code.386;
            code.1798 = code.1797 + 1;
            code = code.1798;
            D.27737 = imb.b[3];
            *code.1797 = D.27737;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27738>;
      <D.27717>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.27739>; else goto <D.27740>;
        <D.27739>:
        code.386 = code;
        code.1799 = code.386;
        code.1800 = code.1799 + 1;
        code = code.1800;
        D.27743 = _amd64_rex_bits | 64;
        *code.1799 = D.27743;
        <D.27740>:
      }
      code.386 = code;
      code.1801 = code.386;
      code.1802 = code.1801 + 1;
      code = code.1802;
      *code.1801 = 129;
      code.386 = code;
      code.1803 = code.386;
      code.1804 = code.1803 + 1;
      code = code.1804;
      *code.1803 = 195;
      {
        union x86_imm_buf imb;

        try
          {
            D.27725 = framesize + 16;
            imb.val = D.27725;
            code.386 = code;
            code.1805 = code.386;
            code.1806 = code.1805 + 1;
            code = code.1806;
            D.27750 = imb.b[0];
            *code.1805 = D.27750;
            code.386 = code;
            code.1807 = code.386;
            code.1808 = code.1807 + 1;
            code = code.1808;
            D.27753 = imb.b[1];
            *code.1807 = D.27753;
            code.386 = code;
            code.1809 = code.386;
            code.1810 = code.1809 + 1;
            code = code.1810;
            D.27756 = imb.b[2];
            *code.1809 = D.27756;
            code.386 = code;
            code.1811 = code.386;
            code.1812 = code.1811 + 1;
            code = code.1812;
            D.27759 = imb.b[3];
            *code.1811 = D.27759;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27738>:
      <D.27715>:
      if (0 != 0) goto <D.27760>; else goto <D.27761>;
      <D.27760>:
      code.386 = code;
      code.1813 = code.386;
      code.1814 = code.1813 + 1;
      code = code.1814;
      *code.1813 = 102;
      <D.27761>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27764>; else goto <D.27765>;
        <D.27764>:
        code.386 = code;
        code.1815 = code.386;
        code.1816 = code.1815 + 1;
        code = code.1816;
        D.27768 = _amd64_rex_bits | 64;
        *code.1815 = D.27768;
        <D.27765>:
      }
      switch (8) <default: <D.23374>, case 1: <D.23369>, case 2: <D.23371>, case 4: <D.23372>, case 8: <D.23373>>
      <D.23369>:
      code.386 = code;
      code.1817 = code.386;
      code.1818 = code.1817 + 1;
      code = code.1818;
      *code.1817 = 136;
      goto <D.23370>;
      <D.23371>:
      <D.23372>:
      <D.23373>:
      code.386 = code;
      code.1819 = code.386;
      code.1820 = code.1819 + 1;
      code = code.1820;
      *code.1819 = 137;
      goto <D.23370>;
      <D.23374>:
      __assert_fail ("0", "tramp-amd64.c", 601, &__PRETTY_FUNCTION__);
      <D.23370>:
      if (0 != 0) goto <D.27773>; else goto <D.27774>;
      <D.27773>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551584) goto <D.27775>; else goto <D.27776>;
      <D.27775>:
      code.386 = code;
      code.1821 = code.386;
      code.1822 = code.1821 + 1;
      code = code.1822;
      *code.1821 = 28;
      code.386 = code;
      code.1823 = code.386;
      code.1824 = code.1823 + 1;
      code = code.1824;
      *code.1823 = 36;
      goto <D.27781>;
      <D.27776>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27784 = lmf_offset.1646 + 32;
      D.27785 = (int) D.27784;
      if (D.27785 >= -128) goto <D.27786>; else goto <D.27782>;
      <D.27786>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27784 = lmf_offset.1646 + 32;
      D.27785 = (int) D.27784;
      if (D.27785 <= 127) goto <D.27787>; else goto <D.27782>;
      <D.27787>:
      code.386 = code;
      code.1825 = code.386;
      code.1826 = code.1825 + 1;
      code = code.1826;
      *code.1825 = 92;
      code.386 = code;
      code.1827 = code.386;
      code.1828 = code.1827 + 1;
      code = code.1828;
      *code.1827 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27792 = D.27486 + 32;
      *code.386 = D.27792;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27783>;
      <D.27782>:
      code.386 = code;
      code.1829 = code.386;
      code.1830 = code.1829 + 1;
      code = code.1830;
      *code.1829 = 156;
      code.386 = code;
      code.1831 = code.386;
      code.1832 = code.1831 + 1;
      code = code.1832;
      *code.1831 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27784 = lmf_offset.1646 + 32;
            D.27785 = (int) D.27784;
            imb.val = D.27785;
            code.386 = code;
            code.1833 = code.386;
            code.1834 = code.1833 + 1;
            code = code.1834;
            D.27799 = imb.b[0];
            *code.1833 = D.27799;
            code.386 = code;
            code.1835 = code.386;
            code.1836 = code.1835 + 1;
            code = code.1836;
            D.27802 = imb.b[1];
            *code.1835 = D.27802;
            code.386 = code;
            code.1837 = code.386;
            code.1838 = code.1837 + 1;
            code = code.1838;
            D.27805 = imb.b[2];
            *code.1837 = D.27805;
            code.386 = code;
            code.1839 = code.386;
            code.1840 = code.1839 + 1;
            code = code.1840;
            D.27808 = imb.b[3];
            *code.1839 = D.27808;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27783>:
      <D.27781>:
      goto <D.23376>;
      <D.27774>:
      if (0 != 0) goto <D.27809>; else goto <D.27810>;
      <D.27809>:
      code.386 = code;
      code.1841 = code.386;
      code.1842 = code.1841 + 1;
      code = code.1842;
      *code.1841 = 29;
      goto <D.23376>;
      <D.27810>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27784 = lmf_offset.1646 + 32;
      D.27785 = (int) D.27784;
      if (D.27785 >= -128) goto <D.27815>; else goto <D.27813>;
      <D.27815>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27784 = lmf_offset.1646 + 32;
      D.27785 = (int) D.27784;
      if (D.27785 <= 127) goto <D.27816>; else goto <D.27813>;
      <D.27816>:
      code.386 = code;
      code.1843 = code.386;
      code.1844 = code.1843 + 1;
      code = code.1844;
      *code.1843 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27792 = D.27486 + 32;
      *code.386 = D.27792;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27814>;
      <D.27813>:
      code.386 = code;
      code.1845 = code.386;
      code.1846 = code.1845 + 1;
      code = code.1846;
      *code.1845 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27784 = lmf_offset.1646 + 32;
            D.27785 = (int) D.27784;
            imb.val = D.27785;
            code.386 = code;
            code.1847 = code.386;
            code.1848 = code.1847 + 1;
            code = code.1848;
            D.27823 = imb.b[0];
            *code.1847 = D.27823;
            code.386 = code;
            code.1849 = code.386;
            code.1850 = code.1849 + 1;
            code = code.1850;
            D.27826 = imb.b[1];
            *code.1849 = D.27826;
            code.386 = code;
            code.1851 = code.386;
            code.1852 = code.1851 + 1;
            code = code.1852;
            D.27829 = imb.b[2];
            *code.1851 = D.27829;
            code.386 = code;
            code.1853 = code.386;
            code.1854 = code.1853 + 1;
            code = code.1854;
            D.27832 = imb.b[3];
            *code.1853 = D.27832;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27814>:
      <D.23376>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27833>; else goto <D.27834>;
        <D.27833>:
        code.386 = code;
        code.1855 = code.386;
        code.1856 = code.1855 + 1;
        code = code.1856;
        D.27837 = _amd64_rex_bits | 64;
        *code.1855 = D.27837;
        <D.27834>:
      }
      code.386 = code;
      code.1857 = code.386;
      code.1858 = code.1857 + 1;
      code = code.1858;
      *code.1857 = 141;
      if (0 != 0) goto <D.27840>; else goto <D.27841>;
      <D.27840>:
      code.386 = code;
      code.1859 = code.386;
      code.1860 = code.1859 + 1;
      code = code.1860;
      *code.1859 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.1861 = code.386;
            code.1862 = code.1861 + 1;
            code = code.1862;
            D.27846 = imb.b[0];
            *code.1861 = D.27846;
            code.386 = code;
            code.1863 = code.386;
            code.1864 = code.1863 + 1;
            code = code.1864;
            D.27849 = imb.b[1];
            *code.1863 = D.27849;
            code.386 = code;
            code.1865 = code.386;
            code.1866 = code.1865 + 1;
            code = code.1866;
            D.27852 = imb.b[2];
            *code.1865 = D.27852;
            code.386 = code;
            code.1867 = code.386;
            code.1868 = code.1867 + 1;
            code = code.1868;
            D.27855 = imb.b[3];
            *code.1867 = D.27855;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.27856>;
      <D.27841>:
      if (0 != 0) goto <D.27857>; else goto <D.27858>;
      <D.27857>:
      if (saved_regs_offset == 0) goto <D.27859>; else goto <D.27860>;
      <D.27859>:
      code.386 = code;
      code.1869 = code.386;
      code.1870 = code.1869 + 1;
      code = code.1870;
      *code.1869 = 28;
      code.386 = code;
      code.1871 = code.386;
      code.1872 = code.1871 + 1;
      code = code.1872;
      *code.1871 = 36;
      goto <D.27865>;
      <D.27860>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27866 = saved_regs_offset.617 + 128;
      if (D.27866 <= 255) goto <D.27867>; else goto <D.27868>;
      <D.27867>:
      code.386 = code;
      code.1873 = code.386;
      code.1874 = code.1873 + 1;
      code = code.1874;
      *code.1873 = 92;
      code.386 = code;
      code.1875 = code.386;
      code.1876 = code.1875 + 1;
      code = code.1876;
      *code.1875 = 36;
      code.386 = code;
      D.27873 = (unsigned char) saved_regs_offset;
      *code.386 = D.27873;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27874>;
      <D.27868>:
      code.386 = code;
      code.1877 = code.386;
      code.1878 = code.1877 + 1;
      code = code.1878;
      *code.1877 = 156;
      code.386 = code;
      code.1879 = code.386;
      code.1880 = code.1879 + 1;
      code = code.1880;
      *code.1879 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.1881 = code.386;
            code.1882 = code.1881 + 1;
            code = code.1882;
            D.27881 = imb.b[0];
            *code.1881 = D.27881;
            code.386 = code;
            code.1883 = code.386;
            code.1884 = code.1883 + 1;
            code = code.1884;
            D.27884 = imb.b[1];
            *code.1883 = D.27884;
            code.386 = code;
            code.1885 = code.386;
            code.1886 = code.1885 + 1;
            code = code.1886;
            D.27887 = imb.b[2];
            *code.1885 = D.27887;
            code.386 = code;
            code.1887 = code.386;
            code.1888 = code.1887 + 1;
            code = code.1888;
            D.27890 = imb.b[3];
            *code.1887 = D.27890;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27874>:
      <D.27865>:
      goto <D.23381>;
      <D.27858>:
      if (0 != 0) goto <D.27891>; else goto <D.27892>;
      <D.27891>:
      code.386 = code;
      code.1889 = code.386;
      code.1890 = code.1889 + 1;
      code = code.1890;
      *code.1889 = 29;
      goto <D.23381>;
      <D.27892>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27866 = saved_regs_offset.617 + 128;
      if (D.27866 <= 255) goto <D.27895>; else goto <D.27896>;
      <D.27895>:
      code.386 = code;
      code.1891 = code.386;
      code.1892 = code.1891 + 1;
      code = code.1892;
      *code.1891 = 93;
      code.386 = code;
      D.27873 = (unsigned char) saved_regs_offset;
      *code.386 = D.27873;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27899>;
      <D.27896>:
      code.386 = code;
      code.1893 = code.386;
      code.1894 = code.1893 + 1;
      code = code.1894;
      *code.1893 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.1895 = code.386;
            code.1896 = code.1895 + 1;
            code = code.1896;
            D.27904 = imb.b[0];
            *code.1895 = D.27904;
            code.386 = code;
            code.1897 = code.386;
            code.1898 = code.1897 + 1;
            code = code.1898;
            D.27907 = imb.b[1];
            *code.1897 = D.27907;
            code.386 = code;
            code.1899 = code.386;
            code.1900 = code.1899 + 1;
            code = code.1900;
            D.27910 = imb.b[2];
            *code.1899 = D.27910;
            code.386 = code;
            code.1901 = code.386;
            code.1902 = code.1901 + 1;
            code = code.1902;
            D.27913 = imb.b[3];
            *code.1901 = D.27913;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27899>:
      <D.23381>:
      <D.27856>:
      if (0 != 0) goto <D.27914>; else goto <D.27915>;
      <D.27914>:
      code.386 = code;
      code.1903 = code.386;
      code.1904 = code.1903 + 1;
      code = code.1904;
      *code.1903 = 102;
      <D.27915>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.27918>; else goto <D.27919>;
        <D.27918>:
        code.386 = code;
        code.1905 = code.386;
        code.1906 = code.1905 + 1;
        code = code.1906;
        D.27922 = _amd64_rex_bits | 64;
        *code.1905 = D.27922;
        <D.27919>:
      }
      switch (8) <default: <D.23389>, case 1: <D.23384>, case 2: <D.23386>, case 4: <D.23387>, case 8: <D.23388>>
      <D.23384>:
      code.386 = code;
      code.1907 = code.386;
      code.1908 = code.1907 + 1;
      code = code.1908;
      *code.1907 = 136;
      goto <D.23385>;
      <D.23386>:
      <D.23387>:
      <D.23388>:
      code.386 = code;
      code.1909 = code.386;
      code.1910 = code.1909 + 1;
      code = code.1910;
      *code.1909 = 137;
      goto <D.23385>;
      <D.23389>:
      __assert_fail ("0", "tramp-amd64.c", 604, &__PRETTY_FUNCTION__);
      <D.23385>:
      if (0 != 0) goto <D.27927>; else goto <D.27928>;
      <D.27927>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551544) goto <D.27929>; else goto <D.27930>;
      <D.27929>:
      code.386 = code;
      code.1911 = code.386;
      code.1912 = code.1911 + 1;
      code = code.1912;
      *code.1911 = 28;
      code.386 = code;
      code.1913 = code.386;
      code.1914 = code.1913 + 1;
      code = code.1914;
      *code.1913 = 36;
      goto <D.27935>;
      <D.27930>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27938 = lmf_offset.1646 + 72;
      D.27939 = (int) D.27938;
      if (D.27939 >= -128) goto <D.27940>; else goto <D.27936>;
      <D.27940>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27938 = lmf_offset.1646 + 72;
      D.27939 = (int) D.27938;
      if (D.27939 <= 127) goto <D.27941>; else goto <D.27936>;
      <D.27941>:
      code.386 = code;
      code.1915 = code.386;
      code.1916 = code.1915 + 1;
      code = code.1916;
      *code.1915 = 92;
      code.386 = code;
      code.1917 = code.386;
      code.1918 = code.1917 + 1;
      code = code.1918;
      *code.1917 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27946 = D.27486 + 72;
      *code.386 = D.27946;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27937>;
      <D.27936>:
      code.386 = code;
      code.1919 = code.386;
      code.1920 = code.1919 + 1;
      code = code.1920;
      *code.1919 = 156;
      code.386 = code;
      code.1921 = code.386;
      code.1922 = code.1921 + 1;
      code = code.1922;
      *code.1921 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27938 = lmf_offset.1646 + 72;
            D.27939 = (int) D.27938;
            imb.val = D.27939;
            code.386 = code;
            code.1923 = code.386;
            code.1924 = code.1923 + 1;
            code = code.1924;
            D.27953 = imb.b[0];
            *code.1923 = D.27953;
            code.386 = code;
            code.1925 = code.386;
            code.1926 = code.1925 + 1;
            code = code.1926;
            D.27956 = imb.b[1];
            *code.1925 = D.27956;
            code.386 = code;
            code.1927 = code.386;
            code.1928 = code.1927 + 1;
            code = code.1928;
            D.27959 = imb.b[2];
            *code.1927 = D.27959;
            code.386 = code;
            code.1929 = code.386;
            code.1930 = code.1929 + 1;
            code = code.1930;
            D.27962 = imb.b[3];
            *code.1929 = D.27962;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27937>:
      <D.27935>:
      goto <D.23391>;
      <D.27928>:
      if (0 != 0) goto <D.27963>; else goto <D.27964>;
      <D.27963>:
      code.386 = code;
      code.1931 = code.386;
      code.1932 = code.1931 + 1;
      code = code.1932;
      *code.1931 = 29;
      goto <D.23391>;
      <D.27964>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27938 = lmf_offset.1646 + 72;
      D.27939 = (int) D.27938;
      if (D.27939 >= -128) goto <D.27969>; else goto <D.27967>;
      <D.27969>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.27938 = lmf_offset.1646 + 72;
      D.27939 = (int) D.27938;
      if (D.27939 <= 127) goto <D.27970>; else goto <D.27967>;
      <D.27970>:
      code.386 = code;
      code.1933 = code.386;
      code.1934 = code.1933 + 1;
      code = code.1934;
      *code.1933 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.27946 = D.27486 + 72;
      *code.386 = D.27946;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.27968>;
      <D.27967>:
      code.386 = code;
      code.1935 = code.386;
      code.1936 = code.1935 + 1;
      code = code.1936;
      *code.1935 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.27938 = lmf_offset.1646 + 72;
            D.27939 = (int) D.27938;
            imb.val = D.27939;
            code.386 = code;
            code.1937 = code.386;
            code.1938 = code.1937 + 1;
            code = code.1938;
            D.27977 = imb.b[0];
            *code.1937 = D.27977;
            code.386 = code;
            code.1939 = code.386;
            code.1940 = code.1939 + 1;
            code = code.1940;
            D.27980 = imb.b[1];
            *code.1939 = D.27980;
            code.386 = code;
            code.1941 = code.386;
            code.1942 = code.1941 + 1;
            code = code.1942;
            D.27983 = imb.b[2];
            *code.1941 = D.27983;
            code.386 = code;
            code.1943 = code.386;
            code.1944 = code.1943 + 1;
            code = code.1944;
            D.27986 = imb.b[3];
            *code.1943 = D.27986;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.27968>:
      <D.23391>:
      if (aot != 0) goto <D.27987>; else goto <D.27988>;
      <D.27987>:
      code.386 = code;
      buf.385 = buf;
      code.1945 = mono_arch_emit_load_aotconst (buf.385, code.386, &ji, 32, "mono_get_lmf_addr");
      code = code.1945;
      goto <D.27990>;
      <D.27988>:
      {
        int _amd64_width_temp;

        mono_get_lmf_addr.1946 = (long int) mono_get_lmf_addr;
        D.27992 = (int) mono_get_lmf_addr.1946;
        D.27993 = (long unsigned int) D.27992;
        mono_get_lmf_addr.1947 = (long unsigned int) mono_get_lmf_addr;
        D.27995 = D.27993 == mono_get_lmf_addr.1947;
        _amd64_width_temp = (int) D.27995;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.27997>; else goto <D.27998>;
          <D.27997>:
          iftmp.1948 = 9;
          goto <D.27999>;
          <D.27998>:
          iftmp.1948 = 1;
          <D.27999>:
          _amd64_rex_bits = iftmp.1948;
          if (_amd64_rex_bits != 0) goto <D.28000>; else goto <D.28001>;
          <D.28000>:
          code.386 = code;
          code.1949 = code.386;
          code.1950 = code.1949 + 1;
          code = code.1950;
          D.28004 = _amd64_rex_bits | 64;
          *code.1949 = D.28004;
          <D.28001>:
        }
        code.386 = code;
        code.1951 = code.386;
        code.1952 = code.1951 + 1;
        code = code.1952;
        *code.1951 = 187;
        if (_amd64_width_temp == 0) goto <D.28007>; else goto <D.28008>;
        <D.28007>:
        {
          union amd64_imm_buf imb;

          try
            {
              mono_get_lmf_addr.1947 = (long unsigned int) mono_get_lmf_addr;
              imb.val = mono_get_lmf_addr.1947;
              code.386 = code;
              code.1953 = code.386;
              code.1954 = code.1953 + 1;
              code = code.1954;
              D.28011 = imb.b[0];
              *code.1953 = D.28011;
              code.386 = code;
              code.1955 = code.386;
              code.1956 = code.1955 + 1;
              code = code.1956;
              D.28014 = imb.b[1];
              *code.1955 = D.28014;
              code.386 = code;
              code.1957 = code.386;
              code.1958 = code.1957 + 1;
              code = code.1958;
              D.28017 = imb.b[2];
              *code.1957 = D.28017;
              code.386 = code;
              code.1959 = code.386;
              code.1960 = code.1959 + 1;
              code = code.1960;
              D.28020 = imb.b[3];
              *code.1959 = D.28020;
              code.386 = code;
              code.1961 = code.386;
              code.1962 = code.1961 + 1;
              code = code.1962;
              D.28023 = imb.b[4];
              *code.1961 = D.28023;
              code.386 = code;
              code.1963 = code.386;
              code.1964 = code.1963 + 1;
              code = code.1964;
              D.28026 = imb.b[5];
              *code.1963 = D.28026;
              code.386 = code;
              code.1965 = code.386;
              code.1966 = code.1965 + 1;
              code = code.1966;
              D.28029 = imb.b[6];
              *code.1965 = D.28029;
              code.386 = code;
              code.1967 = code.386;
              code.1968 = code.1967 + 1;
              code = code.1968;
              D.28032 = imb.b[7];
              *code.1967 = D.28032;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.28033>;
        <D.28008>:
        {
          union x86_imm_buf imb;

          try
            {
              mono_get_lmf_addr.1946 = (long int) mono_get_lmf_addr;
              D.27992 = (int) mono_get_lmf_addr.1946;
              imb.val = D.27992;
              code.386 = code;
              code.1969 = code.386;
              code.1970 = code.1969 + 1;
              code = code.1970;
              D.28036 = imb.b[0];
              *code.1969 = D.28036;
              code.386 = code;
              code.1971 = code.386;
              code.1972 = code.1971 + 1;
              code = code.1972;
              D.28039 = imb.b[1];
              *code.1971 = D.28039;
              code.386 = code;
              code.1973 = code.386;
              code.1974 = code.1973 + 1;
              code = code.1974;
              D.28042 = imb.b[2];
              *code.1973 = D.28042;
              code.386 = code;
              code.1975 = code.386;
              code.1976 = code.1975 + 1;
              code = code.1976;
              D.28045 = imb.b[3];
              *code.1975 = D.28045;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.28033>:
      }
      <D.27990>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.28046>; else goto <D.28047>;
        <D.28046>:
        code.386 = code;
        code.1977 = code.386;
        code.1978 = code.1977 + 1;
        code = code.1978;
        D.28050 = _amd64_rex_bits | 64;
        *code.1977 = D.28050;
        <D.28047>:
      }
      code.386 = code;
      code.1979 = code.386;
      code.1980 = code.1979 + 1;
      code = code.1980;
      *code.1979 = 255;
      code.386 = code;
      code.1981 = code.386;
      code.1982 = code.1981 + 1;
      code = code.1982;
      *code.1981 = 211;
      if (0 != 0) goto <D.28055>; else goto <D.28056>;
      <D.28055>:
      code.386 = code;
      code.1983 = code.386;
      code.1984 = code.1983 + 1;
      code = code.1984;
      *code.1983 = 102;
      <D.28056>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28059>; else goto <D.28060>;
        <D.28059>:
        code.386 = code;
        code.1985 = code.386;
        code.1986 = code.1985 + 1;
        code = code.1986;
        D.28063 = _amd64_rex_bits | 64;
        *code.1985 = D.28063;
        <D.28060>:
      }
      switch (8) <default: <D.23404>, case 1: <D.23399>, case 2: <D.23401>, case 4: <D.23402>, case 8: <D.23403>>
      <D.23399>:
      code.386 = code;
      code.1987 = code.386;
      code.1988 = code.1987 + 1;
      code = code.1988;
      *code.1987 = 136;
      goto <D.23400>;
      <D.23401>:
      <D.23402>:
      <D.23403>:
      code.386 = code;
      code.1989 = code.386;
      code.1990 = code.1989 + 1;
      code = code.1990;
      *code.1989 = 137;
      goto <D.23400>;
      <D.23404>:
      __assert_fail ("0", "tramp-amd64.c", 614, &__PRETTY_FUNCTION__);
      <D.23400>:
      if (0 != 0) goto <D.28068>; else goto <D.28069>;
      <D.28068>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551536) goto <D.28070>; else goto <D.28071>;
      <D.28070>:
      code.386 = code;
      code.1991 = code.386;
      code.1992 = code.1991 + 1;
      code = code.1992;
      *code.1991 = 4;
      code.386 = code;
      code.1993 = code.386;
      code.1994 = code.1993 + 1;
      code = code.1994;
      *code.1993 = 36;
      goto <D.28076>;
      <D.28071>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 >= -128) goto <D.28081>; else goto <D.28077>;
      <D.28081>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 <= 127) goto <D.28082>; else goto <D.28077>;
      <D.28082>:
      code.386 = code;
      code.1995 = code.386;
      code.1996 = code.1995 + 1;
      code = code.1996;
      *code.1995 = 68;
      code.386 = code;
      code.1997 = code.386;
      code.1998 = code.1997 + 1;
      code = code.1998;
      *code.1997 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.28087 = D.27486 + 80;
      *code.386 = D.28087;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28078>;
      <D.28077>:
      code.386 = code;
      code.1999 = code.386;
      code.2000 = code.1999 + 1;
      code = code.2000;
      *code.1999 = 132;
      code.386 = code;
      code.2001 = code.386;
      code.2002 = code.2001 + 1;
      code = code.2002;
      *code.2001 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.28079 = lmf_offset.1646 + 80;
            D.28080 = (int) D.28079;
            imb.val = D.28080;
            code.386 = code;
            code.2003 = code.386;
            code.2004 = code.2003 + 1;
            code = code.2004;
            D.28094 = imb.b[0];
            *code.2003 = D.28094;
            code.386 = code;
            code.2005 = code.386;
            code.2006 = code.2005 + 1;
            code = code.2006;
            D.28097 = imb.b[1];
            *code.2005 = D.28097;
            code.386 = code;
            code.2007 = code.386;
            code.2008 = code.2007 + 1;
            code = code.2008;
            D.28100 = imb.b[2];
            *code.2007 = D.28100;
            code.386 = code;
            code.2009 = code.386;
            code.2010 = code.2009 + 1;
            code = code.2010;
            D.28103 = imb.b[3];
            *code.2009 = D.28103;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28078>:
      <D.28076>:
      goto <D.23406>;
      <D.28069>:
      if (0 != 0) goto <D.28104>; else goto <D.28105>;
      <D.28104>:
      code.386 = code;
      code.2011 = code.386;
      code.2012 = code.2011 + 1;
      code = code.2012;
      *code.2011 = 5;
      goto <D.23406>;
      <D.28105>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 >= -128) goto <D.28110>; else goto <D.28108>;
      <D.28110>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 <= 127) goto <D.28111>; else goto <D.28108>;
      <D.28111>:
      code.386 = code;
      code.2013 = code.386;
      code.2014 = code.2013 + 1;
      code = code.2014;
      *code.2013 = 69;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.28087 = D.27486 + 80;
      *code.386 = D.28087;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28109>;
      <D.28108>:
      code.386 = code;
      code.2015 = code.386;
      code.2016 = code.2015 + 1;
      code = code.2016;
      *code.2015 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.28079 = lmf_offset.1646 + 80;
            D.28080 = (int) D.28079;
            imb.val = D.28080;
            code.386 = code;
            code.2017 = code.386;
            code.2018 = code.2017 + 1;
            code = code.2018;
            D.28118 = imb.b[0];
            *code.2017 = D.28118;
            code.386 = code;
            code.2019 = code.386;
            code.2020 = code.2019 + 1;
            code = code.2020;
            D.28121 = imb.b[1];
            *code.2019 = D.28121;
            code.386 = code;
            code.2021 = code.386;
            code.2022 = code.2021 + 1;
            code = code.2022;
            D.28124 = imb.b[2];
            *code.2021 = D.28124;
            code.386 = code;
            code.2023 = code.386;
            code.2024 = code.2023 + 1;
            code = code.2024;
            D.28127 = imb.b[3];
            *code.2023 = D.28127;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28109>:
      <D.23406>:
      if (0 != 0) goto <D.28128>; else goto <D.28129>;
      <D.28128>:
      code.386 = code;
      code.2025 = code.386;
      code.2026 = code.2025 + 1;
      code = code.2026;
      *code.2025 = 102;
      <D.28129>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.28132>; else goto <D.28133>;
        <D.28132>:
        code.386 = code;
        code.2027 = code.386;
        code.2028 = code.2027 + 1;
        code = code.2028;
        D.28136 = _amd64_rex_bits | 64;
        *code.2027 = D.28136;
        <D.28133>:
      }
      switch (8) <default: <D.23414>, case 1: <D.23409>, case 2: <D.23411>, case 4: <D.23412>, case 8: <D.23413>>
      <D.23409>:
      code.386 = code;
      code.2029 = code.386;
      code.2030 = code.2029 + 1;
      code = code.2030;
      *code.2029 = 138;
      goto <D.23410>;
      <D.23411>:
      <D.23412>:
      <D.23413>:
      code.386 = code;
      code.2031 = code.386;
      code.2032 = code.2031 + 1;
      code = code.2032;
      *code.2031 = 139;
      goto <D.23410>;
      <D.23414>:
      __assert_fail ("0", "tramp-amd64.c", 618, &__PRETTY_FUNCTION__);
      <D.23410>:
      if (0 != 0) goto <D.28141>; else goto <D.28142>;
      <D.28141>:
      code.386 = code;
      code.2033 = code.386;
      code.2034 = code.2033 + 1;
      code = code.2034;
      *code.2033 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2035 = code.386;
            code.2036 = code.2035 + 1;
            code = code.2036;
            D.28147 = imb.b[0];
            *code.2035 = D.28147;
            code.386 = code;
            code.2037 = code.386;
            code.2038 = code.2037 + 1;
            code = code.2038;
            D.28150 = imb.b[1];
            *code.2037 = D.28150;
            code.386 = code;
            code.2039 = code.386;
            code.2040 = code.2039 + 1;
            code = code.2040;
            D.28153 = imb.b[2];
            *code.2039 = D.28153;
            code.386 = code;
            code.2041 = code.386;
            code.2042 = code.2041 + 1;
            code = code.2042;
            D.28156 = imb.b[3];
            *code.2041 = D.28156;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28157>;
      <D.28142>:
      if (0 != 0) goto <D.28158>; else goto <D.28159>;
      <D.28158>:
      if (1 != 0) goto <D.28160>; else goto <D.28161>;
      <D.28160>:
      code.386 = code;
      code.2043 = code.386;
      code.2044 = code.2043 + 1;
      code = code.2044;
      *code.2043 = 28;
      code.386 = code;
      code.2045 = code.386;
      code.2046 = code.2045 + 1;
      code = code.2046;
      *code.2045 = 36;
      goto <D.28166>;
      <D.28161>:
      if (1 != 0) goto <D.28167>; else goto <D.28168>;
      <D.28167>:
      code.386 = code;
      code.2047 = code.386;
      code.2048 = code.2047 + 1;
      code = code.2048;
      *code.2047 = 92;
      code.386 = code;
      code.2049 = code.386;
      code.2050 = code.2049 + 1;
      code = code.2050;
      *code.2049 = 36;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28173>;
      <D.28168>:
      code.386 = code;
      code.2051 = code.386;
      code.2052 = code.2051 + 1;
      code = code.2052;
      *code.2051 = 156;
      code.386 = code;
      code.2053 = code.386;
      code.2054 = code.2053 + 1;
      code = code.2054;
      *code.2053 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2055 = code.386;
            code.2056 = code.2055 + 1;
            code = code.2056;
            D.28180 = imb.b[0];
            *code.2055 = D.28180;
            code.386 = code;
            code.2057 = code.386;
            code.2058 = code.2057 + 1;
            code = code.2058;
            D.28183 = imb.b[1];
            *code.2057 = D.28183;
            code.386 = code;
            code.2059 = code.386;
            code.2060 = code.2059 + 1;
            code = code.2060;
            D.28186 = imb.b[2];
            *code.2059 = D.28186;
            code.386 = code;
            code.2061 = code.386;
            code.2062 = code.2061 + 1;
            code = code.2062;
            D.28189 = imb.b[3];
            *code.2061 = D.28189;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28173>:
      <D.28166>:
      goto <D.23417>;
      <D.28159>:
      if (1 != 0) goto <D.28190>; else goto <D.28191>;
      <D.28190>:
      code.386 = code;
      code.2063 = code.386;
      code.2064 = code.2063 + 1;
      code = code.2064;
      *code.2063 = 24;
      goto <D.23417>;
      <D.28191>:
      if (1 != 0) goto <D.28194>; else goto <D.28195>;
      <D.28194>:
      code.386 = code;
      code.2065 = code.386;
      code.2066 = code.2065 + 1;
      code = code.2066;
      *code.2065 = 88;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28198>;
      <D.28195>:
      code.386 = code;
      code.2067 = code.386;
      code.2068 = code.2067 + 1;
      code = code.2068;
      *code.2067 = 152;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2069 = code.386;
            code.2070 = code.2069 + 1;
            code = code.2070;
            D.28203 = imb.b[0];
            *code.2069 = D.28203;
            code.386 = code;
            code.2071 = code.386;
            code.2072 = code.2071 + 1;
            code = code.2072;
            D.28206 = imb.b[1];
            *code.2071 = D.28206;
            code.386 = code;
            code.2073 = code.386;
            code.2074 = code.2073 + 1;
            code = code.2074;
            D.28209 = imb.b[2];
            *code.2073 = D.28209;
            code.386 = code;
            code.2075 = code.386;
            code.2076 = code.2075 + 1;
            code = code.2076;
            D.28212 = imb.b[3];
            *code.2075 = D.28212;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28198>:
      <D.23417>:
      <D.28157>:
      if (1 != 0) goto <D.28213>; else goto <D.28214>;
      <D.28213>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.28215>; else goto <D.28216>;
        <D.28215>:
        code.386 = code;
        code.2077 = code.386;
        code.2078 = code.2077 + 1;
        code = code.2078;
        D.28219 = _amd64_rex_bits | 64;
        *code.2077 = D.28219;
        <D.28216>:
      }
      code.386 = code;
      code.2079 = code.386;
      code.2080 = code.2079 + 1;
      code = code.2080;
      *code.2079 = 131;
      code.386 = code;
      code.2081 = code.386;
      code.2082 = code.2081 + 1;
      code = code.2082;
      *code.2081 = 195;
      code.386 = code;
      *code.386 = 5;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28224>;
      <D.28214>:
      if (0 != 0) goto <D.28225>; else goto <D.28226>;
      <D.28225>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28227>; else goto <D.28228>;
        <D.28227>:
        code.386 = code;
        code.2083 = code.386;
        code.2084 = code.2083 + 1;
        code = code.2084;
        D.28231 = _amd64_rex_bits | 64;
        *code.2083 = D.28231;
        <D.28228>:
      }
      code.386 = code;
      code.2085 = code.386;
      code.2086 = code.2085 + 1;
      code = code.2086;
      *code.2085 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.2087 = code.386;
            code.2088 = code.2087 + 1;
            code = code.2088;
            D.28236 = imb.b[0];
            *code.2087 = D.28236;
            code.386 = code;
            code.2089 = code.386;
            code.2090 = code.2089 + 1;
            code = code.2090;
            D.28239 = imb.b[1];
            *code.2089 = D.28239;
            code.386 = code;
            code.2091 = code.386;
            code.2092 = code.2091 + 1;
            code = code.2092;
            D.28242 = imb.b[2];
            *code.2091 = D.28242;
            code.386 = code;
            code.2093 = code.386;
            code.2094 = code.2093 + 1;
            code = code.2094;
            D.28245 = imb.b[3];
            *code.2093 = D.28245;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28246>;
      <D.28226>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.28247>; else goto <D.28248>;
        <D.28247>:
        code.386 = code;
        code.2095 = code.386;
        code.2096 = code.2095 + 1;
        code = code.2096;
        D.28251 = _amd64_rex_bits | 64;
        *code.2095 = D.28251;
        <D.28248>:
      }
      code.386 = code;
      code.2097 = code.386;
      code.2098 = code.2097 + 1;
      code = code.2098;
      *code.2097 = 129;
      code.386 = code;
      code.2099 = code.386;
      code.2100 = code.2099 + 1;
      code = code.2100;
      *code.2099 = 195;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.2101 = code.386;
            code.2102 = code.2101 + 1;
            code = code.2102;
            D.28258 = imb.b[0];
            *code.2101 = D.28258;
            code.386 = code;
            code.2103 = code.386;
            code.2104 = code.2103 + 1;
            code = code.2104;
            D.28261 = imb.b[1];
            *code.2103 = D.28261;
            code.386 = code;
            code.2105 = code.386;
            code.2106 = code.2105 + 1;
            code = code.2106;
            D.28264 = imb.b[2];
            *code.2105 = D.28264;
            code.386 = code;
            code.2107 = code.386;
            code.2108 = code.2107 + 1;
            code = code.2108;
            D.28267 = imb.b[3];
            *code.2107 = D.28267;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28246>:
      <D.28224>:
      if (0 != 0) goto <D.28268>; else goto <D.28269>;
      <D.28268>:
      code.386 = code;
      code.2109 = code.386;
      code.2110 = code.2109 + 1;
      code = code.2110;
      *code.2109 = 102;
      <D.28269>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.28272>; else goto <D.28273>;
        <D.28272>:
        code.386 = code;
        code.2111 = code.386;
        code.2112 = code.2111 + 1;
        code = code.2112;
        D.28276 = _amd64_rex_bits | 64;
        *code.2111 = D.28276;
        <D.28273>:
      }
      switch (8) <default: <D.23430>, case 1: <D.23425>, case 2: <D.23427>, case 4: <D.23428>, case 8: <D.23429>>
      <D.23425>:
      code.386 = code;
      code.2113 = code.386;
      code.2114 = code.2113 + 1;
      code = code.2114;
      *code.2113 = 136;
      goto <D.23426>;
      <D.23427>:
      <D.23428>:
      <D.23429>:
      code.386 = code;
      code.2115 = code.386;
      code.2116 = code.2115 + 1;
      code = code.2116;
      *code.2115 = 137;
      goto <D.23426>;
      <D.23430>:
      __assert_fail ("0", "tramp-amd64.c", 620, &__PRETTY_FUNCTION__);
      <D.23426>:
      if (0 != 0) goto <D.28281>; else goto <D.28282>;
      <D.28281>:
      if (lmf_offset == 0) goto <D.28283>; else goto <D.28284>;
      <D.28283>:
      code.386 = code;
      code.2117 = code.386;
      code.2118 = code.2117 + 1;
      code = code.2118;
      *code.2117 = 28;
      code.386 = code;
      code.2119 = code.386;
      code.2120 = code.2119 + 1;
      code = code.2120;
      *code.2119 = 36;
      goto <D.28289>;
      <D.28284>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.28291>; else goto <D.28292>;
      <D.28291>:
      code.386 = code;
      code.2121 = code.386;
      code.2122 = code.2121 + 1;
      code = code.2122;
      *code.2121 = 92;
      code.386 = code;
      code.2123 = code.386;
      code.2124 = code.2123 + 1;
      code = code.2124;
      *code.2123 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      *code.386 = D.27486;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28297>;
      <D.28292>:
      code.386 = code;
      code.2125 = code.386;
      code.2126 = code.2125 + 1;
      code = code.2126;
      *code.2125 = 156;
      code.386 = code;
      code.2127 = code.386;
      code.2128 = code.2127 + 1;
      code = code.2128;
      *code.2127 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2129 = code.386;
            code.2130 = code.2129 + 1;
            code = code.2130;
            D.28304 = imb.b[0];
            *code.2129 = D.28304;
            code.386 = code;
            code.2131 = code.386;
            code.2132 = code.2131 + 1;
            code = code.2132;
            D.28307 = imb.b[1];
            *code.2131 = D.28307;
            code.386 = code;
            code.2133 = code.386;
            code.2134 = code.2133 + 1;
            code = code.2134;
            D.28310 = imb.b[2];
            *code.2133 = D.28310;
            code.386 = code;
            code.2135 = code.386;
            code.2136 = code.2135 + 1;
            code = code.2136;
            D.28313 = imb.b[3];
            *code.2135 = D.28313;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28297>:
      <D.28289>:
      goto <D.23432>;
      <D.28282>:
      if (0 != 0) goto <D.28314>; else goto <D.28315>;
      <D.28314>:
      code.386 = code;
      code.2137 = code.386;
      code.2138 = code.2137 + 1;
      code = code.2138;
      *code.2137 = 29;
      goto <D.23432>;
      <D.28315>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.28318>; else goto <D.28319>;
      <D.28318>:
      code.386 = code;
      code.2139 = code.386;
      code.2140 = code.2139 + 1;
      code = code.2140;
      *code.2139 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      *code.386 = D.27486;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28322>;
      <D.28319>:
      code.386 = code;
      code.2141 = code.386;
      code.2142 = code.2141 + 1;
      code = code.2142;
      *code.2141 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2143 = code.386;
            code.2144 = code.2143 + 1;
            code = code.2144;
            D.28327 = imb.b[0];
            *code.2143 = D.28327;
            code.386 = code;
            code.2145 = code.386;
            code.2146 = code.2145 + 1;
            code = code.2146;
            D.28330 = imb.b[1];
            *code.2145 = D.28330;
            code.386 = code;
            code.2147 = code.386;
            code.2148 = code.2147 + 1;
            code = code.2148;
            D.28333 = imb.b[2];
            *code.2147 = D.28333;
            code.386 = code;
            code.2149 = code.386;
            code.2150 = code.2149 + 1;
            code = code.2150;
            D.28336 = imb.b[3];
            *code.2149 = D.28336;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28322>:
      <D.23432>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.28337>; else goto <D.28338>;
        <D.28337>:
        code.386 = code;
        code.2151 = code.386;
        code.2152 = code.2151 + 1;
        code = code.2152;
        D.28341 = _amd64_rex_bits | 64;
        *code.2151 = D.28341;
        <D.28338>:
      }
      code.386 = code;
      code.2153 = code.386;
      code.2154 = code.2153 + 1;
      code = code.2154;
      *code.2153 = 141;
      if (0 != 0) goto <D.28344>; else goto <D.28345>;
      <D.28344>:
      code.386 = code;
      code.2155 = code.386;
      code.2156 = code.2155 + 1;
      code = code.2156;
      *code.2155 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2157 = code.386;
            code.2158 = code.2157 + 1;
            code = code.2158;
            D.28350 = imb.b[0];
            *code.2157 = D.28350;
            code.386 = code;
            code.2159 = code.386;
            code.2160 = code.2159 + 1;
            code = code.2160;
            D.28353 = imb.b[1];
            *code.2159 = D.28353;
            code.386 = code;
            code.2161 = code.386;
            code.2162 = code.2161 + 1;
            code = code.2162;
            D.28356 = imb.b[2];
            *code.2161 = D.28356;
            code.386 = code;
            code.2163 = code.386;
            code.2164 = code.2163 + 1;
            code = code.2164;
            D.28359 = imb.b[3];
            *code.2163 = D.28359;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28360>;
      <D.28345>:
      if (0 != 0) goto <D.28361>; else goto <D.28362>;
      <D.28361>:
      if (lmf_offset == 0) goto <D.28363>; else goto <D.28364>;
      <D.28363>:
      code.386 = code;
      code.2165 = code.386;
      code.2166 = code.2165 + 1;
      code = code.2166;
      *code.2165 = 28;
      code.386 = code;
      code.2167 = code.386;
      code.2168 = code.2167 + 1;
      code = code.2168;
      *code.2167 = 36;
      goto <D.28369>;
      <D.28364>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.28370>; else goto <D.28371>;
      <D.28370>:
      code.386 = code;
      code.2169 = code.386;
      code.2170 = code.2169 + 1;
      code = code.2170;
      *code.2169 = 92;
      code.386 = code;
      code.2171 = code.386;
      code.2172 = code.2171 + 1;
      code = code.2172;
      *code.2171 = 36;
      code.386 = code;
      D.28376 = (unsigned char) lmf_offset;
      *code.386 = D.28376;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28377>;
      <D.28371>:
      code.386 = code;
      code.2173 = code.386;
      code.2174 = code.2173 + 1;
      code = code.2174;
      *code.2173 = 156;
      code.386 = code;
      code.2175 = code.386;
      code.2176 = code.2175 + 1;
      code = code.2176;
      *code.2175 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2177 = code.386;
            code.2178 = code.2177 + 1;
            code = code.2178;
            D.28384 = imb.b[0];
            *code.2177 = D.28384;
            code.386 = code;
            code.2179 = code.386;
            code.2180 = code.2179 + 1;
            code = code.2180;
            D.28387 = imb.b[1];
            *code.2179 = D.28387;
            code.386 = code;
            code.2181 = code.386;
            code.2182 = code.2181 + 1;
            code = code.2182;
            D.28390 = imb.b[2];
            *code.2181 = D.28390;
            code.386 = code;
            code.2183 = code.386;
            code.2184 = code.2183 + 1;
            code = code.2184;
            D.28393 = imb.b[3];
            *code.2183 = D.28393;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28377>:
      <D.28369>:
      goto <D.23437>;
      <D.28362>:
      if (0 != 0) goto <D.28394>; else goto <D.28395>;
      <D.28394>:
      code.386 = code;
      code.2185 = code.386;
      code.2186 = code.2185 + 1;
      code = code.2186;
      *code.2185 = 29;
      goto <D.23437>;
      <D.28395>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.28398>; else goto <D.28399>;
      <D.28398>:
      code.386 = code;
      code.2187 = code.386;
      code.2188 = code.2187 + 1;
      code = code.2188;
      *code.2187 = 93;
      code.386 = code;
      D.28376 = (unsigned char) lmf_offset;
      *code.386 = D.28376;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28402>;
      <D.28399>:
      code.386 = code;
      code.2189 = code.386;
      code.2190 = code.2189 + 1;
      code = code.2190;
      *code.2189 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2191 = code.386;
            code.2192 = code.2191 + 1;
            code = code.2192;
            D.28407 = imb.b[0];
            *code.2191 = D.28407;
            code.386 = code;
            code.2193 = code.386;
            code.2194 = code.2193 + 1;
            code = code.2194;
            D.28410 = imb.b[1];
            *code.2193 = D.28410;
            code.386 = code;
            code.2195 = code.386;
            code.2196 = code.2195 + 1;
            code = code.2196;
            D.28413 = imb.b[2];
            *code.2195 = D.28413;
            code.386 = code;
            code.2197 = code.386;
            code.2198 = code.2197 + 1;
            code = code.2198;
            D.28416 = imb.b[3];
            *code.2197 = D.28416;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28402>:
      <D.23437>:
      <D.28360>:
      if (0 != 0) goto <D.28417>; else goto <D.28418>;
      <D.28417>:
      code.386 = code;
      code.2199 = code.386;
      code.2200 = code.2199 + 1;
      code = code.2200;
      *code.2199 = 102;
      <D.28418>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.28421>; else goto <D.28422>;
        <D.28421>:
        code.386 = code;
        code.2201 = code.386;
        code.2202 = code.2201 + 1;
        code = code.2202;
        D.28425 = _amd64_rex_bits | 64;
        *code.2201 = D.28425;
        <D.28422>:
      }
      switch (8) <default: <D.23445>, case 1: <D.23440>, case 2: <D.23442>, case 4: <D.23443>, case 8: <D.23444>>
      <D.23440>:
      code.386 = code;
      code.2203 = code.386;
      code.2204 = code.2203 + 1;
      code = code.2204;
      *code.2203 = 136;
      goto <D.23441>;
      <D.23442>:
      <D.23443>:
      <D.23444>:
      code.386 = code;
      code.2205 = code.386;
      code.2206 = code.2205 + 1;
      code = code.2206;
      *code.2205 = 137;
      goto <D.23441>;
      <D.23445>:
      __assert_fail ("0", "tramp-amd64.c", 623, &__PRETTY_FUNCTION__);
      <D.23441>:
      if (0 != 0) goto <D.28430>; else goto <D.28431>;
      <D.28430>:
      if (1 != 0) goto <D.28432>; else goto <D.28433>;
      <D.28432>:
      code.386 = code;
      code.2207 = code.386;
      code.2208 = code.2207 + 1;
      code = code.2208;
      *code.2207 = 28;
      code.386 = code;
      code.2209 = code.386;
      code.2210 = code.2209 + 1;
      code = code.2210;
      *code.2209 = 36;
      goto <D.28438>;
      <D.28433>:
      if (1 != 0) goto <D.28439>; else goto <D.28440>;
      <D.28439>:
      code.386 = code;
      code.2211 = code.386;
      code.2212 = code.2211 + 1;
      code = code.2212;
      *code.2211 = 92;
      code.386 = code;
      code.2213 = code.386;
      code.2214 = code.2213 + 1;
      code = code.2214;
      *code.2213 = 36;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28445>;
      <D.28440>:
      code.386 = code;
      code.2215 = code.386;
      code.2216 = code.2215 + 1;
      code = code.2216;
      *code.2215 = 156;
      code.386 = code;
      code.2217 = code.386;
      code.2218 = code.2217 + 1;
      code = code.2218;
      *code.2217 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2219 = code.386;
            code.2220 = code.2219 + 1;
            code = code.2220;
            D.28452 = imb.b[0];
            *code.2219 = D.28452;
            code.386 = code;
            code.2221 = code.386;
            code.2222 = code.2221 + 1;
            code = code.2222;
            D.28455 = imb.b[1];
            *code.2221 = D.28455;
            code.386 = code;
            code.2223 = code.386;
            code.2224 = code.2223 + 1;
            code = code.2224;
            D.28458 = imb.b[2];
            *code.2223 = D.28458;
            code.386 = code;
            code.2225 = code.386;
            code.2226 = code.2225 + 1;
            code = code.2226;
            D.28461 = imb.b[3];
            *code.2225 = D.28461;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28445>:
      <D.28438>:
      goto <D.23447>;
      <D.28431>:
      if (1 != 0) goto <D.28462>; else goto <D.28463>;
      <D.28462>:
      code.386 = code;
      code.2227 = code.386;
      code.2228 = code.2227 + 1;
      code = code.2228;
      *code.2227 = 24;
      goto <D.23447>;
      <D.28463>:
      if (1 != 0) goto <D.28466>; else goto <D.28467>;
      <D.28466>:
      code.386 = code;
      code.2229 = code.386;
      code.2230 = code.2229 + 1;
      code = code.2230;
      *code.2229 = 88;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28470>;
      <D.28467>:
      code.386 = code;
      code.2231 = code.386;
      code.2232 = code.2231 + 1;
      code = code.2232;
      *code.2231 = 152;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2233 = code.386;
            code.2234 = code.2233 + 1;
            code = code.2234;
            D.28475 = imb.b[0];
            *code.2233 = D.28475;
            code.386 = code;
            code.2235 = code.386;
            code.2236 = code.2235 + 1;
            code = code.2236;
            D.28478 = imb.b[1];
            *code.2235 = D.28478;
            code.386 = code;
            code.2237 = code.386;
            code.2238 = code.2237 + 1;
            code = code.2238;
            D.28481 = imb.b[2];
            *code.2237 = D.28481;
            code.386 = code;
            code.2239 = code.386;
            code.2240 = code.2239 + 1;
            code = code.2240;
            D.28484 = imb.b[3];
            *code.2239 = D.28484;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28470>:
      <D.23447>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28485>; else goto <D.28486>;
        <D.28485>:
        code.386 = code;
        code.2241 = code.386;
        code.2242 = code.2241 + 1;
        code = code.2242;
        D.28489 = _amd64_rex_bits | 64;
        *code.2241 = D.28489;
        <D.28486>:
      }
      code.386 = code;
      code.2243 = code.386;
      code.2244 = code.2243 + 1;
      code = code.2244;
      *code.2243 = 141;
      if (0 != 0) goto <D.28492>; else goto <D.28493>;
      <D.28492>:
      code.386 = code;
      code.2245 = code.386;
      code.2246 = code.2245 + 1;
      code = code.2246;
      *code.2245 = 61;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.2247 = code.386;
            code.2248 = code.2247 + 1;
            code = code.2248;
            D.28498 = imb.b[0];
            *code.2247 = D.28498;
            code.386 = code;
            code.2249 = code.386;
            code.2250 = code.2249 + 1;
            code = code.2250;
            D.28501 = imb.b[1];
            *code.2249 = D.28501;
            code.386 = code;
            code.2251 = code.386;
            code.2252 = code.2251 + 1;
            code = code.2252;
            D.28504 = imb.b[2];
            *code.2251 = D.28504;
            code.386 = code;
            code.2253 = code.386;
            code.2254 = code.2253 + 1;
            code = code.2254;
            D.28507 = imb.b[3];
            *code.2253 = D.28507;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28508>;
      <D.28493>:
      if (0 != 0) goto <D.28509>; else goto <D.28510>;
      <D.28509>:
      if (saved_regs_offset == 0) goto <D.28511>; else goto <D.28512>;
      <D.28511>:
      code.386 = code;
      code.2255 = code.386;
      code.2256 = code.2255 + 1;
      code = code.2256;
      *code.2255 = 60;
      code.386 = code;
      code.2257 = code.386;
      code.2258 = code.2257 + 1;
      code = code.2258;
      *code.2257 = 36;
      goto <D.28517>;
      <D.28512>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27866 = saved_regs_offset.617 + 128;
      if (D.27866 <= 255) goto <D.28518>; else goto <D.28519>;
      <D.28518>:
      code.386 = code;
      code.2259 = code.386;
      code.2260 = code.2259 + 1;
      code = code.2260;
      *code.2259 = 124;
      code.386 = code;
      code.2261 = code.386;
      code.2262 = code.2261 + 1;
      code = code.2262;
      *code.2261 = 36;
      code.386 = code;
      D.27873 = (unsigned char) saved_regs_offset;
      *code.386 = D.27873;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28524>;
      <D.28519>:
      code.386 = code;
      code.2263 = code.386;
      code.2264 = code.2263 + 1;
      code = code.2264;
      *code.2263 = 188;
      code.386 = code;
      code.2265 = code.386;
      code.2266 = code.2265 + 1;
      code = code.2266;
      *code.2265 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.2267 = code.386;
            code.2268 = code.2267 + 1;
            code = code.2268;
            D.28531 = imb.b[0];
            *code.2267 = D.28531;
            code.386 = code;
            code.2269 = code.386;
            code.2270 = code.2269 + 1;
            code = code.2270;
            D.28534 = imb.b[1];
            *code.2269 = D.28534;
            code.386 = code;
            code.2271 = code.386;
            code.2272 = code.2271 + 1;
            code = code.2272;
            D.28537 = imb.b[2];
            *code.2271 = D.28537;
            code.386 = code;
            code.2273 = code.386;
            code.2274 = code.2273 + 1;
            code = code.2274;
            D.28540 = imb.b[3];
            *code.2273 = D.28540;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28524>:
      <D.28517>:
      goto <D.23452>;
      <D.28510>:
      if (0 != 0) goto <D.28541>; else goto <D.28542>;
      <D.28541>:
      code.386 = code;
      code.2275 = code.386;
      code.2276 = code.2275 + 1;
      code = code.2276;
      *code.2275 = 61;
      goto <D.23452>;
      <D.28542>:
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.27866 = saved_regs_offset.617 + 128;
      if (D.27866 <= 255) goto <D.28545>; else goto <D.28546>;
      <D.28545>:
      code.386 = code;
      code.2277 = code.386;
      code.2278 = code.2277 + 1;
      code = code.2278;
      *code.2277 = 125;
      code.386 = code;
      D.27873 = (unsigned char) saved_regs_offset;
      *code.386 = D.27873;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28549>;
      <D.28546>:
      code.386 = code;
      code.2279 = code.386;
      code.2280 = code.2279 + 1;
      code = code.2280;
      *code.2279 = 189;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = saved_regs_offset;
            code.386 = code;
            code.2281 = code.386;
            code.2282 = code.2281 + 1;
            code = code.2282;
            D.28554 = imb.b[0];
            *code.2281 = D.28554;
            code.386 = code;
            code.2283 = code.386;
            code.2284 = code.2283 + 1;
            code = code.2284;
            D.28557 = imb.b[1];
            *code.2283 = D.28557;
            code.386 = code;
            code.2285 = code.386;
            code.2286 = code.2285 + 1;
            code = code.2286;
            D.28560 = imb.b[2];
            *code.2285 = D.28560;
            code.386 = code;
            code.2287 = code.386;
            code.2288 = code.2287 + 1;
            code = code.2288;
            D.28563 = imb.b[3];
            *code.2287 = D.28563;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28549>:
      <D.23452>:
      <D.28508>:
      if (has_caller != 0) goto <D.28564>; else goto <D.28565>;
      <D.28564>:
      if (0 != 0) goto <D.28566>; else goto <D.28567>;
      <D.28566>:
      code.386 = code;
      code.2289 = code.386;
      code.2290 = code.2289 + 1;
      code = code.2290;
      *code.2289 = 102;
      <D.28567>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28570>; else goto <D.28571>;
        <D.28570>:
        code.386 = code;
        code.2291 = code.386;
        code.2292 = code.2291 + 1;
        code = code.2292;
        D.28574 = _amd64_rex_bits | 64;
        *code.2291 = D.28574;
        <D.28571>:
      }
      switch (8) <default: <D.23460>, case 1: <D.23455>, case 2: <D.23457>, case 4: <D.23458>, case 8: <D.23459>>
      <D.23455>:
      code.386 = code;
      code.2293 = code.386;
      code.2294 = code.2293 + 1;
      code = code.2294;
      *code.2293 = 138;
      goto <D.23456>;
      <D.23457>:
      <D.23458>:
      <D.23459>:
      code.386 = code;
      code.2295 = code.386;
      code.2296 = code.2295 + 1;
      code = code.2296;
      *code.2295 = 139;
      goto <D.23456>;
      <D.23460>:
      __assert_fail ("0", "tramp-amd64.c", 632, &__PRETTY_FUNCTION__);
      <D.23456>:
      if (0 != 0) goto <D.28579>; else goto <D.28580>;
      <D.28579>:
      code.386 = code;
      code.2297 = code.386;
      code.2298 = code.2297 + 1;
      code = code.2298;
      *code.2297 = 53;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.2299 = code.386;
            code.2300 = code.2299 + 1;
            code = code.2300;
            D.28585 = imb.b[0];
            *code.2299 = D.28585;
            code.386 = code;
            code.2301 = code.386;
            code.2302 = code.2301 + 1;
            code = code.2302;
            D.28588 = imb.b[1];
            *code.2301 = D.28588;
            code.386 = code;
            code.2303 = code.386;
            code.2304 = code.2303 + 1;
            code = code.2304;
            D.28591 = imb.b[2];
            *code.2303 = D.28591;
            code.386 = code;
            code.2305 = code.386;
            code.2306 = code.2305 + 1;
            code = code.2306;
            D.28594 = imb.b[3];
            *code.2305 = D.28594;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28595>;
      <D.28580>:
      if (0 != 0) goto <D.28596>; else goto <D.28597>;
      <D.28596>:
      if (0 != 0) goto <D.28598>; else goto <D.28599>;
      <D.28598>:
      code.386 = code;
      code.2307 = code.386;
      code.2308 = code.2307 + 1;
      code = code.2308;
      *code.2307 = 52;
      code.386 = code;
      code.2309 = code.386;
      code.2310 = code.2309 + 1;
      code = code.2310;
      *code.2309 = 36;
      goto <D.28604>;
      <D.28599>:
      if (1 != 0) goto <D.28605>; else goto <D.28606>;
      <D.28605>:
      code.386 = code;
      code.2311 = code.386;
      code.2312 = code.2311 + 1;
      code = code.2312;
      *code.2311 = 116;
      code.386 = code;
      code.2313 = code.386;
      code.2314 = code.2313 + 1;
      code = code.2314;
      *code.2313 = 36;
      code.386 = code;
      *code.386 = 8;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28611>;
      <D.28606>:
      code.386 = code;
      code.2315 = code.386;
      code.2316 = code.2315 + 1;
      code = code.2316;
      *code.2315 = 180;
      code.386 = code;
      code.2317 = code.386;
      code.2318 = code.2317 + 1;
      code = code.2318;
      *code.2317 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.2319 = code.386;
            code.2320 = code.2319 + 1;
            code = code.2320;
            D.28618 = imb.b[0];
            *code.2319 = D.28618;
            code.386 = code;
            code.2321 = code.386;
            code.2322 = code.2321 + 1;
            code = code.2322;
            D.28621 = imb.b[1];
            *code.2321 = D.28621;
            code.386 = code;
            code.2323 = code.386;
            code.2324 = code.2323 + 1;
            code = code.2324;
            D.28624 = imb.b[2];
            *code.2323 = D.28624;
            code.386 = code;
            code.2325 = code.386;
            code.2326 = code.2325 + 1;
            code = code.2326;
            D.28627 = imb.b[3];
            *code.2325 = D.28627;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28611>:
      <D.28604>:
      goto <D.23463>;
      <D.28597>:
      if (0 != 0) goto <D.28628>; else goto <D.28629>;
      <D.28628>:
      code.386 = code;
      code.2327 = code.386;
      code.2328 = code.2327 + 1;
      code = code.2328;
      *code.2327 = 53;
      goto <D.23463>;
      <D.28629>:
      if (1 != 0) goto <D.28632>; else goto <D.28633>;
      <D.28632>:
      code.386 = code;
      code.2329 = code.386;
      code.2330 = code.2329 + 1;
      code = code.2330;
      *code.2329 = 117;
      code.386 = code;
      *code.386 = 8;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28636>;
      <D.28633>:
      code.386 = code;
      code.2331 = code.386;
      code.2332 = code.2331 + 1;
      code = code.2332;
      *code.2331 = 181;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.386 = code;
            code.2333 = code.386;
            code.2334 = code.2333 + 1;
            code = code.2334;
            D.28641 = imb.b[0];
            *code.2333 = D.28641;
            code.386 = code;
            code.2335 = code.386;
            code.2336 = code.2335 + 1;
            code = code.2336;
            D.28644 = imb.b[1];
            *code.2335 = D.28644;
            code.386 = code;
            code.2337 = code.386;
            code.2338 = code.2337 + 1;
            code = code.2338;
            D.28647 = imb.b[2];
            *code.2337 = D.28647;
            code.386 = code;
            code.2339 = code.386;
            code.2340 = code.2339 + 1;
            code = code.2340;
            D.28650 = imb.b[3];
            *code.2339 = D.28650;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28636>:
      <D.23463>:
      <D.28595>:
      goto <D.28651>;
      <D.28565>:
      {
        int _amd64_width_temp;

        _amd64_width_temp = 1;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.28653>; else goto <D.28654>;
          <D.28653>:
          iftmp.2341 = 8;
          goto <D.28655>;
          <D.28654>:
          iftmp.2341 = 0;
          <D.28655>:
          _amd64_rex_bits = iftmp.2341;
          if (_amd64_rex_bits != 0) goto <D.28656>; else goto <D.28657>;
          <D.28656>:
          code.386 = code;
          code.2342 = code.386;
          code.2343 = code.2342 + 1;
          code = code.2343;
          D.28660 = _amd64_rex_bits | 64;
          *code.2342 = D.28660;
          <D.28657>:
        }
        code.386 = code;
        code.2344 = code.386;
        code.2345 = code.2344 + 1;
        code = code.2345;
        *code.2344 = 190;
        if (_amd64_width_temp == 0) goto <D.28663>; else goto <D.28664>;
        <D.28663>:
        {
          union amd64_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.2346 = code.386;
              code.2347 = code.2346 + 1;
              code = code.2347;
              D.28667 = imb.b[0];
              *code.2346 = D.28667;
              code.386 = code;
              code.2348 = code.386;
              code.2349 = code.2348 + 1;
              code = code.2349;
              D.28670 = imb.b[1];
              *code.2348 = D.28670;
              code.386 = code;
              code.2350 = code.386;
              code.2351 = code.2350 + 1;
              code = code.2351;
              D.28673 = imb.b[2];
              *code.2350 = D.28673;
              code.386 = code;
              code.2352 = code.386;
              code.2353 = code.2352 + 1;
              code = code.2353;
              D.28676 = imb.b[3];
              *code.2352 = D.28676;
              code.386 = code;
              code.2354 = code.386;
              code.2355 = code.2354 + 1;
              code = code.2355;
              D.28679 = imb.b[4];
              *code.2354 = D.28679;
              code.386 = code;
              code.2356 = code.386;
              code.2357 = code.2356 + 1;
              code = code.2357;
              D.28682 = imb.b[5];
              *code.2356 = D.28682;
              code.386 = code;
              code.2358 = code.386;
              code.2359 = code.2358 + 1;
              code = code.2359;
              D.28685 = imb.b[6];
              *code.2358 = D.28685;
              code.386 = code;
              code.2360 = code.386;
              code.2361 = code.2360 + 1;
              code = code.2361;
              D.28688 = imb.b[7];
              *code.2360 = D.28688;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.28689>;
        <D.28664>:
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = 0;
              code.386 = code;
              code.2362 = code.386;
              code.2363 = code.2362 + 1;
              code = code.2363;
              D.28692 = imb.b[0];
              *code.2362 = D.28692;
              code.386 = code;
              code.2364 = code.386;
              code.2365 = code.2364 + 1;
              code = code.2365;
              D.28695 = imb.b[1];
              *code.2364 = D.28695;
              code.386 = code;
              code.2366 = code.386;
              code.2367 = code.2366 + 1;
              code = code.2367;
              D.28698 = imb.b[2];
              *code.2366 = D.28698;
              code.386 = code;
              code.2368 = code.386;
              code.2369 = code.2368 + 1;
              code = code.2369;
              D.28701 = imb.b[3];
              *code.2368 = D.28701;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.28689>:
      }
      <D.28651>:
      if (0 != 0) goto <D.28702>; else goto <D.28703>;
      <D.28702>:
      code.386 = code;
      code.2370 = code.386;
      code.2371 = code.2370 + 1;
      code = code.2371;
      *code.2370 = 102;
      <D.28703>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28706>; else goto <D.28707>;
        <D.28706>:
        code.386 = code;
        code.2372 = code.386;
        code.2373 = code.2372 + 1;
        code = code.2373;
        D.28710 = _amd64_rex_bits | 64;
        *code.2372 = D.28710;
        <D.28707>:
      }
      switch (8) <default: <D.23475>, case 1: <D.23470>, case 2: <D.23472>, case 4: <D.23473>, case 8: <D.23474>>
      <D.23470>:
      code.386 = code;
      code.2374 = code.386;
      code.2375 = code.2374 + 1;
      code = code.2375;
      *code.2374 = 138;
      goto <D.23471>;
      <D.23472>:
      <D.23473>:
      <D.23474>:
      code.386 = code;
      code.2376 = code.386;
      code.2377 = code.2376 + 1;
      code = code.2377;
      *code.2376 = 139;
      goto <D.23471>;
      <D.23475>:
      __assert_fail ("0", "tramp-amd64.c", 637, &__PRETTY_FUNCTION__);
      <D.23471>:
      if (0 != 0) goto <D.28715>; else goto <D.28716>;
      <D.28715>:
      code.386 = code;
      code.2378 = code.386;
      code.2379 = code.2378 + 1;
      code = code.2379;
      *code.2378 = 21;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.2380 = code.386;
            code.2381 = code.2380 + 1;
            code = code.2381;
            D.28721 = imb.b[0];
            *code.2380 = D.28721;
            code.386 = code;
            code.2382 = code.386;
            code.2383 = code.2382 + 1;
            code = code.2383;
            D.28724 = imb.b[1];
            *code.2382 = D.28724;
            code.386 = code;
            code.2384 = code.386;
            code.2385 = code.2384 + 1;
            code = code.2385;
            D.28727 = imb.b[2];
            *code.2384 = D.28727;
            code.386 = code;
            code.2386 = code.386;
            code.2387 = code.2386 + 1;
            code = code.2387;
            D.28730 = imb.b[3];
            *code.2386 = D.28730;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28731>;
      <D.28716>:
      if (0 != 0) goto <D.28732>; else goto <D.28733>;
      <D.28732>:
      if (arg_offset == 0) goto <D.28734>; else goto <D.28735>;
      <D.28734>:
      code.386 = code;
      code.2388 = code.386;
      code.2389 = code.2388 + 1;
      code = code.2389;
      *code.2388 = 20;
      code.386 = code;
      code.2390 = code.386;
      code.2391 = code.2390 + 1;
      code = code.2391;
      *code.2390 = 36;
      goto <D.28740>;
      <D.28735>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.28741>; else goto <D.28742>;
      <D.28741>:
      code.386 = code;
      code.2392 = code.386;
      code.2393 = code.2392 + 1;
      code = code.2393;
      *code.2392 = 84;
      code.386 = code;
      code.2394 = code.386;
      code.2395 = code.2394 + 1;
      code = code.2395;
      *code.2394 = 36;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28747>;
      <D.28742>:
      code.386 = code;
      code.2396 = code.386;
      code.2397 = code.2396 + 1;
      code = code.2397;
      *code.2396 = 148;
      code.386 = code;
      code.2398 = code.386;
      code.2399 = code.2398 + 1;
      code = code.2399;
      *code.2398 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.2400 = code.386;
            code.2401 = code.2400 + 1;
            code = code.2401;
            D.28754 = imb.b[0];
            *code.2400 = D.28754;
            code.386 = code;
            code.2402 = code.386;
            code.2403 = code.2402 + 1;
            code = code.2403;
            D.28757 = imb.b[1];
            *code.2402 = D.28757;
            code.386 = code;
            code.2404 = code.386;
            code.2405 = code.2404 + 1;
            code = code.2405;
            D.28760 = imb.b[2];
            *code.2404 = D.28760;
            code.386 = code;
            code.2406 = code.386;
            code.2407 = code.2406 + 1;
            code = code.2407;
            D.28763 = imb.b[3];
            *code.2406 = D.28763;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28747>:
      <D.28740>:
      goto <D.23478>;
      <D.28733>:
      if (0 != 0) goto <D.28764>; else goto <D.28765>;
      <D.28764>:
      code.386 = code;
      code.2408 = code.386;
      code.2409 = code.2408 + 1;
      code = code.2409;
      *code.2408 = 21;
      goto <D.23478>;
      <D.28765>:
      arg_offset.1428 = (unsigned int) arg_offset;
      D.27107 = arg_offset.1428 + 128;
      if (D.27107 <= 255) goto <D.28768>; else goto <D.28769>;
      <D.28768>:
      code.386 = code;
      code.2410 = code.386;
      code.2411 = code.2410 + 1;
      code = code.2411;
      *code.2410 = 85;
      code.386 = code;
      D.27114 = (unsigned char) arg_offset;
      *code.386 = D.27114;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28772>;
      <D.28769>:
      code.386 = code;
      code.2412 = code.386;
      code.2413 = code.2412 + 1;
      code = code.2413;
      *code.2412 = 149;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = arg_offset;
            code.386 = code;
            code.2414 = code.386;
            code.2415 = code.2414 + 1;
            code = code.2415;
            D.28777 = imb.b[0];
            *code.2414 = D.28777;
            code.386 = code;
            code.2416 = code.386;
            code.2417 = code.2416 + 1;
            code = code.2417;
            D.28780 = imb.b[1];
            *code.2416 = D.28780;
            code.386 = code;
            code.2418 = code.386;
            code.2419 = code.2418 + 1;
            code = code.2419;
            D.28783 = imb.b[2];
            *code.2418 = D.28783;
            code.386 = code;
            code.2420 = code.386;
            code.2421 = code.2420 + 1;
            code = code.2421;
            D.28786 = imb.b[3];
            *code.2420 = D.28786;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28772>:
      <D.23478>:
      <D.28731>:
      if (0 != 0) goto <D.28787>; else goto <D.28788>;
      <D.28787>:
      code.386 = code;
      code.2422 = code.386;
      code.2423 = code.2422 + 1;
      code = code.2423;
      *code.2422 = 102;
      <D.28788>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28791>; else goto <D.28792>;
        <D.28791>:
        code.386 = code;
        code.2424 = code.386;
        code.2425 = code.2424 + 1;
        code = code.2425;
        D.28795 = _amd64_rex_bits | 64;
        *code.2424 = D.28795;
        <D.28792>:
      }
      switch (8) <default: <D.23486>, case 1: <D.23481>, case 2: <D.23483>, case 4: <D.23484>, case 8: <D.23485>>
      <D.23481>:
      code.386 = code;
      code.2426 = code.386;
      code.2427 = code.2426 + 1;
      code = code.2427;
      *code.2426 = 138;
      goto <D.23482>;
      <D.23483>:
      <D.23484>:
      <D.23485>:
      code.386 = code;
      code.2428 = code.386;
      code.2429 = code.2428 + 1;
      code = code.2429;
      *code.2428 = 139;
      goto <D.23482>;
      <D.23486>:
      __assert_fail ("0", "tramp-amd64.c", 640, &__PRETTY_FUNCTION__);
      <D.23482>:
      if (0 != 0) goto <D.28800>; else goto <D.28801>;
      <D.28800>:
      code.386 = code;
      code.2430 = code.386;
      code.2431 = code.2430 + 1;
      code = code.2431;
      *code.2430 = 13;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.2432 = code.386;
            code.2433 = code.2432 + 1;
            code = code.2433;
            D.28806 = imb.b[0];
            *code.2432 = D.28806;
            code.386 = code;
            code.2434 = code.386;
            code.2435 = code.2434 + 1;
            code = code.2435;
            D.28809 = imb.b[1];
            *code.2434 = D.28809;
            code.386 = code;
            code.2436 = code.386;
            code.2437 = code.2436 + 1;
            code = code.2437;
            D.28812 = imb.b[2];
            *code.2436 = D.28812;
            code.386 = code;
            code.2438 = code.386;
            code.2439 = code.2438 + 1;
            code = code.2439;
            D.28815 = imb.b[3];
            *code.2438 = D.28815;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.28816>;
      <D.28801>:
      if (0 != 0) goto <D.28817>; else goto <D.28818>;
      <D.28817>:
      if (tramp_offset == 0) goto <D.28819>; else goto <D.28820>;
      <D.28819>:
      code.386 = code;
      code.2440 = code.386;
      code.2441 = code.2440 + 1;
      code = code.2441;
      *code.2440 = 12;
      code.386 = code;
      code.2442 = code.386;
      code.2443 = code.2442 + 1;
      code = code.2443;
      *code.2442 = 36;
      goto <D.28825>;
      <D.28820>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.28826>; else goto <D.28827>;
      <D.28826>:
      code.386 = code;
      code.2444 = code.386;
      code.2445 = code.2444 + 1;
      code = code.2445;
      *code.2444 = 76;
      code.386 = code;
      code.2446 = code.386;
      code.2447 = code.2446 + 1;
      code = code.2447;
      *code.2446 = 36;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28832>;
      <D.28827>:
      code.386 = code;
      code.2448 = code.386;
      code.2449 = code.2448 + 1;
      code = code.2449;
      *code.2448 = 140;
      code.386 = code;
      code.2450 = code.386;
      code.2451 = code.2450 + 1;
      code = code.2451;
      *code.2450 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.2452 = code.386;
            code.2453 = code.2452 + 1;
            code = code.2453;
            D.28839 = imb.b[0];
            *code.2452 = D.28839;
            code.386 = code;
            code.2454 = code.386;
            code.2455 = code.2454 + 1;
            code = code.2455;
            D.28842 = imb.b[1];
            *code.2454 = D.28842;
            code.386 = code;
            code.2456 = code.386;
            code.2457 = code.2456 + 1;
            code = code.2457;
            D.28845 = imb.b[2];
            *code.2456 = D.28845;
            code.386 = code;
            code.2458 = code.386;
            code.2459 = code.2458 + 1;
            code = code.2459;
            D.28848 = imb.b[3];
            *code.2458 = D.28848;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28832>:
      <D.28825>:
      goto <D.23489>;
      <D.28818>:
      if (0 != 0) goto <D.28849>; else goto <D.28850>;
      <D.28849>:
      code.386 = code;
      code.2460 = code.386;
      code.2461 = code.2460 + 1;
      code = code.2461;
      *code.2460 = 13;
      goto <D.23489>;
      <D.28850>:
      tramp_offset.521 = (unsigned int) tramp_offset;
      D.25497 = tramp_offset.521 + 128;
      if (D.25497 <= 255) goto <D.28853>; else goto <D.28854>;
      <D.28853>:
      code.386 = code;
      code.2462 = code.386;
      code.2463 = code.2462 + 1;
      code = code.2463;
      *code.2462 = 77;
      code.386 = code;
      D.25504 = (unsigned char) tramp_offset;
      *code.386 = D.25504;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28857>;
      <D.28854>:
      code.386 = code;
      code.2464 = code.386;
      code.2465 = code.2464 + 1;
      code = code.2465;
      *code.2464 = 141;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = tramp_offset;
            code.386 = code;
            code.2466 = code.386;
            code.2467 = code.2466 + 1;
            code = code.2467;
            D.28862 = imb.b[0];
            *code.2466 = D.28862;
            code.386 = code;
            code.2468 = code.386;
            code.2469 = code.2468 + 1;
            code = code.2469;
            D.28865 = imb.b[1];
            *code.2468 = D.28865;
            code.386 = code;
            code.2470 = code.386;
            code.2471 = code.2470 + 1;
            code = code.2471;
            D.28868 = imb.b[2];
            *code.2470 = D.28868;
            code.386 = code;
            code.2472 = code.386;
            code.2473 = code.2472 + 1;
            code = code.2473;
            D.28871 = imb.b[3];
            *code.2472 = D.28871;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28857>:
      <D.23489>:
      <D.28816>:
      if (aot != 0) goto <D.28872>; else goto <D.28873>;
      <D.28872>:
      {
        char * icall_name;

        icall_name = monoeg_g_strdup_printf ("trampoline_func_%d", tramp_type);
        code.386 = code;
        buf.385 = buf;
        code.2474 = mono_arch_emit_load_aotconst (buf.385, code.386, &ji, 32, icall_name);
        code = code.2474;
      }
      goto <D.28875>;
      <D.28873>:
      tramp = mono_get_trampoline_func (tramp_type);
      {
        int _amd64_width_temp;

        tramp.2475 = (long unsigned int) tramp;
        tramp.2476 = (long int) tramp;
        D.28878 = (int) tramp.2476;
        D.28879 = (long unsigned int) D.28878;
        D.28880 = tramp.2475 == D.28879;
        _amd64_width_temp = (int) D.28880;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.28882>; else goto <D.28883>;
          <D.28882>:
          iftmp.2477 = 9;
          goto <D.28884>;
          <D.28883>:
          iftmp.2477 = 1;
          <D.28884>:
          _amd64_rex_bits = iftmp.2477;
          if (_amd64_rex_bits != 0) goto <D.28885>; else goto <D.28886>;
          <D.28885>:
          code.386 = code;
          code.2478 = code.386;
          code.2479 = code.2478 + 1;
          code = code.2479;
          D.28889 = _amd64_rex_bits | 64;
          *code.2478 = D.28889;
          <D.28886>:
        }
        code.386 = code;
        code.2480 = code.386;
        code.2481 = code.2480 + 1;
        code = code.2481;
        *code.2480 = 187;
        if (_amd64_width_temp == 0) goto <D.28892>; else goto <D.28893>;
        <D.28892>:
        {
          union amd64_imm_buf imb;

          try
            {
              tramp.2475 = (long unsigned int) tramp;
              imb.val = tramp.2475;
              code.386 = code;
              code.2482 = code.386;
              code.2483 = code.2482 + 1;
              code = code.2483;
              D.28896 = imb.b[0];
              *code.2482 = D.28896;
              code.386 = code;
              code.2484 = code.386;
              code.2485 = code.2484 + 1;
              code = code.2485;
              D.28899 = imb.b[1];
              *code.2484 = D.28899;
              code.386 = code;
              code.2486 = code.386;
              code.2487 = code.2486 + 1;
              code = code.2487;
              D.28902 = imb.b[2];
              *code.2486 = D.28902;
              code.386 = code;
              code.2488 = code.386;
              code.2489 = code.2488 + 1;
              code = code.2489;
              D.28905 = imb.b[3];
              *code.2488 = D.28905;
              code.386 = code;
              code.2490 = code.386;
              code.2491 = code.2490 + 1;
              code = code.2491;
              D.28908 = imb.b[4];
              *code.2490 = D.28908;
              code.386 = code;
              code.2492 = code.386;
              code.2493 = code.2492 + 1;
              code = code.2493;
              D.28911 = imb.b[5];
              *code.2492 = D.28911;
              code.386 = code;
              code.2494 = code.386;
              code.2495 = code.2494 + 1;
              code = code.2495;
              D.28914 = imb.b[6];
              *code.2494 = D.28914;
              code.386 = code;
              code.2496 = code.386;
              code.2497 = code.2496 + 1;
              code = code.2497;
              D.28917 = imb.b[7];
              *code.2496 = D.28917;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.28918>;
        <D.28893>:
        {
          union x86_imm_buf imb;

          try
            {
              tramp.2476 = (long int) tramp;
              D.28878 = (int) tramp.2476;
              imb.val = D.28878;
              code.386 = code;
              code.2498 = code.386;
              code.2499 = code.2498 + 1;
              code = code.2499;
              D.28921 = imb.b[0];
              *code.2498 = D.28921;
              code.386 = code;
              code.2500 = code.386;
              code.2501 = code.2500 + 1;
              code = code.2501;
              D.28924 = imb.b[1];
              *code.2500 = D.28924;
              code.386 = code;
              code.2502 = code.386;
              code.2503 = code.2502 + 1;
              code = code.2503;
              D.28927 = imb.b[2];
              *code.2502 = D.28927;
              code.386 = code;
              code.2504 = code.386;
              code.2505 = code.2504 + 1;
              code = code.2505;
              D.28930 = imb.b[3];
              *code.2504 = D.28930;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.28918>:
      }
      <D.28875>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.28931>; else goto <D.28932>;
        <D.28931>:
        code.386 = code;
        code.2506 = code.386;
        code.2507 = code.2506 + 1;
        code = code.2507;
        D.28935 = _amd64_rex_bits | 64;
        *code.2506 = D.28935;
        <D.28932>:
      }
      code.386 = code;
      code.2508 = code.386;
      code.2509 = code.2508 + 1;
      code = code.2509;
      *code.2508 = 255;
      code.386 = code;
      code.2510 = code.386;
      code.2511 = code.2510 + 1;
      code = code.2511;
      *code.2510 = 211;
      if (0 != 0) goto <D.28940>; else goto <D.28941>;
      <D.28940>:
      code.386 = code;
      code.2512 = code.386;
      code.2513 = code.2512 + 1;
      code = code.2513;
      *code.2512 = 102;
      <D.28941>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.28944>; else goto <D.28945>;
        <D.28944>:
        code.386 = code;
        code.2514 = code.386;
        code.2515 = code.2514 + 1;
        code = code.2515;
        D.28948 = _amd64_rex_bits | 64;
        *code.2514 = D.28948;
        <D.28945>:
      }
      switch (8) <default: <D.23503>, case 1: <D.23498>, case 2: <D.23500>, case 4: <D.23501>, case 8: <D.23502>>
      <D.23498>:
      code.386 = code;
      code.2516 = code.386;
      code.2517 = code.2516 + 1;
      code = code.2517;
      *code.2516 = 136;
      goto <D.23499>;
      <D.23500>:
      <D.23501>:
      <D.23502>:
      code.386 = code;
      code.2518 = code.386;
      code.2519 = code.2518 + 1;
      code = code.2519;
      *code.2518 = 137;
      goto <D.23499>;
      <D.23503>:
      __assert_fail ("0", "tramp-amd64.c", 656, &__PRETTY_FUNCTION__);
      <D.23499>:
      if (0 != 0) goto <D.28953>; else goto <D.28954>;
      <D.28953>:
      if (res_offset == 0) goto <D.28955>; else goto <D.28956>;
      <D.28955>:
      code.386 = code;
      code.2520 = code.386;
      code.2521 = code.2520 + 1;
      code = code.2521;
      *code.2520 = 4;
      code.386 = code;
      code.2522 = code.386;
      code.2523 = code.2522 + 1;
      code = code.2523;
      *code.2522 = 36;
      goto <D.28961>;
      <D.28956>:
      res_offset.2524 = (unsigned int) res_offset;
      D.28963 = res_offset.2524 + 128;
      if (D.28963 <= 255) goto <D.28964>; else goto <D.28965>;
      <D.28964>:
      code.386 = code;
      code.2525 = code.386;
      code.2526 = code.2525 + 1;
      code = code.2526;
      *code.2525 = 68;
      code.386 = code;
      code.2527 = code.386;
      code.2528 = code.2527 + 1;
      code = code.2528;
      *code.2527 = 36;
      code.386 = code;
      D.28970 = (unsigned char) res_offset;
      *code.386 = D.28970;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28971>;
      <D.28965>:
      code.386 = code;
      code.2529 = code.386;
      code.2530 = code.2529 + 1;
      code = code.2530;
      *code.2529 = 132;
      code.386 = code;
      code.2531 = code.386;
      code.2532 = code.2531 + 1;
      code = code.2532;
      *code.2531 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = res_offset;
            code.386 = code;
            code.2533 = code.386;
            code.2534 = code.2533 + 1;
            code = code.2534;
            D.28978 = imb.b[0];
            *code.2533 = D.28978;
            code.386 = code;
            code.2535 = code.386;
            code.2536 = code.2535 + 1;
            code = code.2536;
            D.28981 = imb.b[1];
            *code.2535 = D.28981;
            code.386 = code;
            code.2537 = code.386;
            code.2538 = code.2537 + 1;
            code = code.2538;
            D.28984 = imb.b[2];
            *code.2537 = D.28984;
            code.386 = code;
            code.2539 = code.386;
            code.2540 = code.2539 + 1;
            code = code.2540;
            D.28987 = imb.b[3];
            *code.2539 = D.28987;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28971>:
      <D.28961>:
      goto <D.23505>;
      <D.28954>:
      if (0 != 0) goto <D.28988>; else goto <D.28989>;
      <D.28988>:
      code.386 = code;
      code.2541 = code.386;
      code.2542 = code.2541 + 1;
      code = code.2542;
      *code.2541 = 5;
      goto <D.23505>;
      <D.28989>:
      res_offset.2524 = (unsigned int) res_offset;
      D.28963 = res_offset.2524 + 128;
      if (D.28963 <= 255) goto <D.28992>; else goto <D.28993>;
      <D.28992>:
      code.386 = code;
      code.2543 = code.386;
      code.2544 = code.2543 + 1;
      code = code.2544;
      *code.2543 = 69;
      code.386 = code;
      D.28970 = (unsigned char) res_offset;
      *code.386 = D.28970;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.28996>;
      <D.28993>:
      code.386 = code;
      code.2545 = code.386;
      code.2546 = code.2545 + 1;
      code = code.2546;
      *code.2545 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = res_offset;
            code.386 = code;
            code.2547 = code.386;
            code.2548 = code.2547 + 1;
            code = code.2548;
            D.29001 = imb.b[0];
            *code.2547 = D.29001;
            code.386 = code;
            code.2549 = code.386;
            code.2550 = code.2549 + 1;
            code = code.2550;
            D.29004 = imb.b[1];
            *code.2549 = D.29004;
            code.386 = code;
            code.2551 = code.386;
            code.2552 = code.2551 + 1;
            code = code.2552;
            D.29007 = imb.b[2];
            *code.2551 = D.29007;
            code.386 = code;
            code.2553 = code.386;
            code.2554 = code.2553 + 1;
            code = code.2554;
            D.29010 = imb.b[3];
            *code.2553 = D.29010;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.28996>:
      <D.23505>:
      if (aot != 0) goto <D.29011>; else goto <D.29012>;
      <D.29011>:
      code.386 = code;
      buf.385 = buf;
      code.2555 = mono_arch_emit_load_aotconst (buf.385, code.386, &ji, 32, "mono_thread_force_interruption_checkpoint");
      code = code.2555;
      goto <D.29014>;
      <D.29012>:
      {
        int _amd64_width_temp;

        mono_thread_force_interruption_checkpoint.2556 = (long int) mono_thread_force_interruption_checkpoint;
        D.29016 = (int) mono_thread_force_interruption_checkpoint.2556;
        D.29017 = (long unsigned int) D.29016;
        mono_thread_force_interruption_checkpoint.2557 = (long unsigned int) mono_thread_force_interruption_checkpoint;
        D.29019 = D.29017 == mono_thread_force_interruption_checkpoint.2557;
        _amd64_width_temp = (int) D.29019;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.29021>; else goto <D.29022>;
          <D.29021>:
          iftmp.2558 = 9;
          goto <D.29023>;
          <D.29022>:
          iftmp.2558 = 1;
          <D.29023>:
          _amd64_rex_bits = iftmp.2558;
          if (_amd64_rex_bits != 0) goto <D.29024>; else goto <D.29025>;
          <D.29024>:
          code.386 = code;
          code.2559 = code.386;
          code.2560 = code.2559 + 1;
          code = code.2560;
          D.29028 = _amd64_rex_bits | 64;
          *code.2559 = D.29028;
          <D.29025>:
        }
        code.386 = code;
        code.2561 = code.386;
        code.2562 = code.2561 + 1;
        code = code.2562;
        *code.2561 = 187;
        if (_amd64_width_temp == 0) goto <D.29031>; else goto <D.29032>;
        <D.29031>:
        {
          union amd64_imm_buf imb;

          try
            {
              mono_thread_force_interruption_checkpoint.2557 = (long unsigned int) mono_thread_force_interruption_checkpoint;
              imb.val = mono_thread_force_interruption_checkpoint.2557;
              code.386 = code;
              code.2563 = code.386;
              code.2564 = code.2563 + 1;
              code = code.2564;
              D.29035 = imb.b[0];
              *code.2563 = D.29035;
              code.386 = code;
              code.2565 = code.386;
              code.2566 = code.2565 + 1;
              code = code.2566;
              D.29038 = imb.b[1];
              *code.2565 = D.29038;
              code.386 = code;
              code.2567 = code.386;
              code.2568 = code.2567 + 1;
              code = code.2568;
              D.29041 = imb.b[2];
              *code.2567 = D.29041;
              code.386 = code;
              code.2569 = code.386;
              code.2570 = code.2569 + 1;
              code = code.2570;
              D.29044 = imb.b[3];
              *code.2569 = D.29044;
              code.386 = code;
              code.2571 = code.386;
              code.2572 = code.2571 + 1;
              code = code.2572;
              D.29047 = imb.b[4];
              *code.2571 = D.29047;
              code.386 = code;
              code.2573 = code.386;
              code.2574 = code.2573 + 1;
              code = code.2574;
              D.29050 = imb.b[5];
              *code.2573 = D.29050;
              code.386 = code;
              code.2575 = code.386;
              code.2576 = code.2575 + 1;
              code = code.2576;
              D.29053 = imb.b[6];
              *code.2575 = D.29053;
              code.386 = code;
              code.2577 = code.386;
              code.2578 = code.2577 + 1;
              code = code.2578;
              D.29056 = imb.b[7];
              *code.2577 = D.29056;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.29057>;
        <D.29032>:
        {
          union x86_imm_buf imb;

          try
            {
              mono_thread_force_interruption_checkpoint.2556 = (long int) mono_thread_force_interruption_checkpoint;
              D.29016 = (int) mono_thread_force_interruption_checkpoint.2556;
              imb.val = D.29016;
              code.386 = code;
              code.2579 = code.386;
              code.2580 = code.2579 + 1;
              code = code.2580;
              D.29060 = imb.b[0];
              *code.2579 = D.29060;
              code.386 = code;
              code.2581 = code.386;
              code.2582 = code.2581 + 1;
              code = code.2582;
              D.29063 = imb.b[1];
              *code.2581 = D.29063;
              code.386 = code;
              code.2583 = code.386;
              code.2584 = code.2583 + 1;
              code = code.2584;
              D.29066 = imb.b[2];
              *code.2583 = D.29066;
              code.386 = code;
              code.2585 = code.386;
              code.2586 = code.2585 + 1;
              code = code.2586;
              D.29069 = imb.b[3];
              *code.2585 = D.29069;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.29057>:
      }
      <D.29014>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.29070>; else goto <D.29071>;
        <D.29070>:
        code.386 = code;
        code.2587 = code.386;
        code.2588 = code.2587 + 1;
        code = code.2588;
        D.29074 = _amd64_rex_bits | 64;
        *code.2587 = D.29074;
        <D.29071>:
      }
      code.386 = code;
      code.2589 = code.386;
      code.2590 = code.2589 + 1;
      code = code.2590;
      *code.2589 = 255;
      code.386 = code;
      code.2591 = code.386;
      code.2592 = code.2591 + 1;
      code = code.2592;
      *code.2591 = 211;
      if (0 != 0) goto <D.29079>; else goto <D.29080>;
      <D.29079>:
      code.386 = code;
      code.2593 = code.386;
      code.2594 = code.2593 + 1;
      code = code.2594;
      *code.2593 = 102;
      <D.29080>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29083>; else goto <D.29084>;
        <D.29083>:
        code.386 = code;
        code.2595 = code.386;
        code.2596 = code.2595 + 1;
        code = code.2596;
        D.29087 = _amd64_rex_bits | 64;
        *code.2595 = D.29087;
        <D.29084>:
      }
      switch (8) <default: <D.23518>, case 1: <D.23513>, case 2: <D.23515>, case 4: <D.23516>, case 8: <D.23517>>
      <D.23513>:
      code.386 = code;
      code.2597 = code.386;
      code.2598 = code.2597 + 1;
      code = code.2598;
      *code.2597 = 138;
      goto <D.23514>;
      <D.23515>:
      <D.23516>:
      <D.23517>:
      code.386 = code;
      code.2599 = code.386;
      code.2600 = code.2599 + 1;
      code = code.2600;
      *code.2599 = 139;
      goto <D.23514>;
      <D.23518>:
      __assert_fail ("0", "tramp-amd64.c", 664, &__PRETTY_FUNCTION__);
      <D.23514>:
      if (0 != 0) goto <D.29092>; else goto <D.29093>;
      <D.29092>:
      code.386 = code;
      code.2601 = code.386;
      code.2602 = code.2601 + 1;
      code = code.2602;
      *code.2601 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = res_offset;
            code.386 = code;
            code.2603 = code.386;
            code.2604 = code.2603 + 1;
            code = code.2604;
            D.29098 = imb.b[0];
            *code.2603 = D.29098;
            code.386 = code;
            code.2605 = code.386;
            code.2606 = code.2605 + 1;
            code = code.2606;
            D.29101 = imb.b[1];
            *code.2605 = D.29101;
            code.386 = code;
            code.2607 = code.386;
            code.2608 = code.2607 + 1;
            code = code.2608;
            D.29104 = imb.b[2];
            *code.2607 = D.29104;
            code.386 = code;
            code.2609 = code.386;
            code.2610 = code.2609 + 1;
            code = code.2610;
            D.29107 = imb.b[3];
            *code.2609 = D.29107;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29108>;
      <D.29093>:
      if (0 != 0) goto <D.29109>; else goto <D.29110>;
      <D.29109>:
      if (res_offset == 0) goto <D.29111>; else goto <D.29112>;
      <D.29111>:
      code.386 = code;
      code.2611 = code.386;
      code.2612 = code.2611 + 1;
      code = code.2612;
      *code.2611 = 4;
      code.386 = code;
      code.2613 = code.386;
      code.2614 = code.2613 + 1;
      code = code.2614;
      *code.2613 = 36;
      goto <D.29117>;
      <D.29112>:
      res_offset.2524 = (unsigned int) res_offset;
      D.28963 = res_offset.2524 + 128;
      if (D.28963 <= 255) goto <D.29118>; else goto <D.29119>;
      <D.29118>:
      code.386 = code;
      code.2615 = code.386;
      code.2616 = code.2615 + 1;
      code = code.2616;
      *code.2615 = 68;
      code.386 = code;
      code.2617 = code.386;
      code.2618 = code.2617 + 1;
      code = code.2618;
      *code.2617 = 36;
      code.386 = code;
      D.28970 = (unsigned char) res_offset;
      *code.386 = D.28970;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29124>;
      <D.29119>:
      code.386 = code;
      code.2619 = code.386;
      code.2620 = code.2619 + 1;
      code = code.2620;
      *code.2619 = 132;
      code.386 = code;
      code.2621 = code.386;
      code.2622 = code.2621 + 1;
      code = code.2622;
      *code.2621 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = res_offset;
            code.386 = code;
            code.2623 = code.386;
            code.2624 = code.2623 + 1;
            code = code.2624;
            D.29131 = imb.b[0];
            *code.2623 = D.29131;
            code.386 = code;
            code.2625 = code.386;
            code.2626 = code.2625 + 1;
            code = code.2626;
            D.29134 = imb.b[1];
            *code.2625 = D.29134;
            code.386 = code;
            code.2627 = code.386;
            code.2628 = code.2627 + 1;
            code = code.2628;
            D.29137 = imb.b[2];
            *code.2627 = D.29137;
            code.386 = code;
            code.2629 = code.386;
            code.2630 = code.2629 + 1;
            code = code.2630;
            D.29140 = imb.b[3];
            *code.2629 = D.29140;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29124>:
      <D.29117>:
      goto <D.23521>;
      <D.29110>:
      if (0 != 0) goto <D.29141>; else goto <D.29142>;
      <D.29141>:
      code.386 = code;
      code.2631 = code.386;
      code.2632 = code.2631 + 1;
      code = code.2632;
      *code.2631 = 5;
      goto <D.23521>;
      <D.29142>:
      res_offset.2524 = (unsigned int) res_offset;
      D.28963 = res_offset.2524 + 128;
      if (D.28963 <= 255) goto <D.29145>; else goto <D.29146>;
      <D.29145>:
      code.386 = code;
      code.2633 = code.386;
      code.2634 = code.2633 + 1;
      code = code.2634;
      *code.2633 = 69;
      code.386 = code;
      D.28970 = (unsigned char) res_offset;
      *code.386 = D.28970;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29149>;
      <D.29146>:
      code.386 = code;
      code.2635 = code.386;
      code.2636 = code.2635 + 1;
      code = code.2636;
      *code.2635 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = res_offset;
            code.386 = code;
            code.2637 = code.386;
            code.2638 = code.2637 + 1;
            code = code.2638;
            D.29154 = imb.b[0];
            *code.2637 = D.29154;
            code.386 = code;
            code.2639 = code.386;
            code.2640 = code.2639 + 1;
            code = code.2640;
            D.29157 = imb.b[1];
            *code.2639 = D.29157;
            code.386 = code;
            code.2641 = code.386;
            code.2642 = code.2641 + 1;
            code = code.2642;
            D.29160 = imb.b[2];
            *code.2641 = D.29160;
            code.386 = code;
            code.2643 = code.386;
            code.2644 = code.2643 + 1;
            code = code.2644;
            D.29163 = imb.b[3];
            *code.2643 = D.29163;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29149>:
      <D.23521>:
      <D.29108>:
      if (0 != 0) goto <D.29164>; else goto <D.29165>;
      <D.29164>:
      code.386 = code;
      code.2645 = code.386;
      code.2646 = code.2645 + 1;
      code = code.2646;
      *code.2645 = 102;
      <D.29165>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29168>; else goto <D.29169>;
        <D.29168>:
        code.386 = code;
        code.2647 = code.386;
        code.2648 = code.2647 + 1;
        code = code.2648;
        D.29172 = _amd64_rex_bits | 64;
        *code.2647 = D.29172;
        <D.29169>:
      }
      switch (8) <default: <D.23529>, case 1: <D.23524>, case 2: <D.23526>, case 4: <D.23527>, case 8: <D.23528>>
      <D.23524>:
      code.386 = code;
      code.2649 = code.386;
      code.2650 = code.2649 + 1;
      code = code.2650;
      *code.2649 = 138;
      goto <D.23525>;
      <D.23526>:
      <D.23527>:
      <D.23528>:
      code.386 = code;
      code.2651 = code.386;
      code.2652 = code.2651 + 1;
      code = code.2652;
      *code.2651 = 139;
      goto <D.23525>;
      <D.23529>:
      __assert_fail ("0", "tramp-amd64.c", 667, &__PRETTY_FUNCTION__);
      <D.23525>:
      if (0 != 0) goto <D.29177>; else goto <D.29178>;
      <D.29177>:
      code.386 = code;
      code.2653 = code.386;
      code.2654 = code.2653 + 1;
      code = code.2654;
      *code.2653 = 13;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2655 = code.386;
            code.2656 = code.2655 + 1;
            code = code.2656;
            D.29183 = imb.b[0];
            *code.2655 = D.29183;
            code.386 = code;
            code.2657 = code.386;
            code.2658 = code.2657 + 1;
            code = code.2658;
            D.29186 = imb.b[1];
            *code.2657 = D.29186;
            code.386 = code;
            code.2659 = code.386;
            code.2660 = code.2659 + 1;
            code = code.2660;
            D.29189 = imb.b[2];
            *code.2659 = D.29189;
            code.386 = code;
            code.2661 = code.386;
            code.2662 = code.2661 + 1;
            code = code.2662;
            D.29192 = imb.b[3];
            *code.2661 = D.29192;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29193>;
      <D.29178>:
      if (0 != 0) goto <D.29194>; else goto <D.29195>;
      <D.29194>:
      if (lmf_offset == 0) goto <D.29196>; else goto <D.29197>;
      <D.29196>:
      code.386 = code;
      code.2663 = code.386;
      code.2664 = code.2663 + 1;
      code = code.2664;
      *code.2663 = 12;
      code.386 = code;
      code.2665 = code.386;
      code.2666 = code.2665 + 1;
      code = code.2666;
      *code.2665 = 36;
      goto <D.29202>;
      <D.29197>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.29203>; else goto <D.29204>;
      <D.29203>:
      code.386 = code;
      code.2667 = code.386;
      code.2668 = code.2667 + 1;
      code = code.2668;
      *code.2667 = 76;
      code.386 = code;
      code.2669 = code.386;
      code.2670 = code.2669 + 1;
      code = code.2670;
      *code.2669 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      *code.386 = D.27486;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29209>;
      <D.29204>:
      code.386 = code;
      code.2671 = code.386;
      code.2672 = code.2671 + 1;
      code = code.2672;
      *code.2671 = 140;
      code.386 = code;
      code.2673 = code.386;
      code.2674 = code.2673 + 1;
      code = code.2674;
      *code.2673 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2675 = code.386;
            code.2676 = code.2675 + 1;
            code = code.2676;
            D.29216 = imb.b[0];
            *code.2675 = D.29216;
            code.386 = code;
            code.2677 = code.386;
            code.2678 = code.2677 + 1;
            code = code.2678;
            D.29219 = imb.b[1];
            *code.2677 = D.29219;
            code.386 = code;
            code.2679 = code.386;
            code.2680 = code.2679 + 1;
            code = code.2680;
            D.29222 = imb.b[2];
            *code.2679 = D.29222;
            code.386 = code;
            code.2681 = code.386;
            code.2682 = code.2681 + 1;
            code = code.2682;
            D.29225 = imb.b[3];
            *code.2681 = D.29225;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29209>:
      <D.29202>:
      goto <D.23532>;
      <D.29195>:
      if (0 != 0) goto <D.29226>; else goto <D.29227>;
      <D.29226>:
      code.386 = code;
      code.2683 = code.386;
      code.2684 = code.2683 + 1;
      code = code.2684;
      *code.2683 = 13;
      goto <D.23532>;
      <D.29227>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28290 = lmf_offset.1646 + 128;
      if (D.28290 <= 255) goto <D.29230>; else goto <D.29231>;
      <D.29230>:
      code.386 = code;
      code.2685 = code.386;
      code.2686 = code.2685 + 1;
      code = code.2686;
      *code.2685 = 77;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      *code.386 = D.27486;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29234>;
      <D.29231>:
      code.386 = code;
      code.2687 = code.386;
      code.2688 = code.2687 + 1;
      code = code.2688;
      *code.2687 = 141;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = lmf_offset;
            code.386 = code;
            code.2689 = code.386;
            code.2690 = code.2689 + 1;
            code = code.2690;
            D.29239 = imb.b[0];
            *code.2689 = D.29239;
            code.386 = code;
            code.2691 = code.386;
            code.2692 = code.2691 + 1;
            code = code.2692;
            D.29242 = imb.b[1];
            *code.2691 = D.29242;
            code.386 = code;
            code.2693 = code.386;
            code.2694 = code.2693 + 1;
            code = code.2694;
            D.29245 = imb.b[2];
            *code.2693 = D.29245;
            code.386 = code;
            code.2695 = code.386;
            code.2696 = code.2695 + 1;
            code = code.2696;
            D.29248 = imb.b[3];
            *code.2695 = D.29248;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29234>:
      <D.23532>:
      <D.29193>:
      if (1 != 0) goto <D.29249>; else goto <D.29250>;
      <D.29249>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29251>; else goto <D.29252>;
        <D.29251>:
        code.386 = code;
        code.2697 = code.386;
        code.2698 = code.2697 + 1;
        code = code.2698;
        D.29255 = _amd64_rex_bits | 64;
        *code.2697 = D.29255;
        <D.29252>:
      }
      code.386 = code;
      code.2699 = code.386;
      code.2700 = code.2699 + 1;
      code = code.2700;
      *code.2699 = 131;
      code.386 = code;
      code.2701 = code.386;
      code.2702 = code.2701 + 1;
      code = code.2702;
      *code.2701 = 233;
      code.386 = code;
      *code.386 = 5;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29260>;
      <D.29250>:
      if (0 != 0) goto <D.29261>; else goto <D.29262>;
      <D.29261>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29263>; else goto <D.29264>;
        <D.29263>:
        code.386 = code;
        code.2703 = code.386;
        code.2704 = code.2703 + 1;
        code = code.2704;
        D.29267 = _amd64_rex_bits | 64;
        *code.2703 = D.29267;
        <D.29264>:
      }
      code.386 = code;
      code.2705 = code.386;
      code.2706 = code.2705 + 1;
      code = code.2706;
      *code.2705 = 45;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.2707 = code.386;
            code.2708 = code.2707 + 1;
            code = code.2708;
            D.29272 = imb.b[0];
            *code.2707 = D.29272;
            code.386 = code;
            code.2709 = code.386;
            code.2710 = code.2709 + 1;
            code = code.2710;
            D.29275 = imb.b[1];
            *code.2709 = D.29275;
            code.386 = code;
            code.2711 = code.386;
            code.2712 = code.2711 + 1;
            code = code.2712;
            D.29278 = imb.b[2];
            *code.2711 = D.29278;
            code.386 = code;
            code.2713 = code.386;
            code.2714 = code.2713 + 1;
            code = code.2714;
            D.29281 = imb.b[3];
            *code.2713 = D.29281;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29282>;
      <D.29262>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29283>; else goto <D.29284>;
        <D.29283>:
        code.386 = code;
        code.2715 = code.386;
        code.2716 = code.2715 + 1;
        code = code.2716;
        D.29287 = _amd64_rex_bits | 64;
        *code.2715 = D.29287;
        <D.29284>:
      }
      code.386 = code;
      code.2717 = code.386;
      code.2718 = code.2717 + 1;
      code = code.2718;
      *code.2717 = 129;
      code.386 = code;
      code.2719 = code.386;
      code.2720 = code.2719 + 1;
      code = code.2720;
      *code.2719 = 233;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 5;
            code.386 = code;
            code.2721 = code.386;
            code.2722 = code.2721 + 1;
            code = code.2722;
            D.29294 = imb.b[0];
            *code.2721 = D.29294;
            code.386 = code;
            code.2723 = code.386;
            code.2724 = code.2723 + 1;
            code = code.2724;
            D.29297 = imb.b[1];
            *code.2723 = D.29297;
            code.386 = code;
            code.2725 = code.386;
            code.2726 = code.2725 + 1;
            code = code.2726;
            D.29300 = imb.b[2];
            *code.2725 = D.29300;
            code.386 = code;
            code.2727 = code.386;
            code.2728 = code.2727 + 1;
            code = code.2728;
            D.29303 = imb.b[3];
            *code.2727 = D.29303;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29282>:
      <D.29260>:
      if (0 != 0) goto <D.29304>; else goto <D.29305>;
      <D.29304>:
      code.386 = code;
      code.2729 = code.386;
      code.2730 = code.2729 + 1;
      code = code.2730;
      *code.2729 = 102;
      <D.29305>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 12;
        if (_amd64_rex_bits != 0) goto <D.29308>; else goto <D.29309>;
        <D.29308>:
        code.386 = code;
        code.2731 = code.386;
        code.2732 = code.2731 + 1;
        code = code.2732;
        D.29312 = _amd64_rex_bits | 64;
        *code.2731 = D.29312;
        <D.29309>:
      }
      switch (8) <default: <D.23545>, case 1: <D.23540>, case 2: <D.23542>, case 4: <D.23543>, case 8: <D.23544>>
      <D.23540>:
      code.386 = code;
      code.2733 = code.386;
      code.2734 = code.2733 + 1;
      code = code.2734;
      *code.2733 = 138;
      goto <D.23541>;
      <D.23542>:
      <D.23543>:
      <D.23544>:
      code.386 = code;
      code.2735 = code.386;
      code.2736 = code.2735 + 1;
      code = code.2736;
      *code.2735 = 139;
      goto <D.23541>;
      <D.23545>:
      __assert_fail ("0", "tramp-amd64.c", 669, &__PRETTY_FUNCTION__);
      <D.23541>:
      if (0 != 0) goto <D.29317>; else goto <D.29318>;
      <D.29317>:
      code.386 = code;
      code.2737 = code.386;
      code.2738 = code.2737 + 1;
      code = code.2738;
      *code.2737 = 29;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.28079 = lmf_offset.1646 + 80;
            D.28080 = (int) D.28079;
            imb.val = D.28080;
            code.386 = code;
            code.2739 = code.386;
            code.2740 = code.2739 + 1;
            code = code.2740;
            D.29323 = imb.b[0];
            *code.2739 = D.29323;
            code.386 = code;
            code.2741 = code.386;
            code.2742 = code.2741 + 1;
            code = code.2742;
            D.29326 = imb.b[1];
            *code.2741 = D.29326;
            code.386 = code;
            code.2743 = code.386;
            code.2744 = code.2743 + 1;
            code = code.2744;
            D.29329 = imb.b[2];
            *code.2743 = D.29329;
            code.386 = code;
            code.2745 = code.386;
            code.2746 = code.2745 + 1;
            code = code.2746;
            D.29332 = imb.b[3];
            *code.2745 = D.29332;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29333>;
      <D.29318>:
      if (0 != 0) goto <D.29334>; else goto <D.29335>;
      <D.29334>:
      D.27467 = (long unsigned int) lmf_offset;
      if (D.27467 == 18446744073709551536) goto <D.29336>; else goto <D.29337>;
      <D.29336>:
      code.386 = code;
      code.2747 = code.386;
      code.2748 = code.2747 + 1;
      code = code.2748;
      *code.2747 = 28;
      code.386 = code;
      code.2749 = code.386;
      code.2750 = code.2749 + 1;
      code = code.2750;
      *code.2749 = 36;
      goto <D.29342>;
      <D.29337>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 >= -128) goto <D.29345>; else goto <D.29343>;
      <D.29345>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 <= 127) goto <D.29346>; else goto <D.29343>;
      <D.29346>:
      code.386 = code;
      code.2751 = code.386;
      code.2752 = code.2751 + 1;
      code = code.2752;
      *code.2751 = 92;
      code.386 = code;
      code.2753 = code.386;
      code.2754 = code.2753 + 1;
      code = code.2754;
      *code.2753 = 36;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.28087 = D.27486 + 80;
      *code.386 = D.28087;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29344>;
      <D.29343>:
      code.386 = code;
      code.2755 = code.386;
      code.2756 = code.2755 + 1;
      code = code.2756;
      *code.2755 = 156;
      code.386 = code;
      code.2757 = code.386;
      code.2758 = code.2757 + 1;
      code = code.2758;
      *code.2757 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.28079 = lmf_offset.1646 + 80;
            D.28080 = (int) D.28079;
            imb.val = D.28080;
            code.386 = code;
            code.2759 = code.386;
            code.2760 = code.2759 + 1;
            code = code.2760;
            D.29357 = imb.b[0];
            *code.2759 = D.29357;
            code.386 = code;
            code.2761 = code.386;
            code.2762 = code.2761 + 1;
            code = code.2762;
            D.29360 = imb.b[1];
            *code.2761 = D.29360;
            code.386 = code;
            code.2763 = code.386;
            code.2764 = code.2763 + 1;
            code = code.2764;
            D.29363 = imb.b[2];
            *code.2763 = D.29363;
            code.386 = code;
            code.2765 = code.386;
            code.2766 = code.2765 + 1;
            code = code.2766;
            D.29366 = imb.b[3];
            *code.2765 = D.29366;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29344>:
      <D.29342>:
      goto <D.23548>;
      <D.29335>:
      if (0 != 0) goto <D.29367>; else goto <D.29368>;
      <D.29367>:
      code.386 = code;
      code.2767 = code.386;
      code.2768 = code.2767 + 1;
      code = code.2768;
      *code.2767 = 29;
      goto <D.23548>;
      <D.29368>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 >= -128) goto <D.29373>; else goto <D.29371>;
      <D.29373>:
      lmf_offset.1646 = (unsigned int) lmf_offset;
      D.28079 = lmf_offset.1646 + 80;
      D.28080 = (int) D.28079;
      if (D.28080 <= 127) goto <D.29374>; else goto <D.29371>;
      <D.29374>:
      code.386 = code;
      code.2769 = code.386;
      code.2770 = code.2769 + 1;
      code = code.2770;
      *code.2769 = 93;
      code.386 = code;
      D.27486 = (unsigned char) lmf_offset;
      D.28087 = D.27486 + 80;
      *code.386 = D.28087;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29372>;
      <D.29371>:
      code.386 = code;
      code.2771 = code.386;
      code.2772 = code.2771 + 1;
      code = code.2772;
      *code.2771 = 157;
      {
        union x86_imm_buf imb;

        try
          {
            lmf_offset.1646 = (unsigned int) lmf_offset;
            D.28079 = lmf_offset.1646 + 80;
            D.28080 = (int) D.28079;
            imb.val = D.28080;
            code.386 = code;
            code.2773 = code.386;
            code.2774 = code.2773 + 1;
            code = code.2774;
            D.29381 = imb.b[0];
            *code.2773 = D.29381;
            code.386 = code;
            code.2775 = code.386;
            code.2776 = code.2775 + 1;
            code = code.2776;
            D.29384 = imb.b[1];
            *code.2775 = D.29384;
            code.386 = code;
            code.2777 = code.386;
            code.2778 = code.2777 + 1;
            code = code.2778;
            D.29387 = imb.b[2];
            *code.2777 = D.29387;
            code.386 = code;
            code.2779 = code.386;
            code.2780 = code.2779 + 1;
            code = code.2780;
            D.29390 = imb.b[3];
            *code.2779 = D.29390;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29372>:
      <D.23548>:
      <D.29333>:
      if (0 != 0) goto <D.29391>; else goto <D.29392>;
      <D.29391>:
      code.386 = code;
      code.2781 = code.386;
      code.2782 = code.2781 + 1;
      code = code.2782;
      *code.2781 = 102;
      <D.29392>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 9;
        if (_amd64_rex_bits != 0) goto <D.29395>; else goto <D.29396>;
        <D.29395>:
        code.386 = code;
        code.2783 = code.386;
        code.2784 = code.2783 + 1;
        code = code.2784;
        D.29399 = _amd64_rex_bits | 64;
        *code.2783 = D.29399;
        <D.29396>:
      }
      switch (8) <default: <D.23556>, case 1: <D.23551>, case 2: <D.23553>, case 4: <D.23554>, case 8: <D.23555>>
      <D.23551>:
      code.386 = code;
      code.2785 = code.386;
      code.2786 = code.2785 + 1;
      code = code.2786;
      *code.2785 = 136;
      goto <D.23552>;
      <D.23553>:
      <D.23554>:
      <D.23555>:
      code.386 = code;
      code.2787 = code.386;
      code.2788 = code.2787 + 1;
      code = code.2788;
      *code.2787 = 137;
      goto <D.23552>;
      <D.23556>:
      __assert_fail ("0", "tramp-amd64.c", 670, &__PRETTY_FUNCTION__);
      <D.23552>:
      if (0 != 0) goto <D.29404>; else goto <D.29405>;
      <D.29404>:
      if (1 != 0) goto <D.29406>; else goto <D.29407>;
      <D.29406>:
      code.386 = code;
      code.2789 = code.386;
      code.2790 = code.2789 + 1;
      code = code.2790;
      *code.2789 = 12;
      code.386 = code;
      code.2791 = code.386;
      code.2792 = code.2791 + 1;
      code = code.2792;
      *code.2791 = 36;
      goto <D.29412>;
      <D.29407>:
      if (1 != 0) goto <D.29413>; else goto <D.29414>;
      <D.29413>:
      code.386 = code;
      code.2793 = code.386;
      code.2794 = code.2793 + 1;
      code = code.2794;
      *code.2793 = 76;
      code.386 = code;
      code.2795 = code.386;
      code.2796 = code.2795 + 1;
      code = code.2796;
      *code.2795 = 36;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29419>;
      <D.29414>:
      code.386 = code;
      code.2797 = code.386;
      code.2798 = code.2797 + 1;
      code = code.2798;
      *code.2797 = 140;
      code.386 = code;
      code.2799 = code.386;
      code.2800 = code.2799 + 1;
      code = code.2800;
      *code.2799 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2801 = code.386;
            code.2802 = code.2801 + 1;
            code = code.2802;
            D.29426 = imb.b[0];
            *code.2801 = D.29426;
            code.386 = code;
            code.2803 = code.386;
            code.2804 = code.2803 + 1;
            code = code.2804;
            D.29429 = imb.b[1];
            *code.2803 = D.29429;
            code.386 = code;
            code.2805 = code.386;
            code.2806 = code.2805 + 1;
            code = code.2806;
            D.29432 = imb.b[2];
            *code.2805 = D.29432;
            code.386 = code;
            code.2807 = code.386;
            code.2808 = code.2807 + 1;
            code = code.2808;
            D.29435 = imb.b[3];
            *code.2807 = D.29435;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29419>:
      <D.29412>:
      goto <D.23558>;
      <D.29405>:
      if (1 != 0) goto <D.29436>; else goto <D.29437>;
      <D.29436>:
      code.386 = code;
      code.2809 = code.386;
      code.2810 = code.2809 + 1;
      code = code.2810;
      *code.2809 = 11;
      goto <D.23558>;
      <D.29437>:
      if (1 != 0) goto <D.29440>; else goto <D.29441>;
      <D.29440>:
      code.386 = code;
      code.2811 = code.386;
      code.2812 = code.2811 + 1;
      code = code.2812;
      *code.2811 = 75;
      code.386 = code;
      *code.386 = 0;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29444>;
      <D.29441>:
      code.386 = code;
      code.2813 = code.386;
      code.2814 = code.2813 + 1;
      code = code.2814;
      *code.2813 = 139;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.386 = code;
            code.2815 = code.386;
            code.2816 = code.2815 + 1;
            code = code.2816;
            D.29449 = imb.b[0];
            *code.2815 = D.29449;
            code.386 = code;
            code.2817 = code.386;
            code.2818 = code.2817 + 1;
            code = code.2818;
            D.29452 = imb.b[1];
            *code.2817 = D.29452;
            code.386 = code;
            code.2819 = code.386;
            code.2820 = code.2819 + 1;
            code = code.2820;
            D.29455 = imb.b[2];
            *code.2819 = D.29455;
            code.386 = code;
            code.2821 = code.386;
            code.2822 = code.2821 + 1;
            code = code.2822;
            D.29458 = imb.b[3];
            *code.2821 = D.29458;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29444>:
      <D.23558>:
      if (0 != 0) goto <D.29459>; else goto <D.29460>;
      <D.29459>:
      code.386 = code;
      code.2823 = code.386;
      code.2824 = code.2823 + 1;
      code = code.2824;
      *code.2823 = 102;
      <D.29460>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29463>; else goto <D.29464>;
        <D.29463>:
        code.386 = code;
        code.2825 = code.386;
        code.2826 = code.2825 + 1;
        code = code.2826;
        D.29467 = _amd64_rex_bits | 64;
        *code.2825 = D.29467;
        <D.29464>:
      }
      switch (8) <default: <D.23566>, case 1: <D.23561>, case 2: <D.23563>, case 4: <D.23564>, case 8: <D.23565>>
      <D.23561>:
      code.386 = code;
      code.2827 = code.386;
      code.2828 = code.2827 + 1;
      code = code.2828;
      *code.2827 = 136;
      goto <D.23562>;
      <D.23563>:
      <D.23564>:
      <D.23565>:
      code.386 = code;
      code.2829 = code.386;
      code.2830 = code.2829 + 1;
      code = code.2830;
      *code.2829 = 137;
      goto <D.23562>;
      <D.23566>:
      __assert_fail ("0", "tramp-amd64.c", 676, &__PRETTY_FUNCTION__);
      <D.23562>:
      if (0 != 0) goto <D.29472>; else goto <D.29473>;
      <D.29472>:
      if (rax_offset == 0) goto <D.29474>; else goto <D.29475>;
      <D.29474>:
      code.386 = code;
      code.2831 = code.386;
      code.2832 = code.2831 + 1;
      code = code.2832;
      *code.2831 = 4;
      code.386 = code;
      code.2833 = code.386;
      code.2834 = code.2833 + 1;
      code = code.2834;
      *code.2833 = 36;
      goto <D.29480>;
      <D.29475>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29482 = rax_offset.2835 + 128;
      if (D.29482 <= 255) goto <D.29483>; else goto <D.29484>;
      <D.29483>:
      code.386 = code;
      code.2836 = code.386;
      code.2837 = code.2836 + 1;
      code = code.2837;
      *code.2836 = 68;
      code.386 = code;
      code.2838 = code.386;
      code.2839 = code.2838 + 1;
      code = code.2839;
      *code.2838 = 36;
      code.386 = code;
      D.29489 = (unsigned char) rax_offset;
      *code.386 = D.29489;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29490>;
      <D.29484>:
      code.386 = code;
      code.2840 = code.386;
      code.2841 = code.2840 + 1;
      code = code.2841;
      *code.2840 = 132;
      code.386 = code;
      code.2842 = code.386;
      code.2843 = code.2842 + 1;
      code = code.2843;
      *code.2842 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = rax_offset;
            code.386 = code;
            code.2844 = code.386;
            code.2845 = code.2844 + 1;
            code = code.2845;
            D.29497 = imb.b[0];
            *code.2844 = D.29497;
            code.386 = code;
            code.2846 = code.386;
            code.2847 = code.2846 + 1;
            code = code.2847;
            D.29500 = imb.b[1];
            *code.2846 = D.29500;
            code.386 = code;
            code.2848 = code.386;
            code.2849 = code.2848 + 1;
            code = code.2849;
            D.29503 = imb.b[2];
            *code.2848 = D.29503;
            code.386 = code;
            code.2850 = code.386;
            code.2851 = code.2850 + 1;
            code = code.2851;
            D.29506 = imb.b[3];
            *code.2850 = D.29506;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29490>:
      <D.29480>:
      goto <D.23568>;
      <D.29473>:
      if (0 != 0) goto <D.29507>; else goto <D.29508>;
      <D.29507>:
      code.386 = code;
      code.2852 = code.386;
      code.2853 = code.2852 + 1;
      code = code.2853;
      *code.2852 = 5;
      goto <D.23568>;
      <D.29508>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29482 = rax_offset.2835 + 128;
      if (D.29482 <= 255) goto <D.29511>; else goto <D.29512>;
      <D.29511>:
      code.386 = code;
      code.2854 = code.386;
      code.2855 = code.2854 + 1;
      code = code.2855;
      *code.2854 = 69;
      code.386 = code;
      D.29489 = (unsigned char) rax_offset;
      *code.386 = D.29489;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29515>;
      <D.29512>:
      code.386 = code;
      code.2856 = code.386;
      code.2857 = code.2856 + 1;
      code = code.2857;
      *code.2856 = 133;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = rax_offset;
            code.386 = code;
            code.2858 = code.386;
            code.2859 = code.2858 + 1;
            code = code.2859;
            D.29520 = imb.b[0];
            *code.2858 = D.29520;
            code.386 = code;
            code.2860 = code.386;
            code.2861 = code.2860 + 1;
            code = code.2861;
            D.29523 = imb.b[1];
            *code.2860 = D.29523;
            code.386 = code;
            code.2862 = code.386;
            code.2863 = code.2862 + 1;
            code = code.2863;
            D.29526 = imb.b[2];
            *code.2862 = D.29526;
            code.386 = code;
            code.2864 = code.386;
            code.2865 = code.2864 + 1;
            code = code.2865;
            D.29529 = imb.b[3];
            *code.2864 = D.29529;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29515>:
      <D.23568>:
      i = 0;
      goto <D.23582>;
      <D.23581>:
      D.29532 = 966 >> i;
      D.29533 = D.29532 & 1;
      if (D.29533 != 0) goto <D.29530>; else goto <D.29534>;
      <D.29534>:
      D.29535 = i == 10;
      D.29536 = i == 0;
      D.29537 = D.29535 | D.29536;
      if (D.29537 != 0) goto <D.29530>; else goto <D.29531>;
      <D.29530>:
      if (0 != 0) goto <D.29538>; else goto <D.29539>;
      <D.29538>:
      code.386 = code;
      code.2866 = code.386;
      code.2867 = code.2866 + 1;
      code = code.2867;
      *code.2866 = 102;
      <D.29539>:
      {
        unsigned char _amd64_rex_bits;

        if (i > 7) goto <D.29543>; else goto <D.29544>;
        <D.29543>:
        iftmp.2868 = 12;
        goto <D.29545>;
        <D.29544>:
        iftmp.2868 = 8;
        <D.29545>:
        _amd64_rex_bits = iftmp.2868;
        if (_amd64_rex_bits != 0) goto <D.29546>; else goto <D.29547>;
        <D.29546>:
        code.386 = code;
        code.2869 = code.386;
        code.2870 = code.2869 + 1;
        code = code.2870;
        D.29550 = _amd64_rex_bits | 64;
        *code.2869 = D.29550;
        <D.29547>:
      }
      switch (8) <default: <D.23576>, case 1: <D.23571>, case 2: <D.23573>, case 4: <D.23574>, case 8: <D.23575>>
      <D.23571>:
      code.386 = code;
      code.2871 = code.386;
      code.2872 = code.2871 + 1;
      code = code.2872;
      *code.2871 = 138;
      goto <D.23572>;
      <D.23573>:
      <D.23574>:
      <D.23575>:
      code.386 = code;
      code.2873 = code.386;
      code.2874 = code.2873 + 1;
      code = code.2874;
      *code.2873 = 139;
      goto <D.23572>;
      <D.23576>:
      __assert_fail ("0", "tramp-amd64.c", 682, &__PRETTY_FUNCTION__);
      <D.23572>:
      if (0 != 0) goto <D.29555>; else goto <D.29556>;
      <D.29555>:
      code.386 = code;
      code.2875 = code.386;
      code.2876 = code.2875 + 1;
      code = code.2876;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25785 = D.25747 | 5;
      D.25786 = (unsigned char) D.25785;
      *code.2875 = D.25786;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.2877 = code.386;
            code.2878 = code.2877 + 1;
            code = code.2878;
            D.29561 = imb.b[0];
            *code.2877 = D.29561;
            code.386 = code;
            code.2879 = code.386;
            code.2880 = code.2879 + 1;
            code = code.2880;
            D.29564 = imb.b[1];
            *code.2879 = D.29564;
            code.386 = code;
            code.2881 = code.386;
            code.2882 = code.2881 + 1;
            code = code.2882;
            D.29567 = imb.b[2];
            *code.2881 = D.29567;
            code.386 = code;
            code.2883 = code.386;
            code.2884 = code.2883 + 1;
            code = code.2884;
            D.29570 = imb.b[3];
            *code.2883 = D.29570;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29571>;
      <D.29556>:
      if (0 != 0) goto <D.29572>; else goto <D.29573>;
      <D.29572>:
      D.25651 = (long unsigned int) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25654 = D.25651 + D.25653;
      if (D.25654 == 0) goto <D.29574>; else goto <D.29575>;
      <D.29574>:
      code.386 = code;
      code.2885 = code.386;
      code.2886 = code.2885 + 1;
      code = code.2886;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *code.2885 = D.25749;
      code.386 = code;
      code.2887 = code.386;
      code.2888 = code.2887 + 1;
      code = code.2888;
      *code.2887 = 36;
      goto <D.29580>;
      <D.29575>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.29583>; else goto <D.29581>;
      <D.29583>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.29584>; else goto <D.29581>;
      <D.29584>:
      code.386 = code;
      code.2889 = code.386;
      code.2890 = code.2889 + 1;
      code = code.2890;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *code.2889 = D.25760;
      code.386 = code;
      code.2891 = code.386;
      code.2892 = code.2891 + 1;
      code = code.2892;
      *code.2891 = 36;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29582>;
      <D.29581>:
      code.386 = code;
      code.2893 = code.386;
      code.2894 = code.2893 + 1;
      code = code.2894;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *code.2893 = D.25766;
      code.386 = code;
      code.2895 = code.386;
      code.2896 = code.2895 + 1;
      code = code.2896;
      *code.2895 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.2897 = code.386;
            code.2898 = code.2897 + 1;
            code = code.2898;
            D.29595 = imb.b[0];
            *code.2897 = D.29595;
            code.386 = code;
            code.2899 = code.386;
            code.2900 = code.2899 + 1;
            code = code.2900;
            D.29598 = imb.b[1];
            *code.2899 = D.29598;
            code.386 = code;
            code.2901 = code.386;
            code.2902 = code.2901 + 1;
            code = code.2902;
            D.29601 = imb.b[2];
            *code.2901 = D.29601;
            code.386 = code;
            code.2903 = code.386;
            code.2904 = code.2903 + 1;
            code = code.2904;
            D.29604 = imb.b[3];
            *code.2903 = D.29604;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29582>:
      <D.29580>:
      goto <D.23579>;
      <D.29573>:
      if (0 != 0) goto <D.29605>; else goto <D.29606>;
      <D.29605>:
      code.386 = code;
      code.2905 = code.386;
      code.2906 = code.2905 + 1;
      code = code.2906;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25785 = D.25747 | 5;
      D.25786 = (unsigned char) D.25785;
      *code.2905 = D.25786;
      goto <D.23579>;
      <D.29606>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 >= -128) goto <D.29611>; else goto <D.29609>;
      <D.29611>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_regs_offset.617 = (unsigned int) saved_regs_offset;
      D.25667 = D.25665 + saved_regs_offset.617;
      D.25668 = (int) D.25667;
      if (D.25668 <= 127) goto <D.29612>; else goto <D.29609>;
      <D.29612>:
      code.386 = code;
      code.2907 = code.386;
      code.2908 = code.2907 + 1;
      code = code.2908;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25793 = D.25747 | 69;
      D.25794 = (unsigned char) D.25793;
      *code.2907 = D.25794;
      code.386 = code;
      D.25675 = (unsigned char) saved_regs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25678 = D.25675 + D.25677;
      *code.386 = D.25678;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29610>;
      <D.29609>:
      code.386 = code;
      code.2909 = code.386;
      code.2910 = code.2909 + 1;
      code = code.2910;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25797 = D.25747 | -123;
      D.25798 = (unsigned char) D.25797;
      *code.2909 = D.25798;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_regs_offset.617 = (unsigned int) saved_regs_offset;
            D.25667 = D.25665 + saved_regs_offset.617;
            D.25668 = (int) D.25667;
            imb.val = D.25668;
            code.386 = code;
            code.2911 = code.386;
            code.2912 = code.2911 + 1;
            code = code.2912;
            D.29619 = imb.b[0];
            *code.2911 = D.29619;
            code.386 = code;
            code.2913 = code.386;
            code.2914 = code.2913 + 1;
            code = code.2914;
            D.29622 = imb.b[1];
            *code.2913 = D.29622;
            code.386 = code;
            code.2915 = code.386;
            code.2916 = code.2915 + 1;
            code = code.2916;
            D.29625 = imb.b[2];
            *code.2915 = D.29625;
            code.386 = code;
            code.2917 = code.386;
            code.2918 = code.2917 + 1;
            code = code.2918;
            D.29628 = imb.b[3];
            *code.2917 = D.29628;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29610>:
      <D.23579>:
      <D.29571>:
      <D.29531>:
      i = i + 1;
      <D.23582>:
      if (i <= 16) goto <D.23581>; else goto <D.23583>;
      <D.23583>:
      i = 0;
      goto <D.23589>;
      <D.23588>:
      code.386 = code;
      code.2919 = code.386;
      code.2920 = code.2919 + 1;
      code = code.2920;
      *code.2919 = 242;
      {
        unsigned char _amd64_rex_bits;

        if (i > 7) goto <D.29632>; else goto <D.29633>;
        <D.29632>:
        iftmp.2921 = 4;
        goto <D.29634>;
        <D.29633>:
        iftmp.2921 = 0;
        <D.29634>:
        _amd64_rex_bits = iftmp.2921;
        if (_amd64_rex_bits != 0) goto <D.29635>; else goto <D.29636>;
        <D.29635>:
        code.386 = code;
        code.2922 = code.386;
        code.2923 = code.2922 + 1;
        code = code.2923;
        D.29639 = _amd64_rex_bits | 64;
        *code.2922 = D.29639;
        <D.29636>:
      }
      code.386 = code;
      code.2924 = code.386;
      code.2925 = code.2924 + 1;
      code = code.2925;
      *code.2924 = 15;
      code.386 = code;
      code.2926 = code.386;
      code.2927 = code.2926 + 1;
      code = code.2927;
      *code.2926 = 16;
      if (0 != 0) goto <D.29644>; else goto <D.29645>;
      <D.29644>:
      D.25897 = (long unsigned int) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25653 = D.25652 * 8;
      D.25898 = D.25897 + D.25653;
      if (D.25898 == 0) goto <D.29646>; else goto <D.29647>;
      <D.29646>:
      code.386 = code;
      code.2928 = code.386;
      code.2929 = code.2928 + 1;
      code = code.2929;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25748 = D.25747 | 4;
      D.25749 = (unsigned char) D.25748;
      *code.2928 = D.25749;
      code.386 = code;
      code.2930 = code.386;
      code.2931 = code.2930 + 1;
      code = code.2931;
      *code.2930 = 36;
      goto <D.29652>;
      <D.29647>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 >= -128) goto <D.29655>; else goto <D.29653>;
      <D.29655>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 <= 127) goto <D.29656>; else goto <D.29653>;
      <D.29656>:
      code.386 = code;
      code.2932 = code.386;
      code.2933 = code.2932 + 1;
      code = code.2933;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25759 = D.25747 | 68;
      D.25760 = (unsigned char) D.25759;
      *code.2932 = D.25760;
      code.386 = code;
      code.2934 = code.386;
      code.2935 = code.2934 + 1;
      code = code.2935;
      *code.2934 = 36;
      code.386 = code;
      D.25917 = (unsigned char) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25918 = D.25917 + D.25677;
      *code.386 = D.25918;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29654>;
      <D.29653>:
      code.386 = code;
      code.2936 = code.386;
      code.2937 = code.2936 + 1;
      code = code.2937;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25765 = D.25747 | -124;
      D.25766 = (unsigned char) D.25765;
      *code.2936 = D.25766;
      code.386 = code;
      code.2938 = code.386;
      code.2939 = code.2938 + 1;
      code = code.2939;
      *code.2938 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
            D.25909 = D.25665 + saved_fpregs_offset.726;
            D.25910 = (int) D.25909;
            imb.val = D.25910;
            code.386 = code;
            code.2940 = code.386;
            code.2941 = code.2940 + 1;
            code = code.2941;
            D.29667 = imb.b[0];
            *code.2940 = D.29667;
            code.386 = code;
            code.2942 = code.386;
            code.2943 = code.2942 + 1;
            code = code.2943;
            D.29670 = imb.b[1];
            *code.2942 = D.29670;
            code.386 = code;
            code.2944 = code.386;
            code.2945 = code.2944 + 1;
            code = code.2945;
            D.29673 = imb.b[2];
            *code.2944 = D.29673;
            code.386 = code;
            code.2946 = code.386;
            code.2947 = code.2946 + 1;
            code = code.2947;
            D.29676 = imb.b[3];
            *code.2946 = D.29676;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29654>:
      <D.29652>:
      goto <D.23586>;
      <D.29645>:
      if (0 != 0) goto <D.29677>; else goto <D.29678>;
      <D.29677>:
      code.386 = code;
      code.2948 = code.386;
      code.2949 = code.2948 + 1;
      code = code.2949;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25785 = D.25747 | 5;
      D.25786 = (unsigned char) D.25785;
      *code.2948 = D.25786;
      goto <D.23586>;
      <D.29678>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 >= -128) goto <D.29683>; else goto <D.29681>;
      <D.29683>:
      D.25652 = (long unsigned int) i;
      D.25664 = (unsigned int) D.25652;
      D.25665 = D.25664 * 8;
      saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
      D.25909 = D.25665 + saved_fpregs_offset.726;
      D.25910 = (int) D.25909;
      if (D.25910 <= 127) goto <D.29684>; else goto <D.29681>;
      <D.29684>:
      code.386 = code;
      code.2950 = code.386;
      code.2951 = code.2950 + 1;
      code = code.2951;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25793 = D.25747 | 69;
      D.25794 = (unsigned char) D.25793;
      *code.2950 = D.25794;
      code.386 = code;
      D.25917 = (unsigned char) saved_fpregs_offset;
      D.25652 = (long unsigned int) i;
      D.25676 = (unsigned char) D.25652;
      D.25677 = D.25676 * 8;
      D.25918 = D.25917 + D.25677;
      *code.386 = D.25918;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29682>;
      <D.29681>:
      code.386 = code;
      code.2952 = code.386;
      code.2953 = code.2952 + 1;
      code = code.2953;
      D.25745 = i & 7;
      D.25746 = D.25745 << 3;
      D.25747 = (signed char) D.25746;
      D.25797 = D.25747 | -123;
      D.25798 = (unsigned char) D.25797;
      *code.2952 = D.25798;
      {
        union x86_imm_buf imb;

        try
          {
            D.25652 = (long unsigned int) i;
            D.25664 = (unsigned int) D.25652;
            D.25665 = D.25664 * 8;
            saved_fpregs_offset.726 = (unsigned int) saved_fpregs_offset;
            D.25909 = D.25665 + saved_fpregs_offset.726;
            D.25910 = (int) D.25909;
            imb.val = D.25910;
            code.386 = code;
            code.2954 = code.386;
            code.2955 = code.2954 + 1;
            code = code.2955;
            D.29691 = imb.b[0];
            *code.2954 = D.29691;
            code.386 = code;
            code.2956 = code.386;
            code.2957 = code.2956 + 1;
            code = code.2957;
            D.29694 = imb.b[1];
            *code.2956 = D.29694;
            code.386 = code;
            code.2958 = code.386;
            code.2959 = code.2958 + 1;
            code = code.2959;
            D.29697 = imb.b[2];
            *code.2958 = D.29697;
            code.386 = code;
            code.2960 = code.386;
            code.2961 = code.2960 + 1;
            code = code.2961;
            D.29700 = imb.b[3];
            *code.2960 = D.29700;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29682>:
      <D.23586>:
      i = i + 1;
      <D.23589>:
      if (i <= 7) goto <D.23588>; else goto <D.23590>;
      <D.23590>:
      code.386 = code;
      code.2962 = code.386;
      code.2963 = code.2962 + 1;
      code = code.2963;
      *code.2962 = 201;
      D.29706 = tramp_type + 4294967294;
      D.29707 = D.29706 <= 1;
      D.29708 = tramp_type == 8;
      D.29709 = D.29707 | D.29708;
      if (D.29709 != 0) goto <D.29703>; else goto <D.29710>;
      <D.29710>:
      D.29711 = tramp_type == 4;
      D.29712 = tramp_type == 10;
      D.29713 = D.29711 | D.29712;
      if (D.29713 != 0) goto <D.29703>; else goto <D.29714>;
      <D.29714>:
      if (tramp_type == 11) goto <D.29703>; else goto <D.29704>;
      <D.29703>:
      if (0 != 0) goto <D.29715>; else goto <D.29716>;
      <D.29715>:
      code.386 = code;
      code.2964 = code.386;
      code.2965 = code.2964 + 1;
      code = code.2965;
      *code.2964 = 102;
      <D.29716>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.29719>; else goto <D.29720>;
        <D.29719>:
        code.386 = code;
        code.2966 = code.386;
        code.2967 = code.2966 + 1;
        code = code.2967;
        D.29723 = _amd64_rex_bits | 64;
        *code.2966 = D.29723;
        <D.29720>:
      }
      switch (8) <default: <D.23597>, case 1: <D.23592>, case 2: <D.23594>, case 4: <D.23595>, case 8: <D.23596>>
      <D.23592>:
      code.386 = code;
      code.2968 = code.386;
      code.2969 = code.2968 + 1;
      code = code.2969;
      *code.2968 = 138;
      goto <D.23593>;
      <D.23594>:
      <D.23595>:
      <D.23596>:
      code.386 = code;
      code.2970 = code.386;
      code.2971 = code.2970 + 1;
      code = code.2971;
      *code.2970 = 139;
      goto <D.23593>;
      <D.23597>:
      __assert_fail ("0", "tramp-amd64.c", 692, &__PRETTY_FUNCTION__);
      <D.23593>:
      if (0 != 0) goto <D.29728>; else goto <D.29729>;
      <D.29728>:
      code.386 = code;
      code.2972 = code.386;
      code.2973 = code.2972 + 1;
      code = code.2973;
      *code.2972 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.2974 = code.386;
            code.2975 = code.2974 + 1;
            code = code.2975;
            D.29736 = imb.b[0];
            *code.2974 = D.29736;
            code.386 = code;
            code.2976 = code.386;
            code.2977 = code.2976 + 1;
            code = code.2977;
            D.29739 = imb.b[1];
            *code.2976 = D.29739;
            code.386 = code;
            code.2978 = code.386;
            code.2979 = code.2978 + 1;
            code = code.2979;
            D.29742 = imb.b[2];
            *code.2978 = D.29742;
            code.386 = code;
            code.2980 = code.386;
            code.2981 = code.2980 + 1;
            code = code.2981;
            D.29745 = imb.b[3];
            *code.2980 = D.29745;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29746>;
      <D.29729>:
      if (1 != 0) goto <D.29747>; else goto <D.29748>;
      <D.29747>:
      if (rax_offset == 8) goto <D.29749>; else goto <D.29750>;
      <D.29749>:
      code.386 = code;
      code.2982 = code.386;
      code.2983 = code.2982 + 1;
      code = code.2983;
      *code.2982 = 4;
      code.386 = code;
      code.2984 = code.386;
      code.2985 = code.2984 + 1;
      code = code.2985;
      *code.2984 = 36;
      goto <D.29755>;
      <D.29750>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 >= -128) goto <D.29758>; else goto <D.29756>;
      <D.29758>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 <= 127) goto <D.29759>; else goto <D.29756>;
      <D.29759>:
      code.386 = code;
      code.2986 = code.386;
      code.2987 = code.2986 + 1;
      code = code.2987;
      *code.2986 = 68;
      code.386 = code;
      code.2988 = code.386;
      code.2989 = code.2988 + 1;
      code = code.2989;
      *code.2988 = 36;
      code.386 = code;
      D.29764 = (unsigned char) rax_offset;
      D.29765 = D.29764 + 248;
      *code.386 = D.29765;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29757>;
      <D.29756>:
      code.386 = code;
      code.2990 = code.386;
      code.2991 = code.2990 + 1;
      code = code.2991;
      *code.2990 = 132;
      code.386 = code;
      code.2992 = code.386;
      code.2993 = code.2992 + 1;
      code = code.2993;
      *code.2992 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.2994 = code.386;
            code.2995 = code.2994 + 1;
            code = code.2995;
            D.29772 = imb.b[0];
            *code.2994 = D.29772;
            code.386 = code;
            code.2996 = code.386;
            code.2997 = code.2996 + 1;
            code = code.2997;
            D.29775 = imb.b[1];
            *code.2996 = D.29775;
            code.386 = code;
            code.2998 = code.386;
            code.2999 = code.2998 + 1;
            code = code.2999;
            D.29778 = imb.b[2];
            *code.2998 = D.29778;
            code.386 = code;
            code.3000 = code.386;
            code.3001 = code.3000 + 1;
            code = code.3001;
            D.29781 = imb.b[3];
            *code.3000 = D.29781;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29757>:
      <D.29755>:
      goto <D.23600>;
      <D.29748>:
      if (rax_offset == 8) goto <D.29782>; else goto <D.29783>;
      <D.29782>:
      code.386 = code;
      code.3002 = code.386;
      code.3003 = code.3002 + 1;
      code = code.3003;
      *code.3002 = 4;
      goto <D.23600>;
      <D.29783>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 >= -128) goto <D.29788>; else goto <D.29786>;
      <D.29788>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 <= 127) goto <D.29789>; else goto <D.29786>;
      <D.29789>:
      code.386 = code;
      code.3004 = code.386;
      code.3005 = code.3004 + 1;
      code = code.3005;
      *code.3004 = 68;
      code.386 = code;
      D.29764 = (unsigned char) rax_offset;
      D.29765 = D.29764 + 248;
      *code.386 = D.29765;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29787>;
      <D.29786>:
      code.386 = code;
      code.3006 = code.386;
      code.3007 = code.3006 + 1;
      code = code.3007;
      *code.3006 = 132;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.3008 = code.386;
            code.3009 = code.3008 + 1;
            code = code.3009;
            D.29796 = imb.b[0];
            *code.3008 = D.29796;
            code.386 = code;
            code.3010 = code.386;
            code.3011 = code.3010 + 1;
            code = code.3011;
            D.29799 = imb.b[1];
            *code.3010 = D.29799;
            code.386 = code;
            code.3012 = code.386;
            code.3013 = code.3012 + 1;
            code = code.3013;
            D.29802 = imb.b[2];
            *code.3012 = D.29802;
            code.386 = code;
            code.3014 = code.386;
            code.3015 = code.3014 + 1;
            code = code.3015;
            D.29805 = imb.b[3];
            *code.3014 = D.29805;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29787>:
      <D.23600>:
      <D.29746>:
      code.386 = code;
      code.3016 = code.386;
      code.3017 = code.3016 + 1;
      code = code.3017;
      *code.3016 = 195;
      goto <D.29705>;
      <D.29704>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.29808>; else goto <D.29809>;
        <D.29808>:
        code.386 = code;
        code.3018 = code.386;
        code.3019 = code.3018 + 1;
        code = code.3019;
        D.29812 = _amd64_rex_bits | 64;
        *code.3018 = D.29812;
        <D.29809>:
      }
      code.386 = code;
      code.3020 = code.386;
      code.3021 = code.3020 + 1;
      code = code.3021;
      *code.3020 = 255;
      if (0 != 0) goto <D.29815>; else goto <D.29816>;
      <D.29815>:
      code.386 = code;
      code.3022 = code.386;
      code.3023 = code.3022 + 1;
      code = code.3023;
      *code.3022 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.3024 = code.386;
            code.3025 = code.3024 + 1;
            code = code.3025;
            D.29821 = imb.b[0];
            *code.3024 = D.29821;
            code.386 = code;
            code.3026 = code.386;
            code.3027 = code.3026 + 1;
            code = code.3027;
            D.29824 = imb.b[1];
            *code.3026 = D.29824;
            code.386 = code;
            code.3028 = code.386;
            code.3029 = code.3028 + 1;
            code = code.3029;
            D.29827 = imb.b[2];
            *code.3028 = D.29827;
            code.386 = code;
            code.3030 = code.386;
            code.3031 = code.3030 + 1;
            code = code.3031;
            D.29830 = imb.b[3];
            *code.3030 = D.29830;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.29831>;
      <D.29816>:
      if (1 != 0) goto <D.29832>; else goto <D.29833>;
      <D.29832>:
      if (rax_offset == 8) goto <D.29834>; else goto <D.29835>;
      <D.29834>:
      code.386 = code;
      code.3032 = code.386;
      code.3033 = code.3032 + 1;
      code = code.3033;
      *code.3032 = 36;
      code.386 = code;
      code.3034 = code.386;
      code.3035 = code.3034 + 1;
      code = code.3035;
      *code.3034 = 36;
      goto <D.29840>;
      <D.29835>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 >= -128) goto <D.29843>; else goto <D.29841>;
      <D.29843>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 <= 127) goto <D.29844>; else goto <D.29841>;
      <D.29844>:
      code.386 = code;
      code.3036 = code.386;
      code.3037 = code.3036 + 1;
      code = code.3037;
      *code.3036 = 100;
      code.386 = code;
      code.3038 = code.386;
      code.3039 = code.3038 + 1;
      code = code.3039;
      *code.3038 = 36;
      code.386 = code;
      D.29764 = (unsigned char) rax_offset;
      D.29765 = D.29764 + 248;
      *code.386 = D.29765;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29842>;
      <D.29841>:
      code.386 = code;
      code.3040 = code.386;
      code.3041 = code.3040 + 1;
      code = code.3041;
      *code.3040 = 164;
      code.386 = code;
      code.3042 = code.386;
      code.3043 = code.3042 + 1;
      code = code.3043;
      *code.3042 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.3044 = code.386;
            code.3045 = code.3044 + 1;
            code = code.3045;
            D.29855 = imb.b[0];
            *code.3044 = D.29855;
            code.386 = code;
            code.3046 = code.386;
            code.3047 = code.3046 + 1;
            code = code.3047;
            D.29858 = imb.b[1];
            *code.3046 = D.29858;
            code.386 = code;
            code.3048 = code.386;
            code.3049 = code.3048 + 1;
            code = code.3049;
            D.29861 = imb.b[2];
            *code.3048 = D.29861;
            code.386 = code;
            code.3050 = code.386;
            code.3051 = code.3050 + 1;
            code = code.3051;
            D.29864 = imb.b[3];
            *code.3050 = D.29864;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29842>:
      <D.29840>:
      goto <D.23605>;
      <D.29833>:
      if (rax_offset == 8) goto <D.29865>; else goto <D.29866>;
      <D.29865>:
      code.386 = code;
      code.3052 = code.386;
      code.3053 = code.3052 + 1;
      code = code.3053;
      *code.3052 = 36;
      goto <D.23605>;
      <D.29866>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 >= -128) goto <D.29871>; else goto <D.29869>;
      <D.29871>:
      rax_offset.2835 = (unsigned int) rax_offset;
      D.29732 = rax_offset.2835 + 4294967288;
      D.29733 = (int) D.29732;
      if (D.29733 <= 127) goto <D.29872>; else goto <D.29869>;
      <D.29872>:
      code.386 = code;
      code.3054 = code.386;
      code.3055 = code.3054 + 1;
      code = code.3055;
      *code.3054 = 100;
      code.386 = code;
      D.29764 = (unsigned char) rax_offset;
      D.29765 = D.29764 + 248;
      *code.386 = D.29765;
      code.386 = code;
      code.417 = code.386 + 1;
      code = code.417;
      goto <D.29870>;
      <D.29869>:
      code.386 = code;
      code.3056 = code.386;
      code.3057 = code.3056 + 1;
      code = code.3057;
      *code.3056 = 164;
      {
        union x86_imm_buf imb;

        try
          {
            rax_offset.2835 = (unsigned int) rax_offset;
            D.29732 = rax_offset.2835 + 4294967288;
            D.29733 = (int) D.29732;
            imb.val = D.29733;
            code.386 = code;
            code.3058 = code.386;
            code.3059 = code.3058 + 1;
            code = code.3059;
            D.29879 = imb.b[0];
            *code.3058 = D.29879;
            code.386 = code;
            code.3060 = code.386;
            code.3061 = code.3060 + 1;
            code = code.3061;
            D.29882 = imb.b[1];
            *code.3060 = D.29882;
            code.386 = code;
            code.3062 = code.386;
            code.3063 = code.3062 + 1;
            code = code.3063;
            D.29885 = imb.b[2];
            *code.3062 = D.29885;
            code.386 = code;
            code.3064 = code.386;
            code.3065 = code.3064 + 1;
            code = code.3065;
            D.29888 = imb.b[3];
            *code.3064 = D.29888;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.29870>:
      <D.23605>:
      <D.29831>:
      <D.29705>:
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.29889 = D.25256 > 600;
      D.29890 = (long int) D.29889;
      D.29891 = __builtin_expect (D.29890, 0);
      if (D.29891 != 0) goto <D.29892>; else goto <D.29893>;
      <D.29892>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 699, "(code - buf) <= kMaxCodeSize");
      <D.29893>:
      kMaxCodeSize.383 = (int) kMaxCodeSize;
      nacl_global_codeman_validate (&buf, kMaxCodeSize.383, &code);
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.29894 = (int) D.25256;
      buf.385 = buf;
      mono_arch_flush_icache (buf.385, D.29894);
      if (info != 0B) goto <D.29895>; else goto <D.29896>;
      <D.29895>:
      tramp_name = mono_get_generic_trampoline_name (tramp_type);
      ji.3066 = ji;
      code.386 = code;
      code.388 = (long int) code.386;
      buf.385 = buf;
      buf.389 = (long int) buf.385;
      D.25256 = code.388 - buf.389;
      D.29898 = (unsigned int) D.25256;
      buf.385 = buf;
      D.29899 = mono_tramp_info_create (tramp_name, buf.385, D.29898, ji.3066, unwind_ops);
      *info = D.29899;
      monoeg_g_free (tramp_name);
      <D.29896>:
      D.29900 = buf;
      return D.29900;
    }
  finally
    {
      buf = {CLOBBER};
      code = {CLOBBER};
      br = {CLOBBER};
      ji = {CLOBBER};
    }
}


stack_unaligned (MonoTrampolineType tramp_type)
{
  printf ("%d\n", tramp_type);
  monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "tramp-amd64.c", 405);
}


mono_arch_get_nullified_class_init_trampoline (struct MonoTrampInfo * * info)
{
  void * buf.3067;
  guint8 * buf.3068;
  guint8 * code.3069;
  guint8 * code.3070;
  guint8 * code.3071;
  long int code.3072;
  long int buf.3073;
  long int D.29910;
  int D.29911;
  unsigned int D.29914;
  struct MonoTrampInfo * D.29915;
  void * D.29916;
  guint8 * code;
  guint8 * buf;
  int size;

  try
    {
      size = 16;
      buf.3067 = mono_global_codeman_reserve (size);
      buf = buf.3067;
      buf.3068 = buf;
      code = buf.3068;
      code.3069 = code;
      code.3070 = code.3069;
      code.3071 = code.3070 + 1;
      code = code.3071;
      *code.3070 = 195;
      nacl_global_codeman_validate (&buf, size, &code);
      code.3069 = code;
      code.3072 = (long int) code.3069;
      buf.3068 = buf;
      buf.3073 = (long int) buf.3068;
      D.29910 = code.3072 - buf.3073;
      D.29911 = (int) D.29910;
      buf.3068 = buf;
      mono_arch_flush_icache (buf.3068, D.29911);
      if (info != 0B) goto <D.29912>; else goto <D.29913>;
      <D.29912>:
      code.3069 = code;
      code.3072 = (long int) code.3069;
      buf.3068 = buf;
      buf.3073 = (long int) buf.3068;
      D.29910 = code.3072 - buf.3073;
      D.29914 = (unsigned int) D.29910;
      buf.3068 = buf;
      D.29915 = mono_tramp_info_create ("nullified_class_init_trampoline", buf.3068, D.29914, 0B, 0B);
      *info = D.29915;
      <D.29913>:
      D.29916 = buf;
      return D.29916;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
    }
}


mono_arch_create_specific_trampoline (void * arg1, MonoTrampolineType tramp_type, struct MonoDomain * domain, guint32 * code_len)
{
  long unsigned int arg1.3074;
  long unsigned int D.29920;
  void * buf.3075;
  guint8 * buf.3076;
  long int tramp.3077;
  guint8 * code.3078;
  long int code.3079;
  long int D.29929;
  long int D.29930;
  unsigned long D.29931;
  unsigned long D.29932;
  void * buf.3080;
  long unsigned int tramp.3081;
  int D.29939;
  long unsigned int D.29940;
  _Bool D.29941;
  unsigned char iftmp.3082;
  guint8 * code.3083;
  guint8 * code.3084;
  unsigned char D.29950;
  guint8 * code.3085;
  guint8 * code.3086;
  guint8 * code.3087;
  guint8 * code.3088;
  unsigned char D.29957;
  guint8 * code.3089;
  guint8 * code.3090;
  unsigned char D.29960;
  guint8 * code.3091;
  guint8 * code.3092;
  unsigned char D.29963;
  guint8 * code.3093;
  guint8 * code.3094;
  unsigned char D.29966;
  guint8 * code.3095;
  guint8 * code.3096;
  unsigned char D.29969;
  guint8 * code.3097;
  guint8 * code.3098;
  unsigned char D.29972;
  guint8 * code.3099;
  guint8 * code.3100;
  unsigned char D.29975;
  guint8 * code.3101;
  guint8 * code.3102;
  unsigned char D.29978;
  guint8 * code.3103;
  guint8 * code.3104;
  unsigned char D.29982;
  guint8 * code.3105;
  guint8 * code.3106;
  unsigned char D.29985;
  guint8 * code.3107;
  guint8 * code.3108;
  unsigned char D.29988;
  guint8 * code.3109;
  guint8 * code.3110;
  unsigned char D.29991;
  guint8 * code.3111;
  guint8 * code.3112;
  unsigned char D.29996;
  guint8 * code.3113;
  guint8 * code.3114;
  guint8 * code.3115;
  guint8 * code.3116;
  guint8 * code.3117;
  guint8 * code.3118;
  guint8 * code.3119;
  guint8 * code.3120;
  unsigned char D.30006;
  guint8 * code.3121;
  guint8 * code.3122;
  unsigned char D.30009;
  guint8 * code.3123;
  guint8 * code.3124;
  unsigned char D.30012;
  guint8 * code.3125;
  guint8 * code.3126;
  unsigned char D.30015;
  guint32 * D.30018;
  long int arg1.3127;
  unsigned int D.30020;
  guint8 * code.3128;
  guint64 * D.30023;
  long unsigned int arg1.3129;
  guint8 * code.3130;
  long int buf.3131;
  long int D.30027;
  long int D.30028;
  _Bool D.30029;
  long int D.30030;
  long int D.30031;
  unsigned int size.3132;
  void * D.30037;
  guint8 * code;
  guint8 * buf;
  guint8 * tramp;
  int size;
  gboolean far_addr;

  try
    {
      far_addr = 0;
      tramp = mono_get_trampoline_code (tramp_type);
      arg1.3074 = (long unsigned int) arg1;
      D.29920 = arg1.3074 >> 32;
      if (D.29920 == 0) goto <D.29921>; else goto <D.29922>;
      <D.29921>:
      size = 10;
      goto <D.29923>;
      <D.29922>:
      size = 14;
      <D.29923>:
      buf.3075 = mono_domain_code_reserve_align (domain, size, 1);
      buf = buf.3075;
      buf.3076 = buf;
      code = buf.3076;
      tramp.3077 = (long int) tramp;
      code.3078 = code;
      code.3079 = (long int) code.3078;
      D.29929 = tramp.3077 - code.3079;
      D.29930 = D.29929 >> 31;
      D.29931 = (unsigned long) D.29930;
      D.29932 = D.29931 + 1;
      if (D.29932 > 1) goto <D.29933>; else goto <D.29934>;
      <D.29933>:
      monoeg_assertion_message ("* Assertion: should not be reached at %s:%d\n", "tramp-amd64.c", 752);
      far_addr = 1;
      size = size + 16;
      buf.3080 = mono_domain_code_reserve_align (domain, size, 1);
      buf = buf.3080;
      buf.3076 = buf;
      code = buf.3076;
      <D.29934>:
      if (far_addr != 0) goto <D.29936>; else goto <D.29937>;
      <D.29936>:
      {
        int _amd64_width_temp;

        tramp.3081 = (long unsigned int) tramp;
        tramp.3077 = (long int) tramp;
        D.29939 = (int) tramp.3077;
        D.29940 = (long unsigned int) D.29939;
        D.29941 = tramp.3081 == D.29940;
        _amd64_width_temp = (int) D.29941;
        {
          unsigned char _amd64_rex_bits;

          if (_amd64_width_temp == 0) goto <D.29943>; else goto <D.29944>;
          <D.29943>:
          iftmp.3082 = 9;
          goto <D.29945>;
          <D.29944>:
          iftmp.3082 = 1;
          <D.29945>:
          _amd64_rex_bits = iftmp.3082;
          if (_amd64_rex_bits != 0) goto <D.29946>; else goto <D.29947>;
          <D.29946>:
          code.3078 = code;
          code.3083 = code.3078;
          code.3084 = code.3083 + 1;
          code = code.3084;
          D.29950 = _amd64_rex_bits | 64;
          *code.3083 = D.29950;
          <D.29947>:
        }
        code.3078 = code;
        code.3085 = code.3078;
        code.3086 = code.3085 + 1;
        code = code.3086;
        *code.3085 = 187;
        if (_amd64_width_temp == 0) goto <D.29953>; else goto <D.29954>;
        <D.29953>:
        {
          union amd64_imm_buf imb;

          try
            {
              tramp.3081 = (long unsigned int) tramp;
              imb.val = tramp.3081;
              code.3078 = code;
              code.3087 = code.3078;
              code.3088 = code.3087 + 1;
              code = code.3088;
              D.29957 = imb.b[0];
              *code.3087 = D.29957;
              code.3078 = code;
              code.3089 = code.3078;
              code.3090 = code.3089 + 1;
              code = code.3090;
              D.29960 = imb.b[1];
              *code.3089 = D.29960;
              code.3078 = code;
              code.3091 = code.3078;
              code.3092 = code.3091 + 1;
              code = code.3092;
              D.29963 = imb.b[2];
              *code.3091 = D.29963;
              code.3078 = code;
              code.3093 = code.3078;
              code.3094 = code.3093 + 1;
              code = code.3094;
              D.29966 = imb.b[3];
              *code.3093 = D.29966;
              code.3078 = code;
              code.3095 = code.3078;
              code.3096 = code.3095 + 1;
              code = code.3096;
              D.29969 = imb.b[4];
              *code.3095 = D.29969;
              code.3078 = code;
              code.3097 = code.3078;
              code.3098 = code.3097 + 1;
              code = code.3098;
              D.29972 = imb.b[5];
              *code.3097 = D.29972;
              code.3078 = code;
              code.3099 = code.3078;
              code.3100 = code.3099 + 1;
              code = code.3100;
              D.29975 = imb.b[6];
              *code.3099 = D.29975;
              code.3078 = code;
              code.3101 = code.3078;
              code.3102 = code.3101 + 1;
              code = code.3102;
              D.29978 = imb.b[7];
              *code.3101 = D.29978;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.29979>;
        <D.29954>:
        {
          union x86_imm_buf imb;

          try
            {
              tramp.3077 = (long int) tramp;
              D.29939 = (int) tramp.3077;
              imb.val = D.29939;
              code.3078 = code;
              code.3103 = code.3078;
              code.3104 = code.3103 + 1;
              code = code.3104;
              D.29982 = imb.b[0];
              *code.3103 = D.29982;
              code.3078 = code;
              code.3105 = code.3078;
              code.3106 = code.3105 + 1;
              code = code.3106;
              D.29985 = imb.b[1];
              *code.3105 = D.29985;
              code.3078 = code;
              code.3107 = code.3078;
              code.3108 = code.3107 + 1;
              code = code.3108;
              D.29988 = imb.b[2];
              *code.3107 = D.29988;
              code.3078 = code;
              code.3109 = code.3078;
              code.3110 = code.3109 + 1;
              code = code.3110;
              D.29991 = imb.b[3];
              *code.3109 = D.29991;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.29979>:
      }
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.29992>; else goto <D.29993>;
        <D.29992>:
        code.3078 = code;
        code.3111 = code.3078;
        code.3112 = code.3111 + 1;
        code = code.3112;
        D.29996 = _amd64_rex_bits | 64;
        *code.3111 = D.29996;
        <D.29993>:
      }
      code.3078 = code;
      code.3113 = code.3078;
      code.3114 = code.3113 + 1;
      code = code.3114;
      *code.3113 = 255;
      code.3078 = code;
      code.3115 = code.3078;
      code.3116 = code.3115 + 1;
      code = code.3116;
      *code.3115 = 211;
      goto <D.30001>;
      <D.29937>:
      {
        int _x86_offset;

        tramp.3077 = (long int) tramp;
        code.3078 = code;
        code.3079 = (long int) code.3078;
        D.29929 = tramp.3077 - code.3079;
        _x86_offset = (int) D.29929;
        _x86_offset = _x86_offset + -5;
        code.3078 = code;
        code.3117 = code.3078;
        code.3118 = code.3117 + 1;
        code = code.3118;
        *code.3117 = 232;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = _x86_offset;
              code.3078 = code;
              code.3119 = code.3078;
              code.3120 = code.3119 + 1;
              code = code.3120;
              D.30006 = imb.b[0];
              *code.3119 = D.30006;
              code.3078 = code;
              code.3121 = code.3078;
              code.3122 = code.3121 + 1;
              code = code.3122;
              D.30009 = imb.b[1];
              *code.3121 = D.30009;
              code.3078 = code;
              code.3123 = code.3078;
              code.3124 = code.3123 + 1;
              code = code.3124;
              D.30012 = imb.b[2];
              *code.3123 = D.30012;
              code.3078 = code;
              code.3125 = code.3078;
              code.3126 = code.3125 + 1;
              code = code.3126;
              D.30015 = imb.b[3];
              *code.3125 = D.30015;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
      }
      <D.30001>:
      arg1.3074 = (long unsigned int) arg1;
      D.29920 = arg1.3074 >> 32;
      if (D.29920 == 0) goto <D.30016>; else goto <D.30017>;
      <D.30016>:
      code.3078 = code;
      *code.3078 = 4;
      code.3078 = code;
      D.30018 = code.3078 + 1;
      arg1.3127 = (long int) arg1;
      D.30020 = (unsigned int) arg1.3127;
      *D.30018 = D.30020;
      code.3078 = code;
      code.3128 = code.3078 + 5;
      code = code.3128;
      goto <D.30022>;
      <D.30017>:
      code.3078 = code;
      *code.3078 = 8;
      code.3078 = code;
      D.30023 = code.3078 + 1;
      arg1.3129 = (long unsigned int) arg1;
      *D.30023 = arg1.3129;
      code.3078 = code;
      code.3130 = code.3078 + 9;
      code = code.3130;
      <D.30022>:
      code.3078 = code;
      code.3079 = (long int) code.3078;
      buf.3076 = buf;
      buf.3131 = (long int) buf.3076;
      D.30027 = code.3079 - buf.3131;
      D.30028 = (long int) size;
      D.30029 = D.30027 > D.30028;
      D.30030 = (long int) D.30029;
      D.30031 = __builtin_expect (D.30030, 0);
      if (D.30031 != 0) goto <D.30032>; else goto <D.30033>;
      <D.30032>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 792, "(code - buf) <= size");
      <D.30033>:
      if (code_len != 0B) goto <D.30034>; else goto <D.30035>;
      <D.30034>:
      size.3132 = (unsigned int) size;
      *code_len = size.3132;
      <D.30035>:
      nacl_domain_code_validate (domain, &buf, size, &code);
      buf.3076 = buf;
      mono_arch_flush_icache (buf.3076, size);
      D.30037 = buf;
      return D.30037;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
    }
}


mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, struct MonoTrampInfo * * info, gboolean aot)
{
  signed int slot.3133;
  _Bool D.30041;
  int slot.3134;
  unsigned int index.3135;
  unsigned int D.30046;
  int D.30047;
  int D.30049;
  int D.30050;
  void * buf.3136;
  guint8 * buf.3137;
  int D.30053;
  long unsigned int D.30054;
  long unsigned int D.30055;
  guint8 * code.3138;
  guint8 * code.3139;
  guint8 * code.3140;
  guint8 * code.3141;
  guint8 * code.3142;
  unsigned char D.30067;
  guint8 * code.3143;
  guint8 * code.3144;
  guint8 * code.3145;
  guint8 * code.3146;
  guint8 * code.3147;
  guint8 * code.3148;
  guint8 * code.3149;
  guint8 * code.3150;
  guint8 * code.3151;
  guint8 * code.3152;
  unsigned char D.30083;
  guint8 * code.3153;
  guint8 * code.3154;
  guint8 * code.3155;
  guint8 * code.3156;
  guint8 * code.3157;
  guint8 * code.3158;
  guint8 * code.3159;
  guint8 * code.3160;
  unsigned char D.30094;
  guint8 * code.3161;
  guint8 * code.3162;
  unsigned char D.30097;
  guint8 * code.3163;
  guint8 * code.3164;
  unsigned char D.30100;
  guint8 * code.3165;
  guint8 * code.3166;
  unsigned char D.30103;
  guint8 * code.3167;
  guint8 * code.3168;
  guint8 * code.3169;
  guint8 * code.3170;
  guint8 * code.3171;
  guint8 * code.3172;
  guint8 * code.3173;
  guint8 * code.3174;
  guint8 * code.3175;
  guint8 * code.3176;
  guint8 * code.3177;
  guint8 * code.3178;
  guint8 * code.3179;
  guint8 * code.3180;
  guint8 * code.3181;
  unsigned char D.30128;
  guint8 * code.3182;
  guint8 * code.3183;
  unsigned char D.30131;
  guint8 * code.3184;
  guint8 * code.3185;
  unsigned char D.30134;
  guint8 * code.3186;
  guint8 * code.3187;
  unsigned char D.30137;
  guint8 * code.3188;
  guint8 * code.3189;
  guint8 * code.3190;
  guint8 * code.3191;
  guint8 * code.3192;
  guint8 * code.3193;
  guint8 * code.3194;
  guint8 * code.3195;
  unsigned char D.30151;
  guint8 * code.3196;
  guint8 * code.3197;
  unsigned char D.30154;
  guint8 * code.3198;
  guint8 * code.3199;
  unsigned char D.30157;
  guint8 * code.3200;
  guint8 * code.3201;
  unsigned char D.30160;
  guint8 * code.3202;
  guint8 * code.3203;
  unsigned char D.30165;
  guint8 * code.3204;
  guint8 * code.3205;
  guint8 * code.3206;
  guint8 * code.3207;
  guint8 * code.3208;
  guint8 * code.3209;
  unsigned char D.30174;
  guint8 * code.3210;
  guint8 * code.3211;
  unsigned char D.30178;
  _Bool D.30179;
  _Bool D.30180;
  _Bool D.30181;
  guint8 * code.3212;
  guint8 * code.3213;
  guint8 * code.3214;
  guint8 * code.3215;
  unsigned char D.30192;
  guint8 * code.3216;
  guint8 * code.3217;
  guint8 * code.3218;
  guint8 * code.3219;
  guint8 * code.3220;
  guint8 * code.3221;
  guint8 * code.3222;
  guint8 * code.3223;
  unsigned char D.30203;
  guint8 * code.3224;
  guint8 * code.3225;
  unsigned char D.30206;
  guint8 * code.3226;
  guint8 * code.3227;
  unsigned char D.30209;
  guint8 * code.3228;
  guint8 * code.3229;
  unsigned char D.30212;
  guint8 * code.3230;
  guint8 * code.3231;
  guint8 * code.3232;
  guint8 * code.3233;
  guint8 * code.3234;
  guint8 * code.3235;
  guint8 * code.3236;
  guint8 * code.3237;
  guint8 * code.3238;
  guint8 * code.3239;
  guint8 * code.3240;
  guint8 * code.3241;
  guint8 * code.3242;
  guint8 * code.3243;
  unsigned char D.30236;
  guint8 * code.3244;
  guint8 * code.3245;
  unsigned char D.30239;
  guint8 * code.3246;
  guint8 * code.3247;
  unsigned char D.30242;
  guint8 * code.3248;
  guint8 * code.3249;
  unsigned char D.30245;
  guint8 * code.3250;
  guint8 * code.3251;
  guint8 * code.3252;
  guint8 * code.3253;
  guint8 * code.3254;
  guint8 * code.3255;
  guint8 * code.3256;
  guint8 * code.3257;
  unsigned char D.30259;
  guint8 * code.3258;
  guint8 * code.3259;
  unsigned char D.30262;
  guint8 * code.3260;
  guint8 * code.3261;
  unsigned char D.30265;
  guint8 * code.3262;
  guint8 * code.3263;
  unsigned char D.30268;
  guint8 * code.3264;
  guint8 * code.3265;
  guint8 * code.3266;
  guint8 * code.3267;
  unsigned char D.30278;
  guint8 * code.3268;
  guint8 * code.3269;
  guint8 * code.3270;
  guint8 * code.3271;
  guint8 * code.3272;
  guint8 * code.3273;
  guint8 * code.3274;
  guint8 * code.3275;
  unsigned char D.30289;
  guint8 * code.3276;
  guint8 * code.3277;
  unsigned char D.30292;
  guint8 * code.3278;
  guint8 * code.3279;
  unsigned char D.30295;
  guint8 * code.3280;
  guint8 * code.3281;
  unsigned char D.30298;
  guint8 * code.3282;
  guint8 * code.3283;
  guint8 * code.3284;
  guint8 * code.3285;
  guint8 * code.3286;
  guint8 * code.3287;
  guint8 * code.3288;
  guint8 * code.3289;
  guint8 * code.3290;
  guint8 * code.3291;
  guint8 * code.3292;
  guint8 * code.3293;
  guint8 * code.3294;
  guint8 * code.3295;
  unsigned char D.30322;
  guint8 * code.3296;
  guint8 * code.3297;
  unsigned char D.30325;
  guint8 * code.3298;
  guint8 * code.3299;
  unsigned char D.30328;
  guint8 * code.3300;
  guint8 * code.3301;
  unsigned char D.30331;
  guint8 * code.3302;
  guint8 * code.3303;
  guint8 * code.3304;
  guint8 * code.3305;
  guint8 * code.3306;
  guint8 * code.3307;
  guint8 * code.3308;
  guint8 * code.3309;
  unsigned char D.30345;
  guint8 * code.3310;
  guint8 * code.3311;
  unsigned char D.30348;
  guint8 * code.3312;
  guint8 * code.3313;
  unsigned char D.30351;
  guint8 * code.3314;
  guint8 * code.3315;
  unsigned char D.30354;
  guint8 * code.3316;
  guint8 * code.3317;
  unsigned char D.30359;
  guint8 * code.3318;
  guint8 * code.3319;
  guint8 * code.3320;
  guint8 * code.3321;
  sizetype D.30364;
  sizetype D.30365;
  sizetype D.30366;
  guint8 * * D.30367;
  guint8 * code.3322;
  guint8 * code.3323;
  guint8 * code.3324;
  guint8 * code.3325;
  guint8 * code.3326;
  guint8 * code.3327;
  guint8 * code.3328;
  guint8 * code.3329;
  unsigned char D.30383;
  guint8 * code.3330;
  guint8 * code.3331;
  guint8 * code.3332;
  guint8 * code.3333;
  guint8 * code.3334;
  guint8 * code.3335;
  int D.30392;
  unsigned int D.30393;
  unsigned int D.30394;
  int D.30395;
  guint8 * code.3336;
  guint8 * code.3337;
  unsigned char D.30398;
  guint8 * code.3338;
  guint8 * code.3339;
  unsigned char D.30401;
  guint8 * code.3340;
  guint8 * code.3341;
  unsigned char D.30404;
  guint8 * code.3342;
  guint8 * code.3343;
  unsigned char D.30407;
  long unsigned int D.30411;
  long unsigned int D.30412;
  guint8 * code.3344;
  guint8 * code.3345;
  guint8 * code.3346;
  guint8 * code.3347;
  guint8 * code.3348;
  guint8 * code.3349;
  guint8 * code.3350;
  guint8 * code.3351;
  unsigned char D.30428;
  unsigned char D.30429;
  guint8 * code.3352;
  guint8 * code.3353;
  guint8 * code.3354;
  guint8 * code.3355;
  guint8 * code.3356;
  guint8 * code.3357;
  unsigned char D.30436;
  guint8 * code.3358;
  guint8 * code.3359;
  unsigned char D.30439;
  guint8 * code.3360;
  guint8 * code.3361;
  unsigned char D.30442;
  guint8 * code.3362;
  guint8 * code.3363;
  unsigned char D.30445;
  guint8 * code.3364;
  guint8 * code.3365;
  guint8 * code.3366;
  guint8 * code.3367;
  guint8 * code.3368;
  guint8 * code.3369;
  guint8 * code.3370;
  guint8 * code.3371;
  unsigned char D.30460;
  guint8 * code.3372;
  guint8 * code.3373;
  unsigned char D.30463;
  guint8 * code.3374;
  guint8 * code.3375;
  unsigned char D.30466;
  guint8 * code.3376;
  guint8 * code.3377;
  unsigned char D.30469;
  guint8 * code.3378;
  guint8 * code.3379;
  unsigned char D.30474;
  guint8 * code.3380;
  guint8 * code.3381;
  guint8 * code.3382;
  guint8 * code.3383;
  sizetype D.30479;
  sizetype D.30480;
  sizetype D.30481;
  guint8 * * D.30482;
  guint8 * code.3384;
  guint8 * code.3385;
  guint8 * code.3386;
  guint8 * code.3387;
  guint8 * code.3388;
  guint8 * code.3389;
  long unsigned int D.30492;
  long unsigned int D.30493;
  guint8 * * D.30494;
  guint8 * D.30495;
  int D.30496;
  guint8 * code.3390;
  guint8 * code.3391;
  guint8 * code.3392;
  guint8 * code.3393;
  unsigned char D.30505;
  guint8 * code.3394;
  guint8 * code.3395;
  guint8 * code.3396;
  guint8 * code.3397;
  guint8 * code.3398;
  guint8 * code.3399;
  gchar * D.30514;
  guint8 * code.3400;
  guint8 * code.3401;
  guint8 * code.3402;
  unsigned char D.30520;
  guint8 * code.3403;
  guint8 * code.3404;
  guint8 * code.3405;
  guint8 * code.3406;
  struct MonoDomain * D.30526;
  long unsigned int D.30527;
  void * D.30528;
  long int tramp.3407;
  long int code.3408;
  long int D.30531;
  unsigned long D.30532;
  unsigned long D.30533;
  unsigned int D.30536;
  unsigned int D.30537;
  unsigned int t.3409;
  unsigned int D.30539;
  guint8 * code.3410;
  guint8 * code.3411;
  unsigned char D.30544;
  unsigned int D.30546;
  guint8 * code.3412;
  guint8 * code.3413;
  guint8 * code.3414;
  guint8 * code.3415;
  unsigned char D.30551;
  guint8 * code.3416;
  guint8 * code.3417;
  unsigned char D.30554;
  guint8 * code.3418;
  guint8 * code.3419;
  unsigned char D.30557;
  guint8 * code.3420;
  guint8 * code.3421;
  unsigned char D.30560;
  guint8 * code.3422;
  guint8 * code.3423;
  unsigned char D.30566;
  guint8 * code.3424;
  guint8 * code.3425;
  guint8 * code.3426;
  guint8 * code.3427;
  guint8 * code.3428;
  guint8 * code.3429;
  unsigned char D.30575;
  guint8 * code.3430;
  guint8 * code.3431;
  unsigned char D.30578;
  guint8 * code.3432;
  guint8 * code.3433;
  unsigned char D.30581;
  guint8 * code.3434;
  guint8 * code.3435;
  unsigned char D.30584;
  guint8 * code.3436;
  guint8 * code.3437;
  guint8 * code.3438;
  guint8 * code.3439;
  guint8 * code.3440;
  guint8 * code.3441;
  guint8 * code.3442;
  guint8 * code.3443;
  guint8 * code.3444;
  guint8 * code.3445;
  guint8 * code.3446;
  guint8 * code.3447;
  guint8 * code.3448;
  guint8 * code.3449;
  unsigned char D.30608;
  guint8 * code.3450;
  guint8 * code.3451;
  unsigned char D.30611;
  guint8 * code.3452;
  guint8 * code.3453;
  unsigned char D.30614;
  guint8 * code.3454;
  guint8 * code.3455;
  unsigned char D.30617;
  guint8 * code.3456;
  guint8 * code.3457;
  guint8 * code.3458;
  guint8 * code.3459;
  guint8 * code.3460;
  guint8 * code.3461;
  guint8 * code.3462;
  guint8 * code.3463;
  unsigned char D.30631;
  guint8 * code.3464;
  guint8 * code.3465;
  unsigned char D.30634;
  guint8 * code.3466;
  guint8 * code.3467;
  unsigned char D.30637;
  guint8 * code.3468;
  guint8 * code.3469;
  unsigned char D.30640;
  long unsigned int tramp.3470;
  guint8 * code.3471;
  long int buf.3472;
  long int D.30644;
  int D.30645;
  long int D.30646;
  _Bool D.30647;
  long int D.30648;
  long int D.30649;
  struct MonoJumpInfo * ji.3473;
  unsigned int D.30655;
  struct MonoTrampInfo * D.30656;
  void * D.30657;
  guint8 * tramp;
  guint8 * code;
  guint8 * buf;
  guint8 * * rgctx_null_jumps;
  int tramp_size;
  int depth;
  int index;
  int i;
  gboolean mrgctx;
  struct MonoJumpInfo * ji;
  struct GSList * unwind_ops;
  static const char __PRETTY_FUNCTION__[45] = "mono_arch_create_rgctx_lazy_fetch_trampoline";

  try
    {
      ji = 0B;
      unwind_ops = 0B;
      slot.3133 = (signed int) slot;
      D.30041 = slot.3133 < 0;
      mrgctx = (gboolean) D.30041;
      slot.3134 = (int) slot;
      index = slot.3134 & 2147483647;
      if (mrgctx != 0) goto <D.30043>; else goto <D.30044>;
      <D.30043>:
      index.3135 = (unsigned int) index;
      D.30046 = index.3135 + 2;
      index = (int) D.30046;
      <D.30044>:
      depth = 0;
      <D.23649>:
      {
        int size;

        size = mono_class_rgctx_get_array_size (depth, mrgctx);
        D.30047 = size + -1;
        if (D.30047 > index) goto <D.23648>; else goto <D.30048>;
        <D.30048>:
        D.30049 = 1 - size;
        index = D.30049 + index;
      }
      depth = depth + 1;
      goto <D.23649>;
      <D.23648>:
      D.30050 = depth + 8;
      tramp_size = D.30050 * 8;
      buf.3136 = mono_global_codeman_reserve (tramp_size);
      buf = buf.3136;
      buf.3137 = buf;
      code = buf.3137;
      unwind_ops = mono_arch_get_cie_program ();
      D.30053 = depth + 2;
      D.30054 = (long unsigned int) D.30053;
      D.30055 = D.30054 * 8;
      rgctx_null_jumps = monoeg_malloc (D.30055);
      if (mrgctx != 0) goto <D.30056>; else goto <D.30057>;
      <D.30056>:
      if (0 != 0) goto <D.30058>; else goto <D.30059>;
      <D.30058>:
      code.3138 = code;
      code.3139 = code.3138;
      code.3140 = code.3139 + 1;
      code = code.3140;
      *code.3139 = 102;
      <D.30059>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30063>; else goto <D.30064>;
        <D.30063>:
        code.3138 = code;
        code.3141 = code.3138;
        code.3142 = code.3141 + 1;
        code = code.3142;
        D.30067 = _amd64_rex_bits | 64;
        *code.3141 = D.30067;
        <D.30064>:
      }
      switch (8) <default: <D.23656>, case 1: <D.23651>, case 2: <D.23653>, case 4: <D.23654>, case 8: <D.23655>>
      <D.23651>:
      code.3138 = code;
      code.3143 = code.3138;
      code.3144 = code.3143 + 1;
      code = code.3144;
      *code.3143 = 138;
      goto <D.23652>;
      <D.23653>:
      <D.23654>:
      <D.23655>:
      code.3138 = code;
      code.3145 = code.3138;
      code.3146 = code.3145 + 1;
      code = code.3146;
      *code.3145 = 139;
      goto <D.23652>;
      <D.23656>:
      __assert_fail ("0", "tramp-amd64.c", 839, &__PRETTY_FUNCTION__);
      <D.23652>:
      code.3138 = code;
      code.3147 = code.3138;
      code.3148 = code.3147 + 1;
      code = code.3148;
      *code.3147 = 199;
      goto <D.30074>;
      <D.30057>:
      if (0 != 0) goto <D.30075>; else goto <D.30076>;
      <D.30075>:
      code.3138 = code;
      code.3149 = code.3138;
      code.3150 = code.3149 + 1;
      code = code.3150;
      *code.3149 = 102;
      <D.30076>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30079>; else goto <D.30080>;
        <D.30079>:
        code.3138 = code;
        code.3151 = code.3138;
        code.3152 = code.3151 + 1;
        code = code.3152;
        D.30083 = _amd64_rex_bits | 64;
        *code.3151 = D.30083;
        <D.30080>:
      }
      switch (8) <default: <D.23664>, case 1: <D.23659>, case 2: <D.23661>, case 4: <D.23662>, case 8: <D.23663>>
      <D.23659>:
      code.3138 = code;
      code.3153 = code.3138;
      code.3154 = code.3153 + 1;
      code = code.3154;
      *code.3153 = 138;
      goto <D.23660>;
      <D.23661>:
      <D.23662>:
      <D.23663>:
      code.3138 = code;
      code.3155 = code.3138;
      code.3156 = code.3155 + 1;
      code = code.3156;
      *code.3155 = 139;
      goto <D.23660>;
      <D.23664>:
      __assert_fail ("0", "tramp-amd64.c", 842, &__PRETTY_FUNCTION__);
      <D.23660>:
      if (0 != 0) goto <D.30088>; else goto <D.30089>;
      <D.30088>:
      code.3138 = code;
      code.3157 = code.3138;
      code.3158 = code.3157 + 1;
      code = code.3158;
      *code.3157 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 48;
            code.3138 = code;
            code.3159 = code.3138;
            code.3160 = code.3159 + 1;
            code = code.3160;
            D.30094 = imb.b[0];
            *code.3159 = D.30094;
            code.3138 = code;
            code.3161 = code.3138;
            code.3162 = code.3161 + 1;
            code = code.3162;
            D.30097 = imb.b[1];
            *code.3161 = D.30097;
            code.3138 = code;
            code.3163 = code.3138;
            code.3164 = code.3163 + 1;
            code = code.3164;
            D.30100 = imb.b[2];
            *code.3163 = D.30100;
            code.3138 = code;
            code.3165 = code.3138;
            code.3166 = code.3165 + 1;
            code = code.3166;
            D.30103 = imb.b[3];
            *code.3165 = D.30103;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30104>;
      <D.30089>:
      if (0 != 0) goto <D.30105>; else goto <D.30106>;
      <D.30105>:
      if (0 != 0) goto <D.30107>; else goto <D.30108>;
      <D.30107>:
      code.3138 = code;
      code.3167 = code.3138;
      code.3168 = code.3167 + 1;
      code = code.3168;
      *code.3167 = 4;
      code.3138 = code;
      code.3169 = code.3138;
      code.3170 = code.3169 + 1;
      code = code.3170;
      *code.3169 = 36;
      goto <D.30113>;
      <D.30108>:
      if (1 != 0) goto <D.30114>; else goto <D.30115>;
      <D.30114>:
      code.3138 = code;
      code.3171 = code.3138;
      code.3172 = code.3171 + 1;
      code = code.3172;
      *code.3171 = 68;
      code.3138 = code;
      code.3173 = code.3138;
      code.3174 = code.3173 + 1;
      code = code.3174;
      *code.3173 = 36;
      code.3138 = code;
      *code.3138 = 48;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30121>;
      <D.30115>:
      code.3138 = code;
      code.3176 = code.3138;
      code.3177 = code.3176 + 1;
      code = code.3177;
      *code.3176 = 132;
      code.3138 = code;
      code.3178 = code.3138;
      code.3179 = code.3178 + 1;
      code = code.3179;
      *code.3178 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 48;
            code.3138 = code;
            code.3180 = code.3138;
            code.3181 = code.3180 + 1;
            code = code.3181;
            D.30128 = imb.b[0];
            *code.3180 = D.30128;
            code.3138 = code;
            code.3182 = code.3138;
            code.3183 = code.3182 + 1;
            code = code.3183;
            D.30131 = imb.b[1];
            *code.3182 = D.30131;
            code.3138 = code;
            code.3184 = code.3138;
            code.3185 = code.3184 + 1;
            code = code.3185;
            D.30134 = imb.b[2];
            *code.3184 = D.30134;
            code.3138 = code;
            code.3186 = code.3138;
            code.3187 = code.3186 + 1;
            code = code.3187;
            D.30137 = imb.b[3];
            *code.3186 = D.30137;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30121>:
      <D.30113>:
      goto <D.23667>;
      <D.30106>:
      if (0 != 0) goto <D.30138>; else goto <D.30139>;
      <D.30138>:
      code.3138 = code;
      code.3188 = code.3138;
      code.3189 = code.3188 + 1;
      code = code.3189;
      *code.3188 = 7;
      goto <D.23667>;
      <D.30139>:
      if (1 != 0) goto <D.30142>; else goto <D.30143>;
      <D.30142>:
      code.3138 = code;
      code.3190 = code.3138;
      code.3191 = code.3190 + 1;
      code = code.3191;
      *code.3190 = 71;
      code.3138 = code;
      *code.3138 = 48;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30146>;
      <D.30143>:
      code.3138 = code;
      code.3192 = code.3138;
      code.3193 = code.3192 + 1;
      code = code.3193;
      *code.3192 = 135;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 48;
            code.3138 = code;
            code.3194 = code.3138;
            code.3195 = code.3194 + 1;
            code = code.3195;
            D.30151 = imb.b[0];
            *code.3194 = D.30151;
            code.3138 = code;
            code.3196 = code.3138;
            code.3197 = code.3196 + 1;
            code = code.3197;
            D.30154 = imb.b[1];
            *code.3196 = D.30154;
            code.3138 = code;
            code.3198 = code.3138;
            code.3199 = code.3198 + 1;
            code = code.3199;
            D.30157 = imb.b[2];
            *code.3198 = D.30157;
            code.3138 = code;
            code.3200 = code.3138;
            code.3201 = code.3200 + 1;
            code = code.3201;
            D.30160 = imb.b[3];
            *code.3200 = D.30160;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30146>:
      <D.23667>:
      <D.30104>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30161>; else goto <D.30162>;
        <D.30161>:
        code.3138 = code;
        code.3202 = code.3138;
        code.3203 = code.3202 + 1;
        code = code.3203;
        D.30165 = _amd64_rex_bits | 64;
        *code.3202 = D.30165;
        <D.30162>:
      }
      code.3138 = code;
      code.3204 = code.3138;
      code.3205 = code.3204 + 1;
      code = code.3205;
      *code.3204 = 133;
      code.3138 = code;
      code.3206 = code.3138;
      code.3207 = code.3206 + 1;
      code = code.3207;
      *code.3206 = 192;
      code.3138 = code;
      *rgctx_null_jumps = code.3138;
      if (1 != 0) goto <D.30170>; else goto <D.30171>;
      <D.30170>:
      code.3138 = code;
      code.3208 = code.3138;
      code.3209 = code.3208 + 1;
      code = code.3209;
      D.30174 = 116;
      *code.3208 = D.30174;
      goto <D.30175>;
      <D.30171>:
      code.3138 = code;
      code.3210 = code.3138;
      code.3211 = code.3210 + 1;
      code = code.3211;
      D.30178 = 116;
      *code.3210 = D.30178;
      <D.30175>:
      code.3138 = code;
      *code.3138 = 255;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      <D.30074>:
      i = 0;
      goto <D.23694>;
      <D.23693>:
      D.30179 = mrgctx != 0;
      D.30180 = i == 0;
      D.30181 = D.30179 & D.30180;
      if (D.30181 != 0) goto <D.30182>; else goto <D.30183>;
      <D.30182>:
      if (0 != 0) goto <D.30184>; else goto <D.30185>;
      <D.30184>:
      code.3138 = code;
      code.3212 = code.3138;
      code.3213 = code.3212 + 1;
      code = code.3213;
      *code.3212 = 102;
      <D.30185>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30188>; else goto <D.30189>;
        <D.30188>:
        code.3138 = code;
        code.3214 = code.3138;
        code.3215 = code.3214 + 1;
        code = code.3215;
        D.30192 = _amd64_rex_bits | 64;
        *code.3214 = D.30192;
        <D.30189>:
      }
      switch (8) <default: <D.23676>, case 1: <D.23671>, case 2: <D.23673>, case 4: <D.23674>, case 8: <D.23675>>
      <D.23671>:
      code.3138 = code;
      code.3216 = code.3138;
      code.3217 = code.3216 + 1;
      code = code.3217;
      *code.3216 = 138;
      goto <D.23672>;
      <D.23673>:
      <D.23674>:
      <D.23675>:
      code.3138 = code;
      code.3218 = code.3138;
      code.3219 = code.3218 + 1;
      code = code.3219;
      *code.3218 = 139;
      goto <D.23672>;
      <D.23676>:
      __assert_fail ("0", "tramp-amd64.c", 853, &__PRETTY_FUNCTION__);
      <D.23672>:
      if (0 != 0) goto <D.30197>; else goto <D.30198>;
      <D.30197>:
      code.3138 = code;
      code.3220 = code.3138;
      code.3221 = code.3220 + 1;
      code = code.3221;
      *code.3220 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 16;
            code.3138 = code;
            code.3222 = code.3138;
            code.3223 = code.3222 + 1;
            code = code.3223;
            D.30203 = imb.b[0];
            *code.3222 = D.30203;
            code.3138 = code;
            code.3224 = code.3138;
            code.3225 = code.3224 + 1;
            code = code.3225;
            D.30206 = imb.b[1];
            *code.3224 = D.30206;
            code.3138 = code;
            code.3226 = code.3138;
            code.3227 = code.3226 + 1;
            code = code.3227;
            D.30209 = imb.b[2];
            *code.3226 = D.30209;
            code.3138 = code;
            code.3228 = code.3138;
            code.3229 = code.3228 + 1;
            code = code.3229;
            D.30212 = imb.b[3];
            *code.3228 = D.30212;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30213>;
      <D.30198>:
      if (0 != 0) goto <D.30214>; else goto <D.30215>;
      <D.30214>:
      if (0 != 0) goto <D.30216>; else goto <D.30217>;
      <D.30216>:
      code.3138 = code;
      code.3230 = code.3138;
      code.3231 = code.3230 + 1;
      code = code.3231;
      *code.3230 = 4;
      code.3138 = code;
      code.3232 = code.3138;
      code.3233 = code.3232 + 1;
      code = code.3233;
      *code.3232 = 36;
      goto <D.30222>;
      <D.30217>:
      if (1 != 0) goto <D.30223>; else goto <D.30224>;
      <D.30223>:
      code.3138 = code;
      code.3234 = code.3138;
      code.3235 = code.3234 + 1;
      code = code.3235;
      *code.3234 = 68;
      code.3138 = code;
      code.3236 = code.3138;
      code.3237 = code.3236 + 1;
      code = code.3237;
      *code.3236 = 36;
      code.3138 = code;
      *code.3138 = 16;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30229>;
      <D.30224>:
      code.3138 = code;
      code.3238 = code.3138;
      code.3239 = code.3238 + 1;
      code = code.3239;
      *code.3238 = 132;
      code.3138 = code;
      code.3240 = code.3138;
      code.3241 = code.3240 + 1;
      code = code.3241;
      *code.3240 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 16;
            code.3138 = code;
            code.3242 = code.3138;
            code.3243 = code.3242 + 1;
            code = code.3243;
            D.30236 = imb.b[0];
            *code.3242 = D.30236;
            code.3138 = code;
            code.3244 = code.3138;
            code.3245 = code.3244 + 1;
            code = code.3245;
            D.30239 = imb.b[1];
            *code.3244 = D.30239;
            code.3138 = code;
            code.3246 = code.3138;
            code.3247 = code.3246 + 1;
            code = code.3247;
            D.30242 = imb.b[2];
            *code.3246 = D.30242;
            code.3138 = code;
            code.3248 = code.3138;
            code.3249 = code.3248 + 1;
            code = code.3249;
            D.30245 = imb.b[3];
            *code.3248 = D.30245;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30229>:
      <D.30222>:
      goto <D.23679>;
      <D.30215>:
      if (0 != 0) goto <D.30246>; else goto <D.30247>;
      <D.30246>:
      code.3138 = code;
      code.3250 = code.3138;
      code.3251 = code.3250 + 1;
      code = code.3251;
      *code.3250 = 0;
      goto <D.23679>;
      <D.30247>:
      if (1 != 0) goto <D.30250>; else goto <D.30251>;
      <D.30250>:
      code.3138 = code;
      code.3252 = code.3138;
      code.3253 = code.3252 + 1;
      code = code.3253;
      *code.3252 = 64;
      code.3138 = code;
      *code.3138 = 16;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30254>;
      <D.30251>:
      code.3138 = code;
      code.3254 = code.3138;
      code.3255 = code.3254 + 1;
      code = code.3255;
      *code.3254 = 128;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 16;
            code.3138 = code;
            code.3256 = code.3138;
            code.3257 = code.3256 + 1;
            code = code.3257;
            D.30259 = imb.b[0];
            *code.3256 = D.30259;
            code.3138 = code;
            code.3258 = code.3138;
            code.3259 = code.3258 + 1;
            code = code.3259;
            D.30262 = imb.b[1];
            *code.3258 = D.30262;
            code.3138 = code;
            code.3260 = code.3138;
            code.3261 = code.3260 + 1;
            code = code.3261;
            D.30265 = imb.b[2];
            *code.3260 = D.30265;
            code.3138 = code;
            code.3262 = code.3138;
            code.3263 = code.3262 + 1;
            code = code.3263;
            D.30268 = imb.b[3];
            *code.3262 = D.30268;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30254>:
      <D.23679>:
      <D.30213>:
      goto <D.30269>;
      <D.30183>:
      if (0 != 0) goto <D.30270>; else goto <D.30271>;
      <D.30270>:
      code.3138 = code;
      code.3264 = code.3138;
      code.3265 = code.3264 + 1;
      code = code.3265;
      *code.3264 = 102;
      <D.30271>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30274>; else goto <D.30275>;
        <D.30274>:
        code.3138 = code;
        code.3266 = code.3138;
        code.3267 = code.3266 + 1;
        code = code.3267;
        D.30278 = _amd64_rex_bits | 64;
        *code.3266 = D.30278;
        <D.30275>:
      }
      switch (8) <default: <D.23687>, case 1: <D.23682>, case 2: <D.23684>, case 4: <D.23685>, case 8: <D.23686>>
      <D.23682>:
      code.3138 = code;
      code.3268 = code.3138;
      code.3269 = code.3268 + 1;
      code = code.3269;
      *code.3268 = 138;
      goto <D.23683>;
      <D.23684>:
      <D.23685>:
      <D.23686>:
      code.3138 = code;
      code.3270 = code.3138;
      code.3271 = code.3270 + 1;
      code = code.3271;
      *code.3270 = 139;
      goto <D.23683>;
      <D.23687>:
      __assert_fail ("0", "tramp-amd64.c", 855, &__PRETTY_FUNCTION__);
      <D.23683>:
      if (0 != 0) goto <D.30283>; else goto <D.30284>;
      <D.30283>:
      code.3138 = code;
      code.3272 = code.3138;
      code.3273 = code.3272 + 1;
      code = code.3273;
      *code.3272 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3274 = code.3138;
            code.3275 = code.3274 + 1;
            code = code.3275;
            D.30289 = imb.b[0];
            *code.3274 = D.30289;
            code.3138 = code;
            code.3276 = code.3138;
            code.3277 = code.3276 + 1;
            code = code.3277;
            D.30292 = imb.b[1];
            *code.3276 = D.30292;
            code.3138 = code;
            code.3278 = code.3138;
            code.3279 = code.3278 + 1;
            code = code.3279;
            D.30295 = imb.b[2];
            *code.3278 = D.30295;
            code.3138 = code;
            code.3280 = code.3138;
            code.3281 = code.3280 + 1;
            code = code.3281;
            D.30298 = imb.b[3];
            *code.3280 = D.30298;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30299>;
      <D.30284>:
      if (0 != 0) goto <D.30300>; else goto <D.30301>;
      <D.30300>:
      if (1 != 0) goto <D.30302>; else goto <D.30303>;
      <D.30302>:
      code.3138 = code;
      code.3282 = code.3138;
      code.3283 = code.3282 + 1;
      code = code.3283;
      *code.3282 = 4;
      code.3138 = code;
      code.3284 = code.3138;
      code.3285 = code.3284 + 1;
      code = code.3285;
      *code.3284 = 36;
      goto <D.30308>;
      <D.30303>:
      if (1 != 0) goto <D.30309>; else goto <D.30310>;
      <D.30309>:
      code.3138 = code;
      code.3286 = code.3138;
      code.3287 = code.3286 + 1;
      code = code.3287;
      *code.3286 = 68;
      code.3138 = code;
      code.3288 = code.3138;
      code.3289 = code.3288 + 1;
      code = code.3289;
      *code.3288 = 36;
      code.3138 = code;
      *code.3138 = 0;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30315>;
      <D.30310>:
      code.3138 = code;
      code.3290 = code.3138;
      code.3291 = code.3290 + 1;
      code = code.3291;
      *code.3290 = 132;
      code.3138 = code;
      code.3292 = code.3138;
      code.3293 = code.3292 + 1;
      code = code.3293;
      *code.3292 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3294 = code.3138;
            code.3295 = code.3294 + 1;
            code = code.3295;
            D.30322 = imb.b[0];
            *code.3294 = D.30322;
            code.3138 = code;
            code.3296 = code.3138;
            code.3297 = code.3296 + 1;
            code = code.3297;
            D.30325 = imb.b[1];
            *code.3296 = D.30325;
            code.3138 = code;
            code.3298 = code.3138;
            code.3299 = code.3298 + 1;
            code = code.3299;
            D.30328 = imb.b[2];
            *code.3298 = D.30328;
            code.3138 = code;
            code.3300 = code.3138;
            code.3301 = code.3300 + 1;
            code = code.3301;
            D.30331 = imb.b[3];
            *code.3300 = D.30331;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30315>:
      <D.30308>:
      goto <D.23690>;
      <D.30301>:
      if (1 != 0) goto <D.30332>; else goto <D.30333>;
      <D.30332>:
      code.3138 = code;
      code.3302 = code.3138;
      code.3303 = code.3302 + 1;
      code = code.3303;
      *code.3302 = 0;
      goto <D.23690>;
      <D.30333>:
      if (1 != 0) goto <D.30336>; else goto <D.30337>;
      <D.30336>:
      code.3138 = code;
      code.3304 = code.3138;
      code.3305 = code.3304 + 1;
      code = code.3305;
      *code.3304 = 64;
      code.3138 = code;
      *code.3138 = 0;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30340>;
      <D.30337>:
      code.3138 = code;
      code.3306 = code.3138;
      code.3307 = code.3306 + 1;
      code = code.3307;
      *code.3306 = 128;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3308 = code.3138;
            code.3309 = code.3308 + 1;
            code = code.3309;
            D.30345 = imb.b[0];
            *code.3308 = D.30345;
            code.3138 = code;
            code.3310 = code.3138;
            code.3311 = code.3310 + 1;
            code = code.3311;
            D.30348 = imb.b[1];
            *code.3310 = D.30348;
            code.3138 = code;
            code.3312 = code.3138;
            code.3313 = code.3312 + 1;
            code = code.3313;
            D.30351 = imb.b[2];
            *code.3312 = D.30351;
            code.3138 = code;
            code.3314 = code.3138;
            code.3315 = code.3314 + 1;
            code = code.3315;
            D.30354 = imb.b[3];
            *code.3314 = D.30354;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30340>:
      <D.23690>:
      <D.30299>:
      <D.30269>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30355>; else goto <D.30356>;
        <D.30355>:
        code.3138 = code;
        code.3316 = code.3138;
        code.3317 = code.3316 + 1;
        code = code.3317;
        D.30359 = _amd64_rex_bits | 64;
        *code.3316 = D.30359;
        <D.30356>:
      }
      code.3138 = code;
      code.3318 = code.3138;
      code.3319 = code.3318 + 1;
      code = code.3319;
      *code.3318 = 133;
      code.3138 = code;
      code.3320 = code.3138;
      code.3321 = code.3320 + 1;
      code = code.3321;
      *code.3320 = 192;
      D.30364 = (sizetype) i;
      D.30365 = D.30364 + 1;
      D.30366 = D.30365 * 8;
      D.30367 = rgctx_null_jumps + D.30366;
      code.3138 = code;
      *D.30367 = code.3138;
      if (1 != 0) goto <D.30368>; else goto <D.30369>;
      <D.30368>:
      code.3138 = code;
      code.3322 = code.3138;
      code.3323 = code.3322 + 1;
      code = code.3323;
      D.30174 = 116;
      *code.3322 = D.30174;
      goto <D.30372>;
      <D.30369>:
      code.3138 = code;
      code.3324 = code.3138;
      code.3325 = code.3324 + 1;
      code = code.3325;
      D.30178 = 116;
      *code.3324 = D.30178;
      <D.30372>:
      code.3138 = code;
      *code.3138 = 255;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      i = i + 1;
      <D.23694>:
      if (i < depth) goto <D.23693>; else goto <D.23695>;
      <D.23695>:
      if (0 != 0) goto <D.30375>; else goto <D.30376>;
      <D.30375>:
      code.3138 = code;
      code.3326 = code.3138;
      code.3327 = code.3326 + 1;
      code = code.3327;
      *code.3326 = 102;
      <D.30376>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30379>; else goto <D.30380>;
        <D.30379>:
        code.3138 = code;
        code.3328 = code.3138;
        code.3329 = code.3328 + 1;
        code = code.3329;
        D.30383 = _amd64_rex_bits | 64;
        *code.3328 = D.30383;
        <D.30380>:
      }
      switch (8) <default: <D.23702>, case 1: <D.23697>, case 2: <D.23699>, case 4: <D.23700>, case 8: <D.23701>>
      <D.23697>:
      code.3138 = code;
      code.3330 = code.3138;
      code.3331 = code.3330 + 1;
      code = code.3331;
      *code.3330 = 138;
      goto <D.23698>;
      <D.23699>:
      <D.23700>:
      <D.23701>:
      code.3138 = code;
      code.3332 = code.3138;
      code.3333 = code.3332 + 1;
      code = code.3333;
      *code.3332 = 139;
      goto <D.23698>;
      <D.23702>:
      __assert_fail ("0", "tramp-amd64.c", 864, &__PRETTY_FUNCTION__);
      <D.23698>:
      if (0 != 0) goto <D.30388>; else goto <D.30389>;
      <D.30388>:
      code.3138 = code;
      code.3334 = code.3138;
      code.3335 = code.3334 + 1;
      code = code.3335;
      *code.3334 = 5;
      {
        union x86_imm_buf imb;

        try
          {
            D.30392 = index + 1;
            D.30393 = (unsigned int) D.30392;
            D.30394 = D.30393 * 8;
            D.30395 = (int) D.30394;
            imb.val = D.30395;
            code.3138 = code;
            code.3336 = code.3138;
            code.3337 = code.3336 + 1;
            code = code.3337;
            D.30398 = imb.b[0];
            *code.3336 = D.30398;
            code.3138 = code;
            code.3338 = code.3138;
            code.3339 = code.3338 + 1;
            code = code.3339;
            D.30401 = imb.b[1];
            *code.3338 = D.30401;
            code.3138 = code;
            code.3340 = code.3138;
            code.3341 = code.3340 + 1;
            code = code.3341;
            D.30404 = imb.b[2];
            *code.3340 = D.30404;
            code.3138 = code;
            code.3342 = code.3138;
            code.3343 = code.3342 + 1;
            code = code.3343;
            D.30407 = imb.b[3];
            *code.3342 = D.30407;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30408>;
      <D.30389>:
      if (0 != 0) goto <D.30409>; else goto <D.30410>;
      <D.30409>:
      D.30392 = index + 1;
      D.30411 = (long unsigned int) D.30392;
      D.30412 = D.30411 * 8;
      if (D.30412 == 0) goto <D.30413>; else goto <D.30414>;
      <D.30413>:
      code.3138 = code;
      code.3344 = code.3138;
      code.3345 = code.3344 + 1;
      code = code.3345;
      *code.3344 = 4;
      code.3138 = code;
      code.3346 = code.3138;
      code.3347 = code.3346 + 1;
      code = code.3347;
      *code.3346 = 36;
      goto <D.30419>;
      <D.30414>:
      D.30392 = index + 1;
      D.30393 = (unsigned int) D.30392;
      D.30394 = D.30393 * 8;
      D.30395 = (int) D.30394;
      if (D.30395 >= -128) goto <D.30422>; else goto <D.30420>;
      <D.30422>:
      D.30392 = index + 1;
      D.30393 = (unsigned int) D.30392;
      D.30394 = D.30393 * 8;
      D.30395 = (int) D.30394;
      if (D.30395 <= 127) goto <D.30423>; else goto <D.30420>;
      <D.30423>:
      code.3138 = code;
      code.3348 = code.3138;
      code.3349 = code.3348 + 1;
      code = code.3349;
      *code.3348 = 68;
      code.3138 = code;
      code.3350 = code.3138;
      code.3351 = code.3350 + 1;
      code = code.3351;
      *code.3350 = 36;
      code.3138 = code;
      D.30392 = index + 1;
      D.30411 = (long unsigned int) D.30392;
      D.30428 = (unsigned char) D.30411;
      D.30429 = D.30428 * 8;
      *code.3138 = D.30429;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30421>;
      <D.30420>:
      code.3138 = code;
      code.3352 = code.3138;
      code.3353 = code.3352 + 1;
      code = code.3353;
      *code.3352 = 132;
      code.3138 = code;
      code.3354 = code.3138;
      code.3355 = code.3354 + 1;
      code = code.3355;
      *code.3354 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            D.30392 = index + 1;
            D.30393 = (unsigned int) D.30392;
            D.30394 = D.30393 * 8;
            D.30395 = (int) D.30394;
            imb.val = D.30395;
            code.3138 = code;
            code.3356 = code.3138;
            code.3357 = code.3356 + 1;
            code = code.3357;
            D.30436 = imb.b[0];
            *code.3356 = D.30436;
            code.3138 = code;
            code.3358 = code.3138;
            code.3359 = code.3358 + 1;
            code = code.3359;
            D.30439 = imb.b[1];
            *code.3358 = D.30439;
            code.3138 = code;
            code.3360 = code.3138;
            code.3361 = code.3360 + 1;
            code = code.3361;
            D.30442 = imb.b[2];
            *code.3360 = D.30442;
            code.3138 = code;
            code.3362 = code.3138;
            code.3363 = code.3362 + 1;
            code = code.3363;
            D.30445 = imb.b[3];
            *code.3362 = D.30445;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30421>:
      <D.30419>:
      goto <D.23705>;
      <D.30410>:
      D.30392 = index + 1;
      D.30411 = (long unsigned int) D.30392;
      D.30412 = D.30411 * 8;
      if (D.30412 == 0) goto <D.30446>; else goto <D.30447>;
      <D.30446>:
      code.3138 = code;
      code.3364 = code.3138;
      code.3365 = code.3364 + 1;
      code = code.3365;
      *code.3364 = 0;
      goto <D.23705>;
      <D.30447>:
      D.30392 = index + 1;
      D.30393 = (unsigned int) D.30392;
      D.30394 = D.30393 * 8;
      D.30395 = (int) D.30394;
      if (D.30395 >= -128) goto <D.30452>; else goto <D.30450>;
      <D.30452>:
      D.30392 = index + 1;
      D.30393 = (unsigned int) D.30392;
      D.30394 = D.30393 * 8;
      D.30395 = (int) D.30394;
      if (D.30395 <= 127) goto <D.30453>; else goto <D.30450>;
      <D.30453>:
      code.3138 = code;
      code.3366 = code.3138;
      code.3367 = code.3366 + 1;
      code = code.3367;
      *code.3366 = 64;
      code.3138 = code;
      D.30392 = index + 1;
      D.30411 = (long unsigned int) D.30392;
      D.30428 = (unsigned char) D.30411;
      D.30429 = D.30428 * 8;
      *code.3138 = D.30429;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30451>;
      <D.30450>:
      code.3138 = code;
      code.3368 = code.3138;
      code.3369 = code.3368 + 1;
      code = code.3369;
      *code.3368 = 128;
      {
        union x86_imm_buf imb;

        try
          {
            D.30392 = index + 1;
            D.30393 = (unsigned int) D.30392;
            D.30394 = D.30393 * 8;
            D.30395 = (int) D.30394;
            imb.val = D.30395;
            code.3138 = code;
            code.3370 = code.3138;
            code.3371 = code.3370 + 1;
            code = code.3371;
            D.30460 = imb.b[0];
            *code.3370 = D.30460;
            code.3138 = code;
            code.3372 = code.3138;
            code.3373 = code.3372 + 1;
            code = code.3373;
            D.30463 = imb.b[1];
            *code.3372 = D.30463;
            code.3138 = code;
            code.3374 = code.3138;
            code.3375 = code.3374 + 1;
            code = code.3375;
            D.30466 = imb.b[2];
            *code.3374 = D.30466;
            code.3138 = code;
            code.3376 = code.3138;
            code.3377 = code.3376 + 1;
            code = code.3377;
            D.30469 = imb.b[3];
            *code.3376 = D.30469;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30451>:
      <D.23705>:
      <D.30408>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30470>; else goto <D.30471>;
        <D.30470>:
        code.3138 = code;
        code.3378 = code.3138;
        code.3379 = code.3378 + 1;
        code = code.3379;
        D.30474 = _amd64_rex_bits | 64;
        *code.3378 = D.30474;
        <D.30471>:
      }
      code.3138 = code;
      code.3380 = code.3138;
      code.3381 = code.3380 + 1;
      code = code.3381;
      *code.3380 = 133;
      code.3138 = code;
      code.3382 = code.3138;
      code.3383 = code.3382 + 1;
      code = code.3383;
      *code.3382 = 192;
      D.30479 = (sizetype) depth;
      D.30480 = D.30479 + 1;
      D.30481 = D.30480 * 8;
      D.30482 = rgctx_null_jumps + D.30481;
      code.3138 = code;
      *D.30482 = code.3138;
      if (1 != 0) goto <D.30483>; else goto <D.30484>;
      <D.30483>:
      code.3138 = code;
      code.3384 = code.3138;
      code.3385 = code.3384 + 1;
      code = code.3385;
      D.30174 = 116;
      *code.3384 = D.30174;
      goto <D.30487>;
      <D.30484>:
      code.3138 = code;
      code.3386 = code.3138;
      code.3387 = code.3386 + 1;
      code = code.3387;
      D.30178 = 116;
      *code.3386 = D.30178;
      <D.30487>:
      code.3138 = code;
      *code.3138 = 255;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      code.3138 = code;
      code.3388 = code.3138;
      code.3389 = code.3388 + 1;
      code = code.3389;
      *code.3388 = 195;
      D.30179 = mrgctx != 0;
      i = (int) D.30179;
      goto <D.23709>;
      <D.23708>:
      code.3138 = code;
      D.30492 = (long unsigned int) i;
      D.30493 = D.30492 * 8;
      D.30494 = rgctx_null_jumps + D.30493;
      D.30495 = *D.30494;
      mono_amd64_patch (D.30495, code.3138);
      i = i + 1;
      <D.23709>:
      D.30496 = depth + 1;
      if (D.30496 >= i) goto <D.23708>; else goto <D.23710>;
      <D.23710>:
      monoeg_g_free (rgctx_null_jumps);
      if (0 != 0) goto <D.30497>; else goto <D.30498>;
      <D.30497>:
      code.3138 = code;
      code.3390 = code.3138;
      code.3391 = code.3390 + 1;
      code = code.3391;
      *code.3390 = 102;
      <D.30498>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30501>; else goto <D.30502>;
        <D.30501>:
        code.3138 = code;
        code.3392 = code.3138;
        code.3393 = code.3392 + 1;
        code = code.3393;
        D.30505 = _amd64_rex_bits | 64;
        *code.3392 = D.30505;
        <D.30502>:
      }
      switch (8) <default: <D.23717>, case 1: <D.23712>, case 2: <D.23714>, case 4: <D.23715>, case 8: <D.23716>>
      <D.23712>:
      code.3138 = code;
      code.3394 = code.3138;
      code.3395 = code.3394 + 1;
      code = code.3395;
      *code.3394 = 138;
      goto <D.23713>;
      <D.23714>:
      <D.23715>:
      <D.23716>:
      code.3138 = code;
      code.3396 = code.3138;
      code.3397 = code.3396 + 1;
      code = code.3397;
      *code.3396 = 139;
      goto <D.23713>;
      <D.23717>:
      __assert_fail ("0", "tramp-amd64.c", 879, &__PRETTY_FUNCTION__);
      <D.23713>:
      code.3138 = code;
      code.3398 = code.3138;
      code.3399 = code.3398 + 1;
      code = code.3399;
      *code.3398 = 255;
      if (aot != 0) goto <D.30512>; else goto <D.30513>;
      <D.30512>:
      D.30514 = monoeg_g_strdup_printf ("specific_trampoline_lazy_fetch_%u", slot);
      code.3138 = code;
      buf.3137 = buf;
      code.3400 = mono_arch_emit_load_aotconst (buf.3137, code.3138, &ji, 32, D.30514);
      code = code.3400;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.30516>; else goto <D.30517>;
        <D.30516>:
        code.3138 = code;
        code.3401 = code.3138;
        code.3402 = code.3401 + 1;
        code = code.3402;
        D.30520 = _amd64_rex_bits | 64;
        *code.3401 = D.30520;
        <D.30517>:
      }
      code.3138 = code;
      code.3403 = code.3138;
      code.3404 = code.3403 + 1;
      code = code.3404;
      *code.3403 = 255;
      code.3138 = code;
      code.3405 = code.3138;
      code.3406 = code.3405 + 1;
      code = code.3406;
      *code.3405 = 227;
      goto <D.30525>;
      <D.30513>:
      D.30526 = mono_get_root_domain ();
      D.30527 = (long unsigned int) slot;
      D.30528 = (void *) D.30527;
      tramp = mono_arch_create_specific_trampoline (D.30528, 4, D.30526, 0B);
      tramp.3407 = (long int) tramp;
      code.3138 = code;
      code.3408 = (long int) code.3138;
      D.30531 = tramp.3407 - code.3408;
      D.30532 = (unsigned long) D.30531;
      D.30533 = D.30532 + 2147483648;
      if (D.30533 <= 4294967295) goto <D.30534>; else goto <D.30535>;
      <D.30534>:
      {
        int t;

        tramp.3407 = (long int) tramp;
        code.3138 = code;
        code.3408 = (long int) code.3138;
        D.30531 = tramp.3407 - code.3408;
        D.30536 = (unsigned int) D.30531;
        D.30537 = D.30536 + 4294967294;
        t = (int) D.30537;
        t.3409 = (unsigned int) t;
        D.30539 = t.3409 + 128;
        if (D.30539 <= 255) goto <D.30540>; else goto <D.30541>;
        <D.30540>:
        code.3138 = code;
        code.3410 = code.3138;
        code.3411 = code.3410 + 1;
        code = code.3411;
        *code.3410 = 235;
        code.3138 = code;
        D.30544 = (unsigned char) t;
        *code.3138 = D.30544;
        code.3138 = code;
        code.3175 = code.3138 + 1;
        code = code.3175;
        goto <D.30545>;
        <D.30541>:
        tramp.3407 = (long int) tramp;
        code.3138 = code;
        code.3408 = (long int) code.3138;
        D.30531 = tramp.3407 - code.3408;
        D.30536 = (unsigned int) D.30531;
        D.30546 = D.30536 + 4294967291;
        t = (int) D.30546;
        code.3138 = code;
        code.3412 = code.3138;
        code.3413 = code.3412 + 1;
        code = code.3413;
        *code.3412 = 233;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = t;
              code.3138 = code;
              code.3414 = code.3138;
              code.3415 = code.3414 + 1;
              code = code.3415;
              D.30551 = imb.b[0];
              *code.3414 = D.30551;
              code.3138 = code;
              code.3416 = code.3138;
              code.3417 = code.3416 + 1;
              code = code.3417;
              D.30554 = imb.b[1];
              *code.3416 = D.30554;
              code.3138 = code;
              code.3418 = code.3138;
              code.3419 = code.3418 + 1;
              code = code.3419;
              D.30557 = imb.b[2];
              *code.3418 = D.30557;
              code.3138 = code;
              code.3420 = code.3138;
              code.3421 = code.3420 + 1;
              code = code.3421;
              D.30560 = imb.b[3];
              *code.3420 = D.30560;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.30545>:
      }
      goto <D.30561>;
      <D.30535>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.30562>; else goto <D.30563>;
        <D.30562>:
        code.3138 = code;
        code.3422 = code.3138;
        code.3423 = code.3422 + 1;
        code = code.3423;
        D.30566 = _amd64_rex_bits | 64;
        *code.3422 = D.30566;
        <D.30563>:
      }
      code.3138 = code;
      code.3424 = code.3138;
      code.3425 = code.3424 + 1;
      code = code.3425;
      *code.3424 = 255;
      if (1 != 0) goto <D.30569>; else goto <D.30570>;
      <D.30569>:
      code.3138 = code;
      code.3426 = code.3138;
      code.3427 = code.3426 + 1;
      code = code.3427;
      *code.3426 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3428 = code.3138;
            code.3429 = code.3428 + 1;
            code = code.3429;
            D.30575 = imb.b[0];
            *code.3428 = D.30575;
            code.3138 = code;
            code.3430 = code.3138;
            code.3431 = code.3430 + 1;
            code = code.3431;
            D.30578 = imb.b[1];
            *code.3430 = D.30578;
            code.3138 = code;
            code.3432 = code.3138;
            code.3433 = code.3432 + 1;
            code = code.3433;
            D.30581 = imb.b[2];
            *code.3432 = D.30581;
            code.3138 = code;
            code.3434 = code.3138;
            code.3435 = code.3434 + 1;
            code = code.3435;
            D.30584 = imb.b[3];
            *code.3434 = D.30584;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30585>;
      <D.30570>:
      if (0 != 0) goto <D.30586>; else goto <D.30587>;
      <D.30586>:
      if (1 != 0) goto <D.30588>; else goto <D.30589>;
      <D.30588>:
      code.3138 = code;
      code.3436 = code.3138;
      code.3437 = code.3436 + 1;
      code = code.3437;
      *code.3436 = 36;
      code.3138 = code;
      code.3438 = code.3138;
      code.3439 = code.3438 + 1;
      code = code.3439;
      *code.3438 = 36;
      goto <D.30594>;
      <D.30589>:
      if (1 != 0) goto <D.30595>; else goto <D.30596>;
      <D.30595>:
      code.3138 = code;
      code.3440 = code.3138;
      code.3441 = code.3440 + 1;
      code = code.3441;
      *code.3440 = 100;
      code.3138 = code;
      code.3442 = code.3138;
      code.3443 = code.3442 + 1;
      code = code.3443;
      *code.3442 = 36;
      code.3138 = code;
      *code.3138 = 0;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30601>;
      <D.30596>:
      code.3138 = code;
      code.3444 = code.3138;
      code.3445 = code.3444 + 1;
      code = code.3445;
      *code.3444 = 164;
      code.3138 = code;
      code.3446 = code.3138;
      code.3447 = code.3446 + 1;
      code = code.3447;
      *code.3446 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3448 = code.3138;
            code.3449 = code.3448 + 1;
            code = code.3449;
            D.30608 = imb.b[0];
            *code.3448 = D.30608;
            code.3138 = code;
            code.3450 = code.3138;
            code.3451 = code.3450 + 1;
            code = code.3451;
            D.30611 = imb.b[1];
            *code.3450 = D.30611;
            code.3138 = code;
            code.3452 = code.3138;
            code.3453 = code.3452 + 1;
            code = code.3453;
            D.30614 = imb.b[2];
            *code.3452 = D.30614;
            code.3138 = code;
            code.3454 = code.3138;
            code.3455 = code.3454 + 1;
            code = code.3455;
            D.30617 = imb.b[3];
            *code.3454 = D.30617;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30601>:
      <D.30594>:
      goto <D.23724>;
      <D.30587>:
      if (1 != 0) goto <D.30618>; else goto <D.30619>;
      <D.30618>:
      code.3138 = code;
      code.3456 = code.3138;
      code.3457 = code.3456 + 1;
      code = code.3457;
      *code.3456 = 32;
      goto <D.23724>;
      <D.30619>:
      if (1 != 0) goto <D.30622>; else goto <D.30623>;
      <D.30622>:
      code.3138 = code;
      code.3458 = code.3138;
      code.3459 = code.3458 + 1;
      code = code.3459;
      *code.3458 = 96;
      code.3138 = code;
      *code.3138 = 0;
      code.3138 = code;
      code.3175 = code.3138 + 1;
      code = code.3175;
      goto <D.30626>;
      <D.30623>:
      code.3138 = code;
      code.3460 = code.3138;
      code.3461 = code.3460 + 1;
      code = code.3461;
      *code.3460 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3138 = code;
            code.3462 = code.3138;
            code.3463 = code.3462 + 1;
            code = code.3463;
            D.30631 = imb.b[0];
            *code.3462 = D.30631;
            code.3138 = code;
            code.3464 = code.3138;
            code.3465 = code.3464 + 1;
            code = code.3465;
            D.30634 = imb.b[1];
            *code.3464 = D.30634;
            code.3138 = code;
            code.3466 = code.3138;
            code.3467 = code.3466 + 1;
            code = code.3467;
            D.30637 = imb.b[2];
            *code.3466 = D.30637;
            code.3138 = code;
            code.3468 = code.3138;
            code.3469 = code.3468 + 1;
            code = code.3469;
            D.30640 = imb.b[3];
            *code.3468 = D.30640;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30626>:
      <D.23724>:
      <D.30585>:
      code.3138 = code;
      tramp.3470 = (long unsigned int) tramp;
      MEM[(guint64 *)code.3138] = tramp.3470;
      code.3138 = code;
      code.3471 = code.3138 + 8;
      code = code.3471;
      <D.30561>:
      <D.30525>:
      nacl_global_codeman_validate (&buf, tramp_size, &code);
      code.3138 = code;
      code.3408 = (long int) code.3138;
      buf.3137 = buf;
      buf.3472 = (long int) buf.3137;
      D.30644 = code.3408 - buf.3472;
      D.30645 = (int) D.30644;
      buf.3137 = buf;
      mono_arch_flush_icache (buf.3137, D.30645);
      code.3138 = code;
      code.3408 = (long int) code.3138;
      buf.3137 = buf;
      buf.3472 = (long int) buf.3137;
      D.30644 = code.3408 - buf.3472;
      D.30646 = (long int) tramp_size;
      D.30647 = D.30644 > D.30646;
      D.30648 = (long int) D.30647;
      D.30649 = __builtin_expect (D.30648, 0);
      if (D.30649 != 0) goto <D.30650>; else goto <D.30651>;
      <D.30650>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 894, "code - buf <= tramp_size");
      <D.30651>:
      if (info != 0B) goto <D.30652>; else goto <D.30653>;
      <D.30652>:
      {
        char * name;

        slot.3134 = (int) slot;
        name = mono_get_rgctx_fetch_trampoline_name (slot.3134);
        ji.3473 = ji;
        code.3138 = code;
        code.3408 = (long int) code.3138;
        buf.3137 = buf;
        buf.3472 = (long int) buf.3137;
        D.30644 = code.3408 - buf.3472;
        D.30655 = (unsigned int) D.30644;
        buf.3137 = buf;
        D.30656 = mono_tramp_info_create (name, buf.3137, D.30655, ji.3473, unwind_ops);
        *info = D.30656;
        monoeg_g_free (name);
      }
      <D.30653>:
      D.30657 = buf;
      return D.30657;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
      ji = {CLOBBER};
    }
}


mono_arch_create_generic_class_init_trampoline (struct MonoTrampInfo * * info, gboolean aot)
{
  void * buf.3474;
  guint8 * buf.3475;
  int byte_offset.3476;
  guint8 * code.3477;
  guint8 * code.3478;
  guint8 * code.3479;
  unsigned char D.30670;
  guint8 * code.3480;
  guint8 * code.3481;
  guint8 * code.3482;
  guint8 * code.3483;
  guint8 * code.3484;
  guint8 * code.3485;
  unsigned int byte_offset.3486;
  unsigned int D.30683;
  guint8 * code.3487;
  guint8 * code.3488;
  guint8 * code.3489;
  guint8 * code.3490;
  unsigned char D.30690;
  guint8 * code.3491;
  guint8 * code.3492;
  guint8 * code.3493;
  guint8 * code.3494;
  guint8 * code.3495;
  guint8 * code.3496;
  guint8 * code.3497;
  unsigned char D.30699;
  guint8 * code.3498;
  guint8 * code.3499;
  unsigned char D.30702;
  guint8 * code.3500;
  guint8 * code.3501;
  unsigned char D.30705;
  guint8 * code.3502;
  guint8 * code.3503;
  unsigned char D.30708;
  guint8 * code.3504;
  guint8 * code.3505;
  guint8 * code.3506;
  guint8 * code.3507;
  guint8 * code.3508;
  guint8 * code.3509;
  guint8 * code.3510;
  guint8 * code.3511;
  unsigned char D.30722;
  guint8 * code.3512;
  guint8 * code.3513;
  unsigned char D.30725;
  guint8 * code.3514;
  guint8 * code.3515;
  unsigned char D.30728;
  guint8 * code.3516;
  guint8 * code.3517;
  unsigned char D.30731;
  unsigned char bitmask.3518;
  int D.30733;
  guint8 * code.3519;
  guint8 * code.3520;
  unsigned char D.30736;
  guint8 * code.3521;
  guint8 * code.3522;
  unsigned char D.30739;
  guint8 * code.3523;
  guint8 * code.3524;
  unsigned char D.30742;
  guint8 * code.3525;
  guint8 * code.3526;
  unsigned char D.30745;
  guint8 * code.3527;
  guint8 * code.3528;
  unsigned char D.30750;
  guint8 * code.3529;
  guint8 * code.3530;
  unsigned char D.30754;
  guint8 * code.3531;
  guint8 * code.3532;
  unsigned char D.30757;
  int D.30758;
  unsigned char D.30759;
  unsigned char D.30760;
  long int code.3533;
  long int pos.3534;
  long int D.30765;
  int D.30768;
  unsigned char * pos.3535;
  unsigned char D.30770;
  unsigned char * pos.3536;
  unsigned char D.30772;
  unsigned char * pos.3537;
  unsigned char D.30774;
  unsigned char * pos.3538;
  unsigned char D.30776;
  unsigned int disp.3539;
  unsigned int D.30779;
  unsigned char D.30782;
  unsigned char D.30783;
  guint8 * code.3540;
  guint8 * code.3541;
  guint8 * code.3542;
  unsigned char D.30792;
  guint8 * code.3543;
  guint8 * code.3544;
  guint8 * code.3545;
  guint8 * code.3546;
  struct MonoDomain * D.30798;
  long int tramp.3547;
  long int D.30800;
  unsigned long D.30801;
  unsigned long D.30802;
  unsigned int D.30805;
  unsigned int D.30806;
  unsigned int t.3548;
  unsigned int D.30808;
  guint8 * code.3549;
  guint8 * code.3550;
  unsigned char D.30813;
  unsigned int D.30815;
  guint8 * code.3551;
  guint8 * code.3552;
  guint8 * code.3553;
  guint8 * code.3554;
  unsigned char D.30820;
  guint8 * code.3555;
  guint8 * code.3556;
  unsigned char D.30823;
  guint8 * code.3557;
  guint8 * code.3558;
  unsigned char D.30826;
  guint8 * code.3559;
  guint8 * code.3560;
  unsigned char D.30829;
  guint8 * code.3561;
  guint8 * code.3562;
  unsigned char D.30835;
  guint8 * code.3563;
  guint8 * code.3564;
  guint8 * code.3565;
  guint8 * code.3566;
  guint8 * code.3567;
  guint8 * code.3568;
  unsigned char D.30844;
  guint8 * code.3569;
  guint8 * code.3570;
  unsigned char D.30847;
  guint8 * code.3571;
  guint8 * code.3572;
  unsigned char D.30850;
  guint8 * code.3573;
  guint8 * code.3574;
  unsigned char D.30853;
  guint8 * code.3575;
  guint8 * code.3576;
  guint8 * code.3577;
  guint8 * code.3578;
  guint8 * code.3579;
  guint8 * code.3580;
  guint8 * code.3581;
  guint8 * code.3582;
  guint8 * code.3583;
  guint8 * code.3584;
  guint8 * code.3585;
  guint8 * code.3586;
  guint8 * code.3587;
  guint8 * code.3588;
  unsigned char D.30877;
  guint8 * code.3589;
  guint8 * code.3590;
  unsigned char D.30880;
  guint8 * code.3591;
  guint8 * code.3592;
  unsigned char D.30883;
  guint8 * code.3593;
  guint8 * code.3594;
  unsigned char D.30886;
  guint8 * code.3595;
  guint8 * code.3596;
  guint8 * code.3597;
  guint8 * code.3598;
  guint8 * code.3599;
  guint8 * code.3600;
  guint8 * code.3601;
  guint8 * code.3602;
  unsigned char D.30900;
  guint8 * code.3603;
  guint8 * code.3604;
  unsigned char D.30903;
  guint8 * code.3605;
  guint8 * code.3606;
  unsigned char D.30906;
  guint8 * code.3607;
  guint8 * code.3608;
  unsigned char D.30909;
  long unsigned int tramp.3609;
  guint8 * code.3610;
  long int buf.3611;
  long int D.30913;
  int D.30914;
  long int D.30915;
  _Bool D.30916;
  long int D.30917;
  long int D.30918;
  struct MonoJumpInfo * ji.3612;
  unsigned int D.30924;
  struct MonoTrampInfo * D.30925;
  void * D.30926;
  guint8 * tramp;
  guint8 * code;
  guint8 * buf;
  static int byte_offset = -1;
  static guint8 bitmask;
  guint8 * jump;
  int tramp_size;
  struct GSList * unwind_ops;
  struct MonoJumpInfo * ji;
  static const char __PRETTY_FUNCTION__[47] = "mono_arch_create_generic_class_init_trampoline";

  try
    {
      unwind_ops = 0B;
      ji = 0B;
      tramp_size = 64;
      buf.3474 = mono_global_codeman_reserve (tramp_size);
      buf = buf.3474;
      buf.3475 = buf;
      code = buf.3475;
      byte_offset.3476 = byte_offset;
      if (byte_offset.3476 < 0) goto <D.30663>; else goto <D.30664>;
      <D.30663>:
      {
        struct MonoVTable tmp;

        try
          {
            memset (&tmp, 0, 56);
            tmp.initialized = 1;
            mono_marshal_find_nonzero_bit_offset (&tmp, 56, &byte_offset, &bitmask);
          }
        finally
          {
            tmp = {CLOBBER};
          }
      }
      <D.30664>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (1 != 0) goto <D.30665>; else goto <D.30666>;
        <D.30665>:
        code.3477 = code;
        code.3478 = code.3477;
        code.3479 = code.3478 + 1;
        code = code.3479;
        D.30670 = _amd64_rex_bits | 64;
        *code.3478 = D.30670;
        <D.30666>:
      }
      code.3477 = code;
      code.3480 = code.3477;
      code.3481 = code.3480 + 1;
      code = code.3481;
      *code.3480 = 247;
      if (0 != 0) goto <D.30673>; else goto <D.30674>;
      <D.30673>:
      byte_offset.3476 = byte_offset;
      if (byte_offset.3476 == 0) goto <D.30675>; else goto <D.30676>;
      <D.30675>:
      code.3477 = code;
      code.3482 = code.3477;
      code.3483 = code.3482 + 1;
      code = code.3483;
      *code.3482 = 4;
      code.3477 = code;
      code.3484 = code.3477;
      code.3485 = code.3484 + 1;
      code = code.3485;
      *code.3484 = 36;
      goto <D.30681>;
      <D.30676>:
      byte_offset.3476 = byte_offset;
      byte_offset.3486 = (unsigned int) byte_offset.3476;
      D.30683 = byte_offset.3486 + 128;
      if (D.30683 <= 255) goto <D.30684>; else goto <D.30685>;
      <D.30684>:
      code.3477 = code;
      code.3487 = code.3477;
      code.3488 = code.3487 + 1;
      code = code.3488;
      *code.3487 = 68;
      code.3477 = code;
      code.3489 = code.3477;
      code.3490 = code.3489 + 1;
      code = code.3490;
      *code.3489 = 36;
      code.3477 = code;
      byte_offset.3476 = byte_offset;
      D.30690 = (unsigned char) byte_offset.3476;
      *code.3477 = D.30690;
      code.3477 = code;
      code.3491 = code.3477 + 1;
      code = code.3491;
      goto <D.30692>;
      <D.30685>:
      code.3477 = code;
      code.3492 = code.3477;
      code.3493 = code.3492 + 1;
      code = code.3493;
      *code.3492 = 132;
      code.3477 = code;
      code.3494 = code.3477;
      code.3495 = code.3494 + 1;
      code = code.3495;
      *code.3494 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            byte_offset.3476 = byte_offset;
            imb.val = byte_offset.3476;
            code.3477 = code;
            code.3496 = code.3477;
            code.3497 = code.3496 + 1;
            code = code.3497;
            D.30699 = imb.b[0];
            *code.3496 = D.30699;
            code.3477 = code;
            code.3498 = code.3477;
            code.3499 = code.3498 + 1;
            code = code.3499;
            D.30702 = imb.b[1];
            *code.3498 = D.30702;
            code.3477 = code;
            code.3500 = code.3477;
            code.3501 = code.3500 + 1;
            code = code.3501;
            D.30705 = imb.b[2];
            *code.3500 = D.30705;
            code.3477 = code;
            code.3502 = code.3477;
            code.3503 = code.3502 + 1;
            code = code.3503;
            D.30708 = imb.b[3];
            *code.3502 = D.30708;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30692>:
      <D.30681>:
      goto <D.23743>;
      <D.30674>:
      byte_offset.3476 = byte_offset;
      if (byte_offset.3476 == 0) goto <D.30709>; else goto <D.30710>;
      <D.30709>:
      code.3477 = code;
      code.3504 = code.3477;
      code.3505 = code.3504 + 1;
      code = code.3505;
      *code.3504 = 7;
      goto <D.23743>;
      <D.30710>:
      byte_offset.3476 = byte_offset;
      byte_offset.3486 = (unsigned int) byte_offset.3476;
      D.30683 = byte_offset.3486 + 128;
      if (D.30683 <= 255) goto <D.30713>; else goto <D.30714>;
      <D.30713>:
      code.3477 = code;
      code.3506 = code.3477;
      code.3507 = code.3506 + 1;
      code = code.3507;
      *code.3506 = 71;
      code.3477 = code;
      byte_offset.3476 = byte_offset;
      D.30690 = (unsigned char) byte_offset.3476;
      *code.3477 = D.30690;
      code.3477 = code;
      code.3491 = code.3477 + 1;
      code = code.3491;
      goto <D.30717>;
      <D.30714>:
      code.3477 = code;
      code.3508 = code.3477;
      code.3509 = code.3508 + 1;
      code = code.3509;
      *code.3508 = 135;
      {
        union x86_imm_buf imb;

        try
          {
            byte_offset.3476 = byte_offset;
            imb.val = byte_offset.3476;
            code.3477 = code;
            code.3510 = code.3477;
            code.3511 = code.3510 + 1;
            code = code.3511;
            D.30722 = imb.b[0];
            *code.3510 = D.30722;
            code.3477 = code;
            code.3512 = code.3477;
            code.3513 = code.3512 + 1;
            code = code.3513;
            D.30725 = imb.b[1];
            *code.3512 = D.30725;
            code.3477 = code;
            code.3514 = code.3477;
            code.3515 = code.3514 + 1;
            code = code.3515;
            D.30728 = imb.b[2];
            *code.3514 = D.30728;
            code.3477 = code;
            code.3516 = code.3477;
            code.3517 = code.3516 + 1;
            code = code.3517;
            D.30731 = imb.b[3];
            *code.3516 = D.30731;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30717>:
      <D.23743>:
      {
        union x86_imm_buf imb;

        try
          {
            bitmask.3518 = bitmask;
            D.30733 = (int) bitmask.3518;
            imb.val = D.30733;
            code.3477 = code;
            code.3519 = code.3477;
            code.3520 = code.3519 + 1;
            code = code.3520;
            D.30736 = imb.b[0];
            *code.3519 = D.30736;
            code.3477 = code;
            code.3521 = code.3477;
            code.3522 = code.3521 + 1;
            code = code.3522;
            D.30739 = imb.b[1];
            *code.3521 = D.30739;
            code.3477 = code;
            code.3523 = code.3477;
            code.3524 = code.3523 + 1;
            code = code.3524;
            D.30742 = imb.b[2];
            *code.3523 = D.30742;
            code.3477 = code;
            code.3525 = code.3477;
            code.3526 = code.3525 + 1;
            code = code.3526;
            D.30745 = imb.b[3];
            *code.3525 = D.30745;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      jump = code;
      if (1 != 0) goto <D.30746>; else goto <D.30747>;
      <D.30746>:
      code.3477 = code;
      code.3527 = code.3477;
      code.3528 = code.3527 + 1;
      code = code.3528;
      D.30750 = 116;
      *code.3527 = D.30750;
      goto <D.30751>;
      <D.30747>:
      code.3477 = code;
      code.3529 = code.3477;
      code.3530 = code.3529 + 1;
      code = code.3530;
      D.30754 = 116;
      *code.3529 = D.30754;
      <D.30751>:
      code.3477 = code;
      *code.3477 = 255;
      code.3477 = code;
      code.3491 = code.3477 + 1;
      code = code.3491;
      code.3477 = code;
      code.3531 = code.3477;
      code.3532 = code.3531 + 1;
      code = code.3532;
      *code.3531 = 195;
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump + 1;
        size = 0;
        D.30757 = MEM[(unsigned char *)jump];
        D.30758 = (int) D.30757;
        switch (D.30758) <default: <D.23774>, case 15: <D.23752>, case 112: <D.23758>, case 113: <D.23759>, case 114: <D.23760>, case 115: <D.23761>, case 116: <D.23762>, case 117: <D.23763>, case 118: <D.23764>, case 119: <D.23765>, case 120: <D.23766>, case 121: <D.23767>, case 122: <D.23768>, case 123: <D.23769>, case 124: <D.23770>, case 125: <D.23771>, case 126: <D.23772>, case 127: <D.23773>, case 224: <D.23754>, case 225: <D.23755>, case 226: <D.23756>, case 232: <D.23749>, case 233: <D.23750>, case 235: <D.23757>>
        <D.23749>:
        <D.23750>:
        size = size + 1;
        goto <D.23751>;
        <D.23752>:
        D.30759 = *pos;
        D.30760 = D.30759 + 144;
        if (D.30760 > 31) goto <D.30761>; else goto <D.30762>;
        <D.30761>:
        __assert_fail ("0", "tramp-amd64.c", 930, &__PRETTY_FUNCTION__);
        <D.30762>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23751>;
        <D.23754>:
        <D.23755>:
        <D.23756>:
        <D.23757>:
        <D.23758>:
        <D.23759>:
        <D.23760>:
        <D.23761>:
        <D.23762>:
        <D.23763>:
        <D.23764>:
        <D.23765>:
        <D.23766>:
        <D.23767>:
        <D.23768>:
        <D.23769>:
        <D.23770>:
        <D.23771>:
        <D.23772>:
        <D.23773>:
        goto <D.23751>;
        <D.23774>:
        __assert_fail ("0", "tramp-amd64.c", 930, &__PRETTY_FUNCTION__);
        <D.23751>:
        code.3477 = code;
        code.3533 = (long int) code.3477;
        pos.3534 = (long int) pos;
        D.30765 = code.3533 - pos.3534;
        disp = (int) D.30765;
        if (size != 0) goto <D.30766>; else goto <D.30767>;
        <D.30766>:
        {
          union x86_imm_buf imb;

          try
            {
              D.30768 = disp + -4;
              imb.val = D.30768;
              pos.3535 = pos;
              pos = pos.3535 + 1;
              D.30770 = imb.b[0];
              *pos.3535 = D.30770;
              pos.3536 = pos;
              pos = pos.3536 + 1;
              D.30772 = imb.b[1];
              *pos.3536 = D.30772;
              pos.3537 = pos;
              pos = pos.3537 + 1;
              D.30774 = imb.b[2];
              *pos.3537 = D.30774;
              pos.3538 = pos;
              pos = pos.3538 + 1;
              D.30776 = imb.b[3];
              *pos.3538 = D.30776;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.30777>;
        <D.30767>:
        disp.3539 = (unsigned int) disp;
        D.30779 = disp.3539 + 127;
        if (D.30779 <= 255) goto <D.30780>; else goto <D.30781>;
        <D.30780>:
        D.30782 = (unsigned char) disp;
        D.30783 = D.30782 + 255;
        *pos = D.30783;
        pos = pos + 1;
        goto <D.30784>;
        <D.30781>:
        __assert_fail ("0", "tramp-amd64.c", 930, &__PRETTY_FUNCTION__);
        <D.30784>:
        <D.30777>:
      }
      if (aot != 0) goto <D.30785>; else goto <D.30786>;
      <D.30785>:
      code.3477 = code;
      buf.3475 = buf;
      code.3540 = mono_arch_emit_load_aotconst (buf.3475, code.3477, &ji, 32, "specific_trampoline_generic_class_init");
      code = code.3540;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.30788>; else goto <D.30789>;
        <D.30788>:
        code.3477 = code;
        code.3541 = code.3477;
        code.3542 = code.3541 + 1;
        code = code.3542;
        D.30792 = _amd64_rex_bits | 64;
        *code.3541 = D.30792;
        <D.30789>:
      }
      code.3477 = code;
      code.3543 = code.3477;
      code.3544 = code.3543 + 1;
      code = code.3544;
      *code.3543 = 255;
      code.3477 = code;
      code.3545 = code.3477;
      code.3546 = code.3545 + 1;
      code = code.3546;
      *code.3545 = 227;
      goto <D.30797>;
      <D.30786>:
      D.30798 = mono_get_root_domain ();
      tramp = mono_arch_create_specific_trampoline (0B, 3, D.30798, 0B);
      tramp.3547 = (long int) tramp;
      code.3477 = code;
      code.3533 = (long int) code.3477;
      D.30800 = tramp.3547 - code.3533;
      D.30801 = (unsigned long) D.30800;
      D.30802 = D.30801 + 2147483648;
      if (D.30802 <= 4294967295) goto <D.30803>; else goto <D.30804>;
      <D.30803>:
      {
        int t;

        tramp.3547 = (long int) tramp;
        code.3477 = code;
        code.3533 = (long int) code.3477;
        D.30800 = tramp.3547 - code.3533;
        D.30805 = (unsigned int) D.30800;
        D.30806 = D.30805 + 4294967294;
        t = (int) D.30806;
        t.3548 = (unsigned int) t;
        D.30808 = t.3548 + 128;
        if (D.30808 <= 255) goto <D.30809>; else goto <D.30810>;
        <D.30809>:
        code.3477 = code;
        code.3549 = code.3477;
        code.3550 = code.3549 + 1;
        code = code.3550;
        *code.3549 = 235;
        code.3477 = code;
        D.30813 = (unsigned char) t;
        *code.3477 = D.30813;
        code.3477 = code;
        code.3491 = code.3477 + 1;
        code = code.3491;
        goto <D.30814>;
        <D.30810>:
        tramp.3547 = (long int) tramp;
        code.3477 = code;
        code.3533 = (long int) code.3477;
        D.30800 = tramp.3547 - code.3533;
        D.30805 = (unsigned int) D.30800;
        D.30815 = D.30805 + 4294967291;
        t = (int) D.30815;
        code.3477 = code;
        code.3551 = code.3477;
        code.3552 = code.3551 + 1;
        code = code.3552;
        *code.3551 = 233;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = t;
              code.3477 = code;
              code.3553 = code.3477;
              code.3554 = code.3553 + 1;
              code = code.3554;
              D.30820 = imb.b[0];
              *code.3553 = D.30820;
              code.3477 = code;
              code.3555 = code.3477;
              code.3556 = code.3555 + 1;
              code = code.3556;
              D.30823 = imb.b[1];
              *code.3555 = D.30823;
              code.3477 = code;
              code.3557 = code.3477;
              code.3558 = code.3557 + 1;
              code = code.3558;
              D.30826 = imb.b[2];
              *code.3557 = D.30826;
              code.3477 = code;
              code.3559 = code.3477;
              code.3560 = code.3559 + 1;
              code = code.3560;
              D.30829 = imb.b[3];
              *code.3559 = D.30829;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.30814>:
      }
      goto <D.30830>;
      <D.30804>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.30831>; else goto <D.30832>;
        <D.30831>:
        code.3477 = code;
        code.3561 = code.3477;
        code.3562 = code.3561 + 1;
        code = code.3562;
        D.30835 = _amd64_rex_bits | 64;
        *code.3561 = D.30835;
        <D.30832>:
      }
      code.3477 = code;
      code.3563 = code.3477;
      code.3564 = code.3563 + 1;
      code = code.3564;
      *code.3563 = 255;
      if (1 != 0) goto <D.30838>; else goto <D.30839>;
      <D.30838>:
      code.3477 = code;
      code.3565 = code.3477;
      code.3566 = code.3565 + 1;
      code = code.3566;
      *code.3565 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3477 = code;
            code.3567 = code.3477;
            code.3568 = code.3567 + 1;
            code = code.3568;
            D.30844 = imb.b[0];
            *code.3567 = D.30844;
            code.3477 = code;
            code.3569 = code.3477;
            code.3570 = code.3569 + 1;
            code = code.3570;
            D.30847 = imb.b[1];
            *code.3569 = D.30847;
            code.3477 = code;
            code.3571 = code.3477;
            code.3572 = code.3571 + 1;
            code = code.3572;
            D.30850 = imb.b[2];
            *code.3571 = D.30850;
            code.3477 = code;
            code.3573 = code.3477;
            code.3574 = code.3573 + 1;
            code = code.3574;
            D.30853 = imb.b[3];
            *code.3573 = D.30853;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.30854>;
      <D.30839>:
      if (0 != 0) goto <D.30855>; else goto <D.30856>;
      <D.30855>:
      if (1 != 0) goto <D.30857>; else goto <D.30858>;
      <D.30857>:
      code.3477 = code;
      code.3575 = code.3477;
      code.3576 = code.3575 + 1;
      code = code.3576;
      *code.3575 = 36;
      code.3477 = code;
      code.3577 = code.3477;
      code.3578 = code.3577 + 1;
      code = code.3578;
      *code.3577 = 36;
      goto <D.30863>;
      <D.30858>:
      if (1 != 0) goto <D.30864>; else goto <D.30865>;
      <D.30864>:
      code.3477 = code;
      code.3579 = code.3477;
      code.3580 = code.3579 + 1;
      code = code.3580;
      *code.3579 = 100;
      code.3477 = code;
      code.3581 = code.3477;
      code.3582 = code.3581 + 1;
      code = code.3582;
      *code.3581 = 36;
      code.3477 = code;
      *code.3477 = 0;
      code.3477 = code;
      code.3491 = code.3477 + 1;
      code = code.3491;
      goto <D.30870>;
      <D.30865>:
      code.3477 = code;
      code.3583 = code.3477;
      code.3584 = code.3583 + 1;
      code = code.3584;
      *code.3583 = 164;
      code.3477 = code;
      code.3585 = code.3477;
      code.3586 = code.3585 + 1;
      code = code.3586;
      *code.3585 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3477 = code;
            code.3587 = code.3477;
            code.3588 = code.3587 + 1;
            code = code.3588;
            D.30877 = imb.b[0];
            *code.3587 = D.30877;
            code.3477 = code;
            code.3589 = code.3477;
            code.3590 = code.3589 + 1;
            code = code.3590;
            D.30880 = imb.b[1];
            *code.3589 = D.30880;
            code.3477 = code;
            code.3591 = code.3477;
            code.3592 = code.3591 + 1;
            code = code.3592;
            D.30883 = imb.b[2];
            *code.3591 = D.30883;
            code.3477 = code;
            code.3593 = code.3477;
            code.3594 = code.3593 + 1;
            code = code.3594;
            D.30886 = imb.b[3];
            *code.3593 = D.30886;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30870>:
      <D.30863>:
      goto <D.23782>;
      <D.30856>:
      if (1 != 0) goto <D.30887>; else goto <D.30888>;
      <D.30887>:
      code.3477 = code;
      code.3595 = code.3477;
      code.3596 = code.3595 + 1;
      code = code.3596;
      *code.3595 = 32;
      goto <D.23782>;
      <D.30888>:
      if (1 != 0) goto <D.30891>; else goto <D.30892>;
      <D.30891>:
      code.3477 = code;
      code.3597 = code.3477;
      code.3598 = code.3597 + 1;
      code = code.3598;
      *code.3597 = 96;
      code.3477 = code;
      *code.3477 = 0;
      code.3477 = code;
      code.3491 = code.3477 + 1;
      code = code.3491;
      goto <D.30895>;
      <D.30892>:
      code.3477 = code;
      code.3599 = code.3477;
      code.3600 = code.3599 + 1;
      code = code.3600;
      *code.3599 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3477 = code;
            code.3601 = code.3477;
            code.3602 = code.3601 + 1;
            code = code.3602;
            D.30900 = imb.b[0];
            *code.3601 = D.30900;
            code.3477 = code;
            code.3603 = code.3477;
            code.3604 = code.3603 + 1;
            code = code.3604;
            D.30903 = imb.b[1];
            *code.3603 = D.30903;
            code.3477 = code;
            code.3605 = code.3477;
            code.3606 = code.3605 + 1;
            code = code.3606;
            D.30906 = imb.b[2];
            *code.3605 = D.30906;
            code.3477 = code;
            code.3607 = code.3477;
            code.3608 = code.3607 + 1;
            code = code.3608;
            D.30909 = imb.b[3];
            *code.3607 = D.30909;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.30895>:
      <D.23782>:
      <D.30854>:
      code.3477 = code;
      tramp.3609 = (long unsigned int) tramp;
      MEM[(guint64 *)code.3477] = tramp.3609;
      code.3477 = code;
      code.3610 = code.3477 + 8;
      code = code.3610;
      <D.30830>:
      <D.30797>:
      nacl_global_codeman_validate (&buf, tramp_size, &code);
      code.3477 = code;
      code.3533 = (long int) code.3477;
      buf.3475 = buf;
      buf.3611 = (long int) buf.3475;
      D.30913 = code.3533 - buf.3611;
      D.30914 = (int) D.30913;
      buf.3475 = buf;
      mono_arch_flush_icache (buf.3475, D.30914);
      code.3477 = code;
      code.3533 = (long int) code.3477;
      buf.3475 = buf;
      buf.3611 = (long int) buf.3475;
      D.30913 = code.3533 - buf.3611;
      D.30915 = (long int) tramp_size;
      D.30916 = D.30913 > D.30915;
      D.30917 = (long int) D.30916;
      D.30918 = __builtin_expect (D.30917, 0);
      if (D.30918 != 0) goto <D.30919>; else goto <D.30920>;
      <D.30919>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 946, "code - buf <= tramp_size");
      <D.30920>:
      if (info != 0B) goto <D.30921>; else goto <D.30922>;
      <D.30921>:
      ji.3612 = ji;
      code.3477 = code;
      code.3533 = (long int) code.3477;
      buf.3475 = buf;
      buf.3611 = (long int) buf.3475;
      D.30913 = code.3533 - buf.3611;
      D.30924 = (unsigned int) D.30913;
      buf.3475 = buf;
      D.30925 = mono_tramp_info_create ("generic_class_init_trampoline", buf.3475, D.30924, ji.3612, unwind_ops);
      *info = D.30925;
      <D.30922>:
      D.30926 = buf;
      return D.30926;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
      ji = {CLOBBER};
    }
}


memset (void * __dest, int __ch, size_t __len)
{
  int D.30932;
  int D.30937;
  void * D.30939;
  long unsigned int D.30940;

  D.30932 = __builtin_constant_p (__len);
  if (D.30932 != 0) goto <D.30933>; else goto <D.30934>;
  <D.30933>:
  if (__len == 0) goto <D.30935>; else goto <D.30936>;
  <D.30935>:
  D.30937 = __builtin_constant_p (__ch);
  if (D.30937 == 0) goto <D.30930>; else goto <D.30938>;
  <D.30938>:
  if (__ch != 0) goto <D.30930>; else goto <D.30931>;
  <D.30930>:
  __warn_memset_zero_len ();
  D.30939 = __dest;
  return D.30939;
  <D.30931>:
  <D.30936>:
  <D.30934>:
  D.30940 = __builtin_object_size (__dest, 0);
  D.30939 = __builtin___memset_chk (__dest, __ch, __len, D.30940);
  return D.30939;
}


mono_arch_create_monitor_enter_trampoline (struct MonoTrampInfo * * info, gboolean aot)
{
  int owner_offset.3613;
  unsigned int owner_offset.3614;
  unsigned int D.30946;
  _Bool D.30947;
  long int D.30948;
  long int D.30949;
  int nest_offset.3615;
  unsigned int nest_offset.3616;
  unsigned int D.30954;
  _Bool D.30955;
  long int D.30956;
  long int D.30957;
  int owner_offset.3617;
  int nest_offset.3618;
  void * buf.3619;
  guint8 * buf.3620;
  int D.30964;
  guint8 * code.3621;
  guint8 * code.3622;
  guint8 * code.3623;
  unsigned char D.30972;
  guint8 * code.3624;
  guint8 * code.3625;
  guint8 * code.3626;
  guint8 * code.3627;
  guint8 * code.3628;
  guint8 * code.3629;
  unsigned char D.30981;
  guint8 * code.3630;
  guint8 * code.3631;
  unsigned char D.30985;
  guint8 * code.3632;
  guint8 * code.3633;
  guint8 * code.3634;
  guint8 * code.3635;
  guint8 * code.3636;
  unsigned char D.30995;
  guint8 * code.3637;
  guint8 * code.3638;
  guint8 * code.3639;
  guint8 * code.3640;
  guint8 * code.3641;
  guint8 * code.3642;
  guint8 * code.3643;
  guint8 * code.3644;
  unsigned char D.31006;
  guint8 * code.3645;
  guint8 * code.3646;
  unsigned char D.31009;
  guint8 * code.3647;
  guint8 * code.3648;
  unsigned char D.31012;
  guint8 * code.3649;
  guint8 * code.3650;
  unsigned char D.31015;
  guint8 * code.3651;
  guint8 * code.3652;
  guint8 * code.3653;
  guint8 * code.3654;
  guint8 * code.3655;
  guint8 * code.3656;
  guint8 * code.3657;
  guint8 * code.3658;
  guint8 * code.3659;
  guint8 * code.3660;
  guint8 * code.3661;
  guint8 * code.3662;
  guint8 * code.3663;
  guint8 * code.3664;
  unsigned char D.31039;
  guint8 * code.3665;
  guint8 * code.3666;
  unsigned char D.31042;
  guint8 * code.3667;
  guint8 * code.3668;
  unsigned char D.31045;
  guint8 * code.3669;
  guint8 * code.3670;
  unsigned char D.31048;
  guint8 * code.3671;
  guint8 * code.3672;
  guint8 * code.3673;
  guint8 * code.3674;
  guint8 * code.3675;
  guint8 * code.3676;
  guint8 * code.3677;
  guint8 * code.3678;
  unsigned char D.31062;
  guint8 * code.3679;
  guint8 * code.3680;
  unsigned char D.31065;
  guint8 * code.3681;
  guint8 * code.3682;
  unsigned char D.31068;
  guint8 * code.3683;
  guint8 * code.3684;
  unsigned char D.31071;
  int D.31072;
  guint8 * code.3685;
  guint8 * code.3686;
  unsigned char D.31079;
  guint8 * code.3687;
  guint8 * code.3688;
  guint8 * code.3689;
  guint8 * code.3690;
  guint8 * code.3691;
  guint8 * code.3692;
  guint8 * code.3693;
  guint8 * code.3694;
  unsigned char D.31091;
  guint8 * code.3695;
  guint8 * code.3696;
  unsigned char D.31094;
  guint8 * code.3697;
  guint8 * code.3698;
  unsigned char D.31097;
  guint8 * code.3699;
  guint8 * code.3700;
  unsigned char D.31100;
  guint8 * code.3701;
  guint8 * code.3702;
  unsigned char D.31105;
  guint8 * code.3703;
  guint8 * code.3704;
  unsigned char D.31109;
  guint8 * code.3705;
  guint8 * code.3706;
  unsigned char D.31116;
  guint8 * code.3707;
  guint8 * code.3708;
  guint8 * code.3709;
  guint8 * code.3710;
  guint8 * code.3711;
  guint8 * code.3712;
  unsigned char D.31128;
  guint8 * code.3713;
  guint8 * code.3714;
  guint8 * code.3715;
  guint8 * code.3716;
  unsigned char D.31133;
  guint8 * code.3717;
  guint8 * code.3718;
  unsigned char D.31136;
  guint8 * code.3719;
  guint8 * code.3720;
  unsigned char D.31139;
  guint8 * code.3721;
  guint8 * code.3722;
  unsigned char D.31142;
  guint8 * code.3723;
  guint8 * code.3724;
  unsigned char D.31148;
  guint8 * code.3725;
  guint8 * code.3726;
  guint8 * code.3727;
  guint8 * code.3728;
  guint8 * code.3729;
  guint8 * code.3730;
  unsigned char D.31155;
  guint8 * code.3731;
  guint8 * code.3732;
  unsigned char D.31158;
  guint8 * code.3733;
  guint8 * code.3734;
  unsigned char D.31161;
  guint8 * code.3735;
  guint8 * code.3736;
  unsigned char D.31164;
  guint8 * code.3737;
  guint8 * code.3738;
  unsigned char D.31169;
  guint8 * code.3739;
  guint8 * code.3740;
  guint8 * code.3741;
  guint8 * code.3742;
  guint8 * code.3743;
  guint8 * code.3744;
  guint8 * code.3745;
  guint8 * code.3746;
  int D.31181;
  guint8 * code.3747;
  guint8 * code.3748;
  guint8 * code.3749;
  guint8 * code.3750;
  guint8 * code.3751;
  unsigned char D.31191;
  guint8 * code.3752;
  guint8 * code.3753;
  guint8 * code.3754;
  guint8 * code.3755;
  guint8 * code.3756;
  guint8 * code.3757;
  guint8 * code.3758;
  guint8 * code.3759;
  unsigned char D.31202;
  guint8 * code.3760;
  guint8 * code.3761;
  unsigned char D.31205;
  guint8 * code.3762;
  guint8 * code.3763;
  unsigned char D.31208;
  guint8 * code.3764;
  guint8 * code.3765;
  unsigned char D.31211;
  guint8 * code.3766;
  guint8 * code.3767;
  guint8 * code.3768;
  guint8 * code.3769;
  guint8 * code.3770;
  guint8 * code.3771;
  guint8 * code.3772;
  guint8 * code.3773;
  guint8 * code.3774;
  guint8 * code.3775;
  guint8 * code.3776;
  guint8 * code.3777;
  guint8 * code.3778;
  guint8 * code.3779;
  unsigned char D.31235;
  guint8 * code.3780;
  guint8 * code.3781;
  unsigned char D.31238;
  guint8 * code.3782;
  guint8 * code.3783;
  unsigned char D.31241;
  guint8 * code.3784;
  guint8 * code.3785;
  unsigned char D.31244;
  guint8 * code.3786;
  guint8 * code.3787;
  guint8 * code.3788;
  guint8 * code.3789;
  guint8 * code.3790;
  guint8 * code.3791;
  guint8 * code.3792;
  guint8 * code.3793;
  unsigned char D.31258;
  guint8 * code.3794;
  guint8 * code.3795;
  unsigned char D.31261;
  guint8 * code.3796;
  guint8 * code.3797;
  unsigned char D.31264;
  guint8 * code.3798;
  guint8 * code.3799;
  unsigned char D.31267;
  guint8 * code.3800;
  guint8 * code.3801;
  unsigned char D.31272;
  guint8 * code.3802;
  guint8 * code.3803;
  guint8 * code.3804;
  guint8 * code.3805;
  guint8 * code.3806;
  guint8 * code.3807;
  unsigned int owner_offset.3808;
  unsigned int D.31287;
  guint8 * code.3809;
  guint8 * code.3810;
  guint8 * code.3811;
  guint8 * code.3812;
  unsigned char D.31294;
  guint8 * code.3813;
  guint8 * code.3814;
  guint8 * code.3815;
  guint8 * code.3816;
  guint8 * code.3817;
  guint8 * code.3818;
  unsigned char D.31302;
  guint8 * code.3819;
  guint8 * code.3820;
  unsigned char D.31305;
  guint8 * code.3821;
  guint8 * code.3822;
  unsigned char D.31308;
  guint8 * code.3823;
  guint8 * code.3824;
  unsigned char D.31311;
  guint8 * code.3825;
  guint8 * code.3826;
  guint8 * code.3827;
  guint8 * code.3828;
  guint8 * code.3829;
  guint8 * code.3830;
  guint8 * code.3831;
  guint8 * code.3832;
  unsigned char D.31325;
  guint8 * code.3833;
  guint8 * code.3834;
  unsigned char D.31328;
  guint8 * code.3835;
  guint8 * code.3836;
  unsigned char D.31331;
  guint8 * code.3837;
  guint8 * code.3838;
  unsigned char D.31334;
  guint8 * code.3839;
  guint8 * code.3840;
  guint8 * code.3841;
  guint8 * code.3842;
  guint8 * code.3843;
  guint8 * code.3844;
  guint8 * code.3845;
  guint8 * code.3846;
  guint8 * code.3847;
  guint8 * code.3848;
  guint8 * code.3849;
  guint8 * code.3850;
  guint8 * code.3851;
  guint8 * code.3852;
  guint8 * code.3853;
  guint8 * code.3854;
  unsigned char D.31360;
  guint8 * code.3855;
  guint8 * code.3856;
  unsigned char D.31363;
  guint8 * code.3857;
  guint8 * code.3858;
  unsigned char D.31366;
  guint8 * code.3859;
  guint8 * code.3860;
  unsigned char D.31369;
  guint8 * code.3861;
  guint8 * code.3862;
  guint8 * code.3863;
  guint8 * code.3864;
  guint8 * code.3865;
  guint8 * code.3866;
  guint8 * code.3867;
  guint8 * code.3868;
  unsigned char D.31383;
  guint8 * code.3869;
  guint8 * code.3870;
  unsigned char D.31386;
  guint8 * code.3871;
  guint8 * code.3872;
  unsigned char D.31389;
  guint8 * code.3873;
  guint8 * code.3874;
  unsigned char D.31392;
  guint8 * code.3875;
  guint8 * code.3876;
  unsigned char D.31395;
  guint8 * code.3877;
  guint8 * code.3878;
  unsigned char D.31398;
  guint8 * code.3879;
  guint8 * code.3880;
  unsigned char D.31401;
  guint8 * code.3881;
  guint8 * code.3882;
  unsigned char D.31404;
  guint8 * code.3883;
  guint8 * code.3884;
  guint8 * code.3885;
  guint8 * code.3886;
  guint8 * code.3887;
  guint8 * code.3888;
  unsigned char D.31416;
  guint8 * code.3889;
  guint8 * code.3890;
  guint8 * code.3891;
  guint8 * code.3892;
  guint8 * code.3893;
  guint8 * code.3894;
  guint8 * code.3895;
  guint8 * code.3896;
  unsigned char D.31427;
  guint8 * code.3897;
  guint8 * code.3898;
  guint8 * code.3899;
  guint8 * code.3900;
  guint8 * code.3901;
  guint8 * code.3902;
  guint8 * code.3903;
  guint8 * code.3904;
  guint8 * code.3905;
  guint8 * code.3906;
  guint8 * code.3907;
  guint8 * code.3908;
  guint8 * code.3909;
  guint8 * code.3910;
  guint8 * code.3911;
  guint8 * code.3912;
  guint8 * code.3913;
  guint8 * code.3914;
  unsigned char D.31454;
  guint8 * code.3915;
  guint8 * code.3916;
  unsigned char D.31457;
  guint8 * code.3917;
  guint8 * code.3918;
  unsigned char D.31460;
  guint8 * code.3919;
  guint8 * code.3920;
  unsigned char D.31463;
  guint8 * code.3921;
  guint8 * code.3922;
  guint8 * code.3923;
  guint8 * code.3924;
  guint8 * code.3925;
  guint8 * code.3926;
  guint8 * code.3927;
  guint8 * code.3928;
  unsigned char D.31477;
  guint8 * code.3929;
  guint8 * code.3930;
  unsigned char D.31480;
  guint8 * code.3931;
  guint8 * code.3932;
  unsigned char D.31483;
  guint8 * code.3933;
  guint8 * code.3934;
  unsigned char D.31486;
  guint8 * code.3935;
  guint8 * code.3936;
  guint8 * code.3937;
  guint8 * code.3938;
  guint8 * code.3939;
  guint8 * code.3940;
  unsigned char D.31496;
  int D.31497;
  unsigned char D.31498;
  unsigned char D.31499;
  long int code.3941;
  long int pos.3942;
  long int D.31504;
  int D.31507;
  unsigned char * pos.3943;
  unsigned char D.31509;
  unsigned char * pos.3944;
  unsigned char D.31511;
  unsigned char * pos.3945;
  unsigned char D.31513;
  unsigned char * pos.3946;
  unsigned char D.31515;
  unsigned int disp.3947;
  unsigned int D.31518;
  unsigned char D.31521;
  unsigned char D.31522;
  guint8 * code.3948;
  guint8 * code.3949;
  unsigned char D.31528;
  guint8 * code.3950;
  guint8 * code.3951;
  guint8 * code.3952;
  guint8 * code.3953;
  guint8 * code.3954;
  guint8 * code.3955;
  guint8 * code.3956;
  guint8 * code.3957;
  guint8 * code.3958;
  guint8 * code.3959;
  guint8 * code.3960;
  guint8 * code.3961;
  guint8 * code.3962;
  guint8 * code.3963;
  guint8 * code.3964;
  guint8 * code.3965;
  unsigned char D.31553;
  guint8 * code.3966;
  guint8 * code.3967;
  unsigned char D.31556;
  guint8 * code.3968;
  guint8 * code.3969;
  unsigned char D.31559;
  guint8 * code.3970;
  guint8 * code.3971;
  unsigned char D.31562;
  guint8 * code.3972;
  guint8 * code.3973;
  guint8 * code.3974;
  guint8 * code.3975;
  guint8 * code.3976;
  guint8 * code.3977;
  guint8 * code.3978;
  guint8 * code.3979;
  unsigned char D.31576;
  guint8 * code.3980;
  guint8 * code.3981;
  unsigned char D.31579;
  guint8 * code.3982;
  guint8 * code.3983;
  unsigned char D.31582;
  guint8 * code.3984;
  guint8 * code.3985;
  unsigned char D.31585;
  guint8 * code.3986;
  guint8 * code.3987;
  guint8 * code.3988;
  guint8 * code.3989;
  guint8 * code.3990;
  guint8 * code.3991;
  unsigned char D.31597;
  guint8 * code.3992;
  guint8 * code.3993;
  guint8 * code.3994;
  guint8 * code.3995;
  guint8 * code.3996;
  guint8 * code.3997;
  unsigned int nest_offset.3998;
  unsigned int D.31610;
  guint8 * code.3999;
  guint8 * code.4000;
  guint8 * code.4001;
  guint8 * code.4002;
  unsigned char D.31617;
  guint8 * code.4003;
  guint8 * code.4004;
  guint8 * code.4005;
  guint8 * code.4006;
  guint8 * code.4007;
  guint8 * code.4008;
  unsigned char D.31625;
  guint8 * code.4009;
  guint8 * code.4010;
  unsigned char D.31628;
  guint8 * code.4011;
  guint8 * code.4012;
  unsigned char D.31631;
  guint8 * code.4013;
  guint8 * code.4014;
  unsigned char D.31634;
  guint8 * code.4015;
  guint8 * code.4016;
  guint8 * code.4017;
  guint8 * code.4018;
  guint8 * code.4019;
  guint8 * code.4020;
  guint8 * code.4021;
  guint8 * code.4022;
  unsigned char D.31648;
  guint8 * code.4023;
  guint8 * code.4024;
  unsigned char D.31651;
  guint8 * code.4025;
  guint8 * code.4026;
  unsigned char D.31654;
  guint8 * code.4027;
  guint8 * code.4028;
  unsigned char D.31657;
  guint8 * code.4029;
  guint8 * code.4030;
  unsigned char D.31660;
  int D.31661;
  unsigned char D.31662;
  unsigned char D.31663;
  long int pos.4031;
  long int D.31667;
  int D.31670;
  unsigned char * pos.4032;
  unsigned char D.31672;
  unsigned char * pos.4033;
  unsigned char D.31674;
  unsigned char * pos.4034;
  unsigned char D.31676;
  unsigned char * pos.4035;
  unsigned char D.31678;
  unsigned int disp.4036;
  unsigned int D.31681;
  unsigned char D.31684;
  unsigned char D.31685;
  unsigned char D.31689;
  int D.31690;
  unsigned char D.31691;
  unsigned char D.31692;
  long int pos.4037;
  long int D.31696;
  int D.31699;
  unsigned char * pos.4038;
  unsigned char D.31701;
  unsigned char * pos.4039;
  unsigned char D.31703;
  unsigned char * pos.4040;
  unsigned char D.31705;
  unsigned char * pos.4041;
  unsigned char D.31707;
  unsigned int disp.4042;
  unsigned int D.31710;
  unsigned char D.31713;
  unsigned char D.31714;
  unsigned char D.31716;
  int D.31717;
  unsigned char D.31718;
  unsigned char D.31719;
  long int pos.4043;
  long int D.31723;
  int D.31726;
  unsigned char * pos.4044;
  unsigned char D.31728;
  unsigned char * pos.4045;
  unsigned char D.31730;
  unsigned char * pos.4046;
  unsigned char D.31732;
  unsigned char * pos.4047;
  unsigned char D.31734;
  unsigned int disp.4048;
  unsigned int D.31737;
  unsigned char D.31740;
  unsigned char D.31741;
  unsigned char D.31743;
  int D.31744;
  unsigned char D.31745;
  unsigned char D.31746;
  long int pos.4049;
  long int D.31750;
  int D.31753;
  unsigned char * pos.4050;
  unsigned char D.31755;
  unsigned char * pos.4051;
  unsigned char D.31757;
  unsigned char * pos.4052;
  unsigned char D.31759;
  unsigned char * pos.4053;
  unsigned char D.31761;
  unsigned int disp.4054;
  unsigned int D.31764;
  unsigned char D.31767;
  unsigned char D.31768;
  unsigned char D.31770;
  int D.31771;
  unsigned char D.31772;
  unsigned char D.31773;
  long int pos.4055;
  long int D.31777;
  int D.31780;
  unsigned char * pos.4056;
  unsigned char D.31782;
  unsigned char * pos.4057;
  unsigned char D.31784;
  unsigned char * pos.4058;
  unsigned char D.31786;
  unsigned char * pos.4059;
  unsigned char D.31788;
  unsigned int disp.4060;
  unsigned int D.31791;
  unsigned char D.31794;
  unsigned char D.31795;
  guint8 * code.4061;
  guint8 * code.4062;
  guint8 * code.4063;
  unsigned char D.31804;
  guint8 * code.4064;
  guint8 * code.4065;
  guint8 * code.4066;
  guint8 * code.4067;
  struct MonoDomain * D.31810;
  long int tramp.4068;
  long int D.31812;
  unsigned long D.31813;
  unsigned long D.31814;
  unsigned int D.31817;
  unsigned int D.31818;
  unsigned int t.4069;
  unsigned int D.31820;
  guint8 * code.4070;
  guint8 * code.4071;
  unsigned char D.31825;
  unsigned int D.31827;
  guint8 * code.4072;
  guint8 * code.4073;
  guint8 * code.4074;
  guint8 * code.4075;
  unsigned char D.31832;
  guint8 * code.4076;
  guint8 * code.4077;
  unsigned char D.31835;
  guint8 * code.4078;
  guint8 * code.4079;
  unsigned char D.31838;
  guint8 * code.4080;
  guint8 * code.4081;
  unsigned char D.31841;
  guint8 * code.4082;
  guint8 * code.4083;
  unsigned char D.31847;
  guint8 * code.4084;
  guint8 * code.4085;
  guint8 * code.4086;
  guint8 * code.4087;
  guint8 * code.4088;
  guint8 * code.4089;
  unsigned char D.31856;
  guint8 * code.4090;
  guint8 * code.4091;
  unsigned char D.31859;
  guint8 * code.4092;
  guint8 * code.4093;
  unsigned char D.31862;
  guint8 * code.4094;
  guint8 * code.4095;
  unsigned char D.31865;
  guint8 * code.4096;
  guint8 * code.4097;
  guint8 * code.4098;
  guint8 * code.4099;
  guint8 * code.4100;
  guint8 * code.4101;
  guint8 * code.4102;
  guint8 * code.4103;
  guint8 * code.4104;
  guint8 * code.4105;
  guint8 * code.4106;
  guint8 * code.4107;
  guint8 * code.4108;
  guint8 * code.4109;
  unsigned char D.31889;
  guint8 * code.4110;
  guint8 * code.4111;
  unsigned char D.31892;
  guint8 * code.4112;
  guint8 * code.4113;
  unsigned char D.31895;
  guint8 * code.4114;
  guint8 * code.4115;
  unsigned char D.31898;
  guint8 * code.4116;
  guint8 * code.4117;
  guint8 * code.4118;
  guint8 * code.4119;
  guint8 * code.4120;
  guint8 * code.4121;
  guint8 * code.4122;
  guint8 * code.4123;
  unsigned char D.31912;
  guint8 * code.4124;
  guint8 * code.4125;
  unsigned char D.31915;
  guint8 * code.4126;
  guint8 * code.4127;
  unsigned char D.31918;
  guint8 * code.4128;
  guint8 * code.4129;
  unsigned char D.31921;
  long unsigned int tramp.4130;
  guint8 * code.4131;
  long int buf.4132;
  long int D.31925;
  int D.31926;
  long int D.31927;
  _Bool D.31928;
  long int D.31929;
  long int D.31930;
  struct MonoJumpInfo * ji.4133;
  unsigned int D.31936;
  struct MonoTrampInfo * D.31937;
  void * D.31938;
  guint8 * tramp;
  guint8 * code;
  guint8 * buf;
  guint8 * jump_obj_null;
  guint8 * jump_sync_null;
  guint8 * jump_cmpxchg_failed;
  guint8 * jump_other_owner;
  guint8 * jump_tid;
  guint8 * jump_sync_thin_hash;
  int tramp_size;
  int owner_offset;
  int nest_offset;
  int dummy;
  struct MonoJumpInfo * ji;
  struct GSList * unwind_ops;
  static const char __PRETTY_FUNCTION__[42] = "mono_arch_create_monitor_enter_trampoline";

  try
    {
      jump_sync_thin_hash = 0B;
      ji = 0B;
      unwind_ops = 0B;
      if (0 != 0) goto <D.30942>; else goto <D.30943>;
      <D.30942>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 967, "MONO_ARCH_MONITOR_OBJECT_REG == AMD64_RDI");
      <D.30943>:
      mono_monitor_threads_sync_members_offset (&owner_offset, &nest_offset, &dummy);
      owner_offset.3613 = owner_offset;
      owner_offset.3614 = (unsigned int) owner_offset.3613;
      D.30946 = owner_offset.3614 & 255;
      D.30947 = D.30946 != 8;
      D.30948 = (long int) D.30947;
      D.30949 = __builtin_expect (D.30948, 0);
      if (D.30949 != 0) goto <D.30950>; else goto <D.30951>;
      <D.30950>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 970, "MONO_THREADS_SYNC_MEMBER_SIZE (owner_offset) == sizeof (gpointer)");
      <D.30951>:
      nest_offset.3615 = nest_offset;
      nest_offset.3616 = (unsigned int) nest_offset.3615;
      D.30954 = nest_offset.3616 & 255;
      D.30955 = D.30954 != 4;
      D.30956 = (long int) D.30955;
      D.30957 = __builtin_expect (D.30956, 0);
      if (D.30957 != 0) goto <D.30958>; else goto <D.30959>;
      <D.30958>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 971, "MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32)");
      <D.30959>:
      owner_offset.3613 = owner_offset;
      owner_offset.3617 = owner_offset.3613 >> 8;
      owner_offset = owner_offset.3617;
      nest_offset.3615 = nest_offset;
      nest_offset.3618 = nest_offset.3615 >> 8;
      nest_offset = nest_offset.3618;
      tramp_size = 96;
      buf.3619 = mono_global_codeman_reserve (tramp_size);
      buf = buf.3619;
      buf.3620 = buf;
      code = buf.3620;
      unwind_ops = mono_arch_get_cie_program ();
      D.30964 = mono_thread_get_tls_offset ();
      if (D.30964 != -1) goto <D.30965>; else goto <D.30966>;
      <D.30965>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30967>; else goto <D.30968>;
        <D.30967>:
        code.3621 = code;
        code.3622 = code.3621;
        code.3623 = code.3622 + 1;
        code = code.3623;
        D.30972 = _amd64_rex_bits | 64;
        *code.3622 = D.30972;
        <D.30968>:
      }
      code.3621 = code;
      code.3624 = code.3621;
      code.3625 = code.3624 + 1;
      code = code.3625;
      *code.3624 = 133;
      code.3621 = code;
      code.3626 = code.3621;
      code.3627 = code.3626 + 1;
      code = code.3627;
      *code.3626 = 255;
      jump_obj_null = code;
      if (1 != 0) goto <D.30977>; else goto <D.30978>;
      <D.30977>:
      code.3621 = code;
      code.3628 = code.3621;
      code.3629 = code.3628 + 1;
      code = code.3629;
      D.30981 = 116;
      *code.3628 = D.30981;
      goto <D.30982>;
      <D.30978>:
      code.3621 = code;
      code.3630 = code.3621;
      code.3631 = code.3630 + 1;
      code = code.3631;
      D.30985 = 116;
      *code.3630 = D.30985;
      <D.30982>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      if (0 != 0) goto <D.30987>; else goto <D.30988>;
      <D.30987>:
      code.3621 = code;
      code.3633 = code.3621;
      code.3634 = code.3633 + 1;
      code = code.3634;
      *code.3633 = 102;
      <D.30988>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.30991>; else goto <D.30992>;
        <D.30991>:
        code.3621 = code;
        code.3635 = code.3621;
        code.3636 = code.3635 + 1;
        code = code.3636;
        D.30995 = _amd64_rex_bits | 64;
        *code.3635 = D.30995;
        <D.30992>:
      }
      switch (8) <default: <D.23810>, case 1: <D.23805>, case 2: <D.23807>, case 4: <D.23808>, case 8: <D.23809>>
      <D.23805>:
      code.3621 = code;
      code.3637 = code.3621;
      code.3638 = code.3637 + 1;
      code = code.3638;
      *code.3637 = 138;
      goto <D.23806>;
      <D.23807>:
      <D.23808>:
      <D.23809>:
      code.3621 = code;
      code.3639 = code.3621;
      code.3640 = code.3639 + 1;
      code = code.3640;
      *code.3639 = 139;
      goto <D.23806>;
      <D.23810>:
      __assert_fail ("0", "tramp-amd64.c", 990, &__PRETTY_FUNCTION__);
      <D.23806>:
      if (0 != 0) goto <D.31000>; else goto <D.31001>;
      <D.31000>:
      code.3621 = code;
      code.3641 = code.3621;
      code.3642 = code.3641 + 1;
      code = code.3642;
      *code.3641 = 13;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.3621 = code;
            code.3643 = code.3621;
            code.3644 = code.3643 + 1;
            code = code.3644;
            D.31006 = imb.b[0];
            *code.3643 = D.31006;
            code.3621 = code;
            code.3645 = code.3621;
            code.3646 = code.3645 + 1;
            code = code.3646;
            D.31009 = imb.b[1];
            *code.3645 = D.31009;
            code.3621 = code;
            code.3647 = code.3621;
            code.3648 = code.3647 + 1;
            code = code.3648;
            D.31012 = imb.b[2];
            *code.3647 = D.31012;
            code.3621 = code;
            code.3649 = code.3621;
            code.3650 = code.3649 + 1;
            code = code.3650;
            D.31015 = imb.b[3];
            *code.3649 = D.31015;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.31016>;
      <D.31001>:
      if (0 != 0) goto <D.31017>; else goto <D.31018>;
      <D.31017>:
      if (0 != 0) goto <D.31019>; else goto <D.31020>;
      <D.31019>:
      code.3621 = code;
      code.3651 = code.3621;
      code.3652 = code.3651 + 1;
      code = code.3652;
      *code.3651 = 12;
      code.3621 = code;
      code.3653 = code.3621;
      code.3654 = code.3653 + 1;
      code = code.3654;
      *code.3653 = 36;
      goto <D.31025>;
      <D.31020>:
      if (1 != 0) goto <D.31026>; else goto <D.31027>;
      <D.31026>:
      code.3621 = code;
      code.3655 = code.3621;
      code.3656 = code.3655 + 1;
      code = code.3656;
      *code.3655 = 76;
      code.3621 = code;
      code.3657 = code.3621;
      code.3658 = code.3657 + 1;
      code = code.3658;
      *code.3657 = 36;
      code.3621 = code;
      *code.3621 = 8;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31032>;
      <D.31027>:
      code.3621 = code;
      code.3659 = code.3621;
      code.3660 = code.3659 + 1;
      code = code.3660;
      *code.3659 = 140;
      code.3621 = code;
      code.3661 = code.3621;
      code.3662 = code.3661 + 1;
      code = code.3662;
      *code.3661 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.3621 = code;
            code.3663 = code.3621;
            code.3664 = code.3663 + 1;
            code = code.3664;
            D.31039 = imb.b[0];
            *code.3663 = D.31039;
            code.3621 = code;
            code.3665 = code.3621;
            code.3666 = code.3665 + 1;
            code = code.3666;
            D.31042 = imb.b[1];
            *code.3665 = D.31042;
            code.3621 = code;
            code.3667 = code.3621;
            code.3668 = code.3667 + 1;
            code = code.3668;
            D.31045 = imb.b[2];
            *code.3667 = D.31045;
            code.3621 = code;
            code.3669 = code.3621;
            code.3670 = code.3669 + 1;
            code = code.3670;
            D.31048 = imb.b[3];
            *code.3669 = D.31048;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31032>:
      <D.31025>:
      goto <D.23814>;
      <D.31018>:
      if (0 != 0) goto <D.31049>; else goto <D.31050>;
      <D.31049>:
      code.3621 = code;
      code.3671 = code.3621;
      code.3672 = code.3671 + 1;
      code = code.3672;
      *code.3671 = 15;
      goto <D.23814>;
      <D.31050>:
      if (1 != 0) goto <D.31053>; else goto <D.31054>;
      <D.31053>:
      code.3621 = code;
      code.3673 = code.3621;
      code.3674 = code.3673 + 1;
      code = code.3674;
      *code.3673 = 79;
      code.3621 = code;
      *code.3621 = 8;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31057>;
      <D.31054>:
      code.3621 = code;
      code.3675 = code.3621;
      code.3676 = code.3675 + 1;
      code = code.3676;
      *code.3675 = 143;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.3621 = code;
            code.3677 = code.3621;
            code.3678 = code.3677 + 1;
            code = code.3678;
            D.31062 = imb.b[0];
            *code.3677 = D.31062;
            code.3621 = code;
            code.3679 = code.3621;
            code.3680 = code.3679 + 1;
            code = code.3680;
            D.31065 = imb.b[1];
            *code.3679 = D.31065;
            code.3621 = code;
            code.3681 = code.3621;
            code.3682 = code.3681 + 1;
            code = code.3682;
            D.31068 = imb.b[2];
            *code.3681 = D.31068;
            code.3621 = code;
            code.3683 = code.3621;
            code.3684 = code.3683 + 1;
            code = code.3684;
            D.31071 = imb.b[3];
            *code.3683 = D.31071;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31057>:
      <D.23814>:
      <D.31016>:
      D.31072 = mono_gc_is_moving ();
      if (D.31072 != 0) goto <D.31073>; else goto <D.31074>;
      <D.31073>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31075>; else goto <D.31076>;
        <D.31075>:
        code.3621 = code;
        code.3685 = code.3621;
        code.3686 = code.3685 + 1;
        code = code.3686;
        D.31079 = _amd64_rex_bits | 64;
        *code.3685 = D.31079;
        <D.31076>:
      }
      if (0 != 0) goto <D.31080>; else goto <D.31081>;
      <D.31080>:
      code.3621 = code;
      code.3687 = code.3621;
      code.3688 = code.3687 + 1;
      code = code.3688;
      *code.3687 = 169;
      goto <D.31084>;
      <D.31081>:
      code.3621 = code;
      code.3689 = code.3621;
      code.3690 = code.3689 + 1;
      code = code.3690;
      *code.3689 = 247;
      code.3621 = code;
      code.3691 = code.3621;
      code.3692 = code.3691 + 1;
      code = code.3692;
      *code.3691 = 193;
      <D.31084>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 1;
            code.3621 = code;
            code.3693 = code.3621;
            code.3694 = code.3693 + 1;
            code = code.3694;
            D.31091 = imb.b[0];
            *code.3693 = D.31091;
            code.3621 = code;
            code.3695 = code.3621;
            code.3696 = code.3695 + 1;
            code = code.3696;
            D.31094 = imb.b[1];
            *code.3695 = D.31094;
            code.3621 = code;
            code.3697 = code.3621;
            code.3698 = code.3697 + 1;
            code = code.3698;
            D.31097 = imb.b[2];
            *code.3697 = D.31097;
            code.3621 = code;
            code.3699 = code.3621;
            code.3700 = code.3699 + 1;
            code = code.3700;
            D.31100 = imb.b[3];
            *code.3699 = D.31100;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      jump_sync_thin_hash = code;
      if (1 != 0) goto <D.31101>; else goto <D.31102>;
      <D.31101>:
      code.3621 = code;
      code.3701 = code.3621;
      code.3702 = code.3701 + 1;
      code = code.3702;
      D.31105 = 117;
      *code.3701 = D.31105;
      goto <D.31106>;
      <D.31102>:
      code.3621 = code;
      code.3703 = code.3621;
      code.3704 = code.3703 + 1;
      code = code.3704;
      D.31109 = 117;
      *code.3703 = D.31109;
      <D.31106>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      if (1 != 0) goto <D.31110>; else goto <D.31111>;
      <D.31110>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31112>; else goto <D.31113>;
        <D.31112>:
        code.3621 = code;
        code.3705 = code.3621;
        code.3706 = code.3705 + 1;
        code = code.3706;
        D.31116 = _amd64_rex_bits | 64;
        *code.3705 = D.31116;
        <D.31113>:
      }
      code.3621 = code;
      code.3707 = code.3621;
      code.3708 = code.3707 + 1;
      code = code.3708;
      *code.3707 = 131;
      code.3621 = code;
      code.3709 = code.3621;
      code.3710 = code.3709 + 1;
      code = code.3710;
      *code.3709 = 225;
      code.3621 = code;
      *code.3621 = 252;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31121>;
      <D.31111>:
      if (0 != 0) goto <D.31122>; else goto <D.31123>;
      <D.31122>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31124>; else goto <D.31125>;
        <D.31124>:
        code.3621 = code;
        code.3711 = code.3621;
        code.3712 = code.3711 + 1;
        code = code.3712;
        D.31128 = _amd64_rex_bits | 64;
        *code.3711 = D.31128;
        <D.31125>:
      }
      code.3621 = code;
      code.3713 = code.3621;
      code.3714 = code.3713 + 1;
      code = code.3714;
      *code.3713 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = -4;
            code.3621 = code;
            code.3715 = code.3621;
            code.3716 = code.3715 + 1;
            code = code.3716;
            D.31133 = imb.b[0];
            *code.3715 = D.31133;
            code.3621 = code;
            code.3717 = code.3621;
            code.3718 = code.3717 + 1;
            code = code.3718;
            D.31136 = imb.b[1];
            *code.3717 = D.31136;
            code.3621 = code;
            code.3719 = code.3621;
            code.3720 = code.3719 + 1;
            code = code.3720;
            D.31139 = imb.b[2];
            *code.3719 = D.31139;
            code.3621 = code;
            code.3721 = code.3621;
            code.3722 = code.3721 + 1;
            code = code.3722;
            D.31142 = imb.b[3];
            *code.3721 = D.31142;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.31143>;
      <D.31123>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31144>; else goto <D.31145>;
        <D.31144>:
        code.3621 = code;
        code.3723 = code.3621;
        code.3724 = code.3723 + 1;
        code = code.3724;
        D.31148 = _amd64_rex_bits | 64;
        *code.3723 = D.31148;
        <D.31145>:
      }
      code.3621 = code;
      code.3725 = code.3621;
      code.3726 = code.3725 + 1;
      code = code.3726;
      *code.3725 = 129;
      code.3621 = code;
      code.3727 = code.3621;
      code.3728 = code.3727 + 1;
      code = code.3728;
      *code.3727 = 225;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = -4;
            code.3621 = code;
            code.3729 = code.3621;
            code.3730 = code.3729 + 1;
            code = code.3730;
            D.31155 = imb.b[0];
            *code.3729 = D.31155;
            code.3621 = code;
            code.3731 = code.3621;
            code.3732 = code.3731 + 1;
            code = code.3732;
            D.31158 = imb.b[1];
            *code.3731 = D.31158;
            code.3621 = code;
            code.3733 = code.3621;
            code.3734 = code.3733 + 1;
            code = code.3734;
            D.31161 = imb.b[2];
            *code.3733 = D.31161;
            code.3621 = code;
            code.3735 = code.3621;
            code.3736 = code.3735 + 1;
            code = code.3736;
            D.31164 = imb.b[3];
            *code.3735 = D.31164;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31143>:
      <D.31121>:
      <D.31074>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31165>; else goto <D.31166>;
        <D.31165>:
        code.3621 = code;
        code.3737 = code.3621;
        code.3738 = code.3737 + 1;
        code = code.3738;
        D.31169 = _amd64_rex_bits | 64;
        *code.3737 = D.31169;
        <D.31166>:
      }
      code.3621 = code;
      code.3739 = code.3621;
      code.3740 = code.3739 + 1;
      code = code.3740;
      *code.3739 = 133;
      code.3621 = code;
      code.3741 = code.3621;
      code.3742 = code.3741 + 1;
      code = code.3742;
      *code.3741 = 201;
      jump_sync_null = code;
      if (1 != 0) goto <D.31174>; else goto <D.31175>;
      <D.31174>:
      code.3621 = code;
      code.3743 = code.3621;
      code.3744 = code.3743 + 1;
      code = code.3744;
      D.30981 = 116;
      *code.3743 = D.30981;
      goto <D.31178>;
      <D.31175>:
      code.3621 = code;
      code.3745 = code.3621;
      code.3746 = code.3745 + 1;
      code = code.3746;
      D.30985 = 116;
      *code.3745 = D.30985;
      <D.31178>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      D.31181 = mono_thread_get_tls_offset ();
      code.3621 = code;
      code.3747 = mono_amd64_emit_tls_get (code.3621, 2, D.31181);
      code = code.3747;
      if (0 != 0) goto <D.31183>; else goto <D.31184>;
      <D.31183>:
      code.3621 = code;
      code.3748 = code.3621;
      code.3749 = code.3748 + 1;
      code = code.3749;
      *code.3748 = 102;
      <D.31184>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31187>; else goto <D.31188>;
        <D.31187>:
        code.3621 = code;
        code.3750 = code.3621;
        code.3751 = code.3750 + 1;
        code = code.3751;
        D.31191 = _amd64_rex_bits | 64;
        *code.3750 = D.31191;
        <D.31188>:
      }
      switch (8) <default: <D.23830>, case 1: <D.23825>, case 2: <D.23827>, case 4: <D.23828>, case 8: <D.23829>>
      <D.23825>:
      code.3621 = code;
      code.3752 = code.3621;
      code.3753 = code.3752 + 1;
      code = code.3753;
      *code.3752 = 138;
      goto <D.23826>;
      <D.23827>:
      <D.23828>:
      <D.23829>:
      code.3621 = code;
      code.3754 = code.3621;
      code.3755 = code.3754 + 1;
      code = code.3755;
      *code.3754 = 139;
      goto <D.23826>;
      <D.23830>:
      __assert_fail ("0", "tramp-amd64.c", 1012, &__PRETTY_FUNCTION__);
      <D.23826>:
      if (0 != 0) goto <D.31196>; else goto <D.31197>;
      <D.31196>:
      code.3621 = code;
      code.3756 = code.3621;
      code.3757 = code.3756 + 1;
      code = code.3757;
      *code.3756 = 21;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.3621 = code;
            code.3758 = code.3621;
            code.3759 = code.3758 + 1;
            code = code.3759;
            D.31202 = imb.b[0];
            *code.3758 = D.31202;
            code.3621 = code;
            code.3760 = code.3621;
            code.3761 = code.3760 + 1;
            code = code.3761;
            D.31205 = imb.b[1];
            *code.3760 = D.31205;
            code.3621 = code;
            code.3762 = code.3621;
            code.3763 = code.3762 + 1;
            code = code.3763;
            D.31208 = imb.b[2];
            *code.3762 = D.31208;
            code.3621 = code;
            code.3764 = code.3621;
            code.3765 = code.3764 + 1;
            code = code.3765;
            D.31211 = imb.b[3];
            *code.3764 = D.31211;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.31212>;
      <D.31197>:
      if (0 != 0) goto <D.31213>; else goto <D.31214>;
      <D.31213>:
      if (0 != 0) goto <D.31215>; else goto <D.31216>;
      <D.31215>:
      code.3621 = code;
      code.3766 = code.3621;
      code.3767 = code.3766 + 1;
      code = code.3767;
      *code.3766 = 20;
      code.3621 = code;
      code.3768 = code.3621;
      code.3769 = code.3768 + 1;
      code = code.3769;
      *code.3768 = 36;
      goto <D.31221>;
      <D.31216>:
      if (1 != 0) goto <D.31222>; else goto <D.31223>;
      <D.31222>:
      code.3621 = code;
      code.3770 = code.3621;
      code.3771 = code.3770 + 1;
      code = code.3771;
      *code.3770 = 84;
      code.3621 = code;
      code.3772 = code.3621;
      code.3773 = code.3772 + 1;
      code = code.3773;
      *code.3772 = 36;
      code.3621 = code;
      *code.3621 = 72;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31228>;
      <D.31223>:
      code.3621 = code;
      code.3774 = code.3621;
      code.3775 = code.3774 + 1;
      code = code.3775;
      *code.3774 = 148;
      code.3621 = code;
      code.3776 = code.3621;
      code.3777 = code.3776 + 1;
      code = code.3777;
      *code.3776 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.3621 = code;
            code.3778 = code.3621;
            code.3779 = code.3778 + 1;
            code = code.3779;
            D.31235 = imb.b[0];
            *code.3778 = D.31235;
            code.3621 = code;
            code.3780 = code.3621;
            code.3781 = code.3780 + 1;
            code = code.3781;
            D.31238 = imb.b[1];
            *code.3780 = D.31238;
            code.3621 = code;
            code.3782 = code.3621;
            code.3783 = code.3782 + 1;
            code = code.3783;
            D.31241 = imb.b[2];
            *code.3782 = D.31241;
            code.3621 = code;
            code.3784 = code.3621;
            code.3785 = code.3784 + 1;
            code = code.3785;
            D.31244 = imb.b[3];
            *code.3784 = D.31244;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31228>:
      <D.31221>:
      goto <D.23833>;
      <D.31214>:
      if (0 != 0) goto <D.31245>; else goto <D.31246>;
      <D.31245>:
      code.3621 = code;
      code.3786 = code.3621;
      code.3787 = code.3786 + 1;
      code = code.3787;
      *code.3786 = 18;
      goto <D.23833>;
      <D.31246>:
      if (1 != 0) goto <D.31249>; else goto <D.31250>;
      <D.31249>:
      code.3621 = code;
      code.3788 = code.3621;
      code.3789 = code.3788 + 1;
      code = code.3789;
      *code.3788 = 82;
      code.3621 = code;
      *code.3621 = 72;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31253>;
      <D.31250>:
      code.3621 = code;
      code.3790 = code.3621;
      code.3791 = code.3790 + 1;
      code = code.3791;
      *code.3790 = 146;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.3621 = code;
            code.3792 = code.3621;
            code.3793 = code.3792 + 1;
            code = code.3793;
            D.31258 = imb.b[0];
            *code.3792 = D.31258;
            code.3621 = code;
            code.3794 = code.3621;
            code.3795 = code.3794 + 1;
            code = code.3795;
            D.31261 = imb.b[1];
            *code.3794 = D.31261;
            code.3621 = code;
            code.3796 = code.3621;
            code.3797 = code.3796 + 1;
            code = code.3797;
            D.31264 = imb.b[2];
            *code.3796 = D.31264;
            code.3621 = code;
            code.3798 = code.3621;
            code.3799 = code.3798 + 1;
            code = code.3799;
            D.31267 = imb.b[3];
            *code.3798 = D.31267;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31253>:
      <D.23833>:
      <D.31212>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31268>; else goto <D.31269>;
        <D.31268>:
        code.3621 = code;
        code.3800 = code.3621;
        code.3801 = code.3800 + 1;
        code = code.3801;
        D.31272 = _amd64_rex_bits | 64;
        *code.3800 = D.31272;
        <D.31269>:
      }
      if (1 != 0) goto <D.31273>; else goto <D.31274>;
      <D.31273>:
      code.3621 = code;
      code.3802 = code.3621;
      code.3803 = code.3802 + 1;
      code = code.3803;
      *code.3802 = 131;
      if (0 != 0) goto <D.31277>; else goto <D.31278>;
      <D.31277>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31279>; else goto <D.31280>;
      <D.31279>:
      code.3621 = code;
      code.3804 = code.3621;
      code.3805 = code.3804 + 1;
      code = code.3805;
      *code.3804 = 60;
      code.3621 = code;
      code.3806 = code.3621;
      code.3807 = code.3806 + 1;
      code = code.3807;
      *code.3806 = 36;
      goto <D.31285>;
      <D.31280>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31288>; else goto <D.31289>;
      <D.31288>:
      code.3621 = code;
      code.3809 = code.3621;
      code.3810 = code.3809 + 1;
      code = code.3810;
      *code.3809 = 124;
      code.3621 = code;
      code.3811 = code.3621;
      code.3812 = code.3811 + 1;
      code = code.3812;
      *code.3811 = 36;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31295>;
      <D.31289>:
      code.3621 = code;
      code.3813 = code.3621;
      code.3814 = code.3813 + 1;
      code = code.3814;
      *code.3813 = 188;
      code.3621 = code;
      code.3815 = code.3621;
      code.3816 = code.3815 + 1;
      code = code.3816;
      *code.3815 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3817 = code.3621;
            code.3818 = code.3817 + 1;
            code = code.3818;
            D.31302 = imb.b[0];
            *code.3817 = D.31302;
            code.3621 = code;
            code.3819 = code.3621;
            code.3820 = code.3819 + 1;
            code = code.3820;
            D.31305 = imb.b[1];
            *code.3819 = D.31305;
            code.3621 = code;
            code.3821 = code.3621;
            code.3822 = code.3821 + 1;
            code = code.3822;
            D.31308 = imb.b[2];
            *code.3821 = D.31308;
            code.3621 = code;
            code.3823 = code.3621;
            code.3824 = code.3823 + 1;
            code = code.3824;
            D.31311 = imb.b[3];
            *code.3823 = D.31311;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31295>:
      <D.31285>:
      goto <D.23837>;
      <D.31278>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31312>; else goto <D.31313>;
      <D.31312>:
      code.3621 = code;
      code.3825 = code.3621;
      code.3826 = code.3825 + 1;
      code = code.3826;
      *code.3825 = 57;
      goto <D.23837>;
      <D.31313>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31316>; else goto <D.31317>;
      <D.31316>:
      code.3621 = code;
      code.3827 = code.3621;
      code.3828 = code.3827 + 1;
      code = code.3828;
      *code.3827 = 121;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31320>;
      <D.31317>:
      code.3621 = code;
      code.3829 = code.3621;
      code.3830 = code.3829 + 1;
      code = code.3830;
      *code.3829 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3831 = code.3621;
            code.3832 = code.3831 + 1;
            code = code.3832;
            D.31325 = imb.b[0];
            *code.3831 = D.31325;
            code.3621 = code;
            code.3833 = code.3621;
            code.3834 = code.3833 + 1;
            code = code.3834;
            D.31328 = imb.b[1];
            *code.3833 = D.31328;
            code.3621 = code;
            code.3835 = code.3621;
            code.3836 = code.3835 + 1;
            code = code.3836;
            D.31331 = imb.b[2];
            *code.3835 = D.31331;
            code.3621 = code;
            code.3837 = code.3621;
            code.3838 = code.3837 + 1;
            code = code.3838;
            D.31334 = imb.b[3];
            *code.3837 = D.31334;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31320>:
      <D.23837>:
      code.3621 = code;
      *code.3621 = 0;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31335>;
      <D.31274>:
      code.3621 = code;
      code.3839 = code.3621;
      code.3840 = code.3839 + 1;
      code = code.3840;
      *code.3839 = 129;
      if (0 != 0) goto <D.31338>; else goto <D.31339>;
      <D.31338>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31340>; else goto <D.31341>;
      <D.31340>:
      code.3621 = code;
      code.3841 = code.3621;
      code.3842 = code.3841 + 1;
      code = code.3842;
      *code.3841 = 60;
      code.3621 = code;
      code.3843 = code.3621;
      code.3844 = code.3843 + 1;
      code = code.3844;
      *code.3843 = 36;
      goto <D.31346>;
      <D.31341>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31347>; else goto <D.31348>;
      <D.31347>:
      code.3621 = code;
      code.3845 = code.3621;
      code.3846 = code.3845 + 1;
      code = code.3846;
      *code.3845 = 124;
      code.3621 = code;
      code.3847 = code.3621;
      code.3848 = code.3847 + 1;
      code = code.3848;
      *code.3847 = 36;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31353>;
      <D.31348>:
      code.3621 = code;
      code.3849 = code.3621;
      code.3850 = code.3849 + 1;
      code = code.3850;
      *code.3849 = 188;
      code.3621 = code;
      code.3851 = code.3621;
      code.3852 = code.3851 + 1;
      code = code.3852;
      *code.3851 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3853 = code.3621;
            code.3854 = code.3853 + 1;
            code = code.3854;
            D.31360 = imb.b[0];
            *code.3853 = D.31360;
            code.3621 = code;
            code.3855 = code.3621;
            code.3856 = code.3855 + 1;
            code = code.3856;
            D.31363 = imb.b[1];
            *code.3855 = D.31363;
            code.3621 = code;
            code.3857 = code.3621;
            code.3858 = code.3857 + 1;
            code = code.3858;
            D.31366 = imb.b[2];
            *code.3857 = D.31366;
            code.3621 = code;
            code.3859 = code.3621;
            code.3860 = code.3859 + 1;
            code = code.3860;
            D.31369 = imb.b[3];
            *code.3859 = D.31369;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31353>:
      <D.31346>:
      goto <D.23840>;
      <D.31339>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31370>; else goto <D.31371>;
      <D.31370>:
      code.3621 = code;
      code.3861 = code.3621;
      code.3862 = code.3861 + 1;
      code = code.3862;
      *code.3861 = 57;
      goto <D.23840>;
      <D.31371>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31374>; else goto <D.31375>;
      <D.31374>:
      code.3621 = code;
      code.3863 = code.3621;
      code.3864 = code.3863 + 1;
      code = code.3864;
      *code.3863 = 121;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31378>;
      <D.31375>:
      code.3621 = code;
      code.3865 = code.3621;
      code.3866 = code.3865 + 1;
      code = code.3866;
      *code.3865 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3867 = code.3621;
            code.3868 = code.3867 + 1;
            code = code.3868;
            D.31383 = imb.b[0];
            *code.3867 = D.31383;
            code.3621 = code;
            code.3869 = code.3621;
            code.3870 = code.3869 + 1;
            code = code.3870;
            D.31386 = imb.b[1];
            *code.3869 = D.31386;
            code.3621 = code;
            code.3871 = code.3621;
            code.3872 = code.3871 + 1;
            code = code.3872;
            D.31389 = imb.b[2];
            *code.3871 = D.31389;
            code.3621 = code;
            code.3873 = code.3621;
            code.3874 = code.3873 + 1;
            code = code.3874;
            D.31392 = imb.b[3];
            *code.3873 = D.31392;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31378>:
      <D.23840>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3621 = code;
            code.3875 = code.3621;
            code.3876 = code.3875 + 1;
            code = code.3876;
            D.31395 = imb.b[0];
            *code.3875 = D.31395;
            code.3621 = code;
            code.3877 = code.3621;
            code.3878 = code.3877 + 1;
            code = code.3878;
            D.31398 = imb.b[1];
            *code.3877 = D.31398;
            code.3621 = code;
            code.3879 = code.3621;
            code.3880 = code.3879 + 1;
            code = code.3880;
            D.31401 = imb.b[2];
            *code.3879 = D.31401;
            code.3621 = code;
            code.3881 = code.3621;
            code.3882 = code.3881 + 1;
            code = code.3882;
            D.31404 = imb.b[3];
            *code.3881 = D.31404;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31335>:
      jump_tid = code;
      if (1 != 0) goto <D.31405>; else goto <D.31406>;
      <D.31405>:
      code.3621 = code;
      code.3883 = code.3621;
      code.3884 = code.3883 + 1;
      code = code.3884;
      D.31105 = 117;
      *code.3883 = D.31105;
      goto <D.31409>;
      <D.31406>:
      code.3621 = code;
      code.3885 = code.3621;
      code.3886 = code.3885 + 1;
      code = code.3886;
      D.31109 = 117;
      *code.3885 = D.31109;
      <D.31409>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31412>; else goto <D.31413>;
        <D.31412>:
        code.3621 = code;
        code.3887 = code.3621;
        code.3888 = code.3887 + 1;
        code = code.3888;
        D.31416 = _amd64_rex_bits | 64;
        *code.3887 = D.31416;
        <D.31413>:
      }
      code.3621 = code;
      code.3889 = code.3621;
      code.3890 = code.3889 + 1;
      code = code.3890;
      *code.3889 = 51;
      code.3621 = code;
      code.3891 = code.3621;
      code.3892 = code.3891 + 1;
      code = code.3892;
      *code.3891 = 192;
      code.3621 = code;
      code.3893 = code.3621;
      code.3894 = code.3893 + 1;
      code = code.3894;
      *code.3893 = 240;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31423>; else goto <D.31424>;
        <D.31423>:
        code.3621 = code;
        code.3895 = code.3621;
        code.3896 = code.3895 + 1;
        code = code.3896;
        D.31427 = _amd64_rex_bits | 64;
        *code.3895 = D.31427;
        <D.31424>:
      }
      code.3621 = code;
      code.3897 = code.3621;
      code.3898 = code.3897 + 1;
      code = code.3898;
      *code.3897 = 15;
      code.3621 = code;
      code.3899 = code.3621;
      code.3900 = code.3899 + 1;
      code = code.3900;
      *code.3899 = 177;
      if (0 != 0) goto <D.31432>; else goto <D.31433>;
      <D.31432>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31434>; else goto <D.31435>;
      <D.31434>:
      code.3621 = code;
      code.3901 = code.3621;
      code.3902 = code.3901 + 1;
      code = code.3902;
      *code.3901 = 20;
      code.3621 = code;
      code.3903 = code.3621;
      code.3904 = code.3903 + 1;
      code = code.3904;
      *code.3903 = 36;
      goto <D.31440>;
      <D.31435>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31441>; else goto <D.31442>;
      <D.31441>:
      code.3621 = code;
      code.3905 = code.3621;
      code.3906 = code.3905 + 1;
      code = code.3906;
      *code.3905 = 84;
      code.3621 = code;
      code.3907 = code.3621;
      code.3908 = code.3907 + 1;
      code = code.3908;
      *code.3907 = 36;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31447>;
      <D.31442>:
      code.3621 = code;
      code.3909 = code.3621;
      code.3910 = code.3909 + 1;
      code = code.3910;
      *code.3909 = 148;
      code.3621 = code;
      code.3911 = code.3621;
      code.3912 = code.3911 + 1;
      code = code.3912;
      *code.3911 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3913 = code.3621;
            code.3914 = code.3913 + 1;
            code = code.3914;
            D.31454 = imb.b[0];
            *code.3913 = D.31454;
            code.3621 = code;
            code.3915 = code.3621;
            code.3916 = code.3915 + 1;
            code = code.3916;
            D.31457 = imb.b[1];
            *code.3915 = D.31457;
            code.3621 = code;
            code.3917 = code.3621;
            code.3918 = code.3917 + 1;
            code = code.3918;
            D.31460 = imb.b[2];
            *code.3917 = D.31460;
            code.3621 = code;
            code.3919 = code.3621;
            code.3920 = code.3919 + 1;
            code = code.3920;
            D.31463 = imb.b[3];
            *code.3919 = D.31463;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31447>:
      <D.31440>:
      goto <D.23846>;
      <D.31433>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31464>; else goto <D.31465>;
      <D.31464>:
      code.3621 = code;
      code.3921 = code.3621;
      code.3922 = code.3921 + 1;
      code = code.3922;
      *code.3921 = 17;
      goto <D.23846>;
      <D.31465>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31468>; else goto <D.31469>;
      <D.31468>:
      code.3621 = code;
      code.3923 = code.3621;
      code.3924 = code.3923 + 1;
      code = code.3924;
      *code.3923 = 81;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31472>;
      <D.31469>:
      code.3621 = code;
      code.3925 = code.3621;
      code.3926 = code.3925 + 1;
      code = code.3926;
      *code.3925 = 145;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3927 = code.3621;
            code.3928 = code.3927 + 1;
            code = code.3928;
            D.31477 = imb.b[0];
            *code.3927 = D.31477;
            code.3621 = code;
            code.3929 = code.3621;
            code.3930 = code.3929 + 1;
            code = code.3930;
            D.31480 = imb.b[1];
            *code.3929 = D.31480;
            code.3621 = code;
            code.3931 = code.3621;
            code.3932 = code.3931 + 1;
            code = code.3932;
            D.31483 = imb.b[2];
            *code.3931 = D.31483;
            code.3621 = code;
            code.3933 = code.3621;
            code.3934 = code.3933 + 1;
            code = code.3934;
            D.31486 = imb.b[3];
            *code.3933 = D.31486;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31472>:
      <D.23846>:
      jump_cmpxchg_failed = code;
      if (1 != 0) goto <D.31487>; else goto <D.31488>;
      <D.31487>:
      code.3621 = code;
      code.3935 = code.3621;
      code.3936 = code.3935 + 1;
      code = code.3936;
      D.31105 = 117;
      *code.3935 = D.31105;
      goto <D.31491>;
      <D.31488>:
      code.3621 = code;
      code.3937 = code.3621;
      code.3938 = code.3937 + 1;
      code = code.3938;
      D.31109 = 117;
      *code.3937 = D.31109;
      <D.31491>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      code.3621 = code;
      code.3939 = code.3621;
      code.3940 = code.3939 + 1;
      code = code.3940;
      *code.3939 = 195;
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_tid + 1;
        size = 0;
        D.31496 = MEM[(unsigned char *)jump_tid];
        D.31497 = (int) D.31496;
        switch (D.31497) <default: <D.23875>, case 15: <D.23854>, case 112: <D.23859>, case 113: <D.23860>, case 114: <D.23861>, case 115: <D.23862>, case 116: <D.23863>, case 117: <D.23864>, case 118: <D.23865>, case 119: <D.23866>, case 120: <D.23867>, case 121: <D.23868>, case 122: <D.23869>, case 123: <D.23870>, case 124: <D.23871>, case 125: <D.23872>, case 126: <D.23873>, case 127: <D.23874>, case 224: <D.23855>, case 225: <D.23856>, case 226: <D.23857>, case 232: <D.23851>, case 233: <D.23852>, case 235: <D.23858>>
        <D.23851>:
        <D.23852>:
        size = size + 1;
        goto <D.23853>;
        <D.23854>:
        D.31498 = *pos;
        D.31499 = D.31498 + 144;
        if (D.31499 > 31) goto <D.31500>; else goto <D.31501>;
        <D.31500>:
        __assert_fail ("0", "tramp-amd64.c", 1033, &__PRETTY_FUNCTION__);
        <D.31501>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23853>;
        <D.23855>:
        <D.23856>:
        <D.23857>:
        <D.23858>:
        <D.23859>:
        <D.23860>:
        <D.23861>:
        <D.23862>:
        <D.23863>:
        <D.23864>:
        <D.23865>:
        <D.23866>:
        <D.23867>:
        <D.23868>:
        <D.23869>:
        <D.23870>:
        <D.23871>:
        <D.23872>:
        <D.23873>:
        <D.23874>:
        goto <D.23853>;
        <D.23875>:
        __assert_fail ("0", "tramp-amd64.c", 1033, &__PRETTY_FUNCTION__);
        <D.23853>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.3942 = (long int) pos;
        D.31504 = code.3941 - pos.3942;
        disp = (int) D.31504;
        if (size != 0) goto <D.31505>; else goto <D.31506>;
        <D.31505>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31507 = disp + -4;
              imb.val = D.31507;
              pos.3943 = pos;
              pos = pos.3943 + 1;
              D.31509 = imb.b[0];
              *pos.3943 = D.31509;
              pos.3944 = pos;
              pos = pos.3944 + 1;
              D.31511 = imb.b[1];
              *pos.3944 = D.31511;
              pos.3945 = pos;
              pos = pos.3945 + 1;
              D.31513 = imb.b[2];
              *pos.3945 = D.31513;
              pos.3946 = pos;
              pos = pos.3946 + 1;
              D.31515 = imb.b[3];
              *pos.3946 = D.31515;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31516>;
        <D.31506>:
        disp.3947 = (unsigned int) disp;
        D.31518 = disp.3947 + 127;
        if (D.31518 <= 255) goto <D.31519>; else goto <D.31520>;
        <D.31519>:
        D.31521 = (unsigned char) disp;
        D.31522 = D.31521 + 255;
        *pos = D.31522;
        pos = pos + 1;
        goto <D.31523>;
        <D.31520>:
        __assert_fail ("0", "tramp-amd64.c", 1033, &__PRETTY_FUNCTION__);
        <D.31523>:
        <D.31516>:
      }
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31524>; else goto <D.31525>;
        <D.31524>:
        code.3621 = code;
        code.3948 = code.3621;
        code.3949 = code.3948 + 1;
        code = code.3949;
        D.31528 = _amd64_rex_bits | 64;
        *code.3948 = D.31528;
        <D.31525>:
      }
      code.3621 = code;
      code.3950 = code.3621;
      code.3951 = code.3950 + 1;
      code = code.3951;
      *code.3950 = 57;
      if (0 != 0) goto <D.31531>; else goto <D.31532>;
      <D.31531>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31533>; else goto <D.31534>;
      <D.31533>:
      code.3621 = code;
      code.3952 = code.3621;
      code.3953 = code.3952 + 1;
      code = code.3953;
      *code.3952 = 20;
      code.3621 = code;
      code.3954 = code.3621;
      code.3955 = code.3954 + 1;
      code = code.3955;
      *code.3954 = 36;
      goto <D.31539>;
      <D.31534>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31540>; else goto <D.31541>;
      <D.31540>:
      code.3621 = code;
      code.3956 = code.3621;
      code.3957 = code.3956 + 1;
      code = code.3957;
      *code.3956 = 84;
      code.3621 = code;
      code.3958 = code.3621;
      code.3959 = code.3958 + 1;
      code = code.3959;
      *code.3958 = 36;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31546>;
      <D.31541>:
      code.3621 = code;
      code.3960 = code.3621;
      code.3961 = code.3960 + 1;
      code = code.3961;
      *code.3960 = 148;
      code.3621 = code;
      code.3962 = code.3621;
      code.3963 = code.3962 + 1;
      code = code.3963;
      *code.3962 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3964 = code.3621;
            code.3965 = code.3964 + 1;
            code = code.3965;
            D.31553 = imb.b[0];
            *code.3964 = D.31553;
            code.3621 = code;
            code.3966 = code.3621;
            code.3967 = code.3966 + 1;
            code = code.3967;
            D.31556 = imb.b[1];
            *code.3966 = D.31556;
            code.3621 = code;
            code.3968 = code.3621;
            code.3969 = code.3968 + 1;
            code = code.3969;
            D.31559 = imb.b[2];
            *code.3968 = D.31559;
            code.3621 = code;
            code.3970 = code.3621;
            code.3971 = code.3970 + 1;
            code = code.3971;
            D.31562 = imb.b[3];
            *code.3970 = D.31562;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31546>:
      <D.31539>:
      goto <D.23879>;
      <D.31532>:
      owner_offset.3613 = owner_offset;
      if (owner_offset.3613 == 0) goto <D.31563>; else goto <D.31564>;
      <D.31563>:
      code.3621 = code;
      code.3972 = code.3621;
      code.3973 = code.3972 + 1;
      code = code.3973;
      *code.3972 = 17;
      goto <D.23879>;
      <D.31564>:
      owner_offset.3613 = owner_offset;
      owner_offset.3808 = (unsigned int) owner_offset.3613;
      D.31287 = owner_offset.3808 + 128;
      if (D.31287 <= 255) goto <D.31567>; else goto <D.31568>;
      <D.31567>:
      code.3621 = code;
      code.3974 = code.3621;
      code.3975 = code.3974 + 1;
      code = code.3975;
      *code.3974 = 81;
      code.3621 = code;
      owner_offset.3613 = owner_offset;
      D.31294 = (unsigned char) owner_offset.3613;
      *code.3621 = D.31294;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31571>;
      <D.31568>:
      code.3621 = code;
      code.3976 = code.3621;
      code.3977 = code.3976 + 1;
      code = code.3977;
      *code.3976 = 145;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.3613 = owner_offset;
            imb.val = owner_offset.3613;
            code.3621 = code;
            code.3978 = code.3621;
            code.3979 = code.3978 + 1;
            code = code.3979;
            D.31576 = imb.b[0];
            *code.3978 = D.31576;
            code.3621 = code;
            code.3980 = code.3621;
            code.3981 = code.3980 + 1;
            code = code.3981;
            D.31579 = imb.b[1];
            *code.3980 = D.31579;
            code.3621 = code;
            code.3982 = code.3621;
            code.3983 = code.3982 + 1;
            code = code.3983;
            D.31582 = imb.b[2];
            *code.3982 = D.31582;
            code.3621 = code;
            code.3984 = code.3621;
            code.3985 = code.3984 + 1;
            code = code.3985;
            D.31585 = imb.b[3];
            *code.3984 = D.31585;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31571>:
      <D.23879>:
      jump_other_owner = code;
      if (1 != 0) goto <D.31586>; else goto <D.31587>;
      <D.31586>:
      code.3621 = code;
      code.3986 = code.3621;
      code.3987 = code.3986 + 1;
      code = code.3987;
      D.31105 = 117;
      *code.3986 = D.31105;
      goto <D.31590>;
      <D.31587>:
      code.3621 = code;
      code.3988 = code.3621;
      code.3989 = code.3988 + 1;
      code = code.3989;
      D.31109 = 117;
      *code.3988 = D.31109;
      <D.31590>:
      code.3621 = code;
      *code.3621 = 255;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.31593>; else goto <D.31594>;
        <D.31593>:
        code.3621 = code;
        code.3990 = code.3621;
        code.3991 = code.3990 + 1;
        code = code.3991;
        D.31597 = _amd64_rex_bits | 64;
        *code.3990 = D.31597;
        <D.31594>:
      }
      code.3621 = code;
      code.3992 = code.3621;
      code.3993 = code.3992 + 1;
      code = code.3993;
      *code.3992 = 255;
      if (0 != 0) goto <D.31600>; else goto <D.31601>;
      <D.31600>:
      nest_offset.3615 = nest_offset;
      if (nest_offset.3615 == 0) goto <D.31602>; else goto <D.31603>;
      <D.31602>:
      code.3621 = code;
      code.3994 = code.3621;
      code.3995 = code.3994 + 1;
      code = code.3995;
      *code.3994 = 4;
      code.3621 = code;
      code.3996 = code.3621;
      code.3997 = code.3996 + 1;
      code = code.3997;
      *code.3996 = 36;
      goto <D.31608>;
      <D.31603>:
      nest_offset.3615 = nest_offset;
      nest_offset.3998 = (unsigned int) nest_offset.3615;
      D.31610 = nest_offset.3998 + 128;
      if (D.31610 <= 255) goto <D.31611>; else goto <D.31612>;
      <D.31611>:
      code.3621 = code;
      code.3999 = code.3621;
      code.4000 = code.3999 + 1;
      code = code.4000;
      *code.3999 = 68;
      code.3621 = code;
      code.4001 = code.3621;
      code.4002 = code.4001 + 1;
      code = code.4002;
      *code.4001 = 36;
      code.3621 = code;
      nest_offset.3615 = nest_offset;
      D.31617 = (unsigned char) nest_offset.3615;
      *code.3621 = D.31617;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31618>;
      <D.31612>:
      code.3621 = code;
      code.4003 = code.3621;
      code.4004 = code.4003 + 1;
      code = code.4004;
      *code.4003 = 132;
      code.3621 = code;
      code.4005 = code.3621;
      code.4006 = code.4005 + 1;
      code = code.4006;
      *code.4005 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.3615 = nest_offset;
            imb.val = nest_offset.3615;
            code.3621 = code;
            code.4007 = code.3621;
            code.4008 = code.4007 + 1;
            code = code.4008;
            D.31625 = imb.b[0];
            *code.4007 = D.31625;
            code.3621 = code;
            code.4009 = code.3621;
            code.4010 = code.4009 + 1;
            code = code.4010;
            D.31628 = imb.b[1];
            *code.4009 = D.31628;
            code.3621 = code;
            code.4011 = code.3621;
            code.4012 = code.4011 + 1;
            code = code.4012;
            D.31631 = imb.b[2];
            *code.4011 = D.31631;
            code.3621 = code;
            code.4013 = code.3621;
            code.4014 = code.4013 + 1;
            code = code.4014;
            D.31634 = imb.b[3];
            *code.4013 = D.31634;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31618>:
      <D.31608>:
      goto <D.23883>;
      <D.31601>:
      nest_offset.3615 = nest_offset;
      if (nest_offset.3615 == 0) goto <D.31635>; else goto <D.31636>;
      <D.31635>:
      code.3621 = code;
      code.4015 = code.3621;
      code.4016 = code.4015 + 1;
      code = code.4016;
      *code.4015 = 1;
      goto <D.23883>;
      <D.31636>:
      nest_offset.3615 = nest_offset;
      nest_offset.3998 = (unsigned int) nest_offset.3615;
      D.31610 = nest_offset.3998 + 128;
      if (D.31610 <= 255) goto <D.31639>; else goto <D.31640>;
      <D.31639>:
      code.3621 = code;
      code.4017 = code.3621;
      code.4018 = code.4017 + 1;
      code = code.4018;
      *code.4017 = 65;
      code.3621 = code;
      nest_offset.3615 = nest_offset;
      D.31617 = (unsigned char) nest_offset.3615;
      *code.3621 = D.31617;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31643>;
      <D.31640>:
      code.3621 = code;
      code.4019 = code.3621;
      code.4020 = code.4019 + 1;
      code = code.4020;
      *code.4019 = 129;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.3615 = nest_offset;
            imb.val = nest_offset.3615;
            code.3621 = code;
            code.4021 = code.3621;
            code.4022 = code.4021 + 1;
            code = code.4022;
            D.31648 = imb.b[0];
            *code.4021 = D.31648;
            code.3621 = code;
            code.4023 = code.3621;
            code.4024 = code.4023 + 1;
            code = code.4024;
            D.31651 = imb.b[1];
            *code.4023 = D.31651;
            code.3621 = code;
            code.4025 = code.3621;
            code.4026 = code.4025 + 1;
            code = code.4026;
            D.31654 = imb.b[2];
            *code.4025 = D.31654;
            code.3621 = code;
            code.4027 = code.3621;
            code.4028 = code.4027 + 1;
            code = code.4028;
            D.31657 = imb.b[3];
            *code.4027 = D.31657;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31643>:
      <D.23883>:
      code.3621 = code;
      code.4029 = code.3621;
      code.4030 = code.4029 + 1;
      code = code.4030;
      *code.4029 = 195;
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_obj_null + 1;
        size = 0;
        D.31660 = MEM[(unsigned char *)jump_obj_null];
        D.31661 = (int) D.31660;
        switch (D.31661) <default: <D.23912>, case 15: <D.23891>, case 112: <D.23896>, case 113: <D.23897>, case 114: <D.23898>, case 115: <D.23899>, case 116: <D.23900>, case 117: <D.23901>, case 118: <D.23902>, case 119: <D.23903>, case 120: <D.23904>, case 121: <D.23905>, case 122: <D.23906>, case 123: <D.23907>, case 124: <D.23908>, case 125: <D.23909>, case 126: <D.23910>, case 127: <D.23911>, case 224: <D.23892>, case 225: <D.23893>, case 226: <D.23894>, case 232: <D.23888>, case 233: <D.23889>, case 235: <D.23895>>
        <D.23888>:
        <D.23889>:
        size = size + 1;
        goto <D.23890>;
        <D.23891>:
        D.31662 = *pos;
        D.31663 = D.31662 + 144;
        if (D.31663 > 31) goto <D.31664>; else goto <D.31665>;
        <D.31664>:
        __assert_fail ("0", "tramp-amd64.c", 1044, &__PRETTY_FUNCTION__);
        <D.31665>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23890>;
        <D.23892>:
        <D.23893>:
        <D.23894>:
        <D.23895>:
        <D.23896>:
        <D.23897>:
        <D.23898>:
        <D.23899>:
        <D.23900>:
        <D.23901>:
        <D.23902>:
        <D.23903>:
        <D.23904>:
        <D.23905>:
        <D.23906>:
        <D.23907>:
        <D.23908>:
        <D.23909>:
        <D.23910>:
        <D.23911>:
        goto <D.23890>;
        <D.23912>:
        __assert_fail ("0", "tramp-amd64.c", 1044, &__PRETTY_FUNCTION__);
        <D.23890>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.4031 = (long int) pos;
        D.31667 = code.3941 - pos.4031;
        disp = (int) D.31667;
        if (size != 0) goto <D.31668>; else goto <D.31669>;
        <D.31668>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31670 = disp + -4;
              imb.val = D.31670;
              pos.4032 = pos;
              pos = pos.4032 + 1;
              D.31672 = imb.b[0];
              *pos.4032 = D.31672;
              pos.4033 = pos;
              pos = pos.4033 + 1;
              D.31674 = imb.b[1];
              *pos.4033 = D.31674;
              pos.4034 = pos;
              pos = pos.4034 + 1;
              D.31676 = imb.b[2];
              *pos.4034 = D.31676;
              pos.4035 = pos;
              pos = pos.4035 + 1;
              D.31678 = imb.b[3];
              *pos.4035 = D.31678;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31679>;
        <D.31669>:
        disp.4036 = (unsigned int) disp;
        D.31681 = disp.4036 + 127;
        if (D.31681 <= 255) goto <D.31682>; else goto <D.31683>;
        <D.31682>:
        D.31684 = (unsigned char) disp;
        D.31685 = D.31684 + 255;
        *pos = D.31685;
        pos = pos + 1;
        goto <D.31686>;
        <D.31683>:
        __assert_fail ("0", "tramp-amd64.c", 1044, &__PRETTY_FUNCTION__);
        <D.31686>:
        <D.31679>:
      }
      if (jump_sync_thin_hash != 0B) goto <D.31687>; else goto <D.31688>;
      <D.31687>:
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_sync_thin_hash + 1;
        size = 0;
        D.31689 = MEM[(unsigned char *)jump_sync_thin_hash];
        D.31690 = (int) D.31689;
        switch (D.31690) <default: <D.23941>, case 15: <D.23920>, case 112: <D.23925>, case 113: <D.23926>, case 114: <D.23927>, case 115: <D.23928>, case 116: <D.23929>, case 117: <D.23930>, case 118: <D.23931>, case 119: <D.23932>, case 120: <D.23933>, case 121: <D.23934>, case 122: <D.23935>, case 123: <D.23936>, case 124: <D.23937>, case 125: <D.23938>, case 126: <D.23939>, case 127: <D.23940>, case 224: <D.23921>, case 225: <D.23922>, case 226: <D.23923>, case 232: <D.23917>, case 233: <D.23918>, case 235: <D.23924>>
        <D.23917>:
        <D.23918>:
        size = size + 1;
        goto <D.23919>;
        <D.23920>:
        D.31691 = *pos;
        D.31692 = D.31691 + 144;
        if (D.31692 > 31) goto <D.31693>; else goto <D.31694>;
        <D.31693>:
        __assert_fail ("0", "tramp-amd64.c", 1046, &__PRETTY_FUNCTION__);
        <D.31694>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23919>;
        <D.23921>:
        <D.23922>:
        <D.23923>:
        <D.23924>:
        <D.23925>:
        <D.23926>:
        <D.23927>:
        <D.23928>:
        <D.23929>:
        <D.23930>:
        <D.23931>:
        <D.23932>:
        <D.23933>:
        <D.23934>:
        <D.23935>:
        <D.23936>:
        <D.23937>:
        <D.23938>:
        <D.23939>:
        <D.23940>:
        goto <D.23919>;
        <D.23941>:
        __assert_fail ("0", "tramp-amd64.c", 1046, &__PRETTY_FUNCTION__);
        <D.23919>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.4037 = (long int) pos;
        D.31696 = code.3941 - pos.4037;
        disp = (int) D.31696;
        if (size != 0) goto <D.31697>; else goto <D.31698>;
        <D.31697>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31699 = disp + -4;
              imb.val = D.31699;
              pos.4038 = pos;
              pos = pos.4038 + 1;
              D.31701 = imb.b[0];
              *pos.4038 = D.31701;
              pos.4039 = pos;
              pos = pos.4039 + 1;
              D.31703 = imb.b[1];
              *pos.4039 = D.31703;
              pos.4040 = pos;
              pos = pos.4040 + 1;
              D.31705 = imb.b[2];
              *pos.4040 = D.31705;
              pos.4041 = pos;
              pos = pos.4041 + 1;
              D.31707 = imb.b[3];
              *pos.4041 = D.31707;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31708>;
        <D.31698>:
        disp.4042 = (unsigned int) disp;
        D.31710 = disp.4042 + 127;
        if (D.31710 <= 255) goto <D.31711>; else goto <D.31712>;
        <D.31711>:
        D.31713 = (unsigned char) disp;
        D.31714 = D.31713 + 255;
        *pos = D.31714;
        pos = pos + 1;
        goto <D.31715>;
        <D.31712>:
        __assert_fail ("0", "tramp-amd64.c", 1046, &__PRETTY_FUNCTION__);
        <D.31715>:
        <D.31708>:
      }
      <D.31688>:
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_sync_null + 1;
        size = 0;
        D.31716 = MEM[(unsigned char *)jump_sync_null];
        D.31717 = (int) D.31716;
        switch (D.31717) <default: <D.23970>, case 15: <D.23949>, case 112: <D.23954>, case 113: <D.23955>, case 114: <D.23956>, case 115: <D.23957>, case 116: <D.23958>, case 117: <D.23959>, case 118: <D.23960>, case 119: <D.23961>, case 120: <D.23962>, case 121: <D.23963>, case 122: <D.23964>, case 123: <D.23965>, case 124: <D.23966>, case 125: <D.23967>, case 126: <D.23968>, case 127: <D.23969>, case 224: <D.23950>, case 225: <D.23951>, case 226: <D.23952>, case 232: <D.23946>, case 233: <D.23947>, case 235: <D.23953>>
        <D.23946>:
        <D.23947>:
        size = size + 1;
        goto <D.23948>;
        <D.23949>:
        D.31718 = *pos;
        D.31719 = D.31718 + 144;
        if (D.31719 > 31) goto <D.31720>; else goto <D.31721>;
        <D.31720>:
        __assert_fail ("0", "tramp-amd64.c", 1047, &__PRETTY_FUNCTION__);
        <D.31721>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23948>;
        <D.23950>:
        <D.23951>:
        <D.23952>:
        <D.23953>:
        <D.23954>:
        <D.23955>:
        <D.23956>:
        <D.23957>:
        <D.23958>:
        <D.23959>:
        <D.23960>:
        <D.23961>:
        <D.23962>:
        <D.23963>:
        <D.23964>:
        <D.23965>:
        <D.23966>:
        <D.23967>:
        <D.23968>:
        <D.23969>:
        goto <D.23948>;
        <D.23970>:
        __assert_fail ("0", "tramp-amd64.c", 1047, &__PRETTY_FUNCTION__);
        <D.23948>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.4043 = (long int) pos;
        D.31723 = code.3941 - pos.4043;
        disp = (int) D.31723;
        if (size != 0) goto <D.31724>; else goto <D.31725>;
        <D.31724>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31726 = disp + -4;
              imb.val = D.31726;
              pos.4044 = pos;
              pos = pos.4044 + 1;
              D.31728 = imb.b[0];
              *pos.4044 = D.31728;
              pos.4045 = pos;
              pos = pos.4045 + 1;
              D.31730 = imb.b[1];
              *pos.4045 = D.31730;
              pos.4046 = pos;
              pos = pos.4046 + 1;
              D.31732 = imb.b[2];
              *pos.4046 = D.31732;
              pos.4047 = pos;
              pos = pos.4047 + 1;
              D.31734 = imb.b[3];
              *pos.4047 = D.31734;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31735>;
        <D.31725>:
        disp.4048 = (unsigned int) disp;
        D.31737 = disp.4048 + 127;
        if (D.31737 <= 255) goto <D.31738>; else goto <D.31739>;
        <D.31738>:
        D.31740 = (unsigned char) disp;
        D.31741 = D.31740 + 255;
        *pos = D.31741;
        pos = pos + 1;
        goto <D.31742>;
        <D.31739>:
        __assert_fail ("0", "tramp-amd64.c", 1047, &__PRETTY_FUNCTION__);
        <D.31742>:
        <D.31735>:
      }
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_cmpxchg_failed + 1;
        size = 0;
        D.31743 = MEM[(unsigned char *)jump_cmpxchg_failed];
        D.31744 = (int) D.31743;
        switch (D.31744) <default: <D.23999>, case 15: <D.23978>, case 112: <D.23983>, case 113: <D.23984>, case 114: <D.23985>, case 115: <D.23986>, case 116: <D.23987>, case 117: <D.23988>, case 118: <D.23989>, case 119: <D.23990>, case 120: <D.23991>, case 121: <D.23992>, case 122: <D.23993>, case 123: <D.23994>, case 124: <D.23995>, case 125: <D.23996>, case 126: <D.23997>, case 127: <D.23998>, case 224: <D.23979>, case 225: <D.23980>, case 226: <D.23981>, case 232: <D.23975>, case 233: <D.23976>, case 235: <D.23982>>
        <D.23975>:
        <D.23976>:
        size = size + 1;
        goto <D.23977>;
        <D.23978>:
        D.31745 = *pos;
        D.31746 = D.31745 + 144;
        if (D.31746 > 31) goto <D.31747>; else goto <D.31748>;
        <D.31747>:
        __assert_fail ("0", "tramp-amd64.c", 1048, &__PRETTY_FUNCTION__);
        <D.31748>:
        size = size + 1;
        pos = pos + 1;
        goto <D.23977>;
        <D.23979>:
        <D.23980>:
        <D.23981>:
        <D.23982>:
        <D.23983>:
        <D.23984>:
        <D.23985>:
        <D.23986>:
        <D.23987>:
        <D.23988>:
        <D.23989>:
        <D.23990>:
        <D.23991>:
        <D.23992>:
        <D.23993>:
        <D.23994>:
        <D.23995>:
        <D.23996>:
        <D.23997>:
        <D.23998>:
        goto <D.23977>;
        <D.23999>:
        __assert_fail ("0", "tramp-amd64.c", 1048, &__PRETTY_FUNCTION__);
        <D.23977>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.4049 = (long int) pos;
        D.31750 = code.3941 - pos.4049;
        disp = (int) D.31750;
        if (size != 0) goto <D.31751>; else goto <D.31752>;
        <D.31751>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31753 = disp + -4;
              imb.val = D.31753;
              pos.4050 = pos;
              pos = pos.4050 + 1;
              D.31755 = imb.b[0];
              *pos.4050 = D.31755;
              pos.4051 = pos;
              pos = pos.4051 + 1;
              D.31757 = imb.b[1];
              *pos.4051 = D.31757;
              pos.4052 = pos;
              pos = pos.4052 + 1;
              D.31759 = imb.b[2];
              *pos.4052 = D.31759;
              pos.4053 = pos;
              pos = pos.4053 + 1;
              D.31761 = imb.b[3];
              *pos.4053 = D.31761;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31762>;
        <D.31752>:
        disp.4054 = (unsigned int) disp;
        D.31764 = disp.4054 + 127;
        if (D.31764 <= 255) goto <D.31765>; else goto <D.31766>;
        <D.31765>:
        D.31767 = (unsigned char) disp;
        D.31768 = D.31767 + 255;
        *pos = D.31768;
        pos = pos + 1;
        goto <D.31769>;
        <D.31766>:
        __assert_fail ("0", "tramp-amd64.c", 1048, &__PRETTY_FUNCTION__);
        <D.31769>:
        <D.31762>:
      }
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_other_owner + 1;
        size = 0;
        D.31770 = MEM[(unsigned char *)jump_other_owner];
        D.31771 = (int) D.31770;
        switch (D.31771) <default: <D.24028>, case 15: <D.24007>, case 112: <D.24012>, case 113: <D.24013>, case 114: <D.24014>, case 115: <D.24015>, case 116: <D.24016>, case 117: <D.24017>, case 118: <D.24018>, case 119: <D.24019>, case 120: <D.24020>, case 121: <D.24021>, case 122: <D.24022>, case 123: <D.24023>, case 124: <D.24024>, case 125: <D.24025>, case 126: <D.24026>, case 127: <D.24027>, case 224: <D.24008>, case 225: <D.24009>, case 226: <D.24010>, case 232: <D.24004>, case 233: <D.24005>, case 235: <D.24011>>
        <D.24004>:
        <D.24005>:
        size = size + 1;
        goto <D.24006>;
        <D.24007>:
        D.31772 = *pos;
        D.31773 = D.31772 + 144;
        if (D.31773 > 31) goto <D.31774>; else goto <D.31775>;
        <D.31774>:
        __assert_fail ("0", "tramp-amd64.c", 1049, &__PRETTY_FUNCTION__);
        <D.31775>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24006>;
        <D.24008>:
        <D.24009>:
        <D.24010>:
        <D.24011>:
        <D.24012>:
        <D.24013>:
        <D.24014>:
        <D.24015>:
        <D.24016>:
        <D.24017>:
        <D.24018>:
        <D.24019>:
        <D.24020>:
        <D.24021>:
        <D.24022>:
        <D.24023>:
        <D.24024>:
        <D.24025>:
        <D.24026>:
        <D.24027>:
        goto <D.24006>;
        <D.24028>:
        __assert_fail ("0", "tramp-amd64.c", 1049, &__PRETTY_FUNCTION__);
        <D.24006>:
        code.3621 = code;
        code.3941 = (long int) code.3621;
        pos.4055 = (long int) pos;
        D.31777 = code.3941 - pos.4055;
        disp = (int) D.31777;
        if (size != 0) goto <D.31778>; else goto <D.31779>;
        <D.31778>:
        {
          union x86_imm_buf imb;

          try
            {
              D.31780 = disp + -4;
              imb.val = D.31780;
              pos.4056 = pos;
              pos = pos.4056 + 1;
              D.31782 = imb.b[0];
              *pos.4056 = D.31782;
              pos.4057 = pos;
              pos = pos.4057 + 1;
              D.31784 = imb.b[1];
              *pos.4057 = D.31784;
              pos.4058 = pos;
              pos = pos.4058 + 1;
              D.31786 = imb.b[2];
              *pos.4058 = D.31786;
              pos.4059 = pos;
              pos = pos.4059 + 1;
              D.31788 = imb.b[3];
              *pos.4059 = D.31788;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.31789>;
        <D.31779>:
        disp.4060 = (unsigned int) disp;
        D.31791 = disp.4060 + 127;
        if (D.31791 <= 255) goto <D.31792>; else goto <D.31793>;
        <D.31792>:
        D.31794 = (unsigned char) disp;
        D.31795 = D.31794 + 255;
        *pos = D.31795;
        pos = pos + 1;
        goto <D.31796>;
        <D.31793>:
        __assert_fail ("0", "tramp-amd64.c", 1049, &__PRETTY_FUNCTION__);
        <D.31796>:
        <D.31789>:
      }
      <D.30966>:
      if (aot != 0) goto <D.31797>; else goto <D.31798>;
      <D.31797>:
      code.3621 = code;
      buf.3620 = buf;
      code.4061 = mono_arch_emit_load_aotconst (buf.3620, code.3621, &ji, 32, "specific_trampoline_monitor_enter");
      code = code.4061;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.31800>; else goto <D.31801>;
        <D.31800>:
        code.3621 = code;
        code.4062 = code.3621;
        code.4063 = code.4062 + 1;
        code = code.4063;
        D.31804 = _amd64_rex_bits | 64;
        *code.4062 = D.31804;
        <D.31801>:
      }
      code.3621 = code;
      code.4064 = code.3621;
      code.4065 = code.4064 + 1;
      code = code.4065;
      *code.4064 = 255;
      code.3621 = code;
      code.4066 = code.3621;
      code.4067 = code.4066 + 1;
      code = code.4067;
      *code.4066 = 227;
      goto <D.31809>;
      <D.31798>:
      D.31810 = mono_get_root_domain ();
      tramp = mono_arch_create_specific_trampoline (0B, 10, D.31810, 0B);
      tramp.4068 = (long int) tramp;
      code.3621 = code;
      code.3941 = (long int) code.3621;
      D.31812 = tramp.4068 - code.3941;
      D.31813 = (unsigned long) D.31812;
      D.31814 = D.31813 + 2147483648;
      if (D.31814 <= 4294967295) goto <D.31815>; else goto <D.31816>;
      <D.31815>:
      {
        int t;

        tramp.4068 = (long int) tramp;
        code.3621 = code;
        code.3941 = (long int) code.3621;
        D.31812 = tramp.4068 - code.3941;
        D.31817 = (unsigned int) D.31812;
        D.31818 = D.31817 + 4294967294;
        t = (int) D.31818;
        t.4069 = (unsigned int) t;
        D.31820 = t.4069 + 128;
        if (D.31820 <= 255) goto <D.31821>; else goto <D.31822>;
        <D.31821>:
        code.3621 = code;
        code.4070 = code.3621;
        code.4071 = code.4070 + 1;
        code = code.4071;
        *code.4070 = 235;
        code.3621 = code;
        D.31825 = (unsigned char) t;
        *code.3621 = D.31825;
        code.3621 = code;
        code.3632 = code.3621 + 1;
        code = code.3632;
        goto <D.31826>;
        <D.31822>:
        tramp.4068 = (long int) tramp;
        code.3621 = code;
        code.3941 = (long int) code.3621;
        D.31812 = tramp.4068 - code.3941;
        D.31817 = (unsigned int) D.31812;
        D.31827 = D.31817 + 4294967291;
        t = (int) D.31827;
        code.3621 = code;
        code.4072 = code.3621;
        code.4073 = code.4072 + 1;
        code = code.4073;
        *code.4072 = 233;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = t;
              code.3621 = code;
              code.4074 = code.3621;
              code.4075 = code.4074 + 1;
              code = code.4075;
              D.31832 = imb.b[0];
              *code.4074 = D.31832;
              code.3621 = code;
              code.4076 = code.3621;
              code.4077 = code.4076 + 1;
              code = code.4077;
              D.31835 = imb.b[1];
              *code.4076 = D.31835;
              code.3621 = code;
              code.4078 = code.3621;
              code.4079 = code.4078 + 1;
              code = code.4079;
              D.31838 = imb.b[2];
              *code.4078 = D.31838;
              code.3621 = code;
              code.4080 = code.3621;
              code.4081 = code.4080 + 1;
              code = code.4081;
              D.31841 = imb.b[3];
              *code.4080 = D.31841;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.31826>:
      }
      goto <D.31842>;
      <D.31816>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.31843>; else goto <D.31844>;
        <D.31843>:
        code.3621 = code;
        code.4082 = code.3621;
        code.4083 = code.4082 + 1;
        code = code.4083;
        D.31847 = _amd64_rex_bits | 64;
        *code.4082 = D.31847;
        <D.31844>:
      }
      code.3621 = code;
      code.4084 = code.3621;
      code.4085 = code.4084 + 1;
      code = code.4085;
      *code.4084 = 255;
      if (1 != 0) goto <D.31850>; else goto <D.31851>;
      <D.31850>:
      code.3621 = code;
      code.4086 = code.3621;
      code.4087 = code.4086 + 1;
      code = code.4087;
      *code.4086 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3621 = code;
            code.4088 = code.3621;
            code.4089 = code.4088 + 1;
            code = code.4089;
            D.31856 = imb.b[0];
            *code.4088 = D.31856;
            code.3621 = code;
            code.4090 = code.3621;
            code.4091 = code.4090 + 1;
            code = code.4091;
            D.31859 = imb.b[1];
            *code.4090 = D.31859;
            code.3621 = code;
            code.4092 = code.3621;
            code.4093 = code.4092 + 1;
            code = code.4093;
            D.31862 = imb.b[2];
            *code.4092 = D.31862;
            code.3621 = code;
            code.4094 = code.3621;
            code.4095 = code.4094 + 1;
            code = code.4095;
            D.31865 = imb.b[3];
            *code.4094 = D.31865;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.31866>;
      <D.31851>:
      if (0 != 0) goto <D.31867>; else goto <D.31868>;
      <D.31867>:
      if (1 != 0) goto <D.31869>; else goto <D.31870>;
      <D.31869>:
      code.3621 = code;
      code.4096 = code.3621;
      code.4097 = code.4096 + 1;
      code = code.4097;
      *code.4096 = 36;
      code.3621 = code;
      code.4098 = code.3621;
      code.4099 = code.4098 + 1;
      code = code.4099;
      *code.4098 = 36;
      goto <D.31875>;
      <D.31870>:
      if (1 != 0) goto <D.31876>; else goto <D.31877>;
      <D.31876>:
      code.3621 = code;
      code.4100 = code.3621;
      code.4101 = code.4100 + 1;
      code = code.4101;
      *code.4100 = 100;
      code.3621 = code;
      code.4102 = code.3621;
      code.4103 = code.4102 + 1;
      code = code.4103;
      *code.4102 = 36;
      code.3621 = code;
      *code.3621 = 0;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31882>;
      <D.31877>:
      code.3621 = code;
      code.4104 = code.3621;
      code.4105 = code.4104 + 1;
      code = code.4105;
      *code.4104 = 164;
      code.3621 = code;
      code.4106 = code.3621;
      code.4107 = code.4106 + 1;
      code = code.4107;
      *code.4106 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3621 = code;
            code.4108 = code.3621;
            code.4109 = code.4108 + 1;
            code = code.4109;
            D.31889 = imb.b[0];
            *code.4108 = D.31889;
            code.3621 = code;
            code.4110 = code.3621;
            code.4111 = code.4110 + 1;
            code = code.4111;
            D.31892 = imb.b[1];
            *code.4110 = D.31892;
            code.3621 = code;
            code.4112 = code.3621;
            code.4113 = code.4112 + 1;
            code = code.4113;
            D.31895 = imb.b[2];
            *code.4112 = D.31895;
            code.3621 = code;
            code.4114 = code.3621;
            code.4115 = code.4114 + 1;
            code = code.4115;
            D.31898 = imb.b[3];
            *code.4114 = D.31898;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31882>:
      <D.31875>:
      goto <D.24036>;
      <D.31868>:
      if (1 != 0) goto <D.31899>; else goto <D.31900>;
      <D.31899>:
      code.3621 = code;
      code.4116 = code.3621;
      code.4117 = code.4116 + 1;
      code = code.4117;
      *code.4116 = 32;
      goto <D.24036>;
      <D.31900>:
      if (1 != 0) goto <D.31903>; else goto <D.31904>;
      <D.31903>:
      code.3621 = code;
      code.4118 = code.3621;
      code.4119 = code.4118 + 1;
      code = code.4119;
      *code.4118 = 96;
      code.3621 = code;
      *code.3621 = 0;
      code.3621 = code;
      code.3632 = code.3621 + 1;
      code = code.3632;
      goto <D.31907>;
      <D.31904>:
      code.3621 = code;
      code.4120 = code.3621;
      code.4121 = code.4120 + 1;
      code = code.4121;
      *code.4120 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.3621 = code;
            code.4122 = code.3621;
            code.4123 = code.4122 + 1;
            code = code.4123;
            D.31912 = imb.b[0];
            *code.4122 = D.31912;
            code.3621 = code;
            code.4124 = code.3621;
            code.4125 = code.4124 + 1;
            code = code.4125;
            D.31915 = imb.b[1];
            *code.4124 = D.31915;
            code.3621 = code;
            code.4126 = code.3621;
            code.4127 = code.4126 + 1;
            code = code.4127;
            D.31918 = imb.b[2];
            *code.4126 = D.31918;
            code.3621 = code;
            code.4128 = code.3621;
            code.4129 = code.4128 + 1;
            code = code.4129;
            D.31921 = imb.b[3];
            *code.4128 = D.31921;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.31907>:
      <D.24036>:
      <D.31866>:
      code.3621 = code;
      tramp.4130 = (long unsigned int) tramp;
      MEM[(guint64 *)code.3621] = tramp.4130;
      code.3621 = code;
      code.4131 = code.3621 + 8;
      code = code.4131;
      <D.31842>:
      <D.31809>:
      nacl_global_codeman_validate (&buf, tramp_size, &code);
      code.3621 = code;
      code.3941 = (long int) code.3621;
      buf.3620 = buf;
      buf.4132 = (long int) buf.3620;
      D.31925 = code.3941 - buf.4132;
      D.31926 = (int) D.31925;
      code.3621 = code;
      mono_arch_flush_icache (code.3621, D.31926);
      code.3621 = code;
      code.3941 = (long int) code.3621;
      buf.3620 = buf;
      buf.4132 = (long int) buf.3620;
      D.31925 = code.3941 - buf.4132;
      D.31927 = (long int) tramp_size;
      D.31928 = D.31925 > D.31927;
      D.31929 = (long int) D.31928;
      D.31930 = __builtin_expect (D.31929, 0);
      if (D.31930 != 0) goto <D.31931>; else goto <D.31932>;
      <D.31931>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1070, "code - buf <= tramp_size");
      <D.31932>:
      if (info != 0B) goto <D.31933>; else goto <D.31934>;
      <D.31933>:
      ji.4133 = ji;
      code.3621 = code;
      code.3941 = (long int) code.3621;
      buf.3620 = buf;
      buf.4132 = (long int) buf.3620;
      D.31925 = code.3941 - buf.4132;
      D.31936 = (unsigned int) D.31925;
      buf.3620 = buf;
      D.31937 = mono_tramp_info_create ("monitor_enter_trampoline", buf.3620, D.31936, ji.4133, unwind_ops);
      *info = D.31937;
      <D.31934>:
      D.31938 = buf;
      return D.31938;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
      owner_offset = {CLOBBER};
      nest_offset = {CLOBBER};
      dummy = {CLOBBER};
      ji = {CLOBBER};
    }
}


mono_arch_create_monitor_exit_trampoline (struct MonoTrampInfo * * info, gboolean aot)
{
  int owner_offset.4134;
  unsigned int owner_offset.4135;
  unsigned int D.31951;
  _Bool D.31952;
  long int D.31953;
  long int D.31954;
  int nest_offset.4136;
  unsigned int nest_offset.4137;
  unsigned int D.31959;
  _Bool D.31960;
  long int D.31961;
  long int D.31962;
  int entry_count_offset.4138;
  unsigned int entry_count_offset.4139;
  unsigned int D.31967;
  _Bool D.31968;
  long int D.31969;
  long int D.31970;
  int owner_offset.4140;
  int nest_offset.4141;
  int entry_count_offset.4142;
  void * buf.4143;
  guint8 * buf.4144;
  int D.31978;
  guint8 * code.4145;
  guint8 * code.4146;
  guint8 * code.4147;
  unsigned char D.31986;
  guint8 * code.4148;
  guint8 * code.4149;
  guint8 * code.4150;
  guint8 * code.4151;
  guint8 * code.4152;
  guint8 * code.4153;
  unsigned char D.31995;
  guint8 * code.4154;
  guint8 * code.4155;
  unsigned char D.31999;
  guint8 * code.4156;
  guint8 * code.4157;
  guint8 * code.4158;
  guint8 * code.4159;
  guint8 * code.4160;
  unsigned char D.32009;
  guint8 * code.4161;
  guint8 * code.4162;
  guint8 * code.4163;
  guint8 * code.4164;
  guint8 * code.4165;
  guint8 * code.4166;
  guint8 * code.4167;
  guint8 * code.4168;
  unsigned char D.32020;
  guint8 * code.4169;
  guint8 * code.4170;
  unsigned char D.32023;
  guint8 * code.4171;
  guint8 * code.4172;
  unsigned char D.32026;
  guint8 * code.4173;
  guint8 * code.4174;
  unsigned char D.32029;
  guint8 * code.4175;
  guint8 * code.4176;
  guint8 * code.4177;
  guint8 * code.4178;
  guint8 * code.4179;
  guint8 * code.4180;
  guint8 * code.4181;
  guint8 * code.4182;
  guint8 * code.4183;
  guint8 * code.4184;
  guint8 * code.4185;
  guint8 * code.4186;
  guint8 * code.4187;
  guint8 * code.4188;
  unsigned char D.32053;
  guint8 * code.4189;
  guint8 * code.4190;
  unsigned char D.32056;
  guint8 * code.4191;
  guint8 * code.4192;
  unsigned char D.32059;
  guint8 * code.4193;
  guint8 * code.4194;
  unsigned char D.32062;
  guint8 * code.4195;
  guint8 * code.4196;
  guint8 * code.4197;
  guint8 * code.4198;
  guint8 * code.4199;
  guint8 * code.4200;
  guint8 * code.4201;
  guint8 * code.4202;
  unsigned char D.32076;
  guint8 * code.4203;
  guint8 * code.4204;
  unsigned char D.32079;
  guint8 * code.4205;
  guint8 * code.4206;
  unsigned char D.32082;
  guint8 * code.4207;
  guint8 * code.4208;
  unsigned char D.32085;
  int D.32086;
  guint8 * code.4209;
  guint8 * code.4210;
  unsigned char D.32093;
  guint8 * code.4211;
  guint8 * code.4212;
  guint8 * code.4213;
  guint8 * code.4214;
  guint8 * code.4215;
  guint8 * code.4216;
  guint8 * code.4217;
  guint8 * code.4218;
  unsigned char D.32105;
  guint8 * code.4219;
  guint8 * code.4220;
  unsigned char D.32108;
  guint8 * code.4221;
  guint8 * code.4222;
  unsigned char D.32111;
  guint8 * code.4223;
  guint8 * code.4224;
  unsigned char D.32114;
  guint8 * code.4225;
  guint8 * code.4226;
  unsigned char D.32119;
  guint8 * code.4227;
  guint8 * code.4228;
  unsigned char D.32123;
  guint8 * code.4229;
  guint8 * code.4230;
  unsigned char D.32130;
  guint8 * code.4231;
  guint8 * code.4232;
  guint8 * code.4233;
  guint8 * code.4234;
  guint8 * code.4235;
  guint8 * code.4236;
  unsigned char D.32142;
  guint8 * code.4237;
  guint8 * code.4238;
  guint8 * code.4239;
  guint8 * code.4240;
  unsigned char D.32147;
  guint8 * code.4241;
  guint8 * code.4242;
  unsigned char D.32150;
  guint8 * code.4243;
  guint8 * code.4244;
  unsigned char D.32153;
  guint8 * code.4245;
  guint8 * code.4246;
  unsigned char D.32156;
  guint8 * code.4247;
  guint8 * code.4248;
  unsigned char D.32162;
  guint8 * code.4249;
  guint8 * code.4250;
  guint8 * code.4251;
  guint8 * code.4252;
  guint8 * code.4253;
  guint8 * code.4254;
  unsigned char D.32169;
  guint8 * code.4255;
  guint8 * code.4256;
  unsigned char D.32172;
  guint8 * code.4257;
  guint8 * code.4258;
  unsigned char D.32175;
  guint8 * code.4259;
  guint8 * code.4260;
  unsigned char D.32178;
  guint8 * code.4261;
  guint8 * code.4262;
  unsigned char D.32183;
  guint8 * code.4263;
  guint8 * code.4264;
  guint8 * code.4265;
  guint8 * code.4266;
  guint8 * code.4267;
  guint8 * code.4268;
  guint8 * code.4269;
  guint8 * code.4270;
  int D.32195;
  guint8 * code.4271;
  guint8 * code.4272;
  guint8 * code.4273;
  guint8 * code.4274;
  guint8 * code.4275;
  unsigned char D.32205;
  guint8 * code.4276;
  guint8 * code.4277;
  guint8 * code.4278;
  guint8 * code.4279;
  guint8 * code.4280;
  guint8 * code.4281;
  guint8 * code.4282;
  guint8 * code.4283;
  unsigned char D.32216;
  guint8 * code.4284;
  guint8 * code.4285;
  unsigned char D.32219;
  guint8 * code.4286;
  guint8 * code.4287;
  unsigned char D.32222;
  guint8 * code.4288;
  guint8 * code.4289;
  unsigned char D.32225;
  guint8 * code.4290;
  guint8 * code.4291;
  guint8 * code.4292;
  guint8 * code.4293;
  guint8 * code.4294;
  guint8 * code.4295;
  guint8 * code.4296;
  guint8 * code.4297;
  guint8 * code.4298;
  guint8 * code.4299;
  guint8 * code.4300;
  guint8 * code.4301;
  guint8 * code.4302;
  guint8 * code.4303;
  unsigned char D.32249;
  guint8 * code.4304;
  guint8 * code.4305;
  unsigned char D.32252;
  guint8 * code.4306;
  guint8 * code.4307;
  unsigned char D.32255;
  guint8 * code.4308;
  guint8 * code.4309;
  unsigned char D.32258;
  guint8 * code.4310;
  guint8 * code.4311;
  guint8 * code.4312;
  guint8 * code.4313;
  guint8 * code.4314;
  guint8 * code.4315;
  guint8 * code.4316;
  guint8 * code.4317;
  unsigned char D.32272;
  guint8 * code.4318;
  guint8 * code.4319;
  unsigned char D.32275;
  guint8 * code.4320;
  guint8 * code.4321;
  unsigned char D.32278;
  guint8 * code.4322;
  guint8 * code.4323;
  unsigned char D.32281;
  guint8 * code.4324;
  guint8 * code.4325;
  unsigned char D.32286;
  guint8 * code.4326;
  guint8 * code.4327;
  guint8 * code.4328;
  guint8 * code.4329;
  guint8 * code.4330;
  guint8 * code.4331;
  unsigned int owner_offset.4332;
  unsigned int D.32299;
  guint8 * code.4333;
  guint8 * code.4334;
  guint8 * code.4335;
  guint8 * code.4336;
  unsigned char D.32306;
  guint8 * code.4337;
  guint8 * code.4338;
  guint8 * code.4339;
  guint8 * code.4340;
  guint8 * code.4341;
  guint8 * code.4342;
  unsigned char D.32314;
  guint8 * code.4343;
  guint8 * code.4344;
  unsigned char D.32317;
  guint8 * code.4345;
  guint8 * code.4346;
  unsigned char D.32320;
  guint8 * code.4347;
  guint8 * code.4348;
  unsigned char D.32323;
  guint8 * code.4349;
  guint8 * code.4350;
  guint8 * code.4351;
  guint8 * code.4352;
  guint8 * code.4353;
  guint8 * code.4354;
  guint8 * code.4355;
  guint8 * code.4356;
  unsigned char D.32337;
  guint8 * code.4357;
  guint8 * code.4358;
  unsigned char D.32340;
  guint8 * code.4359;
  guint8 * code.4360;
  unsigned char D.32343;
  guint8 * code.4361;
  guint8 * code.4362;
  unsigned char D.32346;
  guint8 * code.4363;
  guint8 * code.4364;
  guint8 * code.4365;
  guint8 * code.4366;
  guint8 * code.4367;
  guint8 * code.4368;
  unsigned char D.32358;
  guint8 * code.4369;
  guint8 * code.4370;
  guint8 * code.4371;
  guint8 * code.4372;
  guint8 * code.4373;
  guint8 * code.4374;
  unsigned int nest_offset.4375;
  unsigned int D.32373;
  guint8 * code.4376;
  guint8 * code.4377;
  guint8 * code.4378;
  guint8 * code.4379;
  unsigned char D.32380;
  guint8 * code.4380;
  guint8 * code.4381;
  guint8 * code.4382;
  guint8 * code.4383;
  guint8 * code.4384;
  guint8 * code.4385;
  unsigned char D.32388;
  guint8 * code.4386;
  guint8 * code.4387;
  unsigned char D.32391;
  guint8 * code.4388;
  guint8 * code.4389;
  unsigned char D.32394;
  guint8 * code.4390;
  guint8 * code.4391;
  unsigned char D.32397;
  guint8 * code.4392;
  guint8 * code.4393;
  guint8 * code.4394;
  guint8 * code.4395;
  guint8 * code.4396;
  guint8 * code.4397;
  guint8 * code.4398;
  guint8 * code.4399;
  unsigned char D.32411;
  guint8 * code.4400;
  guint8 * code.4401;
  unsigned char D.32414;
  guint8 * code.4402;
  guint8 * code.4403;
  unsigned char D.32417;
  guint8 * code.4404;
  guint8 * code.4405;
  unsigned char D.32420;
  guint8 * code.4406;
  guint8 * code.4407;
  guint8 * code.4408;
  guint8 * code.4409;
  guint8 * code.4410;
  guint8 * code.4411;
  guint8 * code.4412;
  guint8 * code.4413;
  guint8 * code.4414;
  guint8 * code.4415;
  guint8 * code.4416;
  guint8 * code.4417;
  guint8 * code.4418;
  guint8 * code.4419;
  guint8 * code.4420;
  guint8 * code.4421;
  unsigned char D.32446;
  guint8 * code.4422;
  guint8 * code.4423;
  unsigned char D.32449;
  guint8 * code.4424;
  guint8 * code.4425;
  unsigned char D.32452;
  guint8 * code.4426;
  guint8 * code.4427;
  unsigned char D.32455;
  guint8 * code.4428;
  guint8 * code.4429;
  guint8 * code.4430;
  guint8 * code.4431;
  guint8 * code.4432;
  guint8 * code.4433;
  guint8 * code.4434;
  guint8 * code.4435;
  unsigned char D.32469;
  guint8 * code.4436;
  guint8 * code.4437;
  unsigned char D.32472;
  guint8 * code.4438;
  guint8 * code.4439;
  unsigned char D.32475;
  guint8 * code.4440;
  guint8 * code.4441;
  unsigned char D.32478;
  guint8 * code.4442;
  guint8 * code.4443;
  unsigned char D.32481;
  guint8 * code.4444;
  guint8 * code.4445;
  unsigned char D.32484;
  guint8 * code.4446;
  guint8 * code.4447;
  unsigned char D.32487;
  guint8 * code.4448;
  guint8 * code.4449;
  unsigned char D.32490;
  guint8 * code.4450;
  guint8 * code.4451;
  guint8 * code.4452;
  guint8 * code.4453;
  guint8 * code.4454;
  guint8 * code.4455;
  unsigned char D.32502;
  guint8 * code.4456;
  guint8 * code.4457;
  guint8 * code.4458;
  guint8 * code.4459;
  guint8 * code.4460;
  guint8 * code.4461;
  unsigned int entry_count_offset.4462;
  unsigned int D.32517;
  guint8 * code.4463;
  guint8 * code.4464;
  guint8 * code.4465;
  guint8 * code.4466;
  unsigned char D.32524;
  guint8 * code.4467;
  guint8 * code.4468;
  guint8 * code.4469;
  guint8 * code.4470;
  guint8 * code.4471;
  guint8 * code.4472;
  unsigned char D.32532;
  guint8 * code.4473;
  guint8 * code.4474;
  unsigned char D.32535;
  guint8 * code.4475;
  guint8 * code.4476;
  unsigned char D.32538;
  guint8 * code.4477;
  guint8 * code.4478;
  unsigned char D.32541;
  guint8 * code.4479;
  guint8 * code.4480;
  guint8 * code.4481;
  guint8 * code.4482;
  guint8 * code.4483;
  guint8 * code.4484;
  guint8 * code.4485;
  guint8 * code.4486;
  unsigned char D.32555;
  guint8 * code.4487;
  guint8 * code.4488;
  unsigned char D.32558;
  guint8 * code.4489;
  guint8 * code.4490;
  unsigned char D.32561;
  guint8 * code.4491;
  guint8 * code.4492;
  unsigned char D.32564;
  guint8 * code.4493;
  guint8 * code.4494;
  guint8 * code.4495;
  guint8 * code.4496;
  guint8 * code.4497;
  guint8 * code.4498;
  guint8 * code.4499;
  guint8 * code.4500;
  guint8 * code.4501;
  guint8 * code.4502;
  guint8 * code.4503;
  guint8 * code.4504;
  guint8 * code.4505;
  guint8 * code.4506;
  guint8 * code.4507;
  guint8 * code.4508;
  unsigned char D.32590;
  guint8 * code.4509;
  guint8 * code.4510;
  unsigned char D.32593;
  guint8 * code.4511;
  guint8 * code.4512;
  unsigned char D.32596;
  guint8 * code.4513;
  guint8 * code.4514;
  unsigned char D.32599;
  guint8 * code.4515;
  guint8 * code.4516;
  guint8 * code.4517;
  guint8 * code.4518;
  guint8 * code.4519;
  guint8 * code.4520;
  guint8 * code.4521;
  guint8 * code.4522;
  unsigned char D.32613;
  guint8 * code.4523;
  guint8 * code.4524;
  unsigned char D.32616;
  guint8 * code.4525;
  guint8 * code.4526;
  unsigned char D.32619;
  guint8 * code.4527;
  guint8 * code.4528;
  unsigned char D.32622;
  guint8 * code.4529;
  guint8 * code.4530;
  unsigned char D.32625;
  guint8 * code.4531;
  guint8 * code.4532;
  unsigned char D.32628;
  guint8 * code.4533;
  guint8 * code.4534;
  unsigned char D.32631;
  guint8 * code.4535;
  guint8 * code.4536;
  unsigned char D.32634;
  guint8 * code.4537;
  guint8 * code.4538;
  guint8 * code.4539;
  guint8 * code.4540;
  guint8 * code.4541;
  guint8 * code.4542;
  guint8 * code.4543;
  guint8 * code.4544;
  unsigned char D.32650;
  guint8 * code.4545;
  guint8 * code.4546;
  guint8 * code.4547;
  guint8 * code.4548;
  guint8 * code.4549;
  guint8 * code.4550;
  guint8 * code.4551;
  guint8 * code.4552;
  guint8 * code.4553;
  guint8 * code.4554;
  guint8 * code.4555;
  guint8 * code.4556;
  guint8 * code.4557;
  guint8 * code.4558;
  guint8 * code.4559;
  guint8 * code.4560;
  unsigned char D.32677;
  guint8 * code.4561;
  guint8 * code.4562;
  unsigned char D.32680;
  guint8 * code.4563;
  guint8 * code.4564;
  unsigned char D.32683;
  guint8 * code.4565;
  guint8 * code.4566;
  unsigned char D.32686;
  guint8 * code.4567;
  guint8 * code.4568;
  guint8 * code.4569;
  guint8 * code.4570;
  guint8 * code.4571;
  guint8 * code.4572;
  guint8 * code.4573;
  guint8 * code.4574;
  unsigned char D.32700;
  guint8 * code.4575;
  guint8 * code.4576;
  unsigned char D.32703;
  guint8 * code.4577;
  guint8 * code.4578;
  unsigned char D.32706;
  guint8 * code.4579;
  guint8 * code.4580;
  unsigned char D.32709;
  guint8 * code.4581;
  guint8 * code.4582;
  guint8 * code.4583;
  guint8 * code.4584;
  guint8 * code.4585;
  guint8 * code.4586;
  guint8 * code.4587;
  guint8 * code.4588;
  guint8 * code.4589;
  guint8 * code.4590;
  guint8 * code.4591;
  guint8 * code.4592;
  guint8 * code.4593;
  guint8 * code.4594;
  guint8 * code.4595;
  guint8 * code.4596;
  unsigned char D.32737;
  guint8 * code.4597;
  guint8 * code.4598;
  unsigned char D.32740;
  guint8 * code.4599;
  guint8 * code.4600;
  unsigned char D.32743;
  guint8 * code.4601;
  guint8 * code.4602;
  unsigned char D.32746;
  guint8 * code.4603;
  guint8 * code.4604;
  guint8 * code.4605;
  guint8 * code.4606;
  guint8 * code.4607;
  guint8 * code.4608;
  guint8 * code.4609;
  guint8 * code.4610;
  unsigned char D.32760;
  guint8 * code.4611;
  guint8 * code.4612;
  unsigned char D.32763;
  guint8 * code.4613;
  guint8 * code.4614;
  unsigned char D.32766;
  guint8 * code.4615;
  guint8 * code.4616;
  unsigned char D.32769;
  guint8 * code.4617;
  guint8 * code.4618;
  guint8 * code.4619;
  guint8 * code.4620;
  guint8 * code.4621;
  guint8 * code.4622;
  guint8 * code.4623;
  guint8 * code.4624;
  guint8 * code.4625;
  guint8 * code.4626;
  guint8 * code.4627;
  guint8 * code.4628;
  guint8 * code.4629;
  guint8 * code.4630;
  guint8 * code.4631;
  guint8 * code.4632;
  guint8 * code.4633;
  unsigned char D.32796;
  guint8 * code.4634;
  guint8 * code.4635;
  unsigned char D.32799;
  guint8 * code.4636;
  guint8 * code.4637;
  unsigned char D.32802;
  guint8 * code.4638;
  guint8 * code.4639;
  unsigned char D.32805;
  guint8 * code.4640;
  guint8 * code.4641;
  guint8 * code.4642;
  guint8 * code.4643;
  guint8 * code.4644;
  guint8 * code.4645;
  guint8 * code.4646;
  guint8 * code.4647;
  unsigned char D.32819;
  guint8 * code.4648;
  guint8 * code.4649;
  unsigned char D.32822;
  guint8 * code.4650;
  guint8 * code.4651;
  unsigned char D.32825;
  guint8 * code.4652;
  guint8 * code.4653;
  unsigned char D.32828;
  guint8 * code.4654;
  guint8 * code.4655;
  unsigned char D.32831;
  guint8 * code.4656;
  guint8 * code.4657;
  unsigned char D.32834;
  guint8 * code.4658;
  guint8 * code.4659;
  unsigned char D.32837;
  guint8 * code.4660;
  guint8 * code.4661;
  unsigned char D.32840;
  guint8 * code.4662;
  guint8 * code.4663;
  unsigned char D.32843;
  int D.32844;
  unsigned char D.32845;
  unsigned char D.32846;
  long int code.4664;
  long int pos.4665;
  long int D.32851;
  int D.32854;
  unsigned char * pos.4666;
  unsigned char D.32856;
  unsigned char * pos.4667;
  unsigned char D.32858;
  unsigned char * pos.4668;
  unsigned char D.32860;
  unsigned char * pos.4669;
  unsigned char D.32862;
  unsigned int disp.4670;
  unsigned int D.32865;
  unsigned char D.32868;
  unsigned char D.32869;
  guint8 * code.4671;
  guint8 * code.4672;
  unsigned char D.32875;
  guint8 * code.4673;
  guint8 * code.4674;
  guint8 * code.4675;
  guint8 * code.4676;
  guint8 * code.4677;
  guint8 * code.4678;
  guint8 * code.4679;
  guint8 * code.4680;
  guint8 * code.4681;
  guint8 * code.4682;
  guint8 * code.4683;
  guint8 * code.4684;
  guint8 * code.4685;
  guint8 * code.4686;
  guint8 * code.4687;
  guint8 * code.4688;
  unsigned char D.32900;
  guint8 * code.4689;
  guint8 * code.4690;
  unsigned char D.32903;
  guint8 * code.4691;
  guint8 * code.4692;
  unsigned char D.32906;
  guint8 * code.4693;
  guint8 * code.4694;
  unsigned char D.32909;
  guint8 * code.4695;
  guint8 * code.4696;
  guint8 * code.4697;
  guint8 * code.4698;
  guint8 * code.4699;
  guint8 * code.4700;
  guint8 * code.4701;
  guint8 * code.4702;
  unsigned char D.32923;
  guint8 * code.4703;
  guint8 * code.4704;
  unsigned char D.32926;
  guint8 * code.4705;
  guint8 * code.4706;
  unsigned char D.32929;
  guint8 * code.4707;
  guint8 * code.4708;
  unsigned char D.32932;
  guint8 * code.4709;
  guint8 * code.4710;
  unsigned char D.32935;
  int D.32936;
  unsigned char D.32937;
  unsigned char D.32938;
  long int pos.4711;
  long int D.32942;
  int D.32945;
  unsigned char * pos.4712;
  unsigned char D.32947;
  unsigned char * pos.4713;
  unsigned char D.32949;
  unsigned char * pos.4714;
  unsigned char D.32951;
  unsigned char * pos.4715;
  unsigned char D.32953;
  unsigned int disp.4716;
  unsigned int D.32956;
  unsigned char D.32959;
  unsigned char D.32960;
  unsigned char D.32962;
  int D.32963;
  unsigned char D.32964;
  unsigned char D.32965;
  long int pos.4717;
  long int D.32969;
  int D.32972;
  unsigned char * pos.4718;
  unsigned char D.32974;
  unsigned char * pos.4719;
  unsigned char D.32976;
  unsigned char * pos.4720;
  unsigned char D.32978;
  unsigned char * pos.4721;
  unsigned char D.32980;
  unsigned int disp.4722;
  unsigned int D.32983;
  unsigned char D.32986;
  unsigned char D.32987;
  unsigned char D.32989;
  int D.32990;
  unsigned char D.32991;
  unsigned char D.32992;
  long int pos.4723;
  long int D.32996;
  int D.32999;
  unsigned char * pos.4724;
  unsigned char D.33001;
  unsigned char * pos.4725;
  unsigned char D.33003;
  unsigned char * pos.4726;
  unsigned char D.33005;
  unsigned char * pos.4727;
  unsigned char D.33007;
  unsigned int disp.4728;
  unsigned int D.33010;
  unsigned char D.33013;
  unsigned char D.33014;
  unsigned char D.33016;
  int D.33017;
  unsigned char D.33018;
  unsigned char D.33019;
  long int pos.4729;
  long int D.33023;
  int D.33026;
  unsigned char * pos.4730;
  unsigned char D.33028;
  unsigned char * pos.4731;
  unsigned char D.33030;
  unsigned char * pos.4732;
  unsigned char D.33032;
  unsigned char * pos.4733;
  unsigned char D.33034;
  unsigned int disp.4734;
  unsigned int D.33037;
  unsigned char D.33040;
  unsigned char D.33041;
  guint8 * code.4735;
  guint8 * code.4736;
  guint8 * code.4737;
  unsigned char D.33050;
  guint8 * code.4738;
  guint8 * code.4739;
  guint8 * code.4740;
  guint8 * code.4741;
  struct MonoDomain * D.33056;
  long int tramp.4742;
  long int D.33058;
  unsigned long D.33059;
  unsigned long D.33060;
  unsigned int D.33063;
  unsigned int D.33064;
  unsigned int t.4743;
  unsigned int D.33066;
  guint8 * code.4744;
  guint8 * code.4745;
  unsigned char D.33071;
  unsigned int D.33073;
  guint8 * code.4746;
  guint8 * code.4747;
  guint8 * code.4748;
  guint8 * code.4749;
  unsigned char D.33078;
  guint8 * code.4750;
  guint8 * code.4751;
  unsigned char D.33081;
  guint8 * code.4752;
  guint8 * code.4753;
  unsigned char D.33084;
  guint8 * code.4754;
  guint8 * code.4755;
  unsigned char D.33087;
  guint8 * code.4756;
  guint8 * code.4757;
  unsigned char D.33093;
  guint8 * code.4758;
  guint8 * code.4759;
  guint8 * code.4760;
  guint8 * code.4761;
  guint8 * code.4762;
  guint8 * code.4763;
  unsigned char D.33102;
  guint8 * code.4764;
  guint8 * code.4765;
  unsigned char D.33105;
  guint8 * code.4766;
  guint8 * code.4767;
  unsigned char D.33108;
  guint8 * code.4768;
  guint8 * code.4769;
  unsigned char D.33111;
  guint8 * code.4770;
  guint8 * code.4771;
  guint8 * code.4772;
  guint8 * code.4773;
  guint8 * code.4774;
  guint8 * code.4775;
  guint8 * code.4776;
  guint8 * code.4777;
  guint8 * code.4778;
  guint8 * code.4779;
  guint8 * code.4780;
  guint8 * code.4781;
  guint8 * code.4782;
  guint8 * code.4783;
  unsigned char D.33135;
  guint8 * code.4784;
  guint8 * code.4785;
  unsigned char D.33138;
  guint8 * code.4786;
  guint8 * code.4787;
  unsigned char D.33141;
  guint8 * code.4788;
  guint8 * code.4789;
  unsigned char D.33144;
  guint8 * code.4790;
  guint8 * code.4791;
  guint8 * code.4792;
  guint8 * code.4793;
  guint8 * code.4794;
  guint8 * code.4795;
  guint8 * code.4796;
  guint8 * code.4797;
  unsigned char D.33158;
  guint8 * code.4798;
  guint8 * code.4799;
  unsigned char D.33161;
  guint8 * code.4800;
  guint8 * code.4801;
  unsigned char D.33164;
  guint8 * code.4802;
  guint8 * code.4803;
  unsigned char D.33167;
  long unsigned int tramp.4804;
  guint8 * code.4805;
  long int buf.4806;
  long int D.33171;
  int D.33172;
  long int D.33173;
  _Bool D.33174;
  long int D.33175;
  long int D.33176;
  struct MonoJumpInfo * ji.4807;
  unsigned int D.33182;
  struct MonoTrampInfo * D.33183;
  void * D.33184;
  guint8 * tramp;
  guint8 * code;
  guint8 * buf;
  guint8 * jump_obj_null;
  guint8 * jump_have_waiters;
  guint8 * jump_sync_null;
  guint8 * jump_not_owned;
  guint8 * jump_sync_thin_hash;
  guint8 * jump_next;
  int tramp_size;
  int owner_offset;
  int nest_offset;
  int entry_count_offset;
  struct MonoJumpInfo * ji;
  struct GSList * unwind_ops;
  static const char __PRETTY_FUNCTION__[41] = "mono_arch_create_monitor_exit_trampoline";

  try
    {
      jump_sync_thin_hash = 0B;
      ji = 0B;
      unwind_ops = 0B;
      if (0 != 0) goto <D.31947>; else goto <D.31948>;
      <D.31947>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1090, "MONO_ARCH_MONITOR_OBJECT_REG == AMD64_RDI");
      <D.31948>:
      mono_monitor_threads_sync_members_offset (&owner_offset, &nest_offset, &entry_count_offset);
      owner_offset.4134 = owner_offset;
      owner_offset.4135 = (unsigned int) owner_offset.4134;
      D.31951 = owner_offset.4135 & 255;
      D.31952 = D.31951 != 8;
      D.31953 = (long int) D.31952;
      D.31954 = __builtin_expect (D.31953, 0);
      if (D.31954 != 0) goto <D.31955>; else goto <D.31956>;
      <D.31955>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1093, "MONO_THREADS_SYNC_MEMBER_SIZE (owner_offset) == sizeof (gpointer)");
      <D.31956>:
      nest_offset.4136 = nest_offset;
      nest_offset.4137 = (unsigned int) nest_offset.4136;
      D.31959 = nest_offset.4137 & 255;
      D.31960 = D.31959 != 4;
      D.31961 = (long int) D.31960;
      D.31962 = __builtin_expect (D.31961, 0);
      if (D.31962 != 0) goto <D.31963>; else goto <D.31964>;
      <D.31963>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1094, "MONO_THREADS_SYNC_MEMBER_SIZE (nest_offset) == sizeof (guint32)");
      <D.31964>:
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4139 = (unsigned int) entry_count_offset.4138;
      D.31967 = entry_count_offset.4139 & 255;
      D.31968 = D.31967 != 4;
      D.31969 = (long int) D.31968;
      D.31970 = __builtin_expect (D.31969, 0);
      if (D.31970 != 0) goto <D.31971>; else goto <D.31972>;
      <D.31971>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1095, "MONO_THREADS_SYNC_MEMBER_SIZE (entry_count_offset) == sizeof (gint32)");
      <D.31972>:
      owner_offset.4134 = owner_offset;
      owner_offset.4140 = owner_offset.4134 >> 8;
      owner_offset = owner_offset.4140;
      nest_offset.4136 = nest_offset;
      nest_offset.4141 = nest_offset.4136 >> 8;
      nest_offset = nest_offset.4141;
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4142 = entry_count_offset.4138 >> 8;
      entry_count_offset = entry_count_offset.4142;
      tramp_size = 112;
      buf.4143 = mono_global_codeman_reserve (tramp_size);
      buf = buf.4143;
      buf.4144 = buf;
      code = buf.4144;
      unwind_ops = mono_arch_get_cie_program ();
      D.31978 = mono_thread_get_tls_offset ();
      if (D.31978 != -1) goto <D.31979>; else goto <D.31980>;
      <D.31979>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.31981>; else goto <D.31982>;
        <D.31981>:
        code.4145 = code;
        code.4146 = code.4145;
        code.4147 = code.4146 + 1;
        code = code.4147;
        D.31986 = _amd64_rex_bits | 64;
        *code.4146 = D.31986;
        <D.31982>:
      }
      code.4145 = code;
      code.4148 = code.4145;
      code.4149 = code.4148 + 1;
      code = code.4149;
      *code.4148 = 133;
      code.4145 = code;
      code.4150 = code.4145;
      code.4151 = code.4150 + 1;
      code = code.4151;
      *code.4150 = 255;
      jump_obj_null = code;
      if (1 != 0) goto <D.31991>; else goto <D.31992>;
      <D.31991>:
      code.4145 = code;
      code.4152 = code.4145;
      code.4153 = code.4152 + 1;
      code = code.4153;
      D.31995 = 116;
      *code.4152 = D.31995;
      goto <D.31996>;
      <D.31992>:
      code.4145 = code;
      code.4154 = code.4145;
      code.4155 = code.4154 + 1;
      code = code.4155;
      D.31999 = 116;
      *code.4154 = D.31999;
      <D.31996>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      if (0 != 0) goto <D.32001>; else goto <D.32002>;
      <D.32001>:
      code.4145 = code;
      code.4157 = code.4145;
      code.4158 = code.4157 + 1;
      code = code.4158;
      *code.4157 = 102;
      <D.32002>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32005>; else goto <D.32006>;
        <D.32005>:
        code.4145 = code;
        code.4159 = code.4145;
        code.4160 = code.4159 + 1;
        code = code.4160;
        D.32009 = _amd64_rex_bits | 64;
        *code.4159 = D.32009;
        <D.32006>:
      }
      switch (8) <default: <D.24064>, case 1: <D.24059>, case 2: <D.24061>, case 4: <D.24062>, case 8: <D.24063>>
      <D.24059>:
      code.4145 = code;
      code.4161 = code.4145;
      code.4162 = code.4161 + 1;
      code = code.4162;
      *code.4161 = 138;
      goto <D.24060>;
      <D.24061>:
      <D.24062>:
      <D.24063>:
      code.4145 = code;
      code.4163 = code.4145;
      code.4164 = code.4163 + 1;
      code = code.4164;
      *code.4163 = 139;
      goto <D.24060>;
      <D.24064>:
      __assert_fail ("0", "tramp-amd64.c", 1115, &__PRETTY_FUNCTION__);
      <D.24060>:
      if (0 != 0) goto <D.32014>; else goto <D.32015>;
      <D.32014>:
      code.4145 = code;
      code.4165 = code.4145;
      code.4166 = code.4165 + 1;
      code = code.4166;
      *code.4165 = 13;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.4145 = code;
            code.4167 = code.4145;
            code.4168 = code.4167 + 1;
            code = code.4168;
            D.32020 = imb.b[0];
            *code.4167 = D.32020;
            code.4145 = code;
            code.4169 = code.4145;
            code.4170 = code.4169 + 1;
            code = code.4170;
            D.32023 = imb.b[1];
            *code.4169 = D.32023;
            code.4145 = code;
            code.4171 = code.4145;
            code.4172 = code.4171 + 1;
            code = code.4172;
            D.32026 = imb.b[2];
            *code.4171 = D.32026;
            code.4145 = code;
            code.4173 = code.4145;
            code.4174 = code.4173 + 1;
            code = code.4174;
            D.32029 = imb.b[3];
            *code.4173 = D.32029;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.32030>;
      <D.32015>:
      if (0 != 0) goto <D.32031>; else goto <D.32032>;
      <D.32031>:
      if (0 != 0) goto <D.32033>; else goto <D.32034>;
      <D.32033>:
      code.4145 = code;
      code.4175 = code.4145;
      code.4176 = code.4175 + 1;
      code = code.4176;
      *code.4175 = 12;
      code.4145 = code;
      code.4177 = code.4145;
      code.4178 = code.4177 + 1;
      code = code.4178;
      *code.4177 = 36;
      goto <D.32039>;
      <D.32034>:
      if (1 != 0) goto <D.32040>; else goto <D.32041>;
      <D.32040>:
      code.4145 = code;
      code.4179 = code.4145;
      code.4180 = code.4179 + 1;
      code = code.4180;
      *code.4179 = 76;
      code.4145 = code;
      code.4181 = code.4145;
      code.4182 = code.4181 + 1;
      code = code.4182;
      *code.4181 = 36;
      code.4145 = code;
      *code.4145 = 8;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32046>;
      <D.32041>:
      code.4145 = code;
      code.4183 = code.4145;
      code.4184 = code.4183 + 1;
      code = code.4184;
      *code.4183 = 140;
      code.4145 = code;
      code.4185 = code.4145;
      code.4186 = code.4185 + 1;
      code = code.4186;
      *code.4185 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.4145 = code;
            code.4187 = code.4145;
            code.4188 = code.4187 + 1;
            code = code.4188;
            D.32053 = imb.b[0];
            *code.4187 = D.32053;
            code.4145 = code;
            code.4189 = code.4145;
            code.4190 = code.4189 + 1;
            code = code.4190;
            D.32056 = imb.b[1];
            *code.4189 = D.32056;
            code.4145 = code;
            code.4191 = code.4145;
            code.4192 = code.4191 + 1;
            code = code.4192;
            D.32059 = imb.b[2];
            *code.4191 = D.32059;
            code.4145 = code;
            code.4193 = code.4145;
            code.4194 = code.4193 + 1;
            code = code.4194;
            D.32062 = imb.b[3];
            *code.4193 = D.32062;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32046>:
      <D.32039>:
      goto <D.24068>;
      <D.32032>:
      if (0 != 0) goto <D.32063>; else goto <D.32064>;
      <D.32063>:
      code.4145 = code;
      code.4195 = code.4145;
      code.4196 = code.4195 + 1;
      code = code.4196;
      *code.4195 = 15;
      goto <D.24068>;
      <D.32064>:
      if (1 != 0) goto <D.32067>; else goto <D.32068>;
      <D.32067>:
      code.4145 = code;
      code.4197 = code.4145;
      code.4198 = code.4197 + 1;
      code = code.4198;
      *code.4197 = 79;
      code.4145 = code;
      *code.4145 = 8;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32071>;
      <D.32068>:
      code.4145 = code;
      code.4199 = code.4145;
      code.4200 = code.4199 + 1;
      code = code.4200;
      *code.4199 = 143;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 8;
            code.4145 = code;
            code.4201 = code.4145;
            code.4202 = code.4201 + 1;
            code = code.4202;
            D.32076 = imb.b[0];
            *code.4201 = D.32076;
            code.4145 = code;
            code.4203 = code.4145;
            code.4204 = code.4203 + 1;
            code = code.4204;
            D.32079 = imb.b[1];
            *code.4203 = D.32079;
            code.4145 = code;
            code.4205 = code.4145;
            code.4206 = code.4205 + 1;
            code = code.4206;
            D.32082 = imb.b[2];
            *code.4205 = D.32082;
            code.4145 = code;
            code.4207 = code.4145;
            code.4208 = code.4207 + 1;
            code = code.4208;
            D.32085 = imb.b[3];
            *code.4207 = D.32085;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32071>:
      <D.24068>:
      <D.32030>:
      D.32086 = mono_gc_is_moving ();
      if (D.32086 != 0) goto <D.32087>; else goto <D.32088>;
      <D.32087>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32089>; else goto <D.32090>;
        <D.32089>:
        code.4145 = code;
        code.4209 = code.4145;
        code.4210 = code.4209 + 1;
        code = code.4210;
        D.32093 = _amd64_rex_bits | 64;
        *code.4209 = D.32093;
        <D.32090>:
      }
      if (0 != 0) goto <D.32094>; else goto <D.32095>;
      <D.32094>:
      code.4145 = code;
      code.4211 = code.4145;
      code.4212 = code.4211 + 1;
      code = code.4212;
      *code.4211 = 169;
      goto <D.32098>;
      <D.32095>:
      code.4145 = code;
      code.4213 = code.4145;
      code.4214 = code.4213 + 1;
      code = code.4214;
      *code.4213 = 247;
      code.4145 = code;
      code.4215 = code.4145;
      code.4216 = code.4215 + 1;
      code = code.4216;
      *code.4215 = 193;
      <D.32098>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 1;
            code.4145 = code;
            code.4217 = code.4145;
            code.4218 = code.4217 + 1;
            code = code.4218;
            D.32105 = imb.b[0];
            *code.4217 = D.32105;
            code.4145 = code;
            code.4219 = code.4145;
            code.4220 = code.4219 + 1;
            code = code.4220;
            D.32108 = imb.b[1];
            *code.4219 = D.32108;
            code.4145 = code;
            code.4221 = code.4145;
            code.4222 = code.4221 + 1;
            code = code.4222;
            D.32111 = imb.b[2];
            *code.4221 = D.32111;
            code.4145 = code;
            code.4223 = code.4145;
            code.4224 = code.4223 + 1;
            code = code.4224;
            D.32114 = imb.b[3];
            *code.4223 = D.32114;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      jump_sync_thin_hash = code;
      if (1 != 0) goto <D.32115>; else goto <D.32116>;
      <D.32115>:
      code.4145 = code;
      code.4225 = code.4145;
      code.4226 = code.4225 + 1;
      code = code.4226;
      D.32119 = 117;
      *code.4225 = D.32119;
      goto <D.32120>;
      <D.32116>:
      code.4145 = code;
      code.4227 = code.4145;
      code.4228 = code.4227 + 1;
      code = code.4228;
      D.32123 = 117;
      *code.4227 = D.32123;
      <D.32120>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      if (1 != 0) goto <D.32124>; else goto <D.32125>;
      <D.32124>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32126>; else goto <D.32127>;
        <D.32126>:
        code.4145 = code;
        code.4229 = code.4145;
        code.4230 = code.4229 + 1;
        code = code.4230;
        D.32130 = _amd64_rex_bits | 64;
        *code.4229 = D.32130;
        <D.32127>:
      }
      code.4145 = code;
      code.4231 = code.4145;
      code.4232 = code.4231 + 1;
      code = code.4232;
      *code.4231 = 131;
      code.4145 = code;
      code.4233 = code.4145;
      code.4234 = code.4233 + 1;
      code = code.4234;
      *code.4233 = 225;
      code.4145 = code;
      *code.4145 = 252;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32135>;
      <D.32125>:
      if (0 != 0) goto <D.32136>; else goto <D.32137>;
      <D.32136>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32138>; else goto <D.32139>;
        <D.32138>:
        code.4145 = code;
        code.4235 = code.4145;
        code.4236 = code.4235 + 1;
        code = code.4236;
        D.32142 = _amd64_rex_bits | 64;
        *code.4235 = D.32142;
        <D.32139>:
      }
      code.4145 = code;
      code.4237 = code.4145;
      code.4238 = code.4237 + 1;
      code = code.4238;
      *code.4237 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = -4;
            code.4145 = code;
            code.4239 = code.4145;
            code.4240 = code.4239 + 1;
            code = code.4240;
            D.32147 = imb.b[0];
            *code.4239 = D.32147;
            code.4145 = code;
            code.4241 = code.4145;
            code.4242 = code.4241 + 1;
            code = code.4242;
            D.32150 = imb.b[1];
            *code.4241 = D.32150;
            code.4145 = code;
            code.4243 = code.4145;
            code.4244 = code.4243 + 1;
            code = code.4244;
            D.32153 = imb.b[2];
            *code.4243 = D.32153;
            code.4145 = code;
            code.4245 = code.4145;
            code.4246 = code.4245 + 1;
            code = code.4246;
            D.32156 = imb.b[3];
            *code.4245 = D.32156;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.32157>;
      <D.32137>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32158>; else goto <D.32159>;
        <D.32158>:
        code.4145 = code;
        code.4247 = code.4145;
        code.4248 = code.4247 + 1;
        code = code.4248;
        D.32162 = _amd64_rex_bits | 64;
        *code.4247 = D.32162;
        <D.32159>:
      }
      code.4145 = code;
      code.4249 = code.4145;
      code.4250 = code.4249 + 1;
      code = code.4250;
      *code.4249 = 129;
      code.4145 = code;
      code.4251 = code.4145;
      code.4252 = code.4251 + 1;
      code = code.4252;
      *code.4251 = 225;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = -4;
            code.4145 = code;
            code.4253 = code.4145;
            code.4254 = code.4253 + 1;
            code = code.4254;
            D.32169 = imb.b[0];
            *code.4253 = D.32169;
            code.4145 = code;
            code.4255 = code.4145;
            code.4256 = code.4255 + 1;
            code = code.4256;
            D.32172 = imb.b[1];
            *code.4255 = D.32172;
            code.4145 = code;
            code.4257 = code.4145;
            code.4258 = code.4257 + 1;
            code = code.4258;
            D.32175 = imb.b[2];
            *code.4257 = D.32175;
            code.4145 = code;
            code.4259 = code.4145;
            code.4260 = code.4259 + 1;
            code = code.4260;
            D.32178 = imb.b[3];
            *code.4259 = D.32178;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32157>:
      <D.32135>:
      <D.32088>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32179>; else goto <D.32180>;
        <D.32179>:
        code.4145 = code;
        code.4261 = code.4145;
        code.4262 = code.4261 + 1;
        code = code.4262;
        D.32183 = _amd64_rex_bits | 64;
        *code.4261 = D.32183;
        <D.32180>:
      }
      code.4145 = code;
      code.4263 = code.4145;
      code.4264 = code.4263 + 1;
      code = code.4264;
      *code.4263 = 133;
      code.4145 = code;
      code.4265 = code.4145;
      code.4266 = code.4265 + 1;
      code = code.4266;
      *code.4265 = 201;
      jump_sync_null = code;
      if (1 != 0) goto <D.32188>; else goto <D.32189>;
      <D.32188>:
      code.4145 = code;
      code.4267 = code.4145;
      code.4268 = code.4267 + 1;
      code = code.4268;
      D.31995 = 116;
      *code.4267 = D.31995;
      goto <D.32192>;
      <D.32189>:
      code.4145 = code;
      code.4269 = code.4145;
      code.4270 = code.4269 + 1;
      code = code.4270;
      D.31999 = 116;
      *code.4269 = D.31999;
      <D.32192>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      D.32195 = mono_thread_get_tls_offset ();
      code.4145 = code;
      code.4271 = mono_amd64_emit_tls_get (code.4145, 2, D.32195);
      code = code.4271;
      if (0 != 0) goto <D.32197>; else goto <D.32198>;
      <D.32197>:
      code.4145 = code;
      code.4272 = code.4145;
      code.4273 = code.4272 + 1;
      code = code.4273;
      *code.4272 = 102;
      <D.32198>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32201>; else goto <D.32202>;
        <D.32201>:
        code.4145 = code;
        code.4274 = code.4145;
        code.4275 = code.4274 + 1;
        code = code.4275;
        D.32205 = _amd64_rex_bits | 64;
        *code.4274 = D.32205;
        <D.32202>:
      }
      switch (8) <default: <D.24084>, case 1: <D.24079>, case 2: <D.24081>, case 4: <D.24082>, case 8: <D.24083>>
      <D.24079>:
      code.4145 = code;
      code.4276 = code.4145;
      code.4277 = code.4276 + 1;
      code = code.4277;
      *code.4276 = 138;
      goto <D.24080>;
      <D.24081>:
      <D.24082>:
      <D.24083>:
      code.4145 = code;
      code.4278 = code.4145;
      code.4279 = code.4278 + 1;
      code = code.4279;
      *code.4278 = 139;
      goto <D.24080>;
      <D.24084>:
      __assert_fail ("0", "tramp-amd64.c", 1138, &__PRETTY_FUNCTION__);
      <D.24080>:
      if (0 != 0) goto <D.32210>; else goto <D.32211>;
      <D.32210>:
      code.4145 = code;
      code.4280 = code.4145;
      code.4281 = code.4280 + 1;
      code = code.4281;
      *code.4280 = 21;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.4145 = code;
            code.4282 = code.4145;
            code.4283 = code.4282 + 1;
            code = code.4283;
            D.32216 = imb.b[0];
            *code.4282 = D.32216;
            code.4145 = code;
            code.4284 = code.4145;
            code.4285 = code.4284 + 1;
            code = code.4285;
            D.32219 = imb.b[1];
            *code.4284 = D.32219;
            code.4145 = code;
            code.4286 = code.4145;
            code.4287 = code.4286 + 1;
            code = code.4287;
            D.32222 = imb.b[2];
            *code.4286 = D.32222;
            code.4145 = code;
            code.4288 = code.4145;
            code.4289 = code.4288 + 1;
            code = code.4289;
            D.32225 = imb.b[3];
            *code.4288 = D.32225;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.32226>;
      <D.32211>:
      if (0 != 0) goto <D.32227>; else goto <D.32228>;
      <D.32227>:
      if (0 != 0) goto <D.32229>; else goto <D.32230>;
      <D.32229>:
      code.4145 = code;
      code.4290 = code.4145;
      code.4291 = code.4290 + 1;
      code = code.4291;
      *code.4290 = 20;
      code.4145 = code;
      code.4292 = code.4145;
      code.4293 = code.4292 + 1;
      code = code.4293;
      *code.4292 = 36;
      goto <D.32235>;
      <D.32230>:
      if (1 != 0) goto <D.32236>; else goto <D.32237>;
      <D.32236>:
      code.4145 = code;
      code.4294 = code.4145;
      code.4295 = code.4294 + 1;
      code = code.4295;
      *code.4294 = 84;
      code.4145 = code;
      code.4296 = code.4145;
      code.4297 = code.4296 + 1;
      code = code.4297;
      *code.4296 = 36;
      code.4145 = code;
      *code.4145 = 72;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32242>;
      <D.32237>:
      code.4145 = code;
      code.4298 = code.4145;
      code.4299 = code.4298 + 1;
      code = code.4299;
      *code.4298 = 148;
      code.4145 = code;
      code.4300 = code.4145;
      code.4301 = code.4300 + 1;
      code = code.4301;
      *code.4300 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.4145 = code;
            code.4302 = code.4145;
            code.4303 = code.4302 + 1;
            code = code.4303;
            D.32249 = imb.b[0];
            *code.4302 = D.32249;
            code.4145 = code;
            code.4304 = code.4145;
            code.4305 = code.4304 + 1;
            code = code.4305;
            D.32252 = imb.b[1];
            *code.4304 = D.32252;
            code.4145 = code;
            code.4306 = code.4145;
            code.4307 = code.4306 + 1;
            code = code.4307;
            D.32255 = imb.b[2];
            *code.4306 = D.32255;
            code.4145 = code;
            code.4308 = code.4145;
            code.4309 = code.4308 + 1;
            code = code.4309;
            D.32258 = imb.b[3];
            *code.4308 = D.32258;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32242>:
      <D.32235>:
      goto <D.24087>;
      <D.32228>:
      if (0 != 0) goto <D.32259>; else goto <D.32260>;
      <D.32259>:
      code.4145 = code;
      code.4310 = code.4145;
      code.4311 = code.4310 + 1;
      code = code.4311;
      *code.4310 = 18;
      goto <D.24087>;
      <D.32260>:
      if (1 != 0) goto <D.32263>; else goto <D.32264>;
      <D.32263>:
      code.4145 = code;
      code.4312 = code.4145;
      code.4313 = code.4312 + 1;
      code = code.4313;
      *code.4312 = 82;
      code.4145 = code;
      *code.4145 = 72;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32267>;
      <D.32264>:
      code.4145 = code;
      code.4314 = code.4145;
      code.4315 = code.4314 + 1;
      code = code.4315;
      *code.4314 = 146;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 72;
            code.4145 = code;
            code.4316 = code.4145;
            code.4317 = code.4316 + 1;
            code = code.4317;
            D.32272 = imb.b[0];
            *code.4316 = D.32272;
            code.4145 = code;
            code.4318 = code.4145;
            code.4319 = code.4318 + 1;
            code = code.4319;
            D.32275 = imb.b[1];
            *code.4318 = D.32275;
            code.4145 = code;
            code.4320 = code.4145;
            code.4321 = code.4320 + 1;
            code = code.4321;
            D.32278 = imb.b[2];
            *code.4320 = D.32278;
            code.4145 = code;
            code.4322 = code.4145;
            code.4323 = code.4322 + 1;
            code = code.4323;
            D.32281 = imb.b[3];
            *code.4322 = D.32281;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32267>:
      <D.24087>:
      <D.32226>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32282>; else goto <D.32283>;
        <D.32282>:
        code.4145 = code;
        code.4324 = code.4145;
        code.4325 = code.4324 + 1;
        code = code.4325;
        D.32286 = _amd64_rex_bits | 64;
        *code.4324 = D.32286;
        <D.32283>:
      }
      code.4145 = code;
      code.4326 = code.4145;
      code.4327 = code.4326 + 1;
      code = code.4327;
      *code.4326 = 57;
      if (0 != 0) goto <D.32289>; else goto <D.32290>;
      <D.32289>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32291>; else goto <D.32292>;
      <D.32291>:
      code.4145 = code;
      code.4328 = code.4145;
      code.4329 = code.4328 + 1;
      code = code.4329;
      *code.4328 = 20;
      code.4145 = code;
      code.4330 = code.4145;
      code.4331 = code.4330 + 1;
      code = code.4331;
      *code.4330 = 36;
      goto <D.32297>;
      <D.32292>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32300>; else goto <D.32301>;
      <D.32300>:
      code.4145 = code;
      code.4333 = code.4145;
      code.4334 = code.4333 + 1;
      code = code.4334;
      *code.4333 = 84;
      code.4145 = code;
      code.4335 = code.4145;
      code.4336 = code.4335 + 1;
      code = code.4336;
      *code.4335 = 36;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32307>;
      <D.32301>:
      code.4145 = code;
      code.4337 = code.4145;
      code.4338 = code.4337 + 1;
      code = code.4338;
      *code.4337 = 148;
      code.4145 = code;
      code.4339 = code.4145;
      code.4340 = code.4339 + 1;
      code = code.4340;
      *code.4339 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4341 = code.4145;
            code.4342 = code.4341 + 1;
            code = code.4342;
            D.32314 = imb.b[0];
            *code.4341 = D.32314;
            code.4145 = code;
            code.4343 = code.4145;
            code.4344 = code.4343 + 1;
            code = code.4344;
            D.32317 = imb.b[1];
            *code.4343 = D.32317;
            code.4145 = code;
            code.4345 = code.4145;
            code.4346 = code.4345 + 1;
            code = code.4346;
            D.32320 = imb.b[2];
            *code.4345 = D.32320;
            code.4145 = code;
            code.4347 = code.4145;
            code.4348 = code.4347 + 1;
            code = code.4348;
            D.32323 = imb.b[3];
            *code.4347 = D.32323;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32307>:
      <D.32297>:
      goto <D.24091>;
      <D.32290>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32324>; else goto <D.32325>;
      <D.32324>:
      code.4145 = code;
      code.4349 = code.4145;
      code.4350 = code.4349 + 1;
      code = code.4350;
      *code.4349 = 17;
      goto <D.24091>;
      <D.32325>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32328>; else goto <D.32329>;
      <D.32328>:
      code.4145 = code;
      code.4351 = code.4145;
      code.4352 = code.4351 + 1;
      code = code.4352;
      *code.4351 = 81;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32332>;
      <D.32329>:
      code.4145 = code;
      code.4353 = code.4145;
      code.4354 = code.4353 + 1;
      code = code.4354;
      *code.4353 = 145;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4355 = code.4145;
            code.4356 = code.4355 + 1;
            code = code.4356;
            D.32337 = imb.b[0];
            *code.4355 = D.32337;
            code.4145 = code;
            code.4357 = code.4145;
            code.4358 = code.4357 + 1;
            code = code.4358;
            D.32340 = imb.b[1];
            *code.4357 = D.32340;
            code.4145 = code;
            code.4359 = code.4145;
            code.4360 = code.4359 + 1;
            code = code.4360;
            D.32343 = imb.b[2];
            *code.4359 = D.32343;
            code.4145 = code;
            code.4361 = code.4145;
            code.4362 = code.4361 + 1;
            code = code.4362;
            D.32346 = imb.b[3];
            *code.4361 = D.32346;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32332>:
      <D.24091>:
      jump_not_owned = code;
      if (1 != 0) goto <D.32347>; else goto <D.32348>;
      <D.32347>:
      code.4145 = code;
      code.4363 = code.4145;
      code.4364 = code.4363 + 1;
      code = code.4364;
      D.32119 = 117;
      *code.4363 = D.32119;
      goto <D.32351>;
      <D.32348>:
      code.4145 = code;
      code.4365 = code.4145;
      code.4366 = code.4365 + 1;
      code = code.4366;
      D.32123 = 117;
      *code.4365 = D.32123;
      <D.32351>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.32354>; else goto <D.32355>;
        <D.32354>:
        code.4145 = code;
        code.4367 = code.4145;
        code.4368 = code.4367 + 1;
        code = code.4368;
        D.32358 = _amd64_rex_bits | 64;
        *code.4367 = D.32358;
        <D.32355>:
      }
      if (1 != 0) goto <D.32359>; else goto <D.32360>;
      <D.32359>:
      code.4145 = code;
      code.4369 = code.4145;
      code.4370 = code.4369 + 1;
      code = code.4370;
      *code.4369 = 131;
      if (0 != 0) goto <D.32363>; else goto <D.32364>;
      <D.32363>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32365>; else goto <D.32366>;
      <D.32365>:
      code.4145 = code;
      code.4371 = code.4145;
      code.4372 = code.4371 + 1;
      code = code.4372;
      *code.4371 = 60;
      code.4145 = code;
      code.4373 = code.4145;
      code.4374 = code.4373 + 1;
      code = code.4374;
      *code.4373 = 36;
      goto <D.32371>;
      <D.32366>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32374>; else goto <D.32375>;
      <D.32374>:
      code.4145 = code;
      code.4376 = code.4145;
      code.4377 = code.4376 + 1;
      code = code.4377;
      *code.4376 = 124;
      code.4145 = code;
      code.4378 = code.4145;
      code.4379 = code.4378 + 1;
      code = code.4379;
      *code.4378 = 36;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32381>;
      <D.32375>:
      code.4145 = code;
      code.4380 = code.4145;
      code.4381 = code.4380 + 1;
      code = code.4381;
      *code.4380 = 188;
      code.4145 = code;
      code.4382 = code.4145;
      code.4383 = code.4382 + 1;
      code = code.4383;
      *code.4382 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4384 = code.4145;
            code.4385 = code.4384 + 1;
            code = code.4385;
            D.32388 = imb.b[0];
            *code.4384 = D.32388;
            code.4145 = code;
            code.4386 = code.4145;
            code.4387 = code.4386 + 1;
            code = code.4387;
            D.32391 = imb.b[1];
            *code.4386 = D.32391;
            code.4145 = code;
            code.4388 = code.4145;
            code.4389 = code.4388 + 1;
            code = code.4389;
            D.32394 = imb.b[2];
            *code.4388 = D.32394;
            code.4145 = code;
            code.4390 = code.4145;
            code.4391 = code.4390 + 1;
            code = code.4391;
            D.32397 = imb.b[3];
            *code.4390 = D.32397;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32381>:
      <D.32371>:
      goto <D.24095>;
      <D.32364>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32398>; else goto <D.32399>;
      <D.32398>:
      code.4145 = code;
      code.4392 = code.4145;
      code.4393 = code.4392 + 1;
      code = code.4393;
      *code.4392 = 57;
      goto <D.24095>;
      <D.32399>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32402>; else goto <D.32403>;
      <D.32402>:
      code.4145 = code;
      code.4394 = code.4145;
      code.4395 = code.4394 + 1;
      code = code.4395;
      *code.4394 = 121;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32406>;
      <D.32403>:
      code.4145 = code;
      code.4396 = code.4145;
      code.4397 = code.4396 + 1;
      code = code.4397;
      *code.4396 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4398 = code.4145;
            code.4399 = code.4398 + 1;
            code = code.4399;
            D.32411 = imb.b[0];
            *code.4398 = D.32411;
            code.4145 = code;
            code.4400 = code.4145;
            code.4401 = code.4400 + 1;
            code = code.4401;
            D.32414 = imb.b[1];
            *code.4400 = D.32414;
            code.4145 = code;
            code.4402 = code.4145;
            code.4403 = code.4402 + 1;
            code = code.4403;
            D.32417 = imb.b[2];
            *code.4402 = D.32417;
            code.4145 = code;
            code.4404 = code.4145;
            code.4405 = code.4404 + 1;
            code = code.4405;
            D.32420 = imb.b[3];
            *code.4404 = D.32420;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32406>:
      <D.24095>:
      code.4145 = code;
      *code.4145 = 1;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32421>;
      <D.32360>:
      code.4145 = code;
      code.4406 = code.4145;
      code.4407 = code.4406 + 1;
      code = code.4407;
      *code.4406 = 129;
      if (0 != 0) goto <D.32424>; else goto <D.32425>;
      <D.32424>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32426>; else goto <D.32427>;
      <D.32426>:
      code.4145 = code;
      code.4408 = code.4145;
      code.4409 = code.4408 + 1;
      code = code.4409;
      *code.4408 = 60;
      code.4145 = code;
      code.4410 = code.4145;
      code.4411 = code.4410 + 1;
      code = code.4411;
      *code.4410 = 36;
      goto <D.32432>;
      <D.32427>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32433>; else goto <D.32434>;
      <D.32433>:
      code.4145 = code;
      code.4412 = code.4145;
      code.4413 = code.4412 + 1;
      code = code.4413;
      *code.4412 = 124;
      code.4145 = code;
      code.4414 = code.4145;
      code.4415 = code.4414 + 1;
      code = code.4415;
      *code.4414 = 36;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32439>;
      <D.32434>:
      code.4145 = code;
      code.4416 = code.4145;
      code.4417 = code.4416 + 1;
      code = code.4417;
      *code.4416 = 188;
      code.4145 = code;
      code.4418 = code.4145;
      code.4419 = code.4418 + 1;
      code = code.4419;
      *code.4418 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4420 = code.4145;
            code.4421 = code.4420 + 1;
            code = code.4421;
            D.32446 = imb.b[0];
            *code.4420 = D.32446;
            code.4145 = code;
            code.4422 = code.4145;
            code.4423 = code.4422 + 1;
            code = code.4423;
            D.32449 = imb.b[1];
            *code.4422 = D.32449;
            code.4145 = code;
            code.4424 = code.4145;
            code.4425 = code.4424 + 1;
            code = code.4425;
            D.32452 = imb.b[2];
            *code.4424 = D.32452;
            code.4145 = code;
            code.4426 = code.4145;
            code.4427 = code.4426 + 1;
            code = code.4427;
            D.32455 = imb.b[3];
            *code.4426 = D.32455;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32439>:
      <D.32432>:
      goto <D.24098>;
      <D.32425>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32456>; else goto <D.32457>;
      <D.32456>:
      code.4145 = code;
      code.4428 = code.4145;
      code.4429 = code.4428 + 1;
      code = code.4429;
      *code.4428 = 57;
      goto <D.24098>;
      <D.32457>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32460>; else goto <D.32461>;
      <D.32460>:
      code.4145 = code;
      code.4430 = code.4145;
      code.4431 = code.4430 + 1;
      code = code.4431;
      *code.4430 = 121;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32464>;
      <D.32461>:
      code.4145 = code;
      code.4432 = code.4145;
      code.4433 = code.4432 + 1;
      code = code.4433;
      *code.4432 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4434 = code.4145;
            code.4435 = code.4434 + 1;
            code = code.4435;
            D.32469 = imb.b[0];
            *code.4434 = D.32469;
            code.4145 = code;
            code.4436 = code.4145;
            code.4437 = code.4436 + 1;
            code = code.4437;
            D.32472 = imb.b[1];
            *code.4436 = D.32472;
            code.4145 = code;
            code.4438 = code.4145;
            code.4439 = code.4438 + 1;
            code = code.4439;
            D.32475 = imb.b[2];
            *code.4438 = D.32475;
            code.4145 = code;
            code.4440 = code.4145;
            code.4441 = code.4440 + 1;
            code = code.4441;
            D.32478 = imb.b[3];
            *code.4440 = D.32478;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32464>:
      <D.24098>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 1;
            code.4145 = code;
            code.4442 = code.4145;
            code.4443 = code.4442 + 1;
            code = code.4443;
            D.32481 = imb.b[0];
            *code.4442 = D.32481;
            code.4145 = code;
            code.4444 = code.4145;
            code.4445 = code.4444 + 1;
            code = code.4445;
            D.32484 = imb.b[1];
            *code.4444 = D.32484;
            code.4145 = code;
            code.4446 = code.4145;
            code.4447 = code.4446 + 1;
            code = code.4447;
            D.32487 = imb.b[2];
            *code.4446 = D.32487;
            code.4145 = code;
            code.4448 = code.4145;
            code.4449 = code.4448 + 1;
            code = code.4449;
            D.32490 = imb.b[3];
            *code.4448 = D.32490;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32421>:
      jump_next = code;
      if (1 != 0) goto <D.32491>; else goto <D.32492>;
      <D.32491>:
      code.4145 = code;
      code.4450 = code.4145;
      code.4451 = code.4450 + 1;
      code = code.4451;
      D.32119 = 117;
      *code.4450 = D.32119;
      goto <D.32495>;
      <D.32492>:
      code.4145 = code;
      code.4452 = code.4145;
      code.4453 = code.4452 + 1;
      code = code.4453;
      D.32123 = 117;
      *code.4452 = D.32123;
      <D.32495>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.32498>; else goto <D.32499>;
        <D.32498>:
        code.4145 = code;
        code.4454 = code.4145;
        code.4455 = code.4454 + 1;
        code = code.4455;
        D.32502 = _amd64_rex_bits | 64;
        *code.4454 = D.32502;
        <D.32499>:
      }
      if (1 != 0) goto <D.32503>; else goto <D.32504>;
      <D.32503>:
      code.4145 = code;
      code.4456 = code.4145;
      code.4457 = code.4456 + 1;
      code = code.4457;
      *code.4456 = 131;
      if (0 != 0) goto <D.32507>; else goto <D.32508>;
      <D.32507>:
      entry_count_offset.4138 = entry_count_offset;
      if (entry_count_offset.4138 == 0) goto <D.32509>; else goto <D.32510>;
      <D.32509>:
      code.4145 = code;
      code.4458 = code.4145;
      code.4459 = code.4458 + 1;
      code = code.4459;
      *code.4458 = 60;
      code.4145 = code;
      code.4460 = code.4145;
      code.4461 = code.4460 + 1;
      code = code.4461;
      *code.4460 = 36;
      goto <D.32515>;
      <D.32510>:
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4462 = (unsigned int) entry_count_offset.4138;
      D.32517 = entry_count_offset.4462 + 128;
      if (D.32517 <= 255) goto <D.32518>; else goto <D.32519>;
      <D.32518>:
      code.4145 = code;
      code.4463 = code.4145;
      code.4464 = code.4463 + 1;
      code = code.4464;
      *code.4463 = 124;
      code.4145 = code;
      code.4465 = code.4145;
      code.4466 = code.4465 + 1;
      code = code.4466;
      *code.4465 = 36;
      code.4145 = code;
      entry_count_offset.4138 = entry_count_offset;
      D.32524 = (unsigned char) entry_count_offset.4138;
      *code.4145 = D.32524;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32525>;
      <D.32519>:
      code.4145 = code;
      code.4467 = code.4145;
      code.4468 = code.4467 + 1;
      code = code.4468;
      *code.4467 = 188;
      code.4145 = code;
      code.4469 = code.4145;
      code.4470 = code.4469 + 1;
      code = code.4470;
      *code.4469 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            entry_count_offset.4138 = entry_count_offset;
            imb.val = entry_count_offset.4138;
            code.4145 = code;
            code.4471 = code.4145;
            code.4472 = code.4471 + 1;
            code = code.4472;
            D.32532 = imb.b[0];
            *code.4471 = D.32532;
            code.4145 = code;
            code.4473 = code.4145;
            code.4474 = code.4473 + 1;
            code = code.4474;
            D.32535 = imb.b[1];
            *code.4473 = D.32535;
            code.4145 = code;
            code.4475 = code.4145;
            code.4476 = code.4475 + 1;
            code = code.4476;
            D.32538 = imb.b[2];
            *code.4475 = D.32538;
            code.4145 = code;
            code.4477 = code.4145;
            code.4478 = code.4477 + 1;
            code = code.4478;
            D.32541 = imb.b[3];
            *code.4477 = D.32541;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32525>:
      <D.32515>:
      goto <D.24103>;
      <D.32508>:
      entry_count_offset.4138 = entry_count_offset;
      if (entry_count_offset.4138 == 0) goto <D.32542>; else goto <D.32543>;
      <D.32542>:
      code.4145 = code;
      code.4479 = code.4145;
      code.4480 = code.4479 + 1;
      code = code.4480;
      *code.4479 = 57;
      goto <D.24103>;
      <D.32543>:
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4462 = (unsigned int) entry_count_offset.4138;
      D.32517 = entry_count_offset.4462 + 128;
      if (D.32517 <= 255) goto <D.32546>; else goto <D.32547>;
      <D.32546>:
      code.4145 = code;
      code.4481 = code.4145;
      code.4482 = code.4481 + 1;
      code = code.4482;
      *code.4481 = 121;
      code.4145 = code;
      entry_count_offset.4138 = entry_count_offset;
      D.32524 = (unsigned char) entry_count_offset.4138;
      *code.4145 = D.32524;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32550>;
      <D.32547>:
      code.4145 = code;
      code.4483 = code.4145;
      code.4484 = code.4483 + 1;
      code = code.4484;
      *code.4483 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            entry_count_offset.4138 = entry_count_offset;
            imb.val = entry_count_offset.4138;
            code.4145 = code;
            code.4485 = code.4145;
            code.4486 = code.4485 + 1;
            code = code.4486;
            D.32555 = imb.b[0];
            *code.4485 = D.32555;
            code.4145 = code;
            code.4487 = code.4145;
            code.4488 = code.4487 + 1;
            code = code.4488;
            D.32558 = imb.b[1];
            *code.4487 = D.32558;
            code.4145 = code;
            code.4489 = code.4145;
            code.4490 = code.4489 + 1;
            code = code.4490;
            D.32561 = imb.b[2];
            *code.4489 = D.32561;
            code.4145 = code;
            code.4491 = code.4145;
            code.4492 = code.4491 + 1;
            code = code.4492;
            D.32564 = imb.b[3];
            *code.4491 = D.32564;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32550>:
      <D.24103>:
      code.4145 = code;
      *code.4145 = 0;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32565>;
      <D.32504>:
      code.4145 = code;
      code.4493 = code.4145;
      code.4494 = code.4493 + 1;
      code = code.4494;
      *code.4493 = 129;
      if (0 != 0) goto <D.32568>; else goto <D.32569>;
      <D.32568>:
      entry_count_offset.4138 = entry_count_offset;
      if (entry_count_offset.4138 == 0) goto <D.32570>; else goto <D.32571>;
      <D.32570>:
      code.4145 = code;
      code.4495 = code.4145;
      code.4496 = code.4495 + 1;
      code = code.4496;
      *code.4495 = 60;
      code.4145 = code;
      code.4497 = code.4145;
      code.4498 = code.4497 + 1;
      code = code.4498;
      *code.4497 = 36;
      goto <D.32576>;
      <D.32571>:
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4462 = (unsigned int) entry_count_offset.4138;
      D.32517 = entry_count_offset.4462 + 128;
      if (D.32517 <= 255) goto <D.32577>; else goto <D.32578>;
      <D.32577>:
      code.4145 = code;
      code.4499 = code.4145;
      code.4500 = code.4499 + 1;
      code = code.4500;
      *code.4499 = 124;
      code.4145 = code;
      code.4501 = code.4145;
      code.4502 = code.4501 + 1;
      code = code.4502;
      *code.4501 = 36;
      code.4145 = code;
      entry_count_offset.4138 = entry_count_offset;
      D.32524 = (unsigned char) entry_count_offset.4138;
      *code.4145 = D.32524;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32583>;
      <D.32578>:
      code.4145 = code;
      code.4503 = code.4145;
      code.4504 = code.4503 + 1;
      code = code.4504;
      *code.4503 = 188;
      code.4145 = code;
      code.4505 = code.4145;
      code.4506 = code.4505 + 1;
      code = code.4506;
      *code.4505 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            entry_count_offset.4138 = entry_count_offset;
            imb.val = entry_count_offset.4138;
            code.4145 = code;
            code.4507 = code.4145;
            code.4508 = code.4507 + 1;
            code = code.4508;
            D.32590 = imb.b[0];
            *code.4507 = D.32590;
            code.4145 = code;
            code.4509 = code.4145;
            code.4510 = code.4509 + 1;
            code = code.4510;
            D.32593 = imb.b[1];
            *code.4509 = D.32593;
            code.4145 = code;
            code.4511 = code.4145;
            code.4512 = code.4511 + 1;
            code = code.4512;
            D.32596 = imb.b[2];
            *code.4511 = D.32596;
            code.4145 = code;
            code.4513 = code.4145;
            code.4514 = code.4513 + 1;
            code = code.4514;
            D.32599 = imb.b[3];
            *code.4513 = D.32599;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32583>:
      <D.32576>:
      goto <D.24106>;
      <D.32569>:
      entry_count_offset.4138 = entry_count_offset;
      if (entry_count_offset.4138 == 0) goto <D.32600>; else goto <D.32601>;
      <D.32600>:
      code.4145 = code;
      code.4515 = code.4145;
      code.4516 = code.4515 + 1;
      code = code.4516;
      *code.4515 = 57;
      goto <D.24106>;
      <D.32601>:
      entry_count_offset.4138 = entry_count_offset;
      entry_count_offset.4462 = (unsigned int) entry_count_offset.4138;
      D.32517 = entry_count_offset.4462 + 128;
      if (D.32517 <= 255) goto <D.32604>; else goto <D.32605>;
      <D.32604>:
      code.4145 = code;
      code.4517 = code.4145;
      code.4518 = code.4517 + 1;
      code = code.4518;
      *code.4517 = 121;
      code.4145 = code;
      entry_count_offset.4138 = entry_count_offset;
      D.32524 = (unsigned char) entry_count_offset.4138;
      *code.4145 = D.32524;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32608>;
      <D.32605>:
      code.4145 = code;
      code.4519 = code.4145;
      code.4520 = code.4519 + 1;
      code = code.4520;
      *code.4519 = 185;
      {
        union x86_imm_buf imb;

        try
          {
            entry_count_offset.4138 = entry_count_offset;
            imb.val = entry_count_offset.4138;
            code.4145 = code;
            code.4521 = code.4145;
            code.4522 = code.4521 + 1;
            code = code.4522;
            D.32613 = imb.b[0];
            *code.4521 = D.32613;
            code.4145 = code;
            code.4523 = code.4145;
            code.4524 = code.4523 + 1;
            code = code.4524;
            D.32616 = imb.b[1];
            *code.4523 = D.32616;
            code.4145 = code;
            code.4525 = code.4145;
            code.4526 = code.4525 + 1;
            code = code.4526;
            D.32619 = imb.b[2];
            *code.4525 = D.32619;
            code.4145 = code;
            code.4527 = code.4145;
            code.4528 = code.4527 + 1;
            code = code.4528;
            D.32622 = imb.b[3];
            *code.4527 = D.32622;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32608>:
      <D.24106>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.4145 = code;
            code.4529 = code.4145;
            code.4530 = code.4529 + 1;
            code = code.4530;
            D.32625 = imb.b[0];
            *code.4529 = D.32625;
            code.4145 = code;
            code.4531 = code.4145;
            code.4532 = code.4531 + 1;
            code = code.4532;
            D.32628 = imb.b[1];
            *code.4531 = D.32628;
            code.4145 = code;
            code.4533 = code.4145;
            code.4534 = code.4533 + 1;
            code = code.4534;
            D.32631 = imb.b[2];
            *code.4533 = D.32631;
            code.4145 = code;
            code.4535 = code.4145;
            code.4536 = code.4535 + 1;
            code = code.4536;
            D.32634 = imb.b[3];
            *code.4535 = D.32634;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32565>:
      jump_have_waiters = code;
      if (1 != 0) goto <D.32635>; else goto <D.32636>;
      <D.32635>:
      code.4145 = code;
      code.4537 = code.4145;
      code.4538 = code.4537 + 1;
      code = code.4538;
      D.32119 = 117;
      *code.4537 = D.32119;
      goto <D.32639>;
      <D.32636>:
      code.4145 = code;
      code.4539 = code.4145;
      code.4540 = code.4539 + 1;
      code = code.4540;
      D.32123 = 117;
      *code.4539 = D.32123;
      <D.32639>:
      code.4145 = code;
      *code.4145 = 255;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      if (0 != 0) goto <D.32642>; else goto <D.32643>;
      <D.32642>:
      code.4145 = code;
      code.4541 = code.4145;
      code.4542 = code.4541 + 1;
      code = code.4542;
      *code.4541 = 102;
      <D.32643>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 8;
        if (_amd64_rex_bits != 0) goto <D.32646>; else goto <D.32647>;
        <D.32646>:
        code.4145 = code;
        code.4543 = code.4145;
        code.4544 = code.4543 + 1;
        code = code.4544;
        D.32650 = _amd64_rex_bits | 64;
        *code.4543 = D.32650;
        <D.32647>:
      }
      if (0 != 0) goto <D.32651>; else goto <D.32652>;
      <D.32651>:
      code.4145 = code;
      code.4545 = code.4145;
      code.4546 = code.4545 + 1;
      code = code.4546;
      *code.4545 = 198;
      if (0 != 0) goto <D.32655>; else goto <D.32656>;
      <D.32655>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32657>; else goto <D.32658>;
      <D.32657>:
      code.4145 = code;
      code.4547 = code.4145;
      code.4548 = code.4547 + 1;
      code = code.4548;
      *code.4547 = 4;
      code.4145 = code;
      code.4549 = code.4145;
      code.4550 = code.4549 + 1;
      code = code.4550;
      *code.4549 = 36;
      goto <D.32663>;
      <D.32658>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32664>; else goto <D.32665>;
      <D.32664>:
      code.4145 = code;
      code.4551 = code.4145;
      code.4552 = code.4551 + 1;
      code = code.4552;
      *code.4551 = 68;
      code.4145 = code;
      code.4553 = code.4145;
      code.4554 = code.4553 + 1;
      code = code.4554;
      *code.4553 = 36;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32670>;
      <D.32665>:
      code.4145 = code;
      code.4555 = code.4145;
      code.4556 = code.4555 + 1;
      code = code.4556;
      *code.4555 = 132;
      code.4145 = code;
      code.4557 = code.4145;
      code.4558 = code.4557 + 1;
      code = code.4558;
      *code.4557 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4559 = code.4145;
            code.4560 = code.4559 + 1;
            code = code.4560;
            D.32677 = imb.b[0];
            *code.4559 = D.32677;
            code.4145 = code;
            code.4561 = code.4145;
            code.4562 = code.4561 + 1;
            code = code.4562;
            D.32680 = imb.b[1];
            *code.4561 = D.32680;
            code.4145 = code;
            code.4563 = code.4145;
            code.4564 = code.4563 + 1;
            code = code.4564;
            D.32683 = imb.b[2];
            *code.4563 = D.32683;
            code.4145 = code;
            code.4565 = code.4145;
            code.4566 = code.4565 + 1;
            code = code.4566;
            D.32686 = imb.b[3];
            *code.4565 = D.32686;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32670>:
      <D.32663>:
      goto <D.24111>;
      <D.32656>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32687>; else goto <D.32688>;
      <D.32687>:
      code.4145 = code;
      code.4567 = code.4145;
      code.4568 = code.4567 + 1;
      code = code.4568;
      *code.4567 = 1;
      goto <D.24111>;
      <D.32688>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32691>; else goto <D.32692>;
      <D.32691>:
      code.4145 = code;
      code.4569 = code.4145;
      code.4570 = code.4569 + 1;
      code = code.4570;
      *code.4569 = 65;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32695>;
      <D.32692>:
      code.4145 = code;
      code.4571 = code.4145;
      code.4572 = code.4571 + 1;
      code = code.4572;
      *code.4571 = 129;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4573 = code.4145;
            code.4574 = code.4573 + 1;
            code = code.4574;
            D.32700 = imb.b[0];
            *code.4573 = D.32700;
            code.4145 = code;
            code.4575 = code.4145;
            code.4576 = code.4575 + 1;
            code = code.4576;
            D.32703 = imb.b[1];
            *code.4575 = D.32703;
            code.4145 = code;
            code.4577 = code.4145;
            code.4578 = code.4577 + 1;
            code = code.4578;
            D.32706 = imb.b[2];
            *code.4577 = D.32706;
            code.4145 = code;
            code.4579 = code.4145;
            code.4580 = code.4579 + 1;
            code = code.4580;
            D.32709 = imb.b[3];
            *code.4579 = D.32709;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32695>:
      <D.24111>:
      code.4145 = code;
      *code.4145 = 0;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32710>;
      <D.32652>:
      if (0 != 0) goto <D.32711>; else goto <D.32712>;
      <D.32711>:
      code.4145 = code;
      code.4581 = code.4145;
      code.4582 = code.4581 + 1;
      code = code.4582;
      *code.4581 = 199;
      if (0 != 0) goto <D.32715>; else goto <D.32716>;
      <D.32715>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32717>; else goto <D.32718>;
      <D.32717>:
      code.4145 = code;
      code.4583 = code.4145;
      code.4584 = code.4583 + 1;
      code = code.4584;
      *code.4583 = 4;
      code.4145 = code;
      code.4585 = code.4145;
      code.4586 = code.4585 + 1;
      code = code.4586;
      *code.4585 = 36;
      goto <D.32723>;
      <D.32718>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32724>; else goto <D.32725>;
      <D.32724>:
      code.4145 = code;
      code.4587 = code.4145;
      code.4588 = code.4587 + 1;
      code = code.4588;
      *code.4587 = 68;
      code.4145 = code;
      code.4589 = code.4145;
      code.4590 = code.4589 + 1;
      code = code.4590;
      *code.4589 = 36;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32730>;
      <D.32725>:
      code.4145 = code;
      code.4591 = code.4145;
      code.4592 = code.4591 + 1;
      code = code.4592;
      *code.4591 = 132;
      code.4145 = code;
      code.4593 = code.4145;
      code.4594 = code.4593 + 1;
      code = code.4594;
      *code.4593 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4595 = code.4145;
            code.4596 = code.4595 + 1;
            code = code.4596;
            D.32737 = imb.b[0];
            *code.4595 = D.32737;
            code.4145 = code;
            code.4597 = code.4145;
            code.4598 = code.4597 + 1;
            code = code.4598;
            D.32740 = imb.b[1];
            *code.4597 = D.32740;
            code.4145 = code;
            code.4599 = code.4145;
            code.4600 = code.4599 + 1;
            code = code.4600;
            D.32743 = imb.b[2];
            *code.4599 = D.32743;
            code.4145 = code;
            code.4601 = code.4145;
            code.4602 = code.4601 + 1;
            code = code.4602;
            D.32746 = imb.b[3];
            *code.4601 = D.32746;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32730>:
      <D.32723>:
      goto <D.24114>;
      <D.32716>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32747>; else goto <D.32748>;
      <D.32747>:
      code.4145 = code;
      code.4603 = code.4145;
      code.4604 = code.4603 + 1;
      code = code.4604;
      *code.4603 = 1;
      goto <D.24114>;
      <D.32748>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32751>; else goto <D.32752>;
      <D.32751>:
      code.4145 = code;
      code.4605 = code.4145;
      code.4606 = code.4605 + 1;
      code = code.4606;
      *code.4605 = 65;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32755>;
      <D.32752>:
      code.4145 = code;
      code.4607 = code.4145;
      code.4608 = code.4607 + 1;
      code = code.4608;
      *code.4607 = 129;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4609 = code.4145;
            code.4610 = code.4609 + 1;
            code = code.4610;
            D.32760 = imb.b[0];
            *code.4609 = D.32760;
            code.4145 = code;
            code.4611 = code.4145;
            code.4612 = code.4611 + 1;
            code = code.4612;
            D.32763 = imb.b[1];
            *code.4611 = D.32763;
            code.4145 = code;
            code.4613 = code.4145;
            code.4614 = code.4613 + 1;
            code = code.4614;
            D.32766 = imb.b[2];
            *code.4613 = D.32766;
            code.4145 = code;
            code.4615 = code.4145;
            code.4616 = code.4615 + 1;
            code = code.4616;
            D.32769 = imb.b[3];
            *code.4615 = D.32769;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32755>:
      <D.24114>:
      code.4145 = code;
      MEM[(short int *)code.4145] = 0;
      code.4145 = code;
      code.4617 = code.4145 + 2;
      code = code.4617;
      goto <D.32771>;
      <D.32712>:
      code.4145 = code;
      code.4618 = code.4145;
      code.4619 = code.4618 + 1;
      code = code.4619;
      *code.4618 = 199;
      if (0 != 0) goto <D.32774>; else goto <D.32775>;
      <D.32774>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32776>; else goto <D.32777>;
      <D.32776>:
      code.4145 = code;
      code.4620 = code.4145;
      code.4621 = code.4620 + 1;
      code = code.4621;
      *code.4620 = 4;
      code.4145 = code;
      code.4622 = code.4145;
      code.4623 = code.4622 + 1;
      code = code.4623;
      *code.4622 = 36;
      goto <D.32782>;
      <D.32777>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32783>; else goto <D.32784>;
      <D.32783>:
      code.4145 = code;
      code.4624 = code.4145;
      code.4625 = code.4624 + 1;
      code = code.4625;
      *code.4624 = 68;
      code.4145 = code;
      code.4626 = code.4145;
      code.4627 = code.4626 + 1;
      code = code.4627;
      *code.4626 = 36;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32789>;
      <D.32784>:
      code.4145 = code;
      code.4628 = code.4145;
      code.4629 = code.4628 + 1;
      code = code.4629;
      *code.4628 = 132;
      code.4145 = code;
      code.4630 = code.4145;
      code.4631 = code.4630 + 1;
      code = code.4631;
      *code.4630 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4632 = code.4145;
            code.4633 = code.4632 + 1;
            code = code.4633;
            D.32796 = imb.b[0];
            *code.4632 = D.32796;
            code.4145 = code;
            code.4634 = code.4145;
            code.4635 = code.4634 + 1;
            code = code.4635;
            D.32799 = imb.b[1];
            *code.4634 = D.32799;
            code.4145 = code;
            code.4636 = code.4145;
            code.4637 = code.4636 + 1;
            code = code.4637;
            D.32802 = imb.b[2];
            *code.4636 = D.32802;
            code.4145 = code;
            code.4638 = code.4145;
            code.4639 = code.4638 + 1;
            code = code.4639;
            D.32805 = imb.b[3];
            *code.4638 = D.32805;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32789>:
      <D.32782>:
      goto <D.24117>;
      <D.32775>:
      owner_offset.4134 = owner_offset;
      if (owner_offset.4134 == 0) goto <D.32806>; else goto <D.32807>;
      <D.32806>:
      code.4145 = code;
      code.4640 = code.4145;
      code.4641 = code.4640 + 1;
      code = code.4641;
      *code.4640 = 1;
      goto <D.24117>;
      <D.32807>:
      owner_offset.4134 = owner_offset;
      owner_offset.4332 = (unsigned int) owner_offset.4134;
      D.32299 = owner_offset.4332 + 128;
      if (D.32299 <= 255) goto <D.32810>; else goto <D.32811>;
      <D.32810>:
      code.4145 = code;
      code.4642 = code.4145;
      code.4643 = code.4642 + 1;
      code = code.4643;
      *code.4642 = 65;
      code.4145 = code;
      owner_offset.4134 = owner_offset;
      D.32306 = (unsigned char) owner_offset.4134;
      *code.4145 = D.32306;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32814>;
      <D.32811>:
      code.4145 = code;
      code.4644 = code.4145;
      code.4645 = code.4644 + 1;
      code = code.4645;
      *code.4644 = 129;
      {
        union x86_imm_buf imb;

        try
          {
            owner_offset.4134 = owner_offset;
            imb.val = owner_offset.4134;
            code.4145 = code;
            code.4646 = code.4145;
            code.4647 = code.4646 + 1;
            code = code.4647;
            D.32819 = imb.b[0];
            *code.4646 = D.32819;
            code.4145 = code;
            code.4648 = code.4145;
            code.4649 = code.4648 + 1;
            code = code.4649;
            D.32822 = imb.b[1];
            *code.4648 = D.32822;
            code.4145 = code;
            code.4650 = code.4145;
            code.4651 = code.4650 + 1;
            code = code.4651;
            D.32825 = imb.b[2];
            *code.4650 = D.32825;
            code.4145 = code;
            code.4652 = code.4145;
            code.4653 = code.4652 + 1;
            code = code.4653;
            D.32828 = imb.b[3];
            *code.4652 = D.32828;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32814>:
      <D.24117>:
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.4145 = code;
            code.4654 = code.4145;
            code.4655 = code.4654 + 1;
            code = code.4655;
            D.32831 = imb.b[0];
            *code.4654 = D.32831;
            code.4145 = code;
            code.4656 = code.4145;
            code.4657 = code.4656 + 1;
            code = code.4657;
            D.32834 = imb.b[1];
            *code.4656 = D.32834;
            code.4145 = code;
            code.4658 = code.4145;
            code.4659 = code.4658 + 1;
            code = code.4659;
            D.32837 = imb.b[2];
            *code.4658 = D.32837;
            code.4145 = code;
            code.4660 = code.4145;
            code.4661 = code.4660 + 1;
            code = code.4661;
            D.32840 = imb.b[3];
            *code.4660 = D.32840;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32771>:
      <D.32710>:
      code.4145 = code;
      code.4662 = code.4145;
      code.4663 = code.4662 + 1;
      code = code.4663;
      *code.4662 = 195;
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_next + 1;
        size = 0;
        D.32843 = MEM[(unsigned char *)jump_next];
        D.32844 = (int) D.32843;
        switch (D.32844) <default: <D.24147>, case 15: <D.24126>, case 112: <D.24131>, case 113: <D.24132>, case 114: <D.24133>, case 115: <D.24134>, case 116: <D.24135>, case 117: <D.24136>, case 118: <D.24137>, case 119: <D.24138>, case 120: <D.24139>, case 121: <D.24140>, case 122: <D.24141>, case 123: <D.24142>, case 124: <D.24143>, case 125: <D.24144>, case 126: <D.24145>, case 127: <D.24146>, case 224: <D.24127>, case 225: <D.24128>, case 226: <D.24129>, case 232: <D.24123>, case 233: <D.24124>, case 235: <D.24130>>
        <D.24123>:
        <D.24124>:
        size = size + 1;
        goto <D.24125>;
        <D.24126>:
        D.32845 = *pos;
        D.32846 = D.32845 + 144;
        if (D.32846 > 31) goto <D.32847>; else goto <D.32848>;
        <D.32847>:
        __assert_fail ("0", "tramp-amd64.c", 1161, &__PRETTY_FUNCTION__);
        <D.32848>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24125>;
        <D.24127>:
        <D.24128>:
        <D.24129>:
        <D.24130>:
        <D.24131>:
        <D.24132>:
        <D.24133>:
        <D.24134>:
        <D.24135>:
        <D.24136>:
        <D.24137>:
        <D.24138>:
        <D.24139>:
        <D.24140>:
        <D.24141>:
        <D.24142>:
        <D.24143>:
        <D.24144>:
        <D.24145>:
        <D.24146>:
        goto <D.24125>;
        <D.24147>:
        __assert_fail ("0", "tramp-amd64.c", 1161, &__PRETTY_FUNCTION__);
        <D.24125>:
        code.4145 = code;
        code.4664 = (long int) code.4145;
        pos.4665 = (long int) pos;
        D.32851 = code.4664 - pos.4665;
        disp = (int) D.32851;
        if (size != 0) goto <D.32852>; else goto <D.32853>;
        <D.32852>:
        {
          union x86_imm_buf imb;

          try
            {
              D.32854 = disp + -4;
              imb.val = D.32854;
              pos.4666 = pos;
              pos = pos.4666 + 1;
              D.32856 = imb.b[0];
              *pos.4666 = D.32856;
              pos.4667 = pos;
              pos = pos.4667 + 1;
              D.32858 = imb.b[1];
              *pos.4667 = D.32858;
              pos.4668 = pos;
              pos = pos.4668 + 1;
              D.32860 = imb.b[2];
              *pos.4668 = D.32860;
              pos.4669 = pos;
              pos = pos.4669 + 1;
              D.32862 = imb.b[3];
              *pos.4669 = D.32862;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.32863>;
        <D.32853>:
        disp.4670 = (unsigned int) disp;
        D.32865 = disp.4670 + 127;
        if (D.32865 <= 255) goto <D.32866>; else goto <D.32867>;
        <D.32866>:
        D.32868 = (unsigned char) disp;
        D.32869 = D.32868 + 255;
        *pos = D.32869;
        pos = pos + 1;
        goto <D.32870>;
        <D.32867>:
        __assert_fail ("0", "tramp-amd64.c", 1161, &__PRETTY_FUNCTION__);
        <D.32870>:
        <D.32863>:
      }
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 0;
        if (_amd64_rex_bits != 0) goto <D.32871>; else goto <D.32872>;
        <D.32871>:
        code.4145 = code;
        code.4671 = code.4145;
        code.4672 = code.4671 + 1;
        code = code.4672;
        D.32875 = _amd64_rex_bits | 64;
        *code.4671 = D.32875;
        <D.32872>:
      }
      code.4145 = code;
      code.4673 = code.4145;
      code.4674 = code.4673 + 1;
      code = code.4674;
      *code.4673 = 255;
      if (0 != 0) goto <D.32878>; else goto <D.32879>;
      <D.32878>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32880>; else goto <D.32881>;
      <D.32880>:
      code.4145 = code;
      code.4675 = code.4145;
      code.4676 = code.4675 + 1;
      code = code.4676;
      *code.4675 = 12;
      code.4145 = code;
      code.4677 = code.4145;
      code.4678 = code.4677 + 1;
      code = code.4678;
      *code.4677 = 36;
      goto <D.32886>;
      <D.32881>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32887>; else goto <D.32888>;
      <D.32887>:
      code.4145 = code;
      code.4679 = code.4145;
      code.4680 = code.4679 + 1;
      code = code.4680;
      *code.4679 = 76;
      code.4145 = code;
      code.4681 = code.4145;
      code.4682 = code.4681 + 1;
      code = code.4682;
      *code.4681 = 36;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32893>;
      <D.32888>:
      code.4145 = code;
      code.4683 = code.4145;
      code.4684 = code.4683 + 1;
      code = code.4684;
      *code.4683 = 140;
      code.4145 = code;
      code.4685 = code.4145;
      code.4686 = code.4685 + 1;
      code = code.4686;
      *code.4685 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4687 = code.4145;
            code.4688 = code.4687 + 1;
            code = code.4688;
            D.32900 = imb.b[0];
            *code.4687 = D.32900;
            code.4145 = code;
            code.4689 = code.4145;
            code.4690 = code.4689 + 1;
            code = code.4690;
            D.32903 = imb.b[1];
            *code.4689 = D.32903;
            code.4145 = code;
            code.4691 = code.4145;
            code.4692 = code.4691 + 1;
            code = code.4692;
            D.32906 = imb.b[2];
            *code.4691 = D.32906;
            code.4145 = code;
            code.4693 = code.4145;
            code.4694 = code.4693 + 1;
            code = code.4694;
            D.32909 = imb.b[3];
            *code.4693 = D.32909;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32893>:
      <D.32886>:
      goto <D.24151>;
      <D.32879>:
      nest_offset.4136 = nest_offset;
      if (nest_offset.4136 == 0) goto <D.32910>; else goto <D.32911>;
      <D.32910>:
      code.4145 = code;
      code.4695 = code.4145;
      code.4696 = code.4695 + 1;
      code = code.4696;
      *code.4695 = 9;
      goto <D.24151>;
      <D.32911>:
      nest_offset.4136 = nest_offset;
      nest_offset.4375 = (unsigned int) nest_offset.4136;
      D.32373 = nest_offset.4375 + 128;
      if (D.32373 <= 255) goto <D.32914>; else goto <D.32915>;
      <D.32914>:
      code.4145 = code;
      code.4697 = code.4145;
      code.4698 = code.4697 + 1;
      code = code.4698;
      *code.4697 = 73;
      code.4145 = code;
      nest_offset.4136 = nest_offset;
      D.32380 = (unsigned char) nest_offset.4136;
      *code.4145 = D.32380;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.32918>;
      <D.32915>:
      code.4145 = code;
      code.4699 = code.4145;
      code.4700 = code.4699 + 1;
      code = code.4700;
      *code.4699 = 137;
      {
        union x86_imm_buf imb;

        try
          {
            nest_offset.4136 = nest_offset;
            imb.val = nest_offset.4136;
            code.4145 = code;
            code.4701 = code.4145;
            code.4702 = code.4701 + 1;
            code = code.4702;
            D.32923 = imb.b[0];
            *code.4701 = D.32923;
            code.4145 = code;
            code.4703 = code.4145;
            code.4704 = code.4703 + 1;
            code = code.4704;
            D.32926 = imb.b[1];
            *code.4703 = D.32926;
            code.4145 = code;
            code.4705 = code.4145;
            code.4706 = code.4705 + 1;
            code = code.4706;
            D.32929 = imb.b[2];
            *code.4705 = D.32929;
            code.4145 = code;
            code.4707 = code.4145;
            code.4708 = code.4707 + 1;
            code = code.4708;
            D.32932 = imb.b[3];
            *code.4707 = D.32932;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.32918>:
      <D.24151>:
      code.4145 = code;
      code.4709 = code.4145;
      code.4710 = code.4709 + 1;
      code = code.4710;
      *code.4709 = 195;
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_obj_null + 1;
        size = 0;
        D.32935 = MEM[(unsigned char *)jump_obj_null];
        D.32936 = (int) D.32935;
        switch (D.32936) <default: <D.24180>, case 15: <D.24159>, case 112: <D.24164>, case 113: <D.24165>, case 114: <D.24166>, case 115: <D.24167>, case 116: <D.24168>, case 117: <D.24169>, case 118: <D.24170>, case 119: <D.24171>, case 120: <D.24172>, case 121: <D.24173>, case 122: <D.24174>, case 123: <D.24175>, case 124: <D.24176>, case 125: <D.24177>, case 126: <D.24178>, case 127: <D.24179>, case 224: <D.24160>, case 225: <D.24161>, case 226: <D.24162>, case 232: <D.24156>, case 233: <D.24157>, case 235: <D.24163>>
        <D.24156>:
        <D.24157>:
        size = size + 1;
        goto <D.24158>;
        <D.24159>:
        D.32937 = *pos;
        D.32938 = D.32937 + 144;
        if (D.32938 > 31) goto <D.32939>; else goto <D.32940>;
        <D.32939>:
        __assert_fail ("0", "tramp-amd64.c", 1166, &__PRETTY_FUNCTION__);
        <D.32940>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24158>;
        <D.24160>:
        <D.24161>:
        <D.24162>:
        <D.24163>:
        <D.24164>:
        <D.24165>:
        <D.24166>:
        <D.24167>:
        <D.24168>:
        <D.24169>:
        <D.24170>:
        <D.24171>:
        <D.24172>:
        <D.24173>:
        <D.24174>:
        <D.24175>:
        <D.24176>:
        <D.24177>:
        <D.24178>:
        <D.24179>:
        goto <D.24158>;
        <D.24180>:
        __assert_fail ("0", "tramp-amd64.c", 1166, &__PRETTY_FUNCTION__);
        <D.24158>:
        code.4145 = code;
        code.4664 = (long int) code.4145;
        pos.4711 = (long int) pos;
        D.32942 = code.4664 - pos.4711;
        disp = (int) D.32942;
        if (size != 0) goto <D.32943>; else goto <D.32944>;
        <D.32943>:
        {
          union x86_imm_buf imb;

          try
            {
              D.32945 = disp + -4;
              imb.val = D.32945;
              pos.4712 = pos;
              pos = pos.4712 + 1;
              D.32947 = imb.b[0];
              *pos.4712 = D.32947;
              pos.4713 = pos;
              pos = pos.4713 + 1;
              D.32949 = imb.b[1];
              *pos.4713 = D.32949;
              pos.4714 = pos;
              pos = pos.4714 + 1;
              D.32951 = imb.b[2];
              *pos.4714 = D.32951;
              pos.4715 = pos;
              pos = pos.4715 + 1;
              D.32953 = imb.b[3];
              *pos.4715 = D.32953;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.32954>;
        <D.32944>:
        disp.4716 = (unsigned int) disp;
        D.32956 = disp.4716 + 127;
        if (D.32956 <= 255) goto <D.32957>; else goto <D.32958>;
        <D.32957>:
        D.32959 = (unsigned char) disp;
        D.32960 = D.32959 + 255;
        *pos = D.32960;
        pos = pos + 1;
        goto <D.32961>;
        <D.32958>:
        __assert_fail ("0", "tramp-amd64.c", 1166, &__PRETTY_FUNCTION__);
        <D.32961>:
        <D.32954>:
      }
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_have_waiters + 1;
        size = 0;
        D.32962 = MEM[(unsigned char *)jump_have_waiters];
        D.32963 = (int) D.32962;
        switch (D.32963) <default: <D.24209>, case 15: <D.24188>, case 112: <D.24193>, case 113: <D.24194>, case 114: <D.24195>, case 115: <D.24196>, case 116: <D.24197>, case 117: <D.24198>, case 118: <D.24199>, case 119: <D.24200>, case 120: <D.24201>, case 121: <D.24202>, case 122: <D.24203>, case 123: <D.24204>, case 124: <D.24205>, case 125: <D.24206>, case 126: <D.24207>, case 127: <D.24208>, case 224: <D.24189>, case 225: <D.24190>, case 226: <D.24191>, case 232: <D.24185>, case 233: <D.24186>, case 235: <D.24192>>
        <D.24185>:
        <D.24186>:
        size = size + 1;
        goto <D.24187>;
        <D.24188>:
        D.32964 = *pos;
        D.32965 = D.32964 + 144;
        if (D.32965 > 31) goto <D.32966>; else goto <D.32967>;
        <D.32966>:
        __assert_fail ("0", "tramp-amd64.c", 1167, &__PRETTY_FUNCTION__);
        <D.32967>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24187>;
        <D.24189>:
        <D.24190>:
        <D.24191>:
        <D.24192>:
        <D.24193>:
        <D.24194>:
        <D.24195>:
        <D.24196>:
        <D.24197>:
        <D.24198>:
        <D.24199>:
        <D.24200>:
        <D.24201>:
        <D.24202>:
        <D.24203>:
        <D.24204>:
        <D.24205>:
        <D.24206>:
        <D.24207>:
        <D.24208>:
        goto <D.24187>;
        <D.24209>:
        __assert_fail ("0", "tramp-amd64.c", 1167, &__PRETTY_FUNCTION__);
        <D.24187>:
        code.4145 = code;
        code.4664 = (long int) code.4145;
        pos.4717 = (long int) pos;
        D.32969 = code.4664 - pos.4717;
        disp = (int) D.32969;
        if (size != 0) goto <D.32970>; else goto <D.32971>;
        <D.32970>:
        {
          union x86_imm_buf imb;

          try
            {
              D.32972 = disp + -4;
              imb.val = D.32972;
              pos.4718 = pos;
              pos = pos.4718 + 1;
              D.32974 = imb.b[0];
              *pos.4718 = D.32974;
              pos.4719 = pos;
              pos = pos.4719 + 1;
              D.32976 = imb.b[1];
              *pos.4719 = D.32976;
              pos.4720 = pos;
              pos = pos.4720 + 1;
              D.32978 = imb.b[2];
              *pos.4720 = D.32978;
              pos.4721 = pos;
              pos = pos.4721 + 1;
              D.32980 = imb.b[3];
              *pos.4721 = D.32980;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.32981>;
        <D.32971>:
        disp.4722 = (unsigned int) disp;
        D.32983 = disp.4722 + 127;
        if (D.32983 <= 255) goto <D.32984>; else goto <D.32985>;
        <D.32984>:
        D.32986 = (unsigned char) disp;
        D.32987 = D.32986 + 255;
        *pos = D.32987;
        pos = pos + 1;
        goto <D.32988>;
        <D.32985>:
        __assert_fail ("0", "tramp-amd64.c", 1167, &__PRETTY_FUNCTION__);
        <D.32988>:
        <D.32981>:
      }
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_not_owned + 1;
        size = 0;
        D.32989 = MEM[(unsigned char *)jump_not_owned];
        D.32990 = (int) D.32989;
        switch (D.32990) <default: <D.24238>, case 15: <D.24217>, case 112: <D.24222>, case 113: <D.24223>, case 114: <D.24224>, case 115: <D.24225>, case 116: <D.24226>, case 117: <D.24227>, case 118: <D.24228>, case 119: <D.24229>, case 120: <D.24230>, case 121: <D.24231>, case 122: <D.24232>, case 123: <D.24233>, case 124: <D.24234>, case 125: <D.24235>, case 126: <D.24236>, case 127: <D.24237>, case 224: <D.24218>, case 225: <D.24219>, case 226: <D.24220>, case 232: <D.24214>, case 233: <D.24215>, case 235: <D.24221>>
        <D.24214>:
        <D.24215>:
        size = size + 1;
        goto <D.24216>;
        <D.24217>:
        D.32991 = *pos;
        D.32992 = D.32991 + 144;
        if (D.32992 > 31) goto <D.32993>; else goto <D.32994>;
        <D.32993>:
        __assert_fail ("0", "tramp-amd64.c", 1168, &__PRETTY_FUNCTION__);
        <D.32994>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24216>;
        <D.24218>:
        <D.24219>:
        <D.24220>:
        <D.24221>:
        <D.24222>:
        <D.24223>:
        <D.24224>:
        <D.24225>:
        <D.24226>:
        <D.24227>:
        <D.24228>:
        <D.24229>:
        <D.24230>:
        <D.24231>:
        <D.24232>:
        <D.24233>:
        <D.24234>:
        <D.24235>:
        <D.24236>:
        <D.24237>:
        goto <D.24216>;
        <D.24238>:
        __assert_fail ("0", "tramp-amd64.c", 1168, &__PRETTY_FUNCTION__);
        <D.24216>:
        code.4145 = code;
        code.4664 = (long int) code.4145;
        pos.4723 = (long int) pos;
        D.32996 = code.4664 - pos.4723;
        disp = (int) D.32996;
        if (size != 0) goto <D.32997>; else goto <D.32998>;
        <D.32997>:
        {
          union x86_imm_buf imb;

          try
            {
              D.32999 = disp + -4;
              imb.val = D.32999;
              pos.4724 = pos;
              pos = pos.4724 + 1;
              D.33001 = imb.b[0];
              *pos.4724 = D.33001;
              pos.4725 = pos;
              pos = pos.4725 + 1;
              D.33003 = imb.b[1];
              *pos.4725 = D.33003;
              pos.4726 = pos;
              pos = pos.4726 + 1;
              D.33005 = imb.b[2];
              *pos.4726 = D.33005;
              pos.4727 = pos;
              pos = pos.4727 + 1;
              D.33007 = imb.b[3];
              *pos.4727 = D.33007;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.33008>;
        <D.32998>:
        disp.4728 = (unsigned int) disp;
        D.33010 = disp.4728 + 127;
        if (D.33010 <= 255) goto <D.33011>; else goto <D.33012>;
        <D.33011>:
        D.33013 = (unsigned char) disp;
        D.33014 = D.33013 + 255;
        *pos = D.33014;
        pos = pos + 1;
        goto <D.33015>;
        <D.33012>:
        __assert_fail ("0", "tramp-amd64.c", 1168, &__PRETTY_FUNCTION__);
        <D.33015>:
        <D.33008>:
      }
      {
        unsigned char * pos;
        int disp;
        int size;

        pos = jump_sync_null + 1;
        size = 0;
        D.33016 = MEM[(unsigned char *)jump_sync_null];
        D.33017 = (int) D.33016;
        switch (D.33017) <default: <D.24267>, case 15: <D.24246>, case 112: <D.24251>, case 113: <D.24252>, case 114: <D.24253>, case 115: <D.24254>, case 116: <D.24255>, case 117: <D.24256>, case 118: <D.24257>, case 119: <D.24258>, case 120: <D.24259>, case 121: <D.24260>, case 122: <D.24261>, case 123: <D.24262>, case 124: <D.24263>, case 125: <D.24264>, case 126: <D.24265>, case 127: <D.24266>, case 224: <D.24247>, case 225: <D.24248>, case 226: <D.24249>, case 232: <D.24243>, case 233: <D.24244>, case 235: <D.24250>>
        <D.24243>:
        <D.24244>:
        size = size + 1;
        goto <D.24245>;
        <D.24246>:
        D.33018 = *pos;
        D.33019 = D.33018 + 144;
        if (D.33019 > 31) goto <D.33020>; else goto <D.33021>;
        <D.33020>:
        __assert_fail ("0", "tramp-amd64.c", 1169, &__PRETTY_FUNCTION__);
        <D.33021>:
        size = size + 1;
        pos = pos + 1;
        goto <D.24245>;
        <D.24247>:
        <D.24248>:
        <D.24249>:
        <D.24250>:
        <D.24251>:
        <D.24252>:
        <D.24253>:
        <D.24254>:
        <D.24255>:
        <D.24256>:
        <D.24257>:
        <D.24258>:
        <D.24259>:
        <D.24260>:
        <D.24261>:
        <D.24262>:
        <D.24263>:
        <D.24264>:
        <D.24265>:
        <D.24266>:
        goto <D.24245>;
        <D.24267>:
        __assert_fail ("0", "tramp-amd64.c", 1169, &__PRETTY_FUNCTION__);
        <D.24245>:
        code.4145 = code;
        code.4664 = (long int) code.4145;
        pos.4729 = (long int) pos;
        D.33023 = code.4664 - pos.4729;
        disp = (int) D.33023;
        if (size != 0) goto <D.33024>; else goto <D.33025>;
        <D.33024>:
        {
          union x86_imm_buf imb;

          try
            {
              D.33026 = disp + -4;
              imb.val = D.33026;
              pos.4730 = pos;
              pos = pos.4730 + 1;
              D.33028 = imb.b[0];
              *pos.4730 = D.33028;
              pos.4731 = pos;
              pos = pos.4731 + 1;
              D.33030 = imb.b[1];
              *pos.4731 = D.33030;
              pos.4732 = pos;
              pos = pos.4732 + 1;
              D.33032 = imb.b[2];
              *pos.4732 = D.33032;
              pos.4733 = pos;
              pos = pos.4733 + 1;
              D.33034 = imb.b[3];
              *pos.4733 = D.33034;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        goto <D.33035>;
        <D.33025>:
        disp.4734 = (unsigned int) disp;
        D.33037 = disp.4734 + 127;
        if (D.33037 <= 255) goto <D.33038>; else goto <D.33039>;
        <D.33038>:
        D.33040 = (unsigned char) disp;
        D.33041 = D.33040 + 255;
        *pos = D.33041;
        pos = pos + 1;
        goto <D.33042>;
        <D.33039>:
        __assert_fail ("0", "tramp-amd64.c", 1169, &__PRETTY_FUNCTION__);
        <D.33042>:
        <D.33035>:
      }
      <D.31980>:
      if (aot != 0) goto <D.33043>; else goto <D.33044>;
      <D.33043>:
      code.4145 = code;
      buf.4144 = buf;
      code.4735 = mono_arch_emit_load_aotconst (buf.4144, code.4145, &ji, 32, "specific_trampoline_monitor_exit");
      code = code.4735;
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.33046>; else goto <D.33047>;
        <D.33046>:
        code.4145 = code;
        code.4736 = code.4145;
        code.4737 = code.4736 + 1;
        code = code.4737;
        D.33050 = _amd64_rex_bits | 64;
        *code.4736 = D.33050;
        <D.33047>:
      }
      code.4145 = code;
      code.4738 = code.4145;
      code.4739 = code.4738 + 1;
      code = code.4739;
      *code.4738 = 255;
      code.4145 = code;
      code.4740 = code.4145;
      code.4741 = code.4740 + 1;
      code = code.4741;
      *code.4740 = 227;
      goto <D.33055>;
      <D.33044>:
      D.33056 = mono_get_root_domain ();
      tramp = mono_arch_create_specific_trampoline (0B, 11, D.33056, 0B);
      tramp.4742 = (long int) tramp;
      code.4145 = code;
      code.4664 = (long int) code.4145;
      D.33058 = tramp.4742 - code.4664;
      D.33059 = (unsigned long) D.33058;
      D.33060 = D.33059 + 2147483648;
      if (D.33060 <= 4294967295) goto <D.33061>; else goto <D.33062>;
      <D.33061>:
      {
        int t;

        tramp.4742 = (long int) tramp;
        code.4145 = code;
        code.4664 = (long int) code.4145;
        D.33058 = tramp.4742 - code.4664;
        D.33063 = (unsigned int) D.33058;
        D.33064 = D.33063 + 4294967294;
        t = (int) D.33064;
        t.4743 = (unsigned int) t;
        D.33066 = t.4743 + 128;
        if (D.33066 <= 255) goto <D.33067>; else goto <D.33068>;
        <D.33067>:
        code.4145 = code;
        code.4744 = code.4145;
        code.4745 = code.4744 + 1;
        code = code.4745;
        *code.4744 = 235;
        code.4145 = code;
        D.33071 = (unsigned char) t;
        *code.4145 = D.33071;
        code.4145 = code;
        code.4156 = code.4145 + 1;
        code = code.4156;
        goto <D.33072>;
        <D.33068>:
        tramp.4742 = (long int) tramp;
        code.4145 = code;
        code.4664 = (long int) code.4145;
        D.33058 = tramp.4742 - code.4664;
        D.33063 = (unsigned int) D.33058;
        D.33073 = D.33063 + 4294967291;
        t = (int) D.33073;
        code.4145 = code;
        code.4746 = code.4145;
        code.4747 = code.4746 + 1;
        code = code.4747;
        *code.4746 = 233;
        {
          union x86_imm_buf imb;

          try
            {
              imb.val = t;
              code.4145 = code;
              code.4748 = code.4145;
              code.4749 = code.4748 + 1;
              code = code.4749;
              D.33078 = imb.b[0];
              *code.4748 = D.33078;
              code.4145 = code;
              code.4750 = code.4145;
              code.4751 = code.4750 + 1;
              code = code.4751;
              D.33081 = imb.b[1];
              *code.4750 = D.33081;
              code.4145 = code;
              code.4752 = code.4145;
              code.4753 = code.4752 + 1;
              code = code.4753;
              D.33084 = imb.b[2];
              *code.4752 = D.33084;
              code.4145 = code;
              code.4754 = code.4145;
              code.4755 = code.4754 + 1;
              code = code.4755;
              D.33087 = imb.b[3];
              *code.4754 = D.33087;
            }
          finally
            {
              imb = {CLOBBER};
            }
        }
        <D.33072>:
      }
      goto <D.33088>;
      <D.33062>:
      {
        unsigned char _amd64_rex_bits;

        _amd64_rex_bits = 1;
        if (_amd64_rex_bits != 0) goto <D.33089>; else goto <D.33090>;
        <D.33089>:
        code.4145 = code;
        code.4756 = code.4145;
        code.4757 = code.4756 + 1;
        code = code.4757;
        D.33093 = _amd64_rex_bits | 64;
        *code.4756 = D.33093;
        <D.33090>:
      }
      code.4145 = code;
      code.4758 = code.4145;
      code.4759 = code.4758 + 1;
      code = code.4759;
      *code.4758 = 255;
      if (1 != 0) goto <D.33096>; else goto <D.33097>;
      <D.33096>:
      code.4145 = code;
      code.4760 = code.4145;
      code.4761 = code.4760 + 1;
      code = code.4761;
      *code.4760 = 37;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.4145 = code;
            code.4762 = code.4145;
            code.4763 = code.4762 + 1;
            code = code.4763;
            D.33102 = imb.b[0];
            *code.4762 = D.33102;
            code.4145 = code;
            code.4764 = code.4145;
            code.4765 = code.4764 + 1;
            code = code.4765;
            D.33105 = imb.b[1];
            *code.4764 = D.33105;
            code.4145 = code;
            code.4766 = code.4145;
            code.4767 = code.4766 + 1;
            code = code.4767;
            D.33108 = imb.b[2];
            *code.4766 = D.33108;
            code.4145 = code;
            code.4768 = code.4145;
            code.4769 = code.4768 + 1;
            code = code.4769;
            D.33111 = imb.b[3];
            *code.4768 = D.33111;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      goto <D.33112>;
      <D.33097>:
      if (0 != 0) goto <D.33113>; else goto <D.33114>;
      <D.33113>:
      if (1 != 0) goto <D.33115>; else goto <D.33116>;
      <D.33115>:
      code.4145 = code;
      code.4770 = code.4145;
      code.4771 = code.4770 + 1;
      code = code.4771;
      *code.4770 = 36;
      code.4145 = code;
      code.4772 = code.4145;
      code.4773 = code.4772 + 1;
      code = code.4773;
      *code.4772 = 36;
      goto <D.33121>;
      <D.33116>:
      if (1 != 0) goto <D.33122>; else goto <D.33123>;
      <D.33122>:
      code.4145 = code;
      code.4774 = code.4145;
      code.4775 = code.4774 + 1;
      code = code.4775;
      *code.4774 = 100;
      code.4145 = code;
      code.4776 = code.4145;
      code.4777 = code.4776 + 1;
      code = code.4777;
      *code.4776 = 36;
      code.4145 = code;
      *code.4145 = 0;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.33128>;
      <D.33123>:
      code.4145 = code;
      code.4778 = code.4145;
      code.4779 = code.4778 + 1;
      code = code.4779;
      *code.4778 = 164;
      code.4145 = code;
      code.4780 = code.4145;
      code.4781 = code.4780 + 1;
      code = code.4781;
      *code.4780 = 36;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.4145 = code;
            code.4782 = code.4145;
            code.4783 = code.4782 + 1;
            code = code.4783;
            D.33135 = imb.b[0];
            *code.4782 = D.33135;
            code.4145 = code;
            code.4784 = code.4145;
            code.4785 = code.4784 + 1;
            code = code.4785;
            D.33138 = imb.b[1];
            *code.4784 = D.33138;
            code.4145 = code;
            code.4786 = code.4145;
            code.4787 = code.4786 + 1;
            code = code.4787;
            D.33141 = imb.b[2];
            *code.4786 = D.33141;
            code.4145 = code;
            code.4788 = code.4145;
            code.4789 = code.4788 + 1;
            code = code.4789;
            D.33144 = imb.b[3];
            *code.4788 = D.33144;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.33128>:
      <D.33121>:
      goto <D.24275>;
      <D.33114>:
      if (1 != 0) goto <D.33145>; else goto <D.33146>;
      <D.33145>:
      code.4145 = code;
      code.4790 = code.4145;
      code.4791 = code.4790 + 1;
      code = code.4791;
      *code.4790 = 32;
      goto <D.24275>;
      <D.33146>:
      if (1 != 0) goto <D.33149>; else goto <D.33150>;
      <D.33149>:
      code.4145 = code;
      code.4792 = code.4145;
      code.4793 = code.4792 + 1;
      code = code.4793;
      *code.4792 = 96;
      code.4145 = code;
      *code.4145 = 0;
      code.4145 = code;
      code.4156 = code.4145 + 1;
      code = code.4156;
      goto <D.33153>;
      <D.33150>:
      code.4145 = code;
      code.4794 = code.4145;
      code.4795 = code.4794 + 1;
      code = code.4795;
      *code.4794 = 160;
      {
        union x86_imm_buf imb;

        try
          {
            imb.val = 0;
            code.4145 = code;
            code.4796 = code.4145;
            code.4797 = code.4796 + 1;
            code = code.4797;
            D.33158 = imb.b[0];
            *code.4796 = D.33158;
            code.4145 = code;
            code.4798 = code.4145;
            code.4799 = code.4798 + 1;
            code = code.4799;
            D.33161 = imb.b[1];
            *code.4798 = D.33161;
            code.4145 = code;
            code.4800 = code.4145;
            code.4801 = code.4800 + 1;
            code = code.4801;
            D.33164 = imb.b[2];
            *code.4800 = D.33164;
            code.4145 = code;
            code.4802 = code.4145;
            code.4803 = code.4802 + 1;
            code = code.4803;
            D.33167 = imb.b[3];
            *code.4802 = D.33167;
          }
        finally
          {
            imb = {CLOBBER};
          }
      }
      <D.33153>:
      <D.24275>:
      <D.33112>:
      code.4145 = code;
      tramp.4804 = (long unsigned int) tramp;
      MEM[(guint64 *)code.4145] = tramp.4804;
      code.4145 = code;
      code.4805 = code.4145 + 8;
      code = code.4805;
      <D.33088>:
      <D.33055>:
      nacl_global_codeman_validate (&buf, tramp_size, &code);
      code.4145 = code;
      code.4664 = (long int) code.4145;
      buf.4144 = buf;
      buf.4806 = (long int) buf.4144;
      D.33171 = code.4664 - buf.4806;
      D.33172 = (int) D.33171;
      code.4145 = code;
      mono_arch_flush_icache (code.4145, D.33172);
      code.4145 = code;
      code.4664 = (long int) code.4145;
      buf.4144 = buf;
      buf.4806 = (long int) buf.4144;
      D.33171 = code.4664 - buf.4806;
      D.33173 = (long int) tramp_size;
      D.33174 = D.33171 > D.33173;
      D.33175 = (long int) D.33174;
      D.33176 = __builtin_expect (D.33175, 0);
      if (D.33176 != 0) goto <D.33177>; else goto <D.33178>;
      <D.33177>:
      monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1188, "code - buf <= tramp_size");
      <D.33178>:
      if (info != 0B) goto <D.33179>; else goto <D.33180>;
      <D.33179>:
      ji.4807 = ji;
      code.4145 = code;
      code.4664 = (long int) code.4145;
      buf.4144 = buf;
      buf.4806 = (long int) buf.4144;
      D.33171 = code.4664 - buf.4806;
      D.33182 = (unsigned int) D.33171;
      buf.4144 = buf;
      D.33183 = mono_tramp_info_create ("monitor_exit_trampoline", buf.4144, D.33182, ji.4807, unwind_ops);
      *info = D.33183;
      <D.33180>:
      D.33184 = buf;
      return D.33184;
    }
  finally
    {
      code = {CLOBBER};
      buf = {CLOBBER};
      owner_offset = {CLOBBER};
      nest_offset = {CLOBBER};
      entry_count_offset = {CLOBBER};
      ji = {CLOBBER};
    }
}


mono_arch_invalidate_method (struct MonoJitInfo * ji, void * func, void * func_arg)
{
  long unsigned int func_arg.4808;
  long int func_arg.4809;
  int D.33194;
  long unsigned int D.33195;
  _Bool D.33196;
  unsigned char iftmp.4810;
  guint8 * code.4811;
  unsigned char D.33204;
  guint8 * code.4812;
  guint8 * code.4813;
  unsigned char D.33209;
  guint8 * code.4814;
  unsigned char D.33211;
  guint8 * code.4815;
  unsigned char D.33213;
  guint8 * code.4816;
  unsigned char D.33215;
  guint8 * code.4817;
  unsigned char D.33217;
  guint8 * code.4818;
  unsigned char D.33219;
  guint8 * code.4819;
  unsigned char D.33221;
  guint8 * code.4820;
  unsigned char D.33223;
  guint8 * code.4821;
  unsigned char D.33226;
  guint8 * code.4822;
  unsigned char D.33228;
  guint8 * code.4823;
  unsigned char D.33230;
  guint8 * code.4824;
  unsigned char D.33232;
  long unsigned int func.4825;
  long int func.4826;
  int D.33235;
  long unsigned int D.33236;
  _Bool D.33237;
  unsigned char iftmp.4827;
  guint8 * code.4828;
  unsigned char D.33245;
  guint8 * code.4829;
  guint8 * code.4830;
  unsigned char D.33250;
  guint8 * code.4831;
  unsigned char D.33252;
  guint8 * code.4832;
  unsigned char D.33254;
  guint8 * code.4833;
  unsigned char D.33256;
  guint8 * code.4834;
  unsigned char D.33258;
  guint8 * code.4835;
  unsigned char D.33260;
  guint8 * code.4836;
  unsigned char D.33262;
  guint8 * code.4837;
  unsigned char D.33264;
  guint8 * code.4838;
  unsigned char D.33267;
  guint8 * code.4839;
  unsigned char D.33269;
  guint8 * code.4840;
  unsigned char D.33271;
  guint8 * code.4841;
  unsigned char D.33273;
  unsigned int _imm.4842;
  unsigned int D.33275;
  guint8 * code.4843;
  unsigned char D.33279;
  guint8 * code.4844;
  guint8 * code.4845;
  unsigned char D.33283;
  guint8 * code.4846;
  unsigned char D.33285;
  guint8 * code.4847;
  unsigned char D.33287;
  guint8 * code.4848;
  unsigned char D.33289;
  guint8 * code.4849;
  unsigned char D.33293;
  guint8 * code.4850;
  guint8 * code.4851;
  guint8 * code;

  code = ji->code_start;
  {
    int _amd64_width_temp;

    func_arg.4808 = (long unsigned int) func_arg;
    func_arg.4809 = (long int) func_arg;
    D.33194 = (int) func_arg.4809;
    D.33195 = (long unsigned int) D.33194;
    D.33196 = func_arg.4808 == D.33195;
    _amd64_width_temp = (int) D.33196;
    {
      unsigned char _amd64_rex_bits;

      if (_amd64_width_temp == 0) goto <D.33198>; else goto <D.33199>;
      <D.33198>:
      iftmp.4810 = 8;
      goto <D.33200>;
      <D.33199>:
      iftmp.4810 = 0;
      <D.33200>:
      _amd64_rex_bits = iftmp.4810;
      if (_amd64_rex_bits != 0) goto <D.33201>; else goto <D.33202>;
      <D.33201>:
      code.4811 = code;
      code = code.4811 + 1;
      D.33204 = _amd64_rex_bits | 64;
      *code.4811 = D.33204;
      <D.33202>:
    }
    code.4812 = code;
    code = code.4812 + 1;
    *code.4812 = 191;
    if (_amd64_width_temp == 0) goto <D.33206>; else goto <D.33207>;
    <D.33206>:
    {
      union amd64_imm_buf imb;

      try
        {
          func_arg.4808 = (long unsigned int) func_arg;
          imb.val = func_arg.4808;
          code.4813 = code;
          code = code.4813 + 1;
          D.33209 = imb.b[0];
          *code.4813 = D.33209;
          code.4814 = code;
          code = code.4814 + 1;
          D.33211 = imb.b[1];
          *code.4814 = D.33211;
          code.4815 = code;
          code = code.4815 + 1;
          D.33213 = imb.b[2];
          *code.4815 = D.33213;
          code.4816 = code;
          code = code.4816 + 1;
          D.33215 = imb.b[3];
          *code.4816 = D.33215;
          code.4817 = code;
          code = code.4817 + 1;
          D.33217 = imb.b[4];
          *code.4817 = D.33217;
          code.4818 = code;
          code = code.4818 + 1;
          D.33219 = imb.b[5];
          *code.4818 = D.33219;
          code.4819 = code;
          code = code.4819 + 1;
          D.33221 = imb.b[6];
          *code.4819 = D.33221;
          code.4820 = code;
          code = code.4820 + 1;
          D.33223 = imb.b[7];
          *code.4820 = D.33223;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    goto <D.33224>;
    <D.33207>:
    {
      union x86_imm_buf imb;

      try
        {
          func_arg.4809 = (long int) func_arg;
          D.33194 = (int) func_arg.4809;
          imb.val = D.33194;
          code.4821 = code;
          code = code.4821 + 1;
          D.33226 = imb.b[0];
          *code.4821 = D.33226;
          code.4822 = code;
          code = code.4822 + 1;
          D.33228 = imb.b[1];
          *code.4822 = D.33228;
          code.4823 = code;
          code = code.4823 + 1;
          D.33230 = imb.b[2];
          *code.4823 = D.33230;
          code.4824 = code;
          code = code.4824 + 1;
          D.33232 = imb.b[3];
          *code.4824 = D.33232;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33224>:
  }
  {
    int _amd64_width_temp;

    func.4825 = (long unsigned int) func;
    func.4826 = (long int) func;
    D.33235 = (int) func.4826;
    D.33236 = (long unsigned int) D.33235;
    D.33237 = func.4825 == D.33236;
    _amd64_width_temp = (int) D.33237;
    {
      unsigned char _amd64_rex_bits;

      if (_amd64_width_temp == 0) goto <D.33239>; else goto <D.33240>;
      <D.33239>:
      iftmp.4827 = 9;
      goto <D.33241>;
      <D.33240>:
      iftmp.4827 = 1;
      <D.33241>:
      _amd64_rex_bits = iftmp.4827;
      if (_amd64_rex_bits != 0) goto <D.33242>; else goto <D.33243>;
      <D.33242>:
      code.4828 = code;
      code = code.4828 + 1;
      D.33245 = _amd64_rex_bits | 64;
      *code.4828 = D.33245;
      <D.33243>:
    }
    code.4829 = code;
    code = code.4829 + 1;
    *code.4829 = 187;
    if (_amd64_width_temp == 0) goto <D.33247>; else goto <D.33248>;
    <D.33247>:
    {
      union amd64_imm_buf imb;

      try
        {
          func.4825 = (long unsigned int) func;
          imb.val = func.4825;
          code.4830 = code;
          code = code.4830 + 1;
          D.33250 = imb.b[0];
          *code.4830 = D.33250;
          code.4831 = code;
          code = code.4831 + 1;
          D.33252 = imb.b[1];
          *code.4831 = D.33252;
          code.4832 = code;
          code = code.4832 + 1;
          D.33254 = imb.b[2];
          *code.4832 = D.33254;
          code.4833 = code;
          code = code.4833 + 1;
          D.33256 = imb.b[3];
          *code.4833 = D.33256;
          code.4834 = code;
          code = code.4834 + 1;
          D.33258 = imb.b[4];
          *code.4834 = D.33258;
          code.4835 = code;
          code = code.4835 + 1;
          D.33260 = imb.b[5];
          *code.4835 = D.33260;
          code.4836 = code;
          code = code.4836 + 1;
          D.33262 = imb.b[6];
          *code.4836 = D.33262;
          code.4837 = code;
          code = code.4837 + 1;
          D.33264 = imb.b[7];
          *code.4837 = D.33264;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    goto <D.33265>;
    <D.33248>:
    {
      union x86_imm_buf imb;

      try
        {
          func.4826 = (long int) func;
          D.33235 = (int) func.4826;
          imb.val = D.33235;
          code.4838 = code;
          code = code.4838 + 1;
          D.33267 = imb.b[0];
          *code.4838 = D.33267;
          code.4839 = code;
          code = code.4839 + 1;
          D.33269 = imb.b[1];
          *code.4839 = D.33269;
          code.4840 = code;
          code = code.4840 + 1;
          D.33271 = imb.b[2];
          *code.4840 = D.33271;
          code.4841 = code;
          code = code.4841 + 1;
          D.33273 = imb.b[3];
          *code.4841 = D.33273;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33265>:
  }
  {
    int _imm;

    func_arg.4809 = (long int) func_arg;
    _imm = (int) func_arg.4809;
    _imm.4842 = (unsigned int) _imm;
    D.33275 = _imm.4842 + 128;
    if (D.33275 <= 255) goto <D.33276>; else goto <D.33277>;
    <D.33276>:
    code.4843 = code;
    code = code.4843 + 1;
    *code.4843 = 106;
    D.33279 = (unsigned char) _imm;
    *code = D.33279;
    code = code + 1;
    goto <D.33280>;
    <D.33277>:
    code.4844 = code;
    code = code.4844 + 1;
    *code.4844 = 104;
    {
      union x86_imm_buf imb;

      try
        {
          imb.val = _imm;
          code.4845 = code;
          code = code.4845 + 1;
          D.33283 = imb.b[0];
          *code.4845 = D.33283;
          code.4846 = code;
          code = code.4846 + 1;
          D.33285 = imb.b[1];
          *code.4846 = D.33285;
          code.4847 = code;
          code = code.4847 + 1;
          D.33287 = imb.b[2];
          *code.4847 = D.33287;
          code.4848 = code;
          code = code.4848 + 1;
          D.33289 = imb.b[3];
          *code.4848 = D.33289;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33280>:
  }
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 1;
    if (_amd64_rex_bits != 0) goto <D.33290>; else goto <D.33291>;
    <D.33290>:
    code.4849 = code;
    code = code.4849 + 1;
    D.33293 = _amd64_rex_bits | 64;
    *code.4849 = D.33293;
    <D.33291>:
  }
  code.4850 = code;
  code = code.4850 + 1;
  *code.4850 = 255;
  code.4851 = code;
  code = code.4851 + 1;
  *code.4851 = 211;
}


mono_arch_create_handler_block_trampoline ()
{
  int D.33296;
  int D.33299;
  guint8 * code.4852;
  guint8 * code.4853;
  unsigned char D.33306;
  guint8 * code.4854;
  guint8 * code.4855;
  guint8 * code.4856;
  guint8 * code.4857;
  unsigned char D.33313;
  guint8 * code.4858;
  unsigned char D.33315;
  guint8 * code.4859;
  unsigned char D.33317;
  guint8 * code.4860;
  unsigned char D.33319;
  guint8 * code.4861;
  guint8 * code.4862;
  guint8 * code.4863;
  guint8 * code.4864;
  guint8 * code.4865;
  guint8 * code.4866;
  guint8 * code.4867;
  unsigned char D.33336;
  guint8 * code.4868;
  unsigned char D.33338;
  guint8 * code.4869;
  unsigned char D.33340;
  guint8 * code.4870;
  unsigned char D.33342;
  guint8 * code.4871;
  guint8 * code.4872;
  guint8 * code.4873;
  guint8 * code.4874;
  unsigned char D.33352;
  guint8 * code.4875;
  unsigned char D.33354;
  guint8 * code.4876;
  unsigned char D.33356;
  guint8 * code.4877;
  unsigned char D.33358;
  guint8 * code.4878;
  unsigned char D.33362;
  guint8 * code.4879;
  long int tramp.4880;
  long int code.4881;
  long int D.33366;
  unsigned long D.33367;
  unsigned long D.33368;
  unsigned int D.33371;
  unsigned int D.33372;
  unsigned int t.4882;
  unsigned int D.33374;
  guint8 * code.4883;
  unsigned char D.33378;
  unsigned int D.33380;
  guint8 * code.4884;
  guint8 * code.4885;
  unsigned char D.33383;
  guint8 * code.4886;
  unsigned char D.33385;
  guint8 * code.4887;
  unsigned char D.33387;
  guint8 * code.4888;
  unsigned char D.33389;
  guint8 * code.4889;
  unsigned char D.33394;
  guint8 * code.4890;
  guint8 * code.4891;
  guint8 * code.4892;
  unsigned char D.33400;
  guint8 * code.4893;
  unsigned char D.33402;
  guint8 * code.4894;
  unsigned char D.33404;
  guint8 * code.4895;
  unsigned char D.33406;
  guint8 * code.4896;
  guint8 * code.4897;
  guint8 * code.4898;
  guint8 * code.4899;
  guint8 * code.4900;
  guint8 * code.4901;
  guint8 * code.4902;
  unsigned char D.33423;
  guint8 * code.4903;
  unsigned char D.33425;
  guint8 * code.4904;
  unsigned char D.33427;
  guint8 * code.4905;
  unsigned char D.33429;
  guint8 * code.4906;
  guint8 * code.4907;
  guint8 * code.4908;
  guint8 * code.4909;
  unsigned char D.33439;
  guint8 * code.4910;
  unsigned char D.33441;
  guint8 * code.4911;
  unsigned char D.33443;
  guint8 * code.4912;
  unsigned char D.33445;
  long unsigned int tramp.4913;
  guint8 * code.4914;
  guint8 * code.4915;
  unsigned char D.33454;
  guint8 * code.4916;
  guint8 * code.4917;
  guint8 * code.4918;
  int D.33458;
  long unsigned int D.33459;
  _Bool D.33460;
  unsigned char iftmp.4919;
  guint8 * code.4920;
  unsigned char D.33468;
  guint8 * code.4921;
  guint8 * code.4922;
  unsigned char D.33473;
  guint8 * code.4923;
  unsigned char D.33475;
  guint8 * code.4924;
  unsigned char D.33477;
  guint8 * code.4925;
  unsigned char D.33479;
  guint8 * code.4926;
  unsigned char D.33481;
  guint8 * code.4927;
  unsigned char D.33483;
  guint8 * code.4928;
  unsigned char D.33485;
  guint8 * code.4929;
  unsigned char D.33487;
  guint8 * code.4930;
  unsigned char D.33490;
  guint8 * code.4931;
  unsigned char D.33492;
  guint8 * code.4932;
  unsigned char D.33494;
  guint8 * code.4933;
  unsigned char D.33496;
  guint8 * code.4934;
  unsigned char D.33500;
  guint8 * code.4935;
  unsigned long handler_block_trampoline_helper.4936;
  unsigned long D.33503;
  unsigned long code.4937;
  unsigned long D.33505;
  long int handler_block_trampoline_helper.4938;
  unsigned int D.33509;
  unsigned int D.33510;
  unsigned int D.33511;
  unsigned int D.33512;
  unsigned int t.4939;
  unsigned int D.33514;
  guint8 * code.4940;
  unsigned char D.33518;
  unsigned int D.33520;
  unsigned int D.33521;
  guint8 * code.4941;
  guint8 * code.4942;
  unsigned char D.33524;
  guint8 * code.4943;
  unsigned char D.33526;
  guint8 * code.4944;
  unsigned char D.33528;
  guint8 * code.4945;
  unsigned char D.33530;
  guint8 * code.4946;
  unsigned char D.33535;
  guint8 * code.4947;
  guint8 * code.4948;
  guint8 * code.4949;
  unsigned char D.33541;
  guint8 * code.4950;
  unsigned char D.33543;
  guint8 * code.4951;
  unsigned char D.33545;
  guint8 * code.4952;
  unsigned char D.33547;
  guint8 * code.4953;
  guint8 * code.4954;
  guint8 * code.4955;
  guint8 * code.4956;
  guint8 * code.4957;
  guint8 * code.4958;
  guint8 * code.4959;
  unsigned char D.33564;
  guint8 * code.4960;
  unsigned char D.33566;
  guint8 * code.4961;
  unsigned char D.33568;
  guint8 * code.4962;
  unsigned char D.33570;
  guint8 * code.4963;
  guint8 * code.4964;
  guint8 * code.4965;
  guint8 * code.4966;
  unsigned char D.33580;
  guint8 * code.4967;
  unsigned char D.33582;
  guint8 * code.4968;
  unsigned char D.33584;
  guint8 * code.4969;
  unsigned char D.33586;
  long unsigned int handler_block_trampoline_helper.4970;
  long int buf.4971;
  long int D.33589;
  int D.33590;
  long int D.33591;
  _Bool D.33592;
  long int D.33593;
  long int D.33594;
  int D.33597;
  int D.33600;
  void * D.33601;
  guint8 * tramp;
  guint8 * code;
  guint8 * buf;
  int tramp_size;
  static const char __PRETTY_FUNCTION__[42] = "mono_arch_create_handler_block_trampoline";

  tramp = mono_get_trampoline_code (13);
  tramp_size = 64;
  buf = mono_global_codeman_reserve (tramp_size);
  code = buf;
  D.33296 = mono_get_jit_tls_offset ();
  if (D.33296 != -1) goto <D.33297>; else goto <D.33298>;
  <D.33297>:
  D.33299 = mono_get_jit_tls_offset ();
  code = mono_amd64_emit_tls_get (code, 7, D.33299);
  if (0 != 0) goto <D.33300>; else goto <D.33301>;
  <D.33300>:
  code.4852 = code;
  code = code.4852 + 1;
  *code.4852 = 102;
  <D.33301>:
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 8;
    if (_amd64_rex_bits != 0) goto <D.33303>; else goto <D.33304>;
    <D.33303>:
    code.4853 = code;
    code = code.4853 + 1;
    D.33306 = _amd64_rex_bits | 64;
    *code.4853 = D.33306;
    <D.33304>:
  }
  switch (8) <default: <D.24311>, case 1: <D.24306>, case 2: <D.24308>, case 4: <D.24309>, case 8: <D.24310>>
  <D.24306>:
  code.4854 = code;
  code = code.4854 + 1;
  *code.4854 = 138;
  goto <D.24307>;
  <D.24308>:
  <D.24309>:
  <D.24310>:
  code.4855 = code;
  code = code.4855 + 1;
  *code.4855 = 139;
  goto <D.24307>;
  <D.24311>:
  __assert_fail ("0", "tramp-amd64.c", 1232, &__PRETTY_FUNCTION__);
  <D.24307>:
  if (0 != 0) goto <D.33309>; else goto <D.33310>;
  <D.33309>:
  code.4856 = code;
  code = code.4856 + 1;
  *code.4856 = 61;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 544;
        code.4857 = code;
        code = code.4857 + 1;
        D.33313 = imb.b[0];
        *code.4857 = D.33313;
        code.4858 = code;
        code = code.4858 + 1;
        D.33315 = imb.b[1];
        *code.4858 = D.33315;
        code.4859 = code;
        code = code.4859 + 1;
        D.33317 = imb.b[2];
        *code.4859 = D.33317;
        code.4860 = code;
        code = code.4860 + 1;
        D.33319 = imb.b[3];
        *code.4860 = D.33319;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  goto <D.33320>;
  <D.33310>:
  if (0 != 0) goto <D.33321>; else goto <D.33322>;
  <D.33321>:
  if (0 != 0) goto <D.33323>; else goto <D.33324>;
  <D.33323>:
  code.4861 = code;
  code = code.4861 + 1;
  *code.4861 = 60;
  code.4862 = code;
  code = code.4862 + 1;
  *code.4862 = 36;
  goto <D.33327>;
  <D.33324>:
  if (0 != 0) goto <D.33328>; else goto <D.33329>;
  <D.33328>:
  code.4863 = code;
  code = code.4863 + 1;
  *code.4863 = 124;
  code.4864 = code;
  code = code.4864 + 1;
  *code.4864 = 36;
  *code = 32;
  code = code + 1;
  goto <D.33332>;
  <D.33329>:
  code.4865 = code;
  code = code.4865 + 1;
  *code.4865 = 188;
  code.4866 = code;
  code = code.4866 + 1;
  *code.4866 = 36;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 544;
        code.4867 = code;
        code = code.4867 + 1;
        D.33336 = imb.b[0];
        *code.4867 = D.33336;
        code.4868 = code;
        code = code.4868 + 1;
        D.33338 = imb.b[1];
        *code.4868 = D.33338;
        code.4869 = code;
        code = code.4869 + 1;
        D.33340 = imb.b[2];
        *code.4869 = D.33340;
        code.4870 = code;
        code = code.4870 + 1;
        D.33342 = imb.b[3];
        *code.4870 = D.33342;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33332>:
  <D.33327>:
  goto <D.24315>;
  <D.33322>:
  if (0 != 0) goto <D.33343>; else goto <D.33344>;
  <D.33343>:
  code.4871 = code;
  code = code.4871 + 1;
  *code.4871 = 63;
  goto <D.24315>;
  <D.33344>:
  if (0 != 0) goto <D.33346>; else goto <D.33347>;
  <D.33346>:
  code.4872 = code;
  code = code.4872 + 1;
  *code.4872 = 127;
  *code = 32;
  code = code + 1;
  goto <D.33349>;
  <D.33347>:
  code.4873 = code;
  code = code.4873 + 1;
  *code.4873 = 191;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 544;
        code.4874 = code;
        code = code.4874 + 1;
        D.33352 = imb.b[0];
        *code.4874 = D.33352;
        code.4875 = code;
        code = code.4875 + 1;
        D.33354 = imb.b[1];
        *code.4875 = D.33354;
        code.4876 = code;
        code = code.4876 + 1;
        D.33356 = imb.b[2];
        *code.4876 = D.33356;
        code.4877 = code;
        code = code.4877 + 1;
        D.33358 = imb.b[3];
        *code.4877 = D.33358;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33349>:
  <D.24315>:
  <D.33320>:
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 0;
    if (_amd64_rex_bits != 0) goto <D.33359>; else goto <D.33360>;
    <D.33359>:
    code.4878 = code;
    code = code.4878 + 1;
    D.33362 = _amd64_rex_bits | 64;
    *code.4878 = D.33362;
    <D.33360>:
  }
  code.4879 = code;
  code = code.4879 + 1;
  *code.4879 = 80;
  tramp.4880 = (long int) tramp;
  code.4881 = (long int) code;
  D.33366 = tramp.4880 - code.4881;
  D.33367 = (unsigned long) D.33366;
  D.33368 = D.33367 + 2147483648;
  if (D.33368 <= 4294967295) goto <D.33369>; else goto <D.33370>;
  <D.33369>:
  {
    int t;

    tramp.4880 = (long int) tramp;
    code.4881 = (long int) code;
    D.33366 = tramp.4880 - code.4881;
    D.33371 = (unsigned int) D.33366;
    D.33372 = D.33371 + 4294967294;
    t = (int) D.33372;
    t.4882 = (unsigned int) t;
    D.33374 = t.4882 + 128;
    if (D.33374 <= 255) goto <D.33375>; else goto <D.33376>;
    <D.33375>:
    code.4883 = code;
    code = code.4883 + 1;
    *code.4883 = 235;
    D.33378 = (unsigned char) t;
    *code = D.33378;
    code = code + 1;
    goto <D.33379>;
    <D.33376>:
    tramp.4880 = (long int) tramp;
    code.4881 = (long int) code;
    D.33366 = tramp.4880 - code.4881;
    D.33371 = (unsigned int) D.33366;
    D.33380 = D.33371 + 4294967291;
    t = (int) D.33380;
    code.4884 = code;
    code = code.4884 + 1;
    *code.4884 = 233;
    {
      union x86_imm_buf imb;

      try
        {
          imb.val = t;
          code.4885 = code;
          code = code.4885 + 1;
          D.33383 = imb.b[0];
          *code.4885 = D.33383;
          code.4886 = code;
          code = code.4886 + 1;
          D.33385 = imb.b[1];
          *code.4886 = D.33385;
          code.4887 = code;
          code = code.4887 + 1;
          D.33387 = imb.b[2];
          *code.4887 = D.33387;
          code.4888 = code;
          code = code.4888 + 1;
          D.33389 = imb.b[3];
          *code.4888 = D.33389;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33379>:
  }
  goto <D.33390>;
  <D.33370>:
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 1;
    if (_amd64_rex_bits != 0) goto <D.33391>; else goto <D.33392>;
    <D.33391>:
    code.4889 = code;
    code = code.4889 + 1;
    D.33394 = _amd64_rex_bits | 64;
    *code.4889 = D.33394;
    <D.33392>:
  }
  code.4890 = code;
  code = code.4890 + 1;
  *code.4890 = 255;
  if (1 != 0) goto <D.33396>; else goto <D.33397>;
  <D.33396>:
  code.4891 = code;
  code = code.4891 + 1;
  *code.4891 = 37;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4892 = code;
        code = code.4892 + 1;
        D.33400 = imb.b[0];
        *code.4892 = D.33400;
        code.4893 = code;
        code = code.4893 + 1;
        D.33402 = imb.b[1];
        *code.4893 = D.33402;
        code.4894 = code;
        code = code.4894 + 1;
        D.33404 = imb.b[2];
        *code.4894 = D.33404;
        code.4895 = code;
        code = code.4895 + 1;
        D.33406 = imb.b[3];
        *code.4895 = D.33406;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  goto <D.33407>;
  <D.33397>:
  if (0 != 0) goto <D.33408>; else goto <D.33409>;
  <D.33408>:
  if (1 != 0) goto <D.33410>; else goto <D.33411>;
  <D.33410>:
  code.4896 = code;
  code = code.4896 + 1;
  *code.4896 = 36;
  code.4897 = code;
  code = code.4897 + 1;
  *code.4897 = 36;
  goto <D.33414>;
  <D.33411>:
  if (1 != 0) goto <D.33415>; else goto <D.33416>;
  <D.33415>:
  code.4898 = code;
  code = code.4898 + 1;
  *code.4898 = 100;
  code.4899 = code;
  code = code.4899 + 1;
  *code.4899 = 36;
  *code = 0;
  code = code + 1;
  goto <D.33419>;
  <D.33416>:
  code.4900 = code;
  code = code.4900 + 1;
  *code.4900 = 164;
  code.4901 = code;
  code = code.4901 + 1;
  *code.4901 = 36;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4902 = code;
        code = code.4902 + 1;
        D.33423 = imb.b[0];
        *code.4902 = D.33423;
        code.4903 = code;
        code = code.4903 + 1;
        D.33425 = imb.b[1];
        *code.4903 = D.33425;
        code.4904 = code;
        code = code.4904 + 1;
        D.33427 = imb.b[2];
        *code.4904 = D.33427;
        code.4905 = code;
        code = code.4905 + 1;
        D.33429 = imb.b[3];
        *code.4905 = D.33429;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33419>:
  <D.33414>:
  goto <D.24323>;
  <D.33409>:
  if (1 != 0) goto <D.33430>; else goto <D.33431>;
  <D.33430>:
  code.4906 = code;
  code = code.4906 + 1;
  *code.4906 = 32;
  goto <D.24323>;
  <D.33431>:
  if (1 != 0) goto <D.33433>; else goto <D.33434>;
  <D.33433>:
  code.4907 = code;
  code = code.4907 + 1;
  *code.4907 = 96;
  *code = 0;
  code = code + 1;
  goto <D.33436>;
  <D.33434>:
  code.4908 = code;
  code = code.4908 + 1;
  *code.4908 = 160;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4909 = code;
        code = code.4909 + 1;
        D.33439 = imb.b[0];
        *code.4909 = D.33439;
        code.4910 = code;
        code = code.4910 + 1;
        D.33441 = imb.b[1];
        *code.4910 = D.33441;
        code.4911 = code;
        code = code.4911 + 1;
        D.33443 = imb.b[2];
        *code.4911 = D.33443;
        code.4912 = code;
        code = code.4912 + 1;
        D.33445 = imb.b[3];
        *code.4912 = D.33445;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33436>:
  <D.24323>:
  <D.33407>:
  tramp.4913 = (long unsigned int) tramp;
  MEM[(guint64 *)code] = tramp.4913;
  code = code + 8;
  <D.33390>:
  goto <D.33447>;
  <D.33298>:
  if (0 != 0) goto <D.33448>; else goto <D.33449>;
  <D.33448>:
  code.4914 = code;
  code = code.4914 + 1;
  *code.4914 = 102;
  <D.33449>:
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 8;
    if (_amd64_rex_bits != 0) goto <D.33451>; else goto <D.33452>;
    <D.33451>:
    code.4915 = code;
    code = code.4915 + 1;
    D.33454 = _amd64_rex_bits | 64;
    *code.4915 = D.33454;
    <D.33452>:
  }
  switch (8) <default: <D.24331>, case 1: <D.24326>, case 2: <D.24328>, case 4: <D.24329>, case 8: <D.24330>>
  <D.24326>:
  code.4916 = code;
  code = code.4916 + 1;
  *code.4916 = 138;
  goto <D.24327>;
  <D.24328>:
  <D.24329>:
  <D.24330>:
  code.4917 = code;
  code = code.4917 + 1;
  *code.4917 = 139;
  goto <D.24327>;
  <D.24331>:
  __assert_fail ("0", "tramp-amd64.c", 1238, &__PRETTY_FUNCTION__);
  <D.24327>:
  code.4918 = code;
  code = code.4918 + 1;
  *code.4918 = 252;
  {
    int _amd64_width_temp;

    tramp.4913 = (long unsigned int) tramp;
    tramp.4880 = (long int) tramp;
    D.33458 = (int) tramp.4880;
    D.33459 = (long unsigned int) D.33458;
    D.33460 = tramp.4913 == D.33459;
    _amd64_width_temp = (int) D.33460;
    {
      unsigned char _amd64_rex_bits;

      if (_amd64_width_temp == 0) goto <D.33462>; else goto <D.33463>;
      <D.33462>:
      iftmp.4919 = 8;
      goto <D.33464>;
      <D.33463>:
      iftmp.4919 = 0;
      <D.33464>:
      _amd64_rex_bits = iftmp.4919;
      if (_amd64_rex_bits != 0) goto <D.33465>; else goto <D.33466>;
      <D.33465>:
      code.4920 = code;
      code = code.4920 + 1;
      D.33468 = _amd64_rex_bits | 64;
      *code.4920 = D.33468;
      <D.33466>:
    }
    code.4921 = code;
    code = code.4921 + 1;
    *code.4921 = 184;
    if (_amd64_width_temp == 0) goto <D.33470>; else goto <D.33471>;
    <D.33470>:
    {
      union amd64_imm_buf imb;

      try
        {
          tramp.4913 = (long unsigned int) tramp;
          imb.val = tramp.4913;
          code.4922 = code;
          code = code.4922 + 1;
          D.33473 = imb.b[0];
          *code.4922 = D.33473;
          code.4923 = code;
          code = code.4923 + 1;
          D.33475 = imb.b[1];
          *code.4923 = D.33475;
          code.4924 = code;
          code = code.4924 + 1;
          D.33477 = imb.b[2];
          *code.4924 = D.33477;
          code.4925 = code;
          code = code.4925 + 1;
          D.33479 = imb.b[3];
          *code.4925 = D.33479;
          code.4926 = code;
          code = code.4926 + 1;
          D.33481 = imb.b[4];
          *code.4926 = D.33481;
          code.4927 = code;
          code = code.4927 + 1;
          D.33483 = imb.b[5];
          *code.4927 = D.33483;
          code.4928 = code;
          code = code.4928 + 1;
          D.33485 = imb.b[6];
          *code.4928 = D.33485;
          code.4929 = code;
          code = code.4929 + 1;
          D.33487 = imb.b[7];
          *code.4929 = D.33487;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    goto <D.33488>;
    <D.33471>:
    {
      union x86_imm_buf imb;

      try
        {
          tramp.4880 = (long int) tramp;
          D.33458 = (int) tramp.4880;
          imb.val = D.33458;
          code.4930 = code;
          code = code.4930 + 1;
          D.33490 = imb.b[0];
          *code.4930 = D.33490;
          code.4931 = code;
          code = code.4931 + 1;
          D.33492 = imb.b[1];
          *code.4931 = D.33492;
          code.4932 = code;
          code = code.4932 + 1;
          D.33494 = imb.b[2];
          *code.4932 = D.33494;
          code.4933 = code;
          code = code.4933 + 1;
          D.33496 = imb.b[3];
          *code.4933 = D.33496;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33488>:
  }
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 0;
    if (_amd64_rex_bits != 0) goto <D.33497>; else goto <D.33498>;
    <D.33497>:
    code.4934 = code;
    code = code.4934 + 1;
    D.33500 = _amd64_rex_bits | 64;
    *code.4934 = D.33500;
    <D.33498>:
  }
  code.4935 = code;
  code = code.4935 + 1;
  *code.4935 = 80;
  handler_block_trampoline_helper.4936 = (unsigned long) handler_block_trampoline_helper;
  D.33503 = handler_block_trampoline_helper.4936 + 2147483648;
  code.4937 = (unsigned long) code;
  D.33505 = D.33503 - code.4937;
  if (D.33505 <= 4294967295) goto <D.33506>; else goto <D.33507>;
  <D.33506>:
  {
    int t;

    handler_block_trampoline_helper.4938 = (long int) handler_block_trampoline_helper;
    D.33509 = (unsigned int) handler_block_trampoline_helper.4938;
    D.33510 = D.33509 + 4294967294;
    code.4881 = (long int) code;
    D.33511 = (unsigned int) code.4881;
    D.33512 = D.33510 - D.33511;
    t = (int) D.33512;
    t.4939 = (unsigned int) t;
    D.33514 = t.4939 + 128;
    if (D.33514 <= 255) goto <D.33515>; else goto <D.33516>;
    <D.33515>:
    code.4940 = code;
    code = code.4940 + 1;
    *code.4940 = 235;
    D.33518 = (unsigned char) t;
    *code = D.33518;
    code = code + 1;
    goto <D.33519>;
    <D.33516>:
    handler_block_trampoline_helper.4938 = (long int) handler_block_trampoline_helper;
    D.33509 = (unsigned int) handler_block_trampoline_helper.4938;
    D.33520 = D.33509 + 4294967291;
    code.4881 = (long int) code;
    D.33511 = (unsigned int) code.4881;
    D.33521 = D.33520 - D.33511;
    t = (int) D.33521;
    code.4941 = code;
    code = code.4941 + 1;
    *code.4941 = 233;
    {
      union x86_imm_buf imb;

      try
        {
          imb.val = t;
          code.4942 = code;
          code = code.4942 + 1;
          D.33524 = imb.b[0];
          *code.4942 = D.33524;
          code.4943 = code;
          code = code.4943 + 1;
          D.33526 = imb.b[1];
          *code.4943 = D.33526;
          code.4944 = code;
          code = code.4944 + 1;
          D.33528 = imb.b[2];
          *code.4944 = D.33528;
          code.4945 = code;
          code = code.4945 + 1;
          D.33530 = imb.b[3];
          *code.4945 = D.33530;
        }
      finally
        {
          imb = {CLOBBER};
        }
    }
    <D.33519>:
  }
  goto <D.33531>;
  <D.33507>:
  {
    unsigned char _amd64_rex_bits;

    _amd64_rex_bits = 1;
    if (_amd64_rex_bits != 0) goto <D.33532>; else goto <D.33533>;
    <D.33532>:
    code.4946 = code;
    code = code.4946 + 1;
    D.33535 = _amd64_rex_bits | 64;
    *code.4946 = D.33535;
    <D.33533>:
  }
  code.4947 = code;
  code = code.4947 + 1;
  *code.4947 = 255;
  if (1 != 0) goto <D.33537>; else goto <D.33538>;
  <D.33537>:
  code.4948 = code;
  code = code.4948 + 1;
  *code.4948 = 37;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4949 = code;
        code = code.4949 + 1;
        D.33541 = imb.b[0];
        *code.4949 = D.33541;
        code.4950 = code;
        code = code.4950 + 1;
        D.33543 = imb.b[1];
        *code.4950 = D.33543;
        code.4951 = code;
        code = code.4951 + 1;
        D.33545 = imb.b[2];
        *code.4951 = D.33545;
        code.4952 = code;
        code = code.4952 + 1;
        D.33547 = imb.b[3];
        *code.4952 = D.33547;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  goto <D.33548>;
  <D.33538>:
  if (0 != 0) goto <D.33549>; else goto <D.33550>;
  <D.33549>:
  if (1 != 0) goto <D.33551>; else goto <D.33552>;
  <D.33551>:
  code.4953 = code;
  code = code.4953 + 1;
  *code.4953 = 36;
  code.4954 = code;
  code = code.4954 + 1;
  *code.4954 = 36;
  goto <D.33555>;
  <D.33552>:
  if (1 != 0) goto <D.33556>; else goto <D.33557>;
  <D.33556>:
  code.4955 = code;
  code = code.4955 + 1;
  *code.4955 = 100;
  code.4956 = code;
  code = code.4956 + 1;
  *code.4956 = 36;
  *code = 0;
  code = code + 1;
  goto <D.33560>;
  <D.33557>:
  code.4957 = code;
  code = code.4957 + 1;
  *code.4957 = 164;
  code.4958 = code;
  code = code.4958 + 1;
  *code.4958 = 36;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4959 = code;
        code = code.4959 + 1;
        D.33564 = imb.b[0];
        *code.4959 = D.33564;
        code.4960 = code;
        code = code.4960 + 1;
        D.33566 = imb.b[1];
        *code.4960 = D.33566;
        code.4961 = code;
        code = code.4961 + 1;
        D.33568 = imb.b[2];
        *code.4961 = D.33568;
        code.4962 = code;
        code = code.4962 + 1;
        D.33570 = imb.b[3];
        *code.4962 = D.33570;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33560>:
  <D.33555>:
  goto <D.24342>;
  <D.33550>:
  if (1 != 0) goto <D.33571>; else goto <D.33572>;
  <D.33571>:
  code.4963 = code;
  code = code.4963 + 1;
  *code.4963 = 32;
  goto <D.24342>;
  <D.33572>:
  if (1 != 0) goto <D.33574>; else goto <D.33575>;
  <D.33574>:
  code.4964 = code;
  code = code.4964 + 1;
  *code.4964 = 96;
  *code = 0;
  code = code + 1;
  goto <D.33577>;
  <D.33575>:
  code.4965 = code;
  code = code.4965 + 1;
  *code.4965 = 160;
  {
    union x86_imm_buf imb;

    try
      {
        imb.val = 0;
        code.4966 = code;
        code = code.4966 + 1;
        D.33580 = imb.b[0];
        *code.4966 = D.33580;
        code.4967 = code;
        code = code.4967 + 1;
        D.33582 = imb.b[1];
        *code.4967 = D.33582;
        code.4968 = code;
        code = code.4968 + 1;
        D.33584 = imb.b[2];
        *code.4968 = D.33584;
        code.4969 = code;
        code = code.4969 + 1;
        D.33586 = imb.b[3];
        *code.4969 = D.33586;
      }
    finally
      {
        imb = {CLOBBER};
      }
  }
  <D.33577>:
  <D.24342>:
  <D.33548>:
  handler_block_trampoline_helper.4970 = (long unsigned int) handler_block_trampoline_helper;
  MEM[(guint64 *)code] = handler_block_trampoline_helper.4970;
  code = code + 8;
  <D.33531>:
  <D.33447>:
  code.4881 = (long int) code;
  buf.4971 = (long int) buf;
  D.33589 = code.4881 - buf.4971;
  D.33590 = (int) D.33589;
  mono_arch_flush_icache (buf, D.33590);
  code.4881 = (long int) code;
  buf.4971 = (long int) buf;
  D.33589 = code.4881 - buf.4971;
  D.33591 = (long int) tramp_size;
  D.33592 = D.33589 > D.33591;
  D.33593 = (long int) D.33592;
  D.33594 = __builtin_expect (D.33593, 0);
  if (D.33594 != 0) goto <D.33595>; else goto <D.33596>;
  <D.33595>:
  monoeg_assertion_message ("* Assertion at %s:%d, condition `%s\' not met\n", "tramp-amd64.c", 1245, "code - buf <= tramp_size");
  <D.33596>:
  D.33597 = mono_jit_map_is_enabled ();
  if (D.33597 != 0) goto <D.33598>; else goto <D.33599>;
  <D.33598>:
  code.4881 = (long int) code;
  buf.4971 = (long int) buf;
  D.33589 = code.4881 - buf.4971;
  D.33600 = (int) D.33589;
  mono_emit_jit_tramp (buf, D.33600, "handler_block_trampoline");
  <D.33599>:
  D.33601 = buf;
  return D.33601;
}


handler_block_trampoline_helper (void * * ptr)
{
  unsigned int mono_jit_tls_id.4972;
  void * D.33604;
  struct MonoJitTlsData * jit_tls;

  mono_jit_tls_id.4972 = mono_jit_tls_id;
  jit_tls = pthread_getspecific (mono_jit_tls_id.4972);
  D.33604 = jit_tls->handler_block_return_address;
  *ptr = D.33604;
}


mono_arch_get_call_target (guint8 * code)
{
  guint8 * D.33605;
  unsigned char D.33606;
  sizetype D.33609;
  guint8 * D.33610;

  D.33605 = code + 18446744073709551611;
  D.33606 = *D.33605;
  if (D.33606 == 232) goto <D.33607>; else goto <D.33608>;
  <D.33607>:
  {
    guint32 disp;
    guint8 * target;

    disp = MEM[(guint32 *)code + -4B];
    D.33609 = (sizetype) disp;
    target = code + D.33609;
    D.33610 = target;
    return D.33610;
  }
  <D.33608>:
  D.33610 = 0B;
  return D.33610;
}


mono_arch_get_plt_info_offset (guint8 * plt_entry, mgreg_t * regs, guint8 * code)
{
  guint32 D.33612;

  D.33612 = MEM[(guint32 *)plt_entry + 6B];
  return D.33612;
}


