mono_sha1_init (struct MonoSHA1Context * context)
{
  unsigned int D.5567;

  context->state[0] = 1732584193;
  context->state[1] = 4023233417;
  context->state[2] = 2562383102;
  context->state[3] = 271733878;
  context->state[4] = 3285377520;
  context->count[1] = 0;
  D.5567 = context->count[1];
  context->count[0] = D.5567;
}


mono_sha1_update (struct MonoSHA1Context * context, const guchar * data, guint32 len)
{
  unsigned int D.5568;
  unsigned int D.5569;
  unsigned int D.5570;
  unsigned int D.5571;
  unsigned int D.5574;
  unsigned int D.5575;
  unsigned int D.5576;
  unsigned int D.5577;
  unsigned int D.5578;
  unsigned char * D.5581;
  long unsigned int D.5582;
  guint32[5] * D.5583;
  unsigned char[64] * D.5584;
  sizetype D.5585;
  const guchar * D.5586;
  unsigned int D.5587;
  unsigned int D.5589;
  long unsigned int D.5590;
  guint32 i;
  guint32 j;

  D.5568 = context->count[0];
  D.5569 = D.5568 >> 3;
  j = D.5569 & 63;
  D.5568 = context->count[0];
  D.5570 = len << 3;
  D.5571 = D.5568 + D.5570;
  context->count[0] = D.5571;
  D.5568 = context->count[0];
  D.5570 = len << 3;
  if (D.5568 < D.5570) goto <D.5572>; else goto <D.5573>;
  <D.5572>:
  D.5574 = context->count[1];
  D.5575 = D.5574 + 1;
  context->count[1] = D.5575;
  <D.5573>:
  D.5574 = context->count[1];
  D.5576 = len >> 29;
  D.5577 = D.5574 + D.5576;
  context->count[1] = D.5577;
  D.5578 = j + len;
  if (D.5578 > 63) goto <D.5579>; else goto <D.5580>;
  <D.5579>:
  D.5581 = &context->buffer[j];
  i = 64 - j;
  D.5582 = (long unsigned int) i;
  memcpy (D.5581, data, D.5582);
  D.5583 = &context->state;
  D.5584 = &context->buffer;
  SHA1Transform (D.5583, D.5584);
  goto <D.5522>;
  <D.5521>:
  D.5583 = &context->state;
  D.5585 = (sizetype) i;
  D.5586 = data + D.5585;
  SHA1Transform (D.5583, D.5586);
  i = i + 64;
  <D.5522>:
  D.5587 = i + 63;
  if (D.5587 < len) goto <D.5521>; else goto <D.5523>;
  <D.5523>:
  j = 0;
  goto <D.5588>;
  <D.5580>:
  i = 0;
  <D.5588>:
  D.5581 = &context->buffer[j];
  D.5585 = (sizetype) i;
  D.5586 = data + D.5585;
  D.5589 = len - i;
  D.5590 = (long unsigned int) D.5589;
  memcpy (D.5581, D.5586, D.5590);
}


SHA1Transform (guint32 * state, const guchar * buffer)
{
  unsigned int D.5591;
  unsigned int D.5592;
  unsigned int D.5593;
  unsigned int D.5594;
  unsigned int D.5595;
  unsigned int D.5596;
  unsigned int D.5597;
  unsigned int D.5598;
  unsigned int D.5599;
  unsigned int D.5600;
  unsigned int D.5601;
  unsigned int D.5602;
  unsigned int D.5603;
  unsigned int D.5604;
  unsigned int D.5605;
  unsigned int D.5606;
  unsigned int D.5607;
  unsigned int D.5608;
  unsigned int D.5609;
  unsigned int D.5610;
  unsigned int D.5611;
  unsigned int D.5612;
  unsigned int D.5613;
  unsigned int D.5614;
  unsigned int D.5615;
  unsigned int D.5616;
  unsigned int D.5617;
  unsigned int D.5618;
  unsigned int D.5619;
  unsigned int D.5620;
  unsigned int D.5621;
  unsigned int D.5622;
  unsigned int D.5623;
  unsigned int D.5624;
  unsigned int D.5625;
  unsigned int D.5626;
  unsigned int D.5627;
  unsigned int D.5628;
  unsigned int D.5629;
  unsigned int D.5630;
  unsigned int D.5631;
  unsigned int D.5632;
  unsigned int D.5633;
  unsigned int D.5634;
  unsigned int D.5635;
  unsigned int D.5636;
  unsigned int D.5637;
  unsigned int D.5638;
  unsigned int D.5639;
  unsigned int D.5640;
  unsigned int D.5641;
  unsigned int D.5642;
  unsigned int D.5643;
  unsigned int D.5644;
  unsigned int D.5645;
  unsigned int D.5646;
  unsigned int D.5647;
  unsigned int D.5648;
  unsigned int D.5649;
  unsigned int D.5650;
  unsigned int D.5651;
  unsigned int D.5652;
  unsigned int D.5653;
  unsigned int D.5654;
  unsigned int D.5655;
  unsigned int D.5656;
  unsigned int D.5657;
  unsigned int D.5658;
  unsigned int D.5659;
  unsigned int D.5660;
  unsigned int D.5661;
  unsigned int D.5662;
  unsigned int D.5663;
  unsigned int D.5664;
  unsigned int D.5665;
  unsigned int D.5666;
  unsigned int D.5667;
  unsigned int D.5668;
  unsigned int D.5669;
  unsigned int D.5670;
  unsigned int D.5671;
  unsigned int D.5672;
  unsigned int D.5673;
  unsigned int D.5674;
  unsigned int D.5675;
  unsigned int D.5676;
  unsigned int D.5677;
  unsigned int D.5678;
  unsigned int D.5679;
  unsigned int D.5680;
  unsigned int D.5681;
  unsigned int D.5682;
  unsigned int D.5683;
  unsigned int D.5684;
  unsigned int D.5685;
  unsigned int D.5686;
  unsigned int D.5687;
  unsigned int D.5688;
  unsigned int D.5689;
  unsigned int D.5690;
  unsigned int D.5691;
  unsigned int D.5692;
  unsigned int D.5693;
  unsigned int D.5694;
  unsigned int D.5695;
  unsigned int D.5696;
  unsigned int D.5697;
  unsigned int D.5698;
  unsigned int D.5699;
  unsigned int D.5700;
  unsigned int D.5701;
  unsigned int D.5702;
  unsigned int D.5703;
  unsigned int D.5704;
  unsigned int D.5705;
  unsigned int D.5706;
  unsigned int D.5707;
  unsigned int D.5708;
  unsigned int D.5709;
  unsigned int D.5710;
  unsigned int D.5711;
  unsigned int D.5712;
  unsigned int D.5713;
  unsigned int D.5714;
  unsigned int D.5715;
  unsigned int D.5716;
  unsigned int D.5717;
  unsigned int D.5718;
  unsigned int D.5719;
  unsigned int D.5720;
  unsigned int D.5721;
  unsigned int D.5722;
  unsigned int D.5723;
  unsigned int D.5724;
  unsigned int D.5725;
  unsigned int D.5726;
  unsigned int D.5727;
  unsigned int D.5728;
  unsigned int D.5729;
  unsigned int D.5730;
  unsigned int D.5731;
  unsigned int D.5732;
  unsigned int D.5733;
  unsigned int D.5734;
  unsigned int D.5735;
  unsigned int D.5736;
  unsigned int D.5737;
  unsigned int D.5738;
  unsigned int D.5739;
  unsigned int D.5740;
  unsigned int D.5741;
  unsigned int D.5742;
  unsigned int D.5743;
  unsigned int D.5744;
  unsigned int D.5745;
  unsigned int D.5746;
  unsigned int D.5747;
  unsigned int D.5748;
  unsigned int D.5749;
  unsigned int D.5750;
  unsigned int D.5751;
  unsigned int D.5752;
  unsigned int D.5753;
  unsigned int D.5754;
  unsigned int D.5755;
  unsigned int D.5756;
  unsigned int D.5757;
  unsigned int D.5758;
  unsigned int D.5759;
  unsigned int D.5760;
  unsigned int D.5761;
  unsigned int D.5762;
  unsigned int D.5763;
  unsigned int D.5764;
  unsigned int D.5765;
  unsigned int D.5766;
  unsigned int D.5767;
  unsigned int D.5768;
  unsigned int D.5769;
  unsigned int D.5770;
  unsigned int D.5771;
  unsigned int D.5772;
  unsigned int D.5773;
  unsigned int D.5774;
  unsigned int D.5775;
  unsigned int D.5776;
  unsigned int D.5777;
  unsigned int D.5778;
  unsigned int D.5779;
  unsigned int D.5780;
  unsigned int D.5781;
  unsigned int D.5782;
  unsigned int D.5783;
  unsigned int D.5784;
  unsigned int D.5785;
  unsigned int D.5786;
  unsigned int D.5787;
  unsigned int D.5788;
  unsigned int D.5789;
  unsigned int D.5790;
  unsigned int D.5791;
  unsigned int D.5792;
  unsigned int D.5793;
  unsigned int D.5794;
  unsigned int D.5795;
  unsigned int D.5796;
  unsigned int D.5797;
  unsigned int D.5798;
  unsigned int D.5799;
  unsigned int D.5800;
  unsigned int D.5801;
  unsigned int D.5802;
  unsigned int D.5803;
  unsigned int D.5804;
  unsigned int D.5805;
  unsigned int D.5806;
  unsigned int D.5807;
  unsigned int D.5808;
  unsigned int D.5809;
  unsigned int D.5810;
  unsigned int D.5811;
  unsigned int D.5812;
  unsigned int D.5813;
  unsigned int D.5814;
  unsigned int D.5815;
  unsigned int D.5816;
  unsigned int D.5817;
  unsigned int D.5818;
  unsigned int D.5819;
  unsigned int D.5820;
  unsigned int D.5821;
  unsigned int D.5822;
  unsigned int D.5823;
  unsigned int D.5824;
  unsigned int D.5825;
  unsigned int D.5826;
  unsigned int D.5827;
  unsigned int D.5828;
  unsigned int D.5829;
  unsigned int D.5830;
  unsigned int D.5831;
  unsigned int D.5832;
  unsigned int D.5833;
  unsigned int D.5834;
  unsigned int D.5835;
  unsigned int D.5836;
  unsigned int D.5837;
  unsigned int D.5838;
  unsigned int D.5839;
  unsigned int D.5840;
  unsigned int D.5841;
  unsigned int D.5842;
  unsigned int D.5843;
  unsigned int D.5844;
  unsigned int D.5845;
  unsigned int D.5846;
  unsigned int D.5847;
  unsigned int D.5848;
  unsigned int D.5849;
  unsigned int D.5850;
  unsigned int D.5851;
  unsigned int D.5852;
  unsigned int D.5853;
  unsigned int D.5854;
  unsigned int D.5855;
  unsigned int D.5856;
  unsigned int D.5857;
  unsigned int D.5858;
  unsigned int D.5859;
  unsigned int D.5860;
  unsigned int D.5861;
  unsigned int D.5862;
  unsigned int D.5863;
  unsigned int D.5864;
  unsigned int D.5865;
  unsigned int D.5866;
  unsigned int D.5867;
  unsigned int D.5868;
  unsigned int D.5869;
  unsigned int D.5870;
  unsigned int D.5871;
  unsigned int D.5872;
  unsigned int D.5873;
  unsigned int D.5874;
  unsigned int D.5875;
  unsigned int D.5876;
  unsigned int D.5877;
  unsigned int D.5878;
  unsigned int D.5879;
  unsigned int D.5880;
  unsigned int D.5881;
  unsigned int D.5882;
  unsigned int D.5883;
  unsigned int D.5884;
  unsigned int D.5885;
  unsigned int D.5886;
  unsigned int D.5887;
  unsigned int D.5888;
  unsigned int D.5889;
  unsigned int D.5890;
  unsigned int D.5891;
  unsigned int D.5892;
  unsigned int D.5893;
  unsigned int D.5894;
  unsigned int D.5895;
  unsigned int D.5896;
  unsigned int D.5897;
  unsigned int D.5898;
  unsigned int D.5899;
  unsigned int D.5900;
  unsigned int D.5901;
  unsigned int D.5902;
  unsigned int D.5903;
  unsigned int D.5904;
  unsigned int D.5905;
  unsigned int D.5906;
  unsigned int D.5907;
  unsigned int D.5908;
  unsigned int D.5909;
  unsigned int D.5910;
  unsigned int D.5911;
  unsigned int D.5912;
  unsigned int D.5913;
  unsigned int D.5914;
  unsigned int D.5915;
  unsigned int D.5916;
  unsigned int D.5917;
  unsigned int D.5918;
  unsigned int D.5919;
  unsigned int D.5920;
  unsigned int D.5921;
  unsigned int D.5922;
  unsigned int D.5923;
  unsigned int D.5924;
  unsigned int D.5925;
  unsigned int D.5926;
  unsigned int D.5927;
  unsigned int D.5928;
  unsigned int D.5929;
  unsigned int D.5930;
  unsigned int D.5931;
  unsigned int D.5932;
  unsigned int D.5933;
  unsigned int D.5934;
  unsigned int D.5935;
  unsigned int D.5936;
  unsigned int D.5937;
  unsigned int D.5938;
  unsigned int D.5939;
  unsigned int D.5940;
  unsigned int D.5941;
  unsigned int D.5942;
  unsigned int D.5943;
  unsigned int D.5944;
  unsigned int D.5945;
  unsigned int D.5946;
  unsigned int D.5947;
  unsigned int D.5948;
  unsigned int D.5949;
  unsigned int D.5950;
  unsigned int D.5951;
  unsigned int D.5952;
  unsigned int D.5953;
  unsigned int D.5954;
  unsigned int D.5955;
  unsigned int D.5956;
  unsigned int D.5957;
  unsigned int D.5958;
  unsigned int D.5959;
  unsigned int D.5960;
  unsigned int D.5961;
  unsigned int D.5962;
  unsigned int D.5963;
  unsigned int D.5964;
  unsigned int D.5965;
  unsigned int D.5966;
  unsigned int D.5967;
  unsigned int D.5968;
  unsigned int D.5969;
  unsigned int D.5970;
  unsigned int D.5971;
  unsigned int D.5972;
  unsigned int D.5973;
  unsigned int D.5974;
  unsigned int D.5975;
  unsigned int D.5976;
  unsigned int D.5977;
  unsigned int D.5978;
  unsigned int D.5979;
  unsigned int D.5980;
  unsigned int D.5981;
  unsigned int D.5982;
  unsigned int D.5983;
  unsigned int D.5984;
  unsigned int D.5985;
  unsigned int D.5986;
  unsigned int D.5987;
  unsigned int D.5988;
  unsigned int D.5989;
  unsigned int D.5990;
  unsigned int D.5991;
  unsigned int D.5992;
  unsigned int D.5993;
  unsigned int D.5994;
  unsigned int D.5995;
  unsigned int D.5996;
  unsigned int D.5997;
  unsigned int D.5998;
  unsigned int D.5999;
  unsigned int D.6000;
  unsigned int D.6001;
  unsigned int D.6002;
  unsigned int D.6003;
  unsigned int D.6004;
  unsigned int D.6005;
  unsigned int D.6006;
  unsigned int D.6007;
  unsigned int D.6008;
  unsigned int D.6009;
  unsigned int D.6010;
  unsigned int D.6011;
  unsigned int D.6012;
  unsigned int D.6013;
  unsigned int D.6014;
  unsigned int D.6015;
  unsigned int D.6016;
  unsigned int D.6017;
  unsigned int D.6018;
  unsigned int D.6019;
  unsigned int D.6020;
  unsigned int D.6021;
  unsigned int D.6022;
  unsigned int D.6023;
  unsigned int D.6024;
  unsigned int D.6025;
  unsigned int D.6026;
  unsigned int D.6027;
  unsigned int D.6028;
  unsigned int D.6029;
  unsigned int D.6030;
  unsigned int D.6031;
  unsigned int D.6032;
  unsigned int D.6033;
  unsigned int D.6034;
  unsigned int D.6035;
  unsigned int D.6036;
  unsigned int D.6037;
  guint32 * D.6038;
  unsigned int D.6039;
  unsigned int D.6040;
  guint32 * D.6041;
  unsigned int D.6042;
  unsigned int D.6043;
  guint32 * D.6044;
  unsigned int D.6045;
  unsigned int D.6046;
  guint32 * D.6047;
  unsigned int D.6048;
  unsigned int D.6049;
  guint32 a;
  guint32 b;
  guint32 c;
  guint32 d;
  guint32 e;
  typedef union 
{
  unsigned char c[64];
  guint32 l[16];
} unionunion 
{
  unsigned char c[64];
  guint32 l[16];
};
  typedef union CHAR64LONG16 CHAR64LONG16;
  union CHAR64LONG16 * block;
  static unsigned char workspace[64];

  block = &workspace;
  memcpy (block, buffer, 64);
  a = *state;
  b = MEM[(guint32 *)state + 4B];
  c = MEM[(guint32 *)state + 8B];
  d = MEM[(guint32 *)state + 12B];
  e = MEM[(guint32 *)state + 16B];
  D.5591 = c ^ d;
  D.5592 = D.5591 & b;
  D.5593 = D.5592 ^ d;
  D.5594 = block->l[0];
  D.5595 = D.5594 r>> 8;
  D.5596 = D.5595 & 4278255360;
  D.5594 = block->l[0];
  D.5597 = D.5594 r>> 24;
  D.5598 = D.5597 & 16711935;
  D.5599 = D.5596 | D.5598;
  block->l[0] = D.5599;
  D.5594 = block->l[0];
  D.5600 = D.5593 + D.5594;
  D.5601 = a r>> 27;
  D.5602 = D.5600 + D.5601;
  D.5603 = D.5602 + 1518500249;
  e = D.5603 + e;
  b = b r>> 2;
  D.5604 = b ^ c;
  D.5605 = D.5604 & a;
  D.5606 = D.5605 ^ c;
  D.5607 = block->l[1];
  D.5608 = D.5607 r>> 8;
  D.5609 = D.5608 & 4278255360;
  D.5607 = block->l[1];
  D.5610 = D.5607 r>> 24;
  D.5611 = D.5610 & 16711935;
  D.5612 = D.5609 | D.5611;
  block->l[1] = D.5612;
  D.5607 = block->l[1];
  D.5613 = D.5606 + D.5607;
  D.5614 = e r>> 27;
  D.5615 = D.5613 + D.5614;
  D.5616 = D.5615 + 1518500249;
  d = D.5616 + d;
  a = a r>> 2;
  D.5617 = a ^ b;
  D.5618 = D.5617 & e;
  D.5619 = D.5618 ^ b;
  D.5620 = block->l[2];
  D.5621 = D.5620 r>> 8;
  D.5622 = D.5621 & 4278255360;
  D.5620 = block->l[2];
  D.5623 = D.5620 r>> 24;
  D.5624 = D.5623 & 16711935;
  D.5625 = D.5622 | D.5624;
  block->l[2] = D.5625;
  D.5620 = block->l[2];
  D.5626 = D.5619 + D.5620;
  D.5627 = d r>> 27;
  D.5628 = D.5626 + D.5627;
  D.5629 = D.5628 + 1518500249;
  c = D.5629 + c;
  e = e r>> 2;
  D.5630 = e ^ a;
  D.5631 = D.5630 & d;
  D.5632 = D.5631 ^ a;
  D.5633 = block->l[3];
  D.5634 = D.5633 r>> 8;
  D.5635 = D.5634 & 4278255360;
  D.5633 = block->l[3];
  D.5636 = D.5633 r>> 24;
  D.5637 = D.5636 & 16711935;
  D.5638 = D.5635 | D.5637;
  block->l[3] = D.5638;
  D.5633 = block->l[3];
  D.5639 = D.5632 + D.5633;
  D.5640 = c r>> 27;
  D.5641 = D.5639 + D.5640;
  D.5642 = D.5641 + 1518500249;
  b = D.5642 + b;
  d = d r>> 2;
  D.5643 = d ^ e;
  D.5644 = D.5643 & c;
  D.5645 = D.5644 ^ e;
  D.5646 = block->l[4];
  D.5647 = D.5646 r>> 8;
  D.5648 = D.5647 & 4278255360;
  D.5646 = block->l[4];
  D.5649 = D.5646 r>> 24;
  D.5650 = D.5649 & 16711935;
  D.5651 = D.5648 | D.5650;
  block->l[4] = D.5651;
  D.5646 = block->l[4];
  D.5652 = D.5645 + D.5646;
  D.5653 = b r>> 27;
  D.5654 = D.5652 + D.5653;
  D.5655 = D.5654 + 1518500249;
  a = D.5655 + a;
  c = c r>> 2;
  D.5591 = c ^ d;
  D.5592 = D.5591 & b;
  D.5593 = D.5592 ^ d;
  D.5656 = block->l[5];
  D.5657 = D.5656 r>> 8;
  D.5658 = D.5657 & 4278255360;
  D.5656 = block->l[5];
  D.5659 = D.5656 r>> 24;
  D.5660 = D.5659 & 16711935;
  D.5661 = D.5658 | D.5660;
  block->l[5] = D.5661;
  D.5656 = block->l[5];
  D.5662 = D.5593 + D.5656;
  D.5601 = a r>> 27;
  D.5663 = D.5662 + D.5601;
  D.5664 = D.5663 + 1518500249;
  e = D.5664 + e;
  b = b r>> 2;
  D.5604 = b ^ c;
  D.5605 = D.5604 & a;
  D.5606 = D.5605 ^ c;
  D.5665 = block->l[6];
  D.5666 = D.5665 r>> 8;
  D.5667 = D.5666 & 4278255360;
  D.5665 = block->l[6];
  D.5668 = D.5665 r>> 24;
  D.5669 = D.5668 & 16711935;
  D.5670 = D.5667 | D.5669;
  block->l[6] = D.5670;
  D.5665 = block->l[6];
  D.5671 = D.5606 + D.5665;
  D.5614 = e r>> 27;
  D.5672 = D.5671 + D.5614;
  D.5673 = D.5672 + 1518500249;
  d = D.5673 + d;
  a = a r>> 2;
  D.5617 = a ^ b;
  D.5618 = D.5617 & e;
  D.5619 = D.5618 ^ b;
  D.5674 = block->l[7];
  D.5675 = D.5674 r>> 8;
  D.5676 = D.5675 & 4278255360;
  D.5674 = block->l[7];
  D.5677 = D.5674 r>> 24;
  D.5678 = D.5677 & 16711935;
  D.5679 = D.5676 | D.5678;
  block->l[7] = D.5679;
  D.5674 = block->l[7];
  D.5680 = D.5619 + D.5674;
  D.5627 = d r>> 27;
  D.5681 = D.5680 + D.5627;
  D.5682 = D.5681 + 1518500249;
  c = D.5682 + c;
  e = e r>> 2;
  D.5630 = e ^ a;
  D.5631 = D.5630 & d;
  D.5632 = D.5631 ^ a;
  D.5683 = block->l[8];
  D.5684 = D.5683 r>> 8;
  D.5685 = D.5684 & 4278255360;
  D.5683 = block->l[8];
  D.5686 = D.5683 r>> 24;
  D.5687 = D.5686 & 16711935;
  D.5688 = D.5685 | D.5687;
  block->l[8] = D.5688;
  D.5683 = block->l[8];
  D.5689 = D.5632 + D.5683;
  D.5640 = c r>> 27;
  D.5690 = D.5689 + D.5640;
  D.5691 = D.5690 + 1518500249;
  b = D.5691 + b;
  d = d r>> 2;
  D.5643 = d ^ e;
  D.5644 = D.5643 & c;
  D.5645 = D.5644 ^ e;
  D.5692 = block->l[9];
  D.5693 = D.5692 r>> 8;
  D.5694 = D.5693 & 4278255360;
  D.5692 = block->l[9];
  D.5695 = D.5692 r>> 24;
  D.5696 = D.5695 & 16711935;
  D.5697 = D.5694 | D.5696;
  block->l[9] = D.5697;
  D.5692 = block->l[9];
  D.5698 = D.5645 + D.5692;
  D.5653 = b r>> 27;
  D.5699 = D.5698 + D.5653;
  D.5700 = D.5699 + 1518500249;
  a = D.5700 + a;
  c = c r>> 2;
  D.5591 = c ^ d;
  D.5592 = D.5591 & b;
  D.5593 = D.5592 ^ d;
  D.5701 = block->l[10];
  D.5702 = D.5701 r>> 8;
  D.5703 = D.5702 & 4278255360;
  D.5701 = block->l[10];
  D.5704 = D.5701 r>> 24;
  D.5705 = D.5704 & 16711935;
  D.5706 = D.5703 | D.5705;
  block->l[10] = D.5706;
  D.5701 = block->l[10];
  D.5707 = D.5593 + D.5701;
  D.5601 = a r>> 27;
  D.5708 = D.5707 + D.5601;
  D.5709 = D.5708 + 1518500249;
  e = D.5709 + e;
  b = b r>> 2;
  D.5604 = b ^ c;
  D.5605 = D.5604 & a;
  D.5606 = D.5605 ^ c;
  D.5710 = block->l[11];
  D.5711 = D.5710 r>> 8;
  D.5712 = D.5711 & 4278255360;
  D.5710 = block->l[11];
  D.5713 = D.5710 r>> 24;
  D.5714 = D.5713 & 16711935;
  D.5715 = D.5712 | D.5714;
  block->l[11] = D.5715;
  D.5710 = block->l[11];
  D.5716 = D.5606 + D.5710;
  D.5614 = e r>> 27;
  D.5717 = D.5716 + D.5614;
  D.5718 = D.5717 + 1518500249;
  d = D.5718 + d;
  a = a r>> 2;
  D.5617 = a ^ b;
  D.5618 = D.5617 & e;
  D.5619 = D.5618 ^ b;
  D.5719 = block->l[12];
  D.5720 = D.5719 r>> 8;
  D.5721 = D.5720 & 4278255360;
  D.5719 = block->l[12];
  D.5722 = D.5719 r>> 24;
  D.5723 = D.5722 & 16711935;
  D.5724 = D.5721 | D.5723;
  block->l[12] = D.5724;
  D.5719 = block->l[12];
  D.5725 = D.5619 + D.5719;
  D.5627 = d r>> 27;
  D.5726 = D.5725 + D.5627;
  D.5727 = D.5726 + 1518500249;
  c = D.5727 + c;
  e = e r>> 2;
  D.5630 = e ^ a;
  D.5631 = D.5630 & d;
  D.5632 = D.5631 ^ a;
  D.5728 = block->l[13];
  D.5729 = D.5728 r>> 8;
  D.5730 = D.5729 & 4278255360;
  D.5728 = block->l[13];
  D.5731 = D.5728 r>> 24;
  D.5732 = D.5731 & 16711935;
  D.5733 = D.5730 | D.5732;
  block->l[13] = D.5733;
  D.5728 = block->l[13];
  D.5734 = D.5632 + D.5728;
  D.5640 = c r>> 27;
  D.5735 = D.5734 + D.5640;
  D.5736 = D.5735 + 1518500249;
  b = D.5736 + b;
  d = d r>> 2;
  D.5643 = d ^ e;
  D.5644 = D.5643 & c;
  D.5645 = D.5644 ^ e;
  D.5737 = block->l[14];
  D.5738 = D.5737 r>> 8;
  D.5739 = D.5738 & 4278255360;
  D.5737 = block->l[14];
  D.5740 = D.5737 r>> 24;
  D.5741 = D.5740 & 16711935;
  D.5742 = D.5739 | D.5741;
  block->l[14] = D.5742;
  D.5737 = block->l[14];
  D.5743 = D.5645 + D.5737;
  D.5653 = b r>> 27;
  D.5744 = D.5743 + D.5653;
  D.5745 = D.5744 + 1518500249;
  a = D.5745 + a;
  c = c r>> 2;
  D.5591 = c ^ d;
  D.5592 = D.5591 & b;
  D.5593 = D.5592 ^ d;
  D.5746 = block->l[15];
  D.5747 = D.5746 r>> 8;
  D.5748 = D.5747 & 4278255360;
  D.5746 = block->l[15];
  D.5749 = D.5746 r>> 24;
  D.5750 = D.5749 & 16711935;
  D.5751 = D.5748 | D.5750;
  block->l[15] = D.5751;
  D.5746 = block->l[15];
  D.5752 = D.5593 + D.5746;
  D.5601 = a r>> 27;
  D.5753 = D.5752 + D.5601;
  D.5754 = D.5753 + 1518500249;
  e = D.5754 + e;
  b = b r>> 2;
  D.5604 = b ^ c;
  D.5605 = D.5604 & a;
  D.5606 = D.5605 ^ c;
  D.5728 = block->l[13];
  D.5683 = block->l[8];
  D.5755 = D.5728 ^ D.5683;
  D.5620 = block->l[2];
  D.5756 = D.5755 ^ D.5620;
  D.5594 = block->l[0];
  D.5757 = D.5756 ^ D.5594;
  D.5758 = D.5757 r>> 31;
  block->l[0] = D.5758;
  D.5594 = block->l[0];
  D.5759 = D.5606 + D.5594;
  D.5614 = e r>> 27;
  D.5760 = D.5759 + D.5614;
  D.5761 = D.5760 + 1518500249;
  d = D.5761 + d;
  a = a r>> 2;
  D.5617 = a ^ b;
  D.5618 = D.5617 & e;
  D.5619 = D.5618 ^ b;
  D.5737 = block->l[14];
  D.5692 = block->l[9];
  D.5762 = D.5737 ^ D.5692;
  D.5633 = block->l[3];
  D.5763 = D.5762 ^ D.5633;
  D.5607 = block->l[1];
  D.5764 = D.5763 ^ D.5607;
  D.5765 = D.5764 r>> 31;
  block->l[1] = D.5765;
  D.5607 = block->l[1];
  D.5766 = D.5619 + D.5607;
  D.5627 = d r>> 27;
  D.5767 = D.5766 + D.5627;
  D.5768 = D.5767 + 1518500249;
  c = D.5768 + c;
  e = e r>> 2;
  D.5630 = e ^ a;
  D.5631 = D.5630 & d;
  D.5632 = D.5631 ^ a;
  D.5746 = block->l[15];
  D.5701 = block->l[10];
  D.5769 = D.5746 ^ D.5701;
  D.5646 = block->l[4];
  D.5770 = D.5769 ^ D.5646;
  D.5620 = block->l[2];
  D.5771 = D.5770 ^ D.5620;
  D.5772 = D.5771 r>> 31;
  block->l[2] = D.5772;
  D.5620 = block->l[2];
  D.5773 = D.5632 + D.5620;
  D.5640 = c r>> 27;
  D.5774 = D.5773 + D.5640;
  D.5775 = D.5774 + 1518500249;
  b = D.5775 + b;
  d = d r>> 2;
  D.5643 = d ^ e;
  D.5644 = D.5643 & c;
  D.5645 = D.5644 ^ e;
  D.5594 = block->l[0];
  D.5710 = block->l[11];
  D.5776 = D.5594 ^ D.5710;
  D.5656 = block->l[5];
  D.5777 = D.5776 ^ D.5656;
  D.5633 = block->l[3];
  D.5778 = D.5777 ^ D.5633;
  D.5779 = D.5778 r>> 31;
  block->l[3] = D.5779;
  D.5633 = block->l[3];
  D.5780 = D.5645 + D.5633;
  D.5653 = b r>> 27;
  D.5781 = D.5780 + D.5653;
  D.5782 = D.5781 + 1518500249;
  a = D.5782 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5607 = block->l[1];
  D.5719 = block->l[12];
  D.5784 = D.5607 ^ D.5719;
  D.5665 = block->l[6];
  D.5785 = D.5784 ^ D.5665;
  D.5646 = block->l[4];
  D.5786 = D.5785 ^ D.5646;
  D.5787 = D.5786 r>> 31;
  block->l[4] = D.5787;
  D.5646 = block->l[4];
  D.5788 = D.5783 + D.5646;
  D.5601 = a r>> 27;
  D.5789 = D.5788 + D.5601;
  D.5790 = D.5789 + 1859775393;
  e = D.5790 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5620 = block->l[2];
  D.5728 = block->l[13];
  D.5792 = D.5620 ^ D.5728;
  D.5674 = block->l[7];
  D.5793 = D.5792 ^ D.5674;
  D.5656 = block->l[5];
  D.5794 = D.5793 ^ D.5656;
  D.5795 = D.5794 r>> 31;
  block->l[5] = D.5795;
  D.5656 = block->l[5];
  D.5796 = D.5791 + D.5656;
  D.5614 = e r>> 27;
  D.5797 = D.5796 + D.5614;
  D.5798 = D.5797 + 1859775393;
  d = D.5798 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5633 = block->l[3];
  D.5737 = block->l[14];
  D.5800 = D.5633 ^ D.5737;
  D.5683 = block->l[8];
  D.5801 = D.5800 ^ D.5683;
  D.5665 = block->l[6];
  D.5802 = D.5801 ^ D.5665;
  D.5803 = D.5802 r>> 31;
  block->l[6] = D.5803;
  D.5665 = block->l[6];
  D.5804 = D.5799 + D.5665;
  D.5627 = d r>> 27;
  D.5805 = D.5804 + D.5627;
  D.5806 = D.5805 + 1859775393;
  c = D.5806 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5646 = block->l[4];
  D.5746 = block->l[15];
  D.5808 = D.5646 ^ D.5746;
  D.5692 = block->l[9];
  D.5809 = D.5808 ^ D.5692;
  D.5674 = block->l[7];
  D.5810 = D.5809 ^ D.5674;
  D.5811 = D.5810 r>> 31;
  block->l[7] = D.5811;
  D.5674 = block->l[7];
  D.5812 = D.5807 + D.5674;
  D.5640 = c r>> 27;
  D.5813 = D.5812 + D.5640;
  D.5814 = D.5813 + 1859775393;
  b = D.5814 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5656 = block->l[5];
  D.5594 = block->l[0];
  D.5816 = D.5656 ^ D.5594;
  D.5701 = block->l[10];
  D.5817 = D.5816 ^ D.5701;
  D.5683 = block->l[8];
  D.5818 = D.5817 ^ D.5683;
  D.5819 = D.5818 r>> 31;
  block->l[8] = D.5819;
  D.5683 = block->l[8];
  D.5820 = D.5815 + D.5683;
  D.5653 = b r>> 27;
  D.5821 = D.5820 + D.5653;
  D.5822 = D.5821 + 1859775393;
  a = D.5822 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5665 = block->l[6];
  D.5607 = block->l[1];
  D.5823 = D.5665 ^ D.5607;
  D.5710 = block->l[11];
  D.5824 = D.5823 ^ D.5710;
  D.5692 = block->l[9];
  D.5825 = D.5824 ^ D.5692;
  D.5826 = D.5825 r>> 31;
  block->l[9] = D.5826;
  D.5692 = block->l[9];
  D.5827 = D.5783 + D.5692;
  D.5601 = a r>> 27;
  D.5828 = D.5827 + D.5601;
  D.5829 = D.5828 + 1859775393;
  e = D.5829 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5674 = block->l[7];
  D.5620 = block->l[2];
  D.5830 = D.5674 ^ D.5620;
  D.5719 = block->l[12];
  D.5831 = D.5830 ^ D.5719;
  D.5701 = block->l[10];
  D.5832 = D.5831 ^ D.5701;
  D.5833 = D.5832 r>> 31;
  block->l[10] = D.5833;
  D.5701 = block->l[10];
  D.5834 = D.5791 + D.5701;
  D.5614 = e r>> 27;
  D.5835 = D.5834 + D.5614;
  D.5836 = D.5835 + 1859775393;
  d = D.5836 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5683 = block->l[8];
  D.5633 = block->l[3];
  D.5837 = D.5683 ^ D.5633;
  D.5728 = block->l[13];
  D.5838 = D.5837 ^ D.5728;
  D.5710 = block->l[11];
  D.5839 = D.5838 ^ D.5710;
  D.5840 = D.5839 r>> 31;
  block->l[11] = D.5840;
  D.5710 = block->l[11];
  D.5841 = D.5799 + D.5710;
  D.5627 = d r>> 27;
  D.5842 = D.5841 + D.5627;
  D.5843 = D.5842 + 1859775393;
  c = D.5843 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5692 = block->l[9];
  D.5646 = block->l[4];
  D.5844 = D.5692 ^ D.5646;
  D.5737 = block->l[14];
  D.5845 = D.5844 ^ D.5737;
  D.5719 = block->l[12];
  D.5846 = D.5845 ^ D.5719;
  D.5847 = D.5846 r>> 31;
  block->l[12] = D.5847;
  D.5719 = block->l[12];
  D.5848 = D.5807 + D.5719;
  D.5640 = c r>> 27;
  D.5849 = D.5848 + D.5640;
  D.5850 = D.5849 + 1859775393;
  b = D.5850 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5701 = block->l[10];
  D.5656 = block->l[5];
  D.5851 = D.5701 ^ D.5656;
  D.5746 = block->l[15];
  D.5852 = D.5851 ^ D.5746;
  D.5728 = block->l[13];
  D.5853 = D.5852 ^ D.5728;
  D.5854 = D.5853 r>> 31;
  block->l[13] = D.5854;
  D.5728 = block->l[13];
  D.5855 = D.5815 + D.5728;
  D.5653 = b r>> 27;
  D.5856 = D.5855 + D.5653;
  D.5857 = D.5856 + 1859775393;
  a = D.5857 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5710 = block->l[11];
  D.5665 = block->l[6];
  D.5858 = D.5710 ^ D.5665;
  D.5594 = block->l[0];
  D.5859 = D.5858 ^ D.5594;
  D.5737 = block->l[14];
  D.5860 = D.5859 ^ D.5737;
  D.5861 = D.5860 r>> 31;
  block->l[14] = D.5861;
  D.5737 = block->l[14];
  D.5862 = D.5783 + D.5737;
  D.5601 = a r>> 27;
  D.5863 = D.5862 + D.5601;
  D.5864 = D.5863 + 1859775393;
  e = D.5864 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5719 = block->l[12];
  D.5674 = block->l[7];
  D.5865 = D.5719 ^ D.5674;
  D.5607 = block->l[1];
  D.5866 = D.5865 ^ D.5607;
  D.5746 = block->l[15];
  D.5867 = D.5866 ^ D.5746;
  D.5868 = D.5867 r>> 31;
  block->l[15] = D.5868;
  D.5746 = block->l[15];
  D.5869 = D.5791 + D.5746;
  D.5614 = e r>> 27;
  D.5870 = D.5869 + D.5614;
  D.5871 = D.5870 + 1859775393;
  d = D.5871 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5728 = block->l[13];
  D.5683 = block->l[8];
  D.5755 = D.5728 ^ D.5683;
  D.5620 = block->l[2];
  D.5756 = D.5755 ^ D.5620;
  D.5594 = block->l[0];
  D.5757 = D.5756 ^ D.5594;
  D.5758 = D.5757 r>> 31;
  block->l[0] = D.5758;
  D.5594 = block->l[0];
  D.5872 = D.5799 + D.5594;
  D.5627 = d r>> 27;
  D.5873 = D.5872 + D.5627;
  D.5874 = D.5873 + 1859775393;
  c = D.5874 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5737 = block->l[14];
  D.5692 = block->l[9];
  D.5762 = D.5737 ^ D.5692;
  D.5633 = block->l[3];
  D.5763 = D.5762 ^ D.5633;
  D.5607 = block->l[1];
  D.5764 = D.5763 ^ D.5607;
  D.5765 = D.5764 r>> 31;
  block->l[1] = D.5765;
  D.5607 = block->l[1];
  D.5875 = D.5807 + D.5607;
  D.5640 = c r>> 27;
  D.5876 = D.5875 + D.5640;
  D.5877 = D.5876 + 1859775393;
  b = D.5877 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5746 = block->l[15];
  D.5701 = block->l[10];
  D.5769 = D.5746 ^ D.5701;
  D.5646 = block->l[4];
  D.5770 = D.5769 ^ D.5646;
  D.5620 = block->l[2];
  D.5771 = D.5770 ^ D.5620;
  D.5772 = D.5771 r>> 31;
  block->l[2] = D.5772;
  D.5620 = block->l[2];
  D.5878 = D.5815 + D.5620;
  D.5653 = b r>> 27;
  D.5879 = D.5878 + D.5653;
  D.5880 = D.5879 + 1859775393;
  a = D.5880 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5594 = block->l[0];
  D.5710 = block->l[11];
  D.5776 = D.5594 ^ D.5710;
  D.5656 = block->l[5];
  D.5777 = D.5776 ^ D.5656;
  D.5633 = block->l[3];
  D.5778 = D.5777 ^ D.5633;
  D.5779 = D.5778 r>> 31;
  block->l[3] = D.5779;
  D.5633 = block->l[3];
  D.5881 = D.5783 + D.5633;
  D.5601 = a r>> 27;
  D.5882 = D.5881 + D.5601;
  D.5883 = D.5882 + 1859775393;
  e = D.5883 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5607 = block->l[1];
  D.5719 = block->l[12];
  D.5784 = D.5607 ^ D.5719;
  D.5665 = block->l[6];
  D.5785 = D.5784 ^ D.5665;
  D.5646 = block->l[4];
  D.5786 = D.5785 ^ D.5646;
  D.5787 = D.5786 r>> 31;
  block->l[4] = D.5787;
  D.5646 = block->l[4];
  D.5884 = D.5791 + D.5646;
  D.5614 = e r>> 27;
  D.5885 = D.5884 + D.5614;
  D.5886 = D.5885 + 1859775393;
  d = D.5886 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5620 = block->l[2];
  D.5728 = block->l[13];
  D.5792 = D.5620 ^ D.5728;
  D.5674 = block->l[7];
  D.5793 = D.5792 ^ D.5674;
  D.5656 = block->l[5];
  D.5794 = D.5793 ^ D.5656;
  D.5795 = D.5794 r>> 31;
  block->l[5] = D.5795;
  D.5656 = block->l[5];
  D.5887 = D.5799 + D.5656;
  D.5627 = d r>> 27;
  D.5888 = D.5887 + D.5627;
  D.5889 = D.5888 + 1859775393;
  c = D.5889 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5633 = block->l[3];
  D.5737 = block->l[14];
  D.5800 = D.5633 ^ D.5737;
  D.5683 = block->l[8];
  D.5801 = D.5800 ^ D.5683;
  D.5665 = block->l[6];
  D.5802 = D.5801 ^ D.5665;
  D.5803 = D.5802 r>> 31;
  block->l[6] = D.5803;
  D.5665 = block->l[6];
  D.5890 = D.5807 + D.5665;
  D.5640 = c r>> 27;
  D.5891 = D.5890 + D.5640;
  D.5892 = D.5891 + 1859775393;
  b = D.5892 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5646 = block->l[4];
  D.5746 = block->l[15];
  D.5808 = D.5646 ^ D.5746;
  D.5692 = block->l[9];
  D.5809 = D.5808 ^ D.5692;
  D.5674 = block->l[7];
  D.5810 = D.5809 ^ D.5674;
  D.5811 = D.5810 r>> 31;
  block->l[7] = D.5811;
  D.5674 = block->l[7];
  D.5893 = D.5815 + D.5674;
  D.5653 = b r>> 27;
  D.5894 = D.5893 + D.5653;
  D.5895 = D.5894 + 1859775393;
  a = D.5895 + a;
  c = c r>> 2;
  D.5896 = b | c;
  D.5897 = D.5896 & d;
  D.5898 = b & c;
  D.5899 = D.5897 | D.5898;
  D.5656 = block->l[5];
  D.5594 = block->l[0];
  D.5816 = D.5656 ^ D.5594;
  D.5701 = block->l[10];
  D.5817 = D.5816 ^ D.5701;
  D.5683 = block->l[8];
  D.5818 = D.5817 ^ D.5683;
  D.5819 = D.5818 r>> 31;
  block->l[8] = D.5819;
  D.5683 = block->l[8];
  D.5900 = D.5899 + D.5683;
  D.5601 = a r>> 27;
  D.5901 = D.5900 + D.5601;
  D.5902 = D.5901 + 2400959708;
  e = D.5902 + e;
  b = b r>> 2;
  D.5903 = a | b;
  D.5904 = D.5903 & c;
  D.5905 = a & b;
  D.5906 = D.5904 | D.5905;
  D.5665 = block->l[6];
  D.5607 = block->l[1];
  D.5823 = D.5665 ^ D.5607;
  D.5710 = block->l[11];
  D.5824 = D.5823 ^ D.5710;
  D.5692 = block->l[9];
  D.5825 = D.5824 ^ D.5692;
  D.5826 = D.5825 r>> 31;
  block->l[9] = D.5826;
  D.5692 = block->l[9];
  D.5907 = D.5906 + D.5692;
  D.5614 = e r>> 27;
  D.5908 = D.5907 + D.5614;
  D.5909 = D.5908 + 2400959708;
  d = D.5909 + d;
  a = a r>> 2;
  D.5910 = e | a;
  D.5911 = D.5910 & b;
  D.5912 = e & a;
  D.5913 = D.5911 | D.5912;
  D.5674 = block->l[7];
  D.5620 = block->l[2];
  D.5830 = D.5674 ^ D.5620;
  D.5719 = block->l[12];
  D.5831 = D.5830 ^ D.5719;
  D.5701 = block->l[10];
  D.5832 = D.5831 ^ D.5701;
  D.5833 = D.5832 r>> 31;
  block->l[10] = D.5833;
  D.5701 = block->l[10];
  D.5914 = D.5913 + D.5701;
  D.5627 = d r>> 27;
  D.5915 = D.5914 + D.5627;
  D.5916 = D.5915 + 2400959708;
  c = D.5916 + c;
  e = e r>> 2;
  D.5917 = d | e;
  D.5918 = D.5917 & a;
  D.5919 = d & e;
  D.5920 = D.5918 | D.5919;
  D.5683 = block->l[8];
  D.5633 = block->l[3];
  D.5837 = D.5683 ^ D.5633;
  D.5728 = block->l[13];
  D.5838 = D.5837 ^ D.5728;
  D.5710 = block->l[11];
  D.5839 = D.5838 ^ D.5710;
  D.5840 = D.5839 r>> 31;
  block->l[11] = D.5840;
  D.5710 = block->l[11];
  D.5921 = D.5920 + D.5710;
  D.5640 = c r>> 27;
  D.5922 = D.5921 + D.5640;
  D.5923 = D.5922 + 2400959708;
  b = D.5923 + b;
  d = d r>> 2;
  D.5924 = c | d;
  D.5925 = D.5924 & e;
  D.5926 = c & d;
  D.5927 = D.5925 | D.5926;
  D.5692 = block->l[9];
  D.5646 = block->l[4];
  D.5844 = D.5692 ^ D.5646;
  D.5737 = block->l[14];
  D.5845 = D.5844 ^ D.5737;
  D.5719 = block->l[12];
  D.5846 = D.5845 ^ D.5719;
  D.5847 = D.5846 r>> 31;
  block->l[12] = D.5847;
  D.5719 = block->l[12];
  D.5928 = D.5927 + D.5719;
  D.5653 = b r>> 27;
  D.5929 = D.5928 + D.5653;
  D.5930 = D.5929 + 2400959708;
  a = D.5930 + a;
  c = c r>> 2;
  D.5896 = b | c;
  D.5897 = D.5896 & d;
  D.5898 = b & c;
  D.5899 = D.5897 | D.5898;
  D.5701 = block->l[10];
  D.5656 = block->l[5];
  D.5851 = D.5701 ^ D.5656;
  D.5746 = block->l[15];
  D.5852 = D.5851 ^ D.5746;
  D.5728 = block->l[13];
  D.5853 = D.5852 ^ D.5728;
  D.5854 = D.5853 r>> 31;
  block->l[13] = D.5854;
  D.5728 = block->l[13];
  D.5931 = D.5899 + D.5728;
  D.5601 = a r>> 27;
  D.5932 = D.5931 + D.5601;
  D.5933 = D.5932 + 2400959708;
  e = D.5933 + e;
  b = b r>> 2;
  D.5903 = a | b;
  D.5904 = D.5903 & c;
  D.5905 = a & b;
  D.5906 = D.5904 | D.5905;
  D.5710 = block->l[11];
  D.5665 = block->l[6];
  D.5858 = D.5710 ^ D.5665;
  D.5594 = block->l[0];
  D.5859 = D.5858 ^ D.5594;
  D.5737 = block->l[14];
  D.5860 = D.5859 ^ D.5737;
  D.5861 = D.5860 r>> 31;
  block->l[14] = D.5861;
  D.5737 = block->l[14];
  D.5934 = D.5906 + D.5737;
  D.5614 = e r>> 27;
  D.5935 = D.5934 + D.5614;
  D.5936 = D.5935 + 2400959708;
  d = D.5936 + d;
  a = a r>> 2;
  D.5910 = e | a;
  D.5911 = D.5910 & b;
  D.5912 = e & a;
  D.5913 = D.5911 | D.5912;
  D.5719 = block->l[12];
  D.5674 = block->l[7];
  D.5865 = D.5719 ^ D.5674;
  D.5607 = block->l[1];
  D.5866 = D.5865 ^ D.5607;
  D.5746 = block->l[15];
  D.5867 = D.5866 ^ D.5746;
  D.5868 = D.5867 r>> 31;
  block->l[15] = D.5868;
  D.5746 = block->l[15];
  D.5937 = D.5913 + D.5746;
  D.5627 = d r>> 27;
  D.5938 = D.5937 + D.5627;
  D.5939 = D.5938 + 2400959708;
  c = D.5939 + c;
  e = e r>> 2;
  D.5917 = d | e;
  D.5918 = D.5917 & a;
  D.5919 = d & e;
  D.5920 = D.5918 | D.5919;
  D.5728 = block->l[13];
  D.5683 = block->l[8];
  D.5755 = D.5728 ^ D.5683;
  D.5620 = block->l[2];
  D.5756 = D.5755 ^ D.5620;
  D.5594 = block->l[0];
  D.5757 = D.5756 ^ D.5594;
  D.5758 = D.5757 r>> 31;
  block->l[0] = D.5758;
  D.5594 = block->l[0];
  D.5940 = D.5920 + D.5594;
  D.5640 = c r>> 27;
  D.5941 = D.5940 + D.5640;
  D.5942 = D.5941 + 2400959708;
  b = D.5942 + b;
  d = d r>> 2;
  D.5924 = c | d;
  D.5925 = D.5924 & e;
  D.5926 = c & d;
  D.5927 = D.5925 | D.5926;
  D.5737 = block->l[14];
  D.5692 = block->l[9];
  D.5762 = D.5737 ^ D.5692;
  D.5633 = block->l[3];
  D.5763 = D.5762 ^ D.5633;
  D.5607 = block->l[1];
  D.5764 = D.5763 ^ D.5607;
  D.5765 = D.5764 r>> 31;
  block->l[1] = D.5765;
  D.5607 = block->l[1];
  D.5943 = D.5927 + D.5607;
  D.5653 = b r>> 27;
  D.5944 = D.5943 + D.5653;
  D.5945 = D.5944 + 2400959708;
  a = D.5945 + a;
  c = c r>> 2;
  D.5896 = b | c;
  D.5897 = D.5896 & d;
  D.5898 = b & c;
  D.5899 = D.5897 | D.5898;
  D.5746 = block->l[15];
  D.5701 = block->l[10];
  D.5769 = D.5746 ^ D.5701;
  D.5646 = block->l[4];
  D.5770 = D.5769 ^ D.5646;
  D.5620 = block->l[2];
  D.5771 = D.5770 ^ D.5620;
  D.5772 = D.5771 r>> 31;
  block->l[2] = D.5772;
  D.5620 = block->l[2];
  D.5946 = D.5899 + D.5620;
  D.5601 = a r>> 27;
  D.5947 = D.5946 + D.5601;
  D.5948 = D.5947 + 2400959708;
  e = D.5948 + e;
  b = b r>> 2;
  D.5903 = a | b;
  D.5904 = D.5903 & c;
  D.5905 = a & b;
  D.5906 = D.5904 | D.5905;
  D.5594 = block->l[0];
  D.5710 = block->l[11];
  D.5776 = D.5594 ^ D.5710;
  D.5656 = block->l[5];
  D.5777 = D.5776 ^ D.5656;
  D.5633 = block->l[3];
  D.5778 = D.5777 ^ D.5633;
  D.5779 = D.5778 r>> 31;
  block->l[3] = D.5779;
  D.5633 = block->l[3];
  D.5949 = D.5906 + D.5633;
  D.5614 = e r>> 27;
  D.5950 = D.5949 + D.5614;
  D.5951 = D.5950 + 2400959708;
  d = D.5951 + d;
  a = a r>> 2;
  D.5910 = e | a;
  D.5911 = D.5910 & b;
  D.5912 = e & a;
  D.5913 = D.5911 | D.5912;
  D.5607 = block->l[1];
  D.5719 = block->l[12];
  D.5784 = D.5607 ^ D.5719;
  D.5665 = block->l[6];
  D.5785 = D.5784 ^ D.5665;
  D.5646 = block->l[4];
  D.5786 = D.5785 ^ D.5646;
  D.5787 = D.5786 r>> 31;
  block->l[4] = D.5787;
  D.5646 = block->l[4];
  D.5952 = D.5913 + D.5646;
  D.5627 = d r>> 27;
  D.5953 = D.5952 + D.5627;
  D.5954 = D.5953 + 2400959708;
  c = D.5954 + c;
  e = e r>> 2;
  D.5917 = d | e;
  D.5918 = D.5917 & a;
  D.5919 = d & e;
  D.5920 = D.5918 | D.5919;
  D.5620 = block->l[2];
  D.5728 = block->l[13];
  D.5792 = D.5620 ^ D.5728;
  D.5674 = block->l[7];
  D.5793 = D.5792 ^ D.5674;
  D.5656 = block->l[5];
  D.5794 = D.5793 ^ D.5656;
  D.5795 = D.5794 r>> 31;
  block->l[5] = D.5795;
  D.5656 = block->l[5];
  D.5955 = D.5920 + D.5656;
  D.5640 = c r>> 27;
  D.5956 = D.5955 + D.5640;
  D.5957 = D.5956 + 2400959708;
  b = D.5957 + b;
  d = d r>> 2;
  D.5924 = c | d;
  D.5925 = D.5924 & e;
  D.5926 = c & d;
  D.5927 = D.5925 | D.5926;
  D.5633 = block->l[3];
  D.5737 = block->l[14];
  D.5800 = D.5633 ^ D.5737;
  D.5683 = block->l[8];
  D.5801 = D.5800 ^ D.5683;
  D.5665 = block->l[6];
  D.5802 = D.5801 ^ D.5665;
  D.5803 = D.5802 r>> 31;
  block->l[6] = D.5803;
  D.5665 = block->l[6];
  D.5958 = D.5927 + D.5665;
  D.5653 = b r>> 27;
  D.5959 = D.5958 + D.5653;
  D.5960 = D.5959 + 2400959708;
  a = D.5960 + a;
  c = c r>> 2;
  D.5896 = b | c;
  D.5897 = D.5896 & d;
  D.5898 = b & c;
  D.5899 = D.5897 | D.5898;
  D.5646 = block->l[4];
  D.5746 = block->l[15];
  D.5808 = D.5646 ^ D.5746;
  D.5692 = block->l[9];
  D.5809 = D.5808 ^ D.5692;
  D.5674 = block->l[7];
  D.5810 = D.5809 ^ D.5674;
  D.5811 = D.5810 r>> 31;
  block->l[7] = D.5811;
  D.5674 = block->l[7];
  D.5961 = D.5899 + D.5674;
  D.5601 = a r>> 27;
  D.5962 = D.5961 + D.5601;
  D.5963 = D.5962 + 2400959708;
  e = D.5963 + e;
  b = b r>> 2;
  D.5903 = a | b;
  D.5904 = D.5903 & c;
  D.5905 = a & b;
  D.5906 = D.5904 | D.5905;
  D.5656 = block->l[5];
  D.5594 = block->l[0];
  D.5816 = D.5656 ^ D.5594;
  D.5701 = block->l[10];
  D.5817 = D.5816 ^ D.5701;
  D.5683 = block->l[8];
  D.5818 = D.5817 ^ D.5683;
  D.5819 = D.5818 r>> 31;
  block->l[8] = D.5819;
  D.5683 = block->l[8];
  D.5964 = D.5906 + D.5683;
  D.5614 = e r>> 27;
  D.5965 = D.5964 + D.5614;
  D.5966 = D.5965 + 2400959708;
  d = D.5966 + d;
  a = a r>> 2;
  D.5910 = e | a;
  D.5911 = D.5910 & b;
  D.5912 = e & a;
  D.5913 = D.5911 | D.5912;
  D.5665 = block->l[6];
  D.5607 = block->l[1];
  D.5823 = D.5665 ^ D.5607;
  D.5710 = block->l[11];
  D.5824 = D.5823 ^ D.5710;
  D.5692 = block->l[9];
  D.5825 = D.5824 ^ D.5692;
  D.5826 = D.5825 r>> 31;
  block->l[9] = D.5826;
  D.5692 = block->l[9];
  D.5967 = D.5913 + D.5692;
  D.5627 = d r>> 27;
  D.5968 = D.5967 + D.5627;
  D.5969 = D.5968 + 2400959708;
  c = D.5969 + c;
  e = e r>> 2;
  D.5917 = d | e;
  D.5918 = D.5917 & a;
  D.5919 = d & e;
  D.5920 = D.5918 | D.5919;
  D.5674 = block->l[7];
  D.5620 = block->l[2];
  D.5830 = D.5674 ^ D.5620;
  D.5719 = block->l[12];
  D.5831 = D.5830 ^ D.5719;
  D.5701 = block->l[10];
  D.5832 = D.5831 ^ D.5701;
  D.5833 = D.5832 r>> 31;
  block->l[10] = D.5833;
  D.5701 = block->l[10];
  D.5970 = D.5920 + D.5701;
  D.5640 = c r>> 27;
  D.5971 = D.5970 + D.5640;
  D.5972 = D.5971 + 2400959708;
  b = D.5972 + b;
  d = d r>> 2;
  D.5924 = c | d;
  D.5925 = D.5924 & e;
  D.5926 = c & d;
  D.5927 = D.5925 | D.5926;
  D.5683 = block->l[8];
  D.5633 = block->l[3];
  D.5837 = D.5683 ^ D.5633;
  D.5728 = block->l[13];
  D.5838 = D.5837 ^ D.5728;
  D.5710 = block->l[11];
  D.5839 = D.5838 ^ D.5710;
  D.5840 = D.5839 r>> 31;
  block->l[11] = D.5840;
  D.5710 = block->l[11];
  D.5973 = D.5927 + D.5710;
  D.5653 = b r>> 27;
  D.5974 = D.5973 + D.5653;
  D.5975 = D.5974 + 2400959708;
  a = D.5975 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5692 = block->l[9];
  D.5646 = block->l[4];
  D.5844 = D.5692 ^ D.5646;
  D.5737 = block->l[14];
  D.5845 = D.5844 ^ D.5737;
  D.5719 = block->l[12];
  D.5846 = D.5845 ^ D.5719;
  D.5847 = D.5846 r>> 31;
  block->l[12] = D.5847;
  D.5719 = block->l[12];
  D.5976 = D.5783 + D.5719;
  D.5601 = a r>> 27;
  D.5977 = D.5976 + D.5601;
  D.5978 = D.5977 + 3395469782;
  e = D.5978 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5701 = block->l[10];
  D.5656 = block->l[5];
  D.5851 = D.5701 ^ D.5656;
  D.5746 = block->l[15];
  D.5852 = D.5851 ^ D.5746;
  D.5728 = block->l[13];
  D.5853 = D.5852 ^ D.5728;
  D.5854 = D.5853 r>> 31;
  block->l[13] = D.5854;
  D.5728 = block->l[13];
  D.5979 = D.5791 + D.5728;
  D.5614 = e r>> 27;
  D.5980 = D.5979 + D.5614;
  D.5981 = D.5980 + 3395469782;
  d = D.5981 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5710 = block->l[11];
  D.5665 = block->l[6];
  D.5858 = D.5710 ^ D.5665;
  D.5594 = block->l[0];
  D.5859 = D.5858 ^ D.5594;
  D.5737 = block->l[14];
  D.5860 = D.5859 ^ D.5737;
  D.5861 = D.5860 r>> 31;
  block->l[14] = D.5861;
  D.5737 = block->l[14];
  D.5982 = D.5799 + D.5737;
  D.5627 = d r>> 27;
  D.5983 = D.5982 + D.5627;
  D.5984 = D.5983 + 3395469782;
  c = D.5984 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5719 = block->l[12];
  D.5674 = block->l[7];
  D.5865 = D.5719 ^ D.5674;
  D.5607 = block->l[1];
  D.5866 = D.5865 ^ D.5607;
  D.5746 = block->l[15];
  D.5867 = D.5866 ^ D.5746;
  D.5868 = D.5867 r>> 31;
  block->l[15] = D.5868;
  D.5746 = block->l[15];
  D.5985 = D.5807 + D.5746;
  D.5640 = c r>> 27;
  D.5986 = D.5985 + D.5640;
  D.5987 = D.5986 + 3395469782;
  b = D.5987 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5728 = block->l[13];
  D.5683 = block->l[8];
  D.5755 = D.5728 ^ D.5683;
  D.5620 = block->l[2];
  D.5756 = D.5755 ^ D.5620;
  D.5594 = block->l[0];
  D.5757 = D.5756 ^ D.5594;
  D.5758 = D.5757 r>> 31;
  block->l[0] = D.5758;
  D.5594 = block->l[0];
  D.5988 = D.5815 + D.5594;
  D.5653 = b r>> 27;
  D.5989 = D.5988 + D.5653;
  D.5990 = D.5989 + 3395469782;
  a = D.5990 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5737 = block->l[14];
  D.5692 = block->l[9];
  D.5762 = D.5737 ^ D.5692;
  D.5633 = block->l[3];
  D.5763 = D.5762 ^ D.5633;
  D.5607 = block->l[1];
  D.5764 = D.5763 ^ D.5607;
  D.5765 = D.5764 r>> 31;
  block->l[1] = D.5765;
  D.5607 = block->l[1];
  D.5991 = D.5783 + D.5607;
  D.5601 = a r>> 27;
  D.5992 = D.5991 + D.5601;
  D.5993 = D.5992 + 3395469782;
  e = D.5993 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5746 = block->l[15];
  D.5701 = block->l[10];
  D.5769 = D.5746 ^ D.5701;
  D.5646 = block->l[4];
  D.5770 = D.5769 ^ D.5646;
  D.5620 = block->l[2];
  D.5771 = D.5770 ^ D.5620;
  D.5772 = D.5771 r>> 31;
  block->l[2] = D.5772;
  D.5620 = block->l[2];
  D.5994 = D.5791 + D.5620;
  D.5614 = e r>> 27;
  D.5995 = D.5994 + D.5614;
  D.5996 = D.5995 + 3395469782;
  d = D.5996 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5594 = block->l[0];
  D.5710 = block->l[11];
  D.5776 = D.5594 ^ D.5710;
  D.5656 = block->l[5];
  D.5777 = D.5776 ^ D.5656;
  D.5633 = block->l[3];
  D.5778 = D.5777 ^ D.5633;
  D.5779 = D.5778 r>> 31;
  block->l[3] = D.5779;
  D.5633 = block->l[3];
  D.5997 = D.5799 + D.5633;
  D.5627 = d r>> 27;
  D.5998 = D.5997 + D.5627;
  D.5999 = D.5998 + 3395469782;
  c = D.5999 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5607 = block->l[1];
  D.5719 = block->l[12];
  D.5784 = D.5607 ^ D.5719;
  D.5665 = block->l[6];
  D.5785 = D.5784 ^ D.5665;
  D.5646 = block->l[4];
  D.5786 = D.5785 ^ D.5646;
  D.5787 = D.5786 r>> 31;
  block->l[4] = D.5787;
  D.5646 = block->l[4];
  D.6000 = D.5807 + D.5646;
  D.5640 = c r>> 27;
  D.6001 = D.6000 + D.5640;
  D.6002 = D.6001 + 3395469782;
  b = D.6002 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5620 = block->l[2];
  D.5728 = block->l[13];
  D.5792 = D.5620 ^ D.5728;
  D.5674 = block->l[7];
  D.5793 = D.5792 ^ D.5674;
  D.5656 = block->l[5];
  D.5794 = D.5793 ^ D.5656;
  D.5795 = D.5794 r>> 31;
  block->l[5] = D.5795;
  D.5656 = block->l[5];
  D.6003 = D.5815 + D.5656;
  D.5653 = b r>> 27;
  D.6004 = D.6003 + D.5653;
  D.6005 = D.6004 + 3395469782;
  a = D.6005 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5633 = block->l[3];
  D.5737 = block->l[14];
  D.5800 = D.5633 ^ D.5737;
  D.5683 = block->l[8];
  D.5801 = D.5800 ^ D.5683;
  D.5665 = block->l[6];
  D.5802 = D.5801 ^ D.5665;
  D.5803 = D.5802 r>> 31;
  block->l[6] = D.5803;
  D.5665 = block->l[6];
  D.6006 = D.5783 + D.5665;
  D.5601 = a r>> 27;
  D.6007 = D.6006 + D.5601;
  D.6008 = D.6007 + 3395469782;
  e = D.6008 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5646 = block->l[4];
  D.5746 = block->l[15];
  D.5808 = D.5646 ^ D.5746;
  D.5692 = block->l[9];
  D.5809 = D.5808 ^ D.5692;
  D.5674 = block->l[7];
  D.5810 = D.5809 ^ D.5674;
  D.5811 = D.5810 r>> 31;
  block->l[7] = D.5811;
  D.5674 = block->l[7];
  D.6009 = D.5791 + D.5674;
  D.5614 = e r>> 27;
  D.6010 = D.6009 + D.5614;
  D.6011 = D.6010 + 3395469782;
  d = D.6011 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5656 = block->l[5];
  D.5594 = block->l[0];
  D.5816 = D.5656 ^ D.5594;
  D.5701 = block->l[10];
  D.5817 = D.5816 ^ D.5701;
  D.5683 = block->l[8];
  D.5818 = D.5817 ^ D.5683;
  D.5819 = D.5818 r>> 31;
  block->l[8] = D.5819;
  D.5683 = block->l[8];
  D.6012 = D.5799 + D.5683;
  D.5627 = d r>> 27;
  D.6013 = D.6012 + D.5627;
  D.6014 = D.6013 + 3395469782;
  c = D.6014 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5665 = block->l[6];
  D.5607 = block->l[1];
  D.5823 = D.5665 ^ D.5607;
  D.5710 = block->l[11];
  D.5824 = D.5823 ^ D.5710;
  D.5692 = block->l[9];
  D.5825 = D.5824 ^ D.5692;
  D.5826 = D.5825 r>> 31;
  block->l[9] = D.5826;
  D.5692 = block->l[9];
  D.6015 = D.5807 + D.5692;
  D.5640 = c r>> 27;
  D.6016 = D.6015 + D.5640;
  D.6017 = D.6016 + 3395469782;
  b = D.6017 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5674 = block->l[7];
  D.5620 = block->l[2];
  D.5830 = D.5674 ^ D.5620;
  D.5719 = block->l[12];
  D.5831 = D.5830 ^ D.5719;
  D.5701 = block->l[10];
  D.5832 = D.5831 ^ D.5701;
  D.5833 = D.5832 r>> 31;
  block->l[10] = D.5833;
  D.5701 = block->l[10];
  D.6018 = D.5815 + D.5701;
  D.5653 = b r>> 27;
  D.6019 = D.6018 + D.5653;
  D.6020 = D.6019 + 3395469782;
  a = D.6020 + a;
  c = c r>> 2;
  D.5604 = b ^ c;
  D.5783 = D.5604 ^ d;
  D.5683 = block->l[8];
  D.5633 = block->l[3];
  D.5837 = D.5683 ^ D.5633;
  D.5728 = block->l[13];
  D.5838 = D.5837 ^ D.5728;
  D.5710 = block->l[11];
  D.5839 = D.5838 ^ D.5710;
  D.5840 = D.5839 r>> 31;
  block->l[11] = D.5840;
  D.5710 = block->l[11];
  D.6021 = D.5783 + D.5710;
  D.5601 = a r>> 27;
  D.6022 = D.6021 + D.5601;
  D.6023 = D.6022 + 3395469782;
  e = D.6023 + e;
  b = b r>> 2;
  D.5617 = a ^ b;
  D.5791 = D.5617 ^ c;
  D.5692 = block->l[9];
  D.5646 = block->l[4];
  D.5844 = D.5692 ^ D.5646;
  D.5737 = block->l[14];
  D.5845 = D.5844 ^ D.5737;
  D.5719 = block->l[12];
  D.5846 = D.5845 ^ D.5719;
  D.5847 = D.5846 r>> 31;
  block->l[12] = D.5847;
  D.5719 = block->l[12];
  D.6024 = D.5791 + D.5719;
  D.5614 = e r>> 27;
  D.6025 = D.6024 + D.5614;
  D.6026 = D.6025 + 3395469782;
  d = D.6026 + d;
  a = a r>> 2;
  D.5630 = e ^ a;
  D.5799 = D.5630 ^ b;
  D.5701 = block->l[10];
  D.5656 = block->l[5];
  D.5851 = D.5701 ^ D.5656;
  D.5746 = block->l[15];
  D.5852 = D.5851 ^ D.5746;
  D.5728 = block->l[13];
  D.5853 = D.5852 ^ D.5728;
  D.5854 = D.5853 r>> 31;
  block->l[13] = D.5854;
  D.5728 = block->l[13];
  D.6027 = D.5799 + D.5728;
  D.5627 = d r>> 27;
  D.6028 = D.6027 + D.5627;
  D.6029 = D.6028 + 3395469782;
  c = D.6029 + c;
  e = e r>> 2;
  D.5643 = d ^ e;
  D.5807 = D.5643 ^ a;
  D.5710 = block->l[11];
  D.5665 = block->l[6];
  D.5858 = D.5710 ^ D.5665;
  D.5594 = block->l[0];
  D.5859 = D.5858 ^ D.5594;
  D.5737 = block->l[14];
  D.5860 = D.5859 ^ D.5737;
  D.5861 = D.5860 r>> 31;
  block->l[14] = D.5861;
  D.5737 = block->l[14];
  D.6030 = D.5807 + D.5737;
  D.5640 = c r>> 27;
  D.6031 = D.6030 + D.5640;
  D.6032 = D.6031 + 3395469782;
  b = D.6032 + b;
  d = d r>> 2;
  D.5591 = c ^ d;
  D.5815 = D.5591 ^ e;
  D.5719 = block->l[12];
  D.5674 = block->l[7];
  D.5865 = D.5719 ^ D.5674;
  D.5607 = block->l[1];
  D.5866 = D.5865 ^ D.5607;
  D.5746 = block->l[15];
  D.5867 = D.5866 ^ D.5746;
  D.5868 = D.5867 r>> 31;
  block->l[15] = D.5868;
  D.5746 = block->l[15];
  D.6033 = D.5815 + D.5746;
  D.5653 = b r>> 27;
  D.6034 = D.6033 + D.5653;
  D.6035 = D.6034 + 3395469782;
  a = D.6035 + a;
  c = c r>> 2;
  D.6036 = *state;
  D.6037 = D.6036 + a;
  *state = D.6037;
  D.6038 = state + 4;
  D.6038 = state + 4;
  D.6039 = *D.6038;
  D.6040 = D.6039 + b;
  *D.6038 = D.6040;
  D.6041 = state + 8;
  D.6041 = state + 8;
  D.6042 = *D.6041;
  D.6043 = D.6042 + c;
  *D.6041 = D.6043;
  D.6044 = state + 12;
  D.6044 = state + 12;
  D.6045 = *D.6044;
  D.6046 = D.6045 + d;
  *D.6044 = D.6046;
  D.6047 = state + 16;
  D.6047 = state + 16;
  D.6048 = *D.6047;
  D.6049 = D.6048 + e;
  *D.6047 = D.6049;
  e = 0;
  d = e;
  c = d;
  b = c;
  a = b;
}


memcpy (void * restrict __dest, const void * restrict __src, size_t __len)
{
  void * D.6050;
  long unsigned int D.6051;

  D.6051 = __builtin_object_size (__dest, 0);
  D.6050 = __builtin___memcpy_chk (__dest, __src, __len, D.6051);
  return D.6050;
}


mono_sha1_final (struct MonoSHA1Context * context, unsigned char * digest)
{
  _Bool D.6053;
  int D.6054;
  unsigned int D.6055;
  unsigned int D.6056;
  unsigned int D.6057;
  unsigned int D.6058;
  int D.6059;
  unsigned int D.6060;
  unsigned char D.6061;
  unsigned int D.6062;
  unsigned int D.6063;
  sizetype D.6064;
  unsigned char * D.6065;
  unsigned int D.6066;
  unsigned int D.6067;
  unsigned int D.6068;
  unsigned char D.6069;
  unsigned char[64] * D.6070;
  guint32[5] * D.6071;
  guint32[2] * D.6072;
  guint32 i;
  unsigned char finalcount[8];

  try
    {
      i = 0;
      goto <D.5531>;
      <D.5530>:
      D.6053 = i <= 3;
      D.6054 = (int) D.6053;
      D.6055 = context->count[D.6054];
      D.6056 = ~i;
      D.6057 = D.6056 & 3;
      D.6058 = D.6057 * 8;
      D.6059 = (int) D.6058;
      D.6060 = D.6055 >> D.6059;
      D.6061 = (unsigned char) D.6060;
      finalcount[i] = D.6061;
      i = i + 1;
      <D.5531>:
      if (i <= 7) goto <D.5530>; else goto <D.5532>;
      <D.5532>:
      mono_sha1_update (context, "€", 1);
      goto <D.5534>;
      <D.5533>:
      mono_sha1_update (context, "", 1);
      <D.5534>:
      D.6062 = context->count[0];
      D.6063 = D.6062 & 504;
      if (D.6063 != 448) goto <D.5533>; else goto <D.5535>;
      <D.5535>:
      mono_sha1_update (context, &finalcount, 8);
      i = 0;
      goto <D.5537>;
      <D.5536>:
      D.6064 = (sizetype) i;
      D.6065 = digest + D.6064;
      D.6066 = i >> 2;
      D.6067 = context->state[D.6066];
      D.6056 = ~i;
      D.6057 = D.6056 & 3;
      D.6058 = D.6057 * 8;
      D.6059 = (int) D.6058;
      D.6068 = D.6067 >> D.6059;
      D.6069 = (unsigned char) D.6068;
      *D.6065 = D.6069;
      i = i + 1;
      <D.5537>:
      if (i <= 19) goto <D.5536>; else goto <D.5538>;
      <D.5538>:
      i = 0;
      D.6070 = &context->buffer;
      memset (D.6070, 0, 64);
      D.6071 = &context->state;
      memset (D.6071, 0, 20);
      D.6072 = &context->count;
      memset (D.6072, 0, 8);
      memset (&finalcount, 0, 8);
      D.6071 = &context->state;
      D.6070 = &context->buffer;
      SHA1Transform (D.6071, D.6070);
    }
  finally
    {
      finalcount = {CLOBBER};
    }
}


memset (void * __dest, int __ch, size_t __len)
{
  int D.6075;
  int D.6080;
  void * D.6082;
  long unsigned int D.6083;

  D.6075 = __builtin_constant_p (__len);
  if (D.6075 != 0) goto <D.6076>; else goto <D.6077>;
  <D.6076>:
  if (__len == 0) goto <D.6078>; else goto <D.6079>;
  <D.6078>:
  D.6080 = __builtin_constant_p (__ch);
  if (D.6080 == 0) goto <D.6073>; else goto <D.6081>;
  <D.6081>:
  if (__ch != 0) goto <D.6073>; else goto <D.6074>;
  <D.6073>:
  __warn_memset_zero_len ();
  D.6082 = __dest;
  return D.6082;
  <D.6074>:
  <D.6079>:
  <D.6077>:
  D.6083 = __builtin_object_size (__dest, 0);
  D.6082 = __builtin___memset_chk (__dest, __ch, __len, D.6083);
  return D.6082;
}


mono_sha1_get_digest (const guchar * buffer, gint buffer_size, guchar * digest)
{
  unsigned int buffer_size.0;
  struct MonoSHA1Context ctx;

  try
    {
      mono_sha1_init (&ctx);
      buffer_size.0 = (unsigned int) buffer_size;
      mono_sha1_update (&ctx, buffer, buffer_size.0);
      mono_sha1_final (&ctx, digest);
    }
  finally
    {
      ctx = {CLOBBER};
    }
}


mono_sha1_get_digest_from_file (const gchar * filename, guchar * digest)
{
  unsigned int nb_bytes_read.1;
  long unsigned int D.6089;
  int D.6090;
  struct MonoSHA1Context ctx;
  guchar tmp_buf[1024];
  gint nb_bytes_read;
  struct FILE * fp;

  try
    {
      mono_sha1_init (&ctx);
      fp = fopen (filename, "r");
      if (fp == 0B) goto <D.6086>; else goto <D.6087>;
      <D.6086>:
      return;
      <D.6087>:
      goto <D.5554>;
      <D.5553>:
      nb_bytes_read.1 = (unsigned int) nb_bytes_read;
      mono_sha1_update (&ctx, &tmp_buf, nb_bytes_read.1);
      <D.5554>:
      D.6089 = fread (&tmp_buf, 1, 1024, fp);
      nb_bytes_read = (gint) D.6089;
      if (nb_bytes_read > 0) goto <D.5553>; else goto <D.5555>;
      <D.5555>:
      D.6090 = ferror (fp);
      if (D.6090 != 0) goto <D.6091>; else goto <D.6092>;
      <D.6091>:
      fclose (fp);
      return;
      <D.6092>:
      fclose (fp);
      mono_sha1_final (&ctx, digest);
    }
  finally
    {
      ctx = {CLOBBER};
      tmp_buf = {CLOBBER};
    }
}


fread (void * restrict __ptr, size_t __size, size_t __n, struct FILE * restrict __stream)
{
  long unsigned int D.6096;
  int D.6101;
  int D.6103;
  long unsigned int D.6105;
  size_t D.6106;
  long unsigned int D.6107;
  long unsigned int D.6108;
  long unsigned int D.6109;
  long unsigned int D.6112;

  D.6096 = __builtin_object_size (__ptr, 0);
  if (D.6096 != 18446744073709551615) goto <D.6097>; else goto <D.6098>;
  <D.6097>:
  D.6101 = __builtin_constant_p (__size);
  if (D.6101 == 0) goto <D.6099>; else goto <D.6102>;
  <D.6102>:
  D.6103 = __builtin_constant_p (__n);
  if (D.6103 == 0) goto <D.6099>; else goto <D.6104>;
  <D.6104>:
  D.6105 = __size | __n;
  if (D.6105 > 4294967295) goto <D.6099>; else goto <D.6100>;
  <D.6099>:
  D.6107 = __builtin_object_size (__ptr, 0);
  D.6106 = __fread_chk (__ptr, D.6107, __size, __n, __stream);
  return D.6106;
  <D.6100>:
  D.6108 = __size * __n;
  D.6109 = __builtin_object_size (__ptr, 0);
  if (D.6108 > D.6109) goto <D.6110>; else goto <D.6111>;
  <D.6110>:
  D.6112 = __builtin_object_size (__ptr, 0);
  D.6106 = __fread_chk_warn (__ptr, D.6112, __size, __n, __stream);
  return D.6106;
  <D.6111>:
  <D.6098>:
  D.6106 = __fread_alias (__ptr, __size, __n, __stream);
  return D.6106;
}


mono_digest_get_public_token (guchar * token, const guchar * pubkey, guint32 len)
{
  int len.2;
  sizetype D.6117;
  guchar * D.6118;
  int D.6119;
  unsigned char D.6120;
  guchar digest[20];
  int i;

  try
    {
      if (token == 0B) goto <D.6114>; else goto <D.6115>;
      <D.6114>:
      monoeg_g_log (0B, 8, "%s:%d: assertion \'%s\' failed", "mono-sha1.c", 331, "token != NULL");
      return;
      <D.6115>:
      len.2 = (int) len;
      mono_sha1_get_digest (pubkey, len.2, &digest);
      i = 0;
      goto <D.5564>;
      <D.5563>:
      D.6117 = (sizetype) i;
      D.6118 = token + D.6117;
      D.6119 = 19 - i;
      D.6120 = digest[D.6119];
      *D.6118 = D.6120;
      i = i + 1;
      <D.5564>:
      if (i <= 7) goto <D.5563>; else goto <D.5565>;
      <D.5565>:
    }
  finally
    {
      digest = {CLOBBER};
    }
}


