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

  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.4703 = context->count[1];
  context->count[0] = D.4703;
}


mono_sha1_update (struct MonoSHA1Context * context, const guchar * data, guint32 len)
{
  unsigned int D.4704;
  unsigned int D.4705;
  unsigned int D.4706;
  unsigned int D.4707;
  unsigned int D.4710;
  unsigned int D.4711;
  unsigned int D.4712;
  unsigned int D.4713;
  unsigned int D.4714;
  unsigned char * D.4717;
  unsigned char[64] * D.4718;
  guint32[5] * D.4719;
  const guchar * D.4720;
  unsigned int D.4721;
  unsigned int D.4723;
  guint32 i;
  guint32 j;

  D.4704 = context->count[0];
  D.4705 = D.4704 >> 3;
  j = D.4705 & 63;
  D.4704 = context->count[0];
  D.4706 = len << 3;
  D.4707 = D.4704 + D.4706;
  context->count[0] = D.4707;
  D.4704 = context->count[0];
  D.4706 = len << 3;
  if (D.4704 < D.4706) goto <D.4708>; else goto <D.4709>;
  <D.4708>:
  D.4710 = context->count[1];
  D.4711 = D.4710 + 1;
  context->count[1] = D.4711;
  <D.4709>:
  D.4710 = context->count[1];
  D.4712 = len >> 29;
  D.4713 = D.4710 + D.4712;
  context->count[1] = D.4713;
  D.4714 = j + len;
  if (D.4714 > 63) goto <D.4715>; else goto <D.4716>;
  <D.4715>:
  i = 64 - j;
  D.4717 = &context->buffer[j];
  memcpy (D.4717, data, i);
  D.4718 = &context->buffer;
  D.4719 = &context->state;
  SHA1Transform (D.4719, D.4718);
  goto <D.4658>;
  <D.4657>:
  D.4720 = data + i;
  D.4719 = &context->state;
  SHA1Transform (D.4719, D.4720);
  i = i + 64;
  <D.4658>:
  D.4721 = i + 63;
  if (D.4721 < len) goto <D.4657>; else goto <D.4659>;
  <D.4659>:
  j = 0;
  goto <D.4722>;
  <D.4716>:
  i = 0;
  <D.4722>:
  D.4723 = len - i;
  D.4720 = data + i;
  D.4717 = &context->buffer[j];
  memcpy (D.4717, D.4720, D.4723);
}


SHA1Transform (guint32 * state, const guchar * buffer)
{
  unsigned int D.4724;
  unsigned int D.4725;
  unsigned int D.4726;
  unsigned int D.4727;
  unsigned int D.4728;
  unsigned int D.4729;
  unsigned int D.4730;
  unsigned int D.4731;
  unsigned int D.4732;
  unsigned int D.4733;
  unsigned int D.4734;
  unsigned int D.4735;
  unsigned int D.4736;
  unsigned int D.4737;
  unsigned int D.4738;
  unsigned int D.4739;
  unsigned int D.4740;
  unsigned int D.4741;
  unsigned int D.4742;
  unsigned int D.4743;
  unsigned int D.4744;
  unsigned int D.4745;
  unsigned int D.4746;
  unsigned int D.4747;
  unsigned int D.4748;
  unsigned int D.4749;
  unsigned int D.4750;
  unsigned int D.4751;
  unsigned int D.4752;
  unsigned int D.4753;
  unsigned int D.4754;
  unsigned int D.4755;
  unsigned int D.4756;
  unsigned int D.4757;
  unsigned int D.4758;
  unsigned int D.4759;
  unsigned int D.4760;
  unsigned int D.4761;
  unsigned int D.4762;
  unsigned int D.4763;
  unsigned int D.4764;
  unsigned int D.4765;
  unsigned int D.4766;
  unsigned int D.4767;
  unsigned int D.4768;
  unsigned int D.4769;
  unsigned int D.4770;
  unsigned int D.4771;
  unsigned int D.4772;
  unsigned int D.4773;
  unsigned int D.4774;
  unsigned int D.4775;
  unsigned int D.4776;
  unsigned int D.4777;
  unsigned int D.4778;
  unsigned int D.4779;
  unsigned int D.4780;
  unsigned int D.4781;
  unsigned int D.4782;
  unsigned int D.4783;
  unsigned int D.4784;
  unsigned int D.4785;
  unsigned int D.4786;
  unsigned int D.4787;
  unsigned int D.4788;
  unsigned int D.4789;
  unsigned int D.4790;
  unsigned int D.4791;
  unsigned int D.4792;
  unsigned int D.4793;
  unsigned int D.4794;
  unsigned int D.4795;
  unsigned int D.4796;
  unsigned int D.4797;
  unsigned int D.4798;
  unsigned int D.4799;
  unsigned int D.4800;
  unsigned int D.4801;
  unsigned int D.4802;
  unsigned int D.4803;
  unsigned int D.4804;
  unsigned int D.4805;
  unsigned int D.4806;
  unsigned int D.4807;
  unsigned int D.4808;
  unsigned int D.4809;
  unsigned int D.4810;
  unsigned int D.4811;
  unsigned int D.4812;
  unsigned int D.4813;
  unsigned int D.4814;
  unsigned int D.4815;
  unsigned int D.4816;
  unsigned int D.4817;
  unsigned int D.4818;
  unsigned int D.4819;
  unsigned int D.4820;
  unsigned int D.4821;
  unsigned int D.4822;
  unsigned int D.4823;
  unsigned int D.4824;
  unsigned int D.4825;
  unsigned int D.4826;
  unsigned int D.4827;
  unsigned int D.4828;
  unsigned int D.4829;
  unsigned int D.4830;
  unsigned int D.4831;
  unsigned int D.4832;
  unsigned int D.4833;
  unsigned int D.4834;
  unsigned int D.4835;
  unsigned int D.4836;
  unsigned int D.4837;
  unsigned int D.4838;
  unsigned int D.4839;
  unsigned int D.4840;
  unsigned int D.4841;
  unsigned int D.4842;
  unsigned int D.4843;
  unsigned int D.4844;
  unsigned int D.4845;
  unsigned int D.4846;
  unsigned int D.4847;
  unsigned int D.4848;
  unsigned int D.4849;
  unsigned int D.4850;
  unsigned int D.4851;
  unsigned int D.4852;
  unsigned int D.4853;
  unsigned int D.4854;
  unsigned int D.4855;
  unsigned int D.4856;
  unsigned int D.4857;
  unsigned int D.4858;
  unsigned int D.4859;
  unsigned int D.4860;
  unsigned int D.4861;
  unsigned int D.4862;
  unsigned int D.4863;
  unsigned int D.4864;
  unsigned int D.4865;
  unsigned int D.4866;
  unsigned int D.4867;
  unsigned int D.4868;
  unsigned int D.4869;
  unsigned int D.4870;
  unsigned int D.4871;
  unsigned int D.4872;
  unsigned int D.4873;
  unsigned int D.4874;
  unsigned int D.4875;
  unsigned int D.4876;
  unsigned int D.4877;
  unsigned int D.4878;
  unsigned int D.4879;
  unsigned int D.4880;
  unsigned int D.4881;
  unsigned int D.4882;
  unsigned int D.4883;
  unsigned int D.4884;
  unsigned int D.4885;
  unsigned int D.4886;
  unsigned int D.4887;
  unsigned int D.4888;
  unsigned int D.4889;
  unsigned int D.4890;
  unsigned int D.4891;
  unsigned int D.4892;
  unsigned int D.4893;
  unsigned int D.4894;
  unsigned int D.4895;
  unsigned int D.4896;
  unsigned int D.4897;
  unsigned int D.4898;
  unsigned int D.4899;
  unsigned int D.4900;
  unsigned int D.4901;
  unsigned int D.4902;
  unsigned int D.4903;
  unsigned int D.4904;
  unsigned int D.4905;
  unsigned int D.4906;
  unsigned int D.4907;
  unsigned int D.4908;
  unsigned int D.4909;
  unsigned int D.4910;
  unsigned int D.4911;
  unsigned int D.4912;
  unsigned int D.4913;
  unsigned int D.4914;
  unsigned int D.4915;
  unsigned int D.4916;
  unsigned int D.4917;
  unsigned int D.4918;
  unsigned int D.4919;
  unsigned int D.4920;
  unsigned int D.4921;
  unsigned int D.4922;
  unsigned int D.4923;
  unsigned int D.4924;
  unsigned int D.4925;
  unsigned int D.4926;
  unsigned int D.4927;
  unsigned int D.4928;
  unsigned int D.4929;
  unsigned int D.4930;
  unsigned int D.4931;
  unsigned int D.4932;
  unsigned int D.4933;
  unsigned int D.4934;
  unsigned int D.4935;
  unsigned int D.4936;
  unsigned int D.4937;
  unsigned int D.4938;
  unsigned int D.4939;
  unsigned int D.4940;
  unsigned int D.4941;
  unsigned int D.4942;
  unsigned int D.4943;
  unsigned int D.4944;
  unsigned int D.4945;
  unsigned int D.4946;
  unsigned int D.4947;
  unsigned int D.4948;
  unsigned int D.4949;
  unsigned int D.4950;
  unsigned int D.4951;
  unsigned int D.4952;
  unsigned int D.4953;
  unsigned int D.4954;
  unsigned int D.4955;
  unsigned int D.4956;
  unsigned int D.4957;
  unsigned int D.4958;
  unsigned int D.4959;
  unsigned int D.4960;
  unsigned int D.4961;
  unsigned int D.4962;
  unsigned int D.4963;
  unsigned int D.4964;
  unsigned int D.4965;
  unsigned int D.4966;
  unsigned int D.4967;
  unsigned int D.4968;
  unsigned int D.4969;
  unsigned int D.4970;
  unsigned int D.4971;
  unsigned int D.4972;
  unsigned int D.4973;
  unsigned int D.4974;
  unsigned int D.4975;
  unsigned int D.4976;
  unsigned int D.4977;
  unsigned int D.4978;
  unsigned int D.4979;
  unsigned int D.4980;
  unsigned int D.4981;
  unsigned int D.4982;
  unsigned int D.4983;
  unsigned int D.4984;
  unsigned int D.4985;
  unsigned int D.4986;
  unsigned int D.4987;
  unsigned int D.4988;
  unsigned int D.4989;
  unsigned int D.4990;
  unsigned int D.4991;
  unsigned int D.4992;
  unsigned int D.4993;
  unsigned int D.4994;
  unsigned int D.4995;
  unsigned int D.4996;
  unsigned int D.4997;
  unsigned int D.4998;
  unsigned int D.4999;
  unsigned int D.5000;
  unsigned int D.5001;
  unsigned int D.5002;
  unsigned int D.5003;
  unsigned int D.5004;
  unsigned int D.5005;
  unsigned int D.5006;
  unsigned int D.5007;
  unsigned int D.5008;
  unsigned int D.5009;
  unsigned int D.5010;
  unsigned int D.5011;
  unsigned int D.5012;
  unsigned int D.5013;
  unsigned int D.5014;
  unsigned int D.5015;
  unsigned int D.5016;
  unsigned int D.5017;
  unsigned int D.5018;
  unsigned int D.5019;
  unsigned int D.5020;
  unsigned int D.5021;
  unsigned int D.5022;
  unsigned int D.5023;
  unsigned int D.5024;
  unsigned int D.5025;
  unsigned int D.5026;
  unsigned int D.5027;
  unsigned int D.5028;
  unsigned int D.5029;
  unsigned int D.5030;
  unsigned int D.5031;
  unsigned int D.5032;
  unsigned int D.5033;
  unsigned int D.5034;
  unsigned int D.5035;
  unsigned int D.5036;
  unsigned int D.5037;
  unsigned int D.5038;
  unsigned int D.5039;
  unsigned int D.5040;
  unsigned int D.5041;
  unsigned int D.5042;
  unsigned int D.5043;
  unsigned int D.5044;
  unsigned int D.5045;
  unsigned int D.5046;
  unsigned int D.5047;
  unsigned int D.5048;
  unsigned int D.5049;
  unsigned int D.5050;
  unsigned int D.5051;
  unsigned int D.5052;
  unsigned int D.5053;
  unsigned int D.5054;
  unsigned int D.5055;
  unsigned int D.5056;
  unsigned int D.5057;
  unsigned int D.5058;
  unsigned int D.5059;
  unsigned int D.5060;
  unsigned int D.5061;
  unsigned int D.5062;
  unsigned int D.5063;
  unsigned int D.5064;
  unsigned int D.5065;
  unsigned int D.5066;
  unsigned int D.5067;
  unsigned int D.5068;
  unsigned int D.5069;
  unsigned int D.5070;
  unsigned int D.5071;
  unsigned int D.5072;
  unsigned int D.5073;
  unsigned int D.5074;
  unsigned int D.5075;
  unsigned int D.5076;
  unsigned int D.5077;
  unsigned int D.5078;
  unsigned int D.5079;
  unsigned int D.5080;
  unsigned int D.5081;
  unsigned int D.5082;
  unsigned int D.5083;
  unsigned int D.5084;
  unsigned int D.5085;
  unsigned int D.5086;
  unsigned int D.5087;
  unsigned int D.5088;
  unsigned int D.5089;
  unsigned int D.5090;
  unsigned int D.5091;
  unsigned int D.5092;
  unsigned int D.5093;
  unsigned int D.5094;
  unsigned int D.5095;
  unsigned int D.5096;
  unsigned int D.5097;
  unsigned int D.5098;
  unsigned int D.5099;
  unsigned int D.5100;
  unsigned int D.5101;
  unsigned int D.5102;
  unsigned int D.5103;
  unsigned int D.5104;
  unsigned int D.5105;
  unsigned int D.5106;
  unsigned int D.5107;
  unsigned int D.5108;
  unsigned int D.5109;
  unsigned int D.5110;
  unsigned int D.5111;
  unsigned int D.5112;
  unsigned int D.5113;
  unsigned int D.5114;
  unsigned int D.5115;
  unsigned int D.5116;
  unsigned int D.5117;
  unsigned int D.5118;
  unsigned int D.5119;
  unsigned int D.5120;
  unsigned int D.5121;
  unsigned int D.5122;
  unsigned int D.5123;
  unsigned int D.5124;
  unsigned int D.5125;
  unsigned int D.5126;
  unsigned int D.5127;
  unsigned int D.5128;
  unsigned int D.5129;
  unsigned int D.5130;
  unsigned int D.5131;
  unsigned int D.5132;
  unsigned int D.5133;
  unsigned int D.5134;
  unsigned int D.5135;
  unsigned int D.5136;
  unsigned int D.5137;
  unsigned int D.5138;
  unsigned int D.5139;
  unsigned int D.5140;
  unsigned int D.5141;
  unsigned int D.5142;
  unsigned int D.5143;
  unsigned int D.5144;
  unsigned int D.5145;
  unsigned int D.5146;
  unsigned int D.5147;
  unsigned int D.5148;
  unsigned int D.5149;
  unsigned int D.5150;
  unsigned int D.5151;
  unsigned int D.5152;
  unsigned int D.5153;
  unsigned int D.5154;
  unsigned int D.5155;
  unsigned int D.5156;
  unsigned int D.5157;
  unsigned int D.5158;
  unsigned int D.5159;
  unsigned int D.5160;
  unsigned int D.5161;
  unsigned int D.5162;
  unsigned int D.5163;
  unsigned int D.5164;
  unsigned int D.5165;
  unsigned int D.5166;
  unsigned int D.5167;
  unsigned int D.5168;
  unsigned int D.5169;
  unsigned int D.5170;
  guint32 * D.5171;
  unsigned int D.5172;
  unsigned int D.5173;
  guint32 * D.5174;
  unsigned int D.5175;
  unsigned int D.5176;
  guint32 * D.5177;
  unsigned int D.5178;
  unsigned int D.5179;
  guint32 * D.5180;
  unsigned int D.5181;
  unsigned int D.5182;
  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.4724 = c ^ d;
  D.4725 = D.4724 & b;
  D.4726 = D.4725 ^ d;
  D.4727 = block->l[0];
  D.4728 = D.4727 r>> 8;
  D.4729 = D.4728 & 4278255360;
  D.4727 = block->l[0];
  D.4730 = D.4727 r>> 24;
  D.4731 = D.4730 & 16711935;
  D.4732 = D.4729 | D.4731;
  block->l[0] = D.4732;
  D.4727 = block->l[0];
  D.4733 = D.4726 + D.4727;
  D.4734 = a r>> 27;
  D.4735 = D.4733 + D.4734;
  D.4736 = D.4735 + 1518500249;
  e = D.4736 + e;
  b = b r>> 2;
  D.4737 = b ^ c;
  D.4738 = D.4737 & a;
  D.4739 = D.4738 ^ c;
  D.4740 = block->l[1];
  D.4741 = D.4740 r>> 8;
  D.4742 = D.4741 & 4278255360;
  D.4740 = block->l[1];
  D.4743 = D.4740 r>> 24;
  D.4744 = D.4743 & 16711935;
  D.4745 = D.4742 | D.4744;
  block->l[1] = D.4745;
  D.4740 = block->l[1];
  D.4746 = D.4739 + D.4740;
  D.4747 = e r>> 27;
  D.4748 = D.4746 + D.4747;
  D.4749 = D.4748 + 1518500249;
  d = D.4749 + d;
  a = a r>> 2;
  D.4750 = a ^ b;
  D.4751 = D.4750 & e;
  D.4752 = D.4751 ^ b;
  D.4753 = block->l[2];
  D.4754 = D.4753 r>> 8;
  D.4755 = D.4754 & 4278255360;
  D.4753 = block->l[2];
  D.4756 = D.4753 r>> 24;
  D.4757 = D.4756 & 16711935;
  D.4758 = D.4755 | D.4757;
  block->l[2] = D.4758;
  D.4753 = block->l[2];
  D.4759 = D.4752 + D.4753;
  D.4760 = d r>> 27;
  D.4761 = D.4759 + D.4760;
  D.4762 = D.4761 + 1518500249;
  c = D.4762 + c;
  e = e r>> 2;
  D.4763 = e ^ a;
  D.4764 = D.4763 & d;
  D.4765 = D.4764 ^ a;
  D.4766 = block->l[3];
  D.4767 = D.4766 r>> 8;
  D.4768 = D.4767 & 4278255360;
  D.4766 = block->l[3];
  D.4769 = D.4766 r>> 24;
  D.4770 = D.4769 & 16711935;
  D.4771 = D.4768 | D.4770;
  block->l[3] = D.4771;
  D.4766 = block->l[3];
  D.4772 = D.4765 + D.4766;
  D.4773 = c r>> 27;
  D.4774 = D.4772 + D.4773;
  D.4775 = D.4774 + 1518500249;
  b = D.4775 + b;
  d = d r>> 2;
  D.4776 = d ^ e;
  D.4777 = D.4776 & c;
  D.4778 = D.4777 ^ e;
  D.4779 = block->l[4];
  D.4780 = D.4779 r>> 8;
  D.4781 = D.4780 & 4278255360;
  D.4779 = block->l[4];
  D.4782 = D.4779 r>> 24;
  D.4783 = D.4782 & 16711935;
  D.4784 = D.4781 | D.4783;
  block->l[4] = D.4784;
  D.4779 = block->l[4];
  D.4785 = D.4778 + D.4779;
  D.4786 = b r>> 27;
  D.4787 = D.4785 + D.4786;
  D.4788 = D.4787 + 1518500249;
  a = D.4788 + a;
  c = c r>> 2;
  D.4724 = c ^ d;
  D.4725 = D.4724 & b;
  D.4726 = D.4725 ^ d;
  D.4789 = block->l[5];
  D.4790 = D.4789 r>> 8;
  D.4791 = D.4790 & 4278255360;
  D.4789 = block->l[5];
  D.4792 = D.4789 r>> 24;
  D.4793 = D.4792 & 16711935;
  D.4794 = D.4791 | D.4793;
  block->l[5] = D.4794;
  D.4789 = block->l[5];
  D.4795 = D.4726 + D.4789;
  D.4734 = a r>> 27;
  D.4796 = D.4795 + D.4734;
  D.4797 = D.4796 + 1518500249;
  e = D.4797 + e;
  b = b r>> 2;
  D.4737 = b ^ c;
  D.4738 = D.4737 & a;
  D.4739 = D.4738 ^ c;
  D.4798 = block->l[6];
  D.4799 = D.4798 r>> 8;
  D.4800 = D.4799 & 4278255360;
  D.4798 = block->l[6];
  D.4801 = D.4798 r>> 24;
  D.4802 = D.4801 & 16711935;
  D.4803 = D.4800 | D.4802;
  block->l[6] = D.4803;
  D.4798 = block->l[6];
  D.4804 = D.4739 + D.4798;
  D.4747 = e r>> 27;
  D.4805 = D.4804 + D.4747;
  D.4806 = D.4805 + 1518500249;
  d = D.4806 + d;
  a = a r>> 2;
  D.4750 = a ^ b;
  D.4751 = D.4750 & e;
  D.4752 = D.4751 ^ b;
  D.4807 = block->l[7];
  D.4808 = D.4807 r>> 8;
  D.4809 = D.4808 & 4278255360;
  D.4807 = block->l[7];
  D.4810 = D.4807 r>> 24;
  D.4811 = D.4810 & 16711935;
  D.4812 = D.4809 | D.4811;
  block->l[7] = D.4812;
  D.4807 = block->l[7];
  D.4813 = D.4752 + D.4807;
  D.4760 = d r>> 27;
  D.4814 = D.4813 + D.4760;
  D.4815 = D.4814 + 1518500249;
  c = D.4815 + c;
  e = e r>> 2;
  D.4763 = e ^ a;
  D.4764 = D.4763 & d;
  D.4765 = D.4764 ^ a;
  D.4816 = block->l[8];
  D.4817 = D.4816 r>> 8;
  D.4818 = D.4817 & 4278255360;
  D.4816 = block->l[8];
  D.4819 = D.4816 r>> 24;
  D.4820 = D.4819 & 16711935;
  D.4821 = D.4818 | D.4820;
  block->l[8] = D.4821;
  D.4816 = block->l[8];
  D.4822 = D.4765 + D.4816;
  D.4773 = c r>> 27;
  D.4823 = D.4822 + D.4773;
  D.4824 = D.4823 + 1518500249;
  b = D.4824 + b;
  d = d r>> 2;
  D.4776 = d ^ e;
  D.4777 = D.4776 & c;
  D.4778 = D.4777 ^ e;
  D.4825 = block->l[9];
  D.4826 = D.4825 r>> 8;
  D.4827 = D.4826 & 4278255360;
  D.4825 = block->l[9];
  D.4828 = D.4825 r>> 24;
  D.4829 = D.4828 & 16711935;
  D.4830 = D.4827 | D.4829;
  block->l[9] = D.4830;
  D.4825 = block->l[9];
  D.4831 = D.4778 + D.4825;
  D.4786 = b r>> 27;
  D.4832 = D.4831 + D.4786;
  D.4833 = D.4832 + 1518500249;
  a = D.4833 + a;
  c = c r>> 2;
  D.4724 = c ^ d;
  D.4725 = D.4724 & b;
  D.4726 = D.4725 ^ d;
  D.4834 = block->l[10];
  D.4835 = D.4834 r>> 8;
  D.4836 = D.4835 & 4278255360;
  D.4834 = block->l[10];
  D.4837 = D.4834 r>> 24;
  D.4838 = D.4837 & 16711935;
  D.4839 = D.4836 | D.4838;
  block->l[10] = D.4839;
  D.4834 = block->l[10];
  D.4840 = D.4726 + D.4834;
  D.4734 = a r>> 27;
  D.4841 = D.4840 + D.4734;
  D.4842 = D.4841 + 1518500249;
  e = D.4842 + e;
  b = b r>> 2;
  D.4737 = b ^ c;
  D.4738 = D.4737 & a;
  D.4739 = D.4738 ^ c;
  D.4843 = block->l[11];
  D.4844 = D.4843 r>> 8;
  D.4845 = D.4844 & 4278255360;
  D.4843 = block->l[11];
  D.4846 = D.4843 r>> 24;
  D.4847 = D.4846 & 16711935;
  D.4848 = D.4845 | D.4847;
  block->l[11] = D.4848;
  D.4843 = block->l[11];
  D.4849 = D.4739 + D.4843;
  D.4747 = e r>> 27;
  D.4850 = D.4849 + D.4747;
  D.4851 = D.4850 + 1518500249;
  d = D.4851 + d;
  a = a r>> 2;
  D.4750 = a ^ b;
  D.4751 = D.4750 & e;
  D.4752 = D.4751 ^ b;
  D.4852 = block->l[12];
  D.4853 = D.4852 r>> 8;
  D.4854 = D.4853 & 4278255360;
  D.4852 = block->l[12];
  D.4855 = D.4852 r>> 24;
  D.4856 = D.4855 & 16711935;
  D.4857 = D.4854 | D.4856;
  block->l[12] = D.4857;
  D.4852 = block->l[12];
  D.4858 = D.4752 + D.4852;
  D.4760 = d r>> 27;
  D.4859 = D.4858 + D.4760;
  D.4860 = D.4859 + 1518500249;
  c = D.4860 + c;
  e = e r>> 2;
  D.4763 = e ^ a;
  D.4764 = D.4763 & d;
  D.4765 = D.4764 ^ a;
  D.4861 = block->l[13];
  D.4862 = D.4861 r>> 8;
  D.4863 = D.4862 & 4278255360;
  D.4861 = block->l[13];
  D.4864 = D.4861 r>> 24;
  D.4865 = D.4864 & 16711935;
  D.4866 = D.4863 | D.4865;
  block->l[13] = D.4866;
  D.4861 = block->l[13];
  D.4867 = D.4765 + D.4861;
  D.4773 = c r>> 27;
  D.4868 = D.4867 + D.4773;
  D.4869 = D.4868 + 1518500249;
  b = D.4869 + b;
  d = d r>> 2;
  D.4776 = d ^ e;
  D.4777 = D.4776 & c;
  D.4778 = D.4777 ^ e;
  D.4870 = block->l[14];
  D.4871 = D.4870 r>> 8;
  D.4872 = D.4871 & 4278255360;
  D.4870 = block->l[14];
  D.4873 = D.4870 r>> 24;
  D.4874 = D.4873 & 16711935;
  D.4875 = D.4872 | D.4874;
  block->l[14] = D.4875;
  D.4870 = block->l[14];
  D.4876 = D.4778 + D.4870;
  D.4786 = b r>> 27;
  D.4877 = D.4876 + D.4786;
  D.4878 = D.4877 + 1518500249;
  a = D.4878 + a;
  c = c r>> 2;
  D.4724 = c ^ d;
  D.4725 = D.4724 & b;
  D.4726 = D.4725 ^ d;
  D.4879 = block->l[15];
  D.4880 = D.4879 r>> 8;
  D.4881 = D.4880 & 4278255360;
  D.4879 = block->l[15];
  D.4882 = D.4879 r>> 24;
  D.4883 = D.4882 & 16711935;
  D.4884 = D.4881 | D.4883;
  block->l[15] = D.4884;
  D.4879 = block->l[15];
  D.4885 = D.4726 + D.4879;
  D.4734 = a r>> 27;
  D.4886 = D.4885 + D.4734;
  D.4887 = D.4886 + 1518500249;
  e = D.4887 + e;
  b = b r>> 2;
  D.4737 = b ^ c;
  D.4738 = D.4737 & a;
  D.4739 = D.4738 ^ c;
  D.4861 = block->l[13];
  D.4816 = block->l[8];
  D.4888 = D.4861 ^ D.4816;
  D.4753 = block->l[2];
  D.4889 = D.4888 ^ D.4753;
  D.4727 = block->l[0];
  D.4890 = D.4889 ^ D.4727;
  D.4891 = D.4890 r>> 31;
  block->l[0] = D.4891;
  D.4727 = block->l[0];
  D.4892 = D.4739 + D.4727;
  D.4747 = e r>> 27;
  D.4893 = D.4892 + D.4747;
  D.4894 = D.4893 + 1518500249;
  d = D.4894 + d;
  a = a r>> 2;
  D.4750 = a ^ b;
  D.4751 = D.4750 & e;
  D.4752 = D.4751 ^ b;
  D.4870 = block->l[14];
  D.4825 = block->l[9];
  D.4895 = D.4870 ^ D.4825;
  D.4766 = block->l[3];
  D.4896 = D.4895 ^ D.4766;
  D.4740 = block->l[1];
  D.4897 = D.4896 ^ D.4740;
  D.4898 = D.4897 r>> 31;
  block->l[1] = D.4898;
  D.4740 = block->l[1];
  D.4899 = D.4752 + D.4740;
  D.4760 = d r>> 27;
  D.4900 = D.4899 + D.4760;
  D.4901 = D.4900 + 1518500249;
  c = D.4901 + c;
  e = e r>> 2;
  D.4763 = e ^ a;
  D.4764 = D.4763 & d;
  D.4765 = D.4764 ^ a;
  D.4879 = block->l[15];
  D.4834 = block->l[10];
  D.4902 = D.4879 ^ D.4834;
  D.4779 = block->l[4];
  D.4903 = D.4902 ^ D.4779;
  D.4753 = block->l[2];
  D.4904 = D.4903 ^ D.4753;
  D.4905 = D.4904 r>> 31;
  block->l[2] = D.4905;
  D.4753 = block->l[2];
  D.4906 = D.4765 + D.4753;
  D.4773 = c r>> 27;
  D.4907 = D.4906 + D.4773;
  D.4908 = D.4907 + 1518500249;
  b = D.4908 + b;
  d = d r>> 2;
  D.4776 = d ^ e;
  D.4777 = D.4776 & c;
  D.4778 = D.4777 ^ e;
  D.4727 = block->l[0];
  D.4843 = block->l[11];
  D.4909 = D.4727 ^ D.4843;
  D.4789 = block->l[5];
  D.4910 = D.4909 ^ D.4789;
  D.4766 = block->l[3];
  D.4911 = D.4910 ^ D.4766;
  D.4912 = D.4911 r>> 31;
  block->l[3] = D.4912;
  D.4766 = block->l[3];
  D.4913 = D.4778 + D.4766;
  D.4786 = b r>> 27;
  D.4914 = D.4913 + D.4786;
  D.4915 = D.4914 + 1518500249;
  a = D.4915 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4740 = block->l[1];
  D.4852 = block->l[12];
  D.4917 = D.4740 ^ D.4852;
  D.4798 = block->l[6];
  D.4918 = D.4917 ^ D.4798;
  D.4779 = block->l[4];
  D.4919 = D.4918 ^ D.4779;
  D.4920 = D.4919 r>> 31;
  block->l[4] = D.4920;
  D.4779 = block->l[4];
  D.4921 = D.4916 + D.4779;
  D.4734 = a r>> 27;
  D.4922 = D.4921 + D.4734;
  D.4923 = D.4922 + 1859775393;
  e = D.4923 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4753 = block->l[2];
  D.4861 = block->l[13];
  D.4925 = D.4753 ^ D.4861;
  D.4807 = block->l[7];
  D.4926 = D.4925 ^ D.4807;
  D.4789 = block->l[5];
  D.4927 = D.4926 ^ D.4789;
  D.4928 = D.4927 r>> 31;
  block->l[5] = D.4928;
  D.4789 = block->l[5];
  D.4929 = D.4924 + D.4789;
  D.4747 = e r>> 27;
  D.4930 = D.4929 + D.4747;
  D.4931 = D.4930 + 1859775393;
  d = D.4931 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4766 = block->l[3];
  D.4870 = block->l[14];
  D.4933 = D.4766 ^ D.4870;
  D.4816 = block->l[8];
  D.4934 = D.4933 ^ D.4816;
  D.4798 = block->l[6];
  D.4935 = D.4934 ^ D.4798;
  D.4936 = D.4935 r>> 31;
  block->l[6] = D.4936;
  D.4798 = block->l[6];
  D.4937 = D.4932 + D.4798;
  D.4760 = d r>> 27;
  D.4938 = D.4937 + D.4760;
  D.4939 = D.4938 + 1859775393;
  c = D.4939 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4779 = block->l[4];
  D.4879 = block->l[15];
  D.4941 = D.4779 ^ D.4879;
  D.4825 = block->l[9];
  D.4942 = D.4941 ^ D.4825;
  D.4807 = block->l[7];
  D.4943 = D.4942 ^ D.4807;
  D.4944 = D.4943 r>> 31;
  block->l[7] = D.4944;
  D.4807 = block->l[7];
  D.4945 = D.4940 + D.4807;
  D.4773 = c r>> 27;
  D.4946 = D.4945 + D.4773;
  D.4947 = D.4946 + 1859775393;
  b = D.4947 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4789 = block->l[5];
  D.4727 = block->l[0];
  D.4949 = D.4789 ^ D.4727;
  D.4834 = block->l[10];
  D.4950 = D.4949 ^ D.4834;
  D.4816 = block->l[8];
  D.4951 = D.4950 ^ D.4816;
  D.4952 = D.4951 r>> 31;
  block->l[8] = D.4952;
  D.4816 = block->l[8];
  D.4953 = D.4948 + D.4816;
  D.4786 = b r>> 27;
  D.4954 = D.4953 + D.4786;
  D.4955 = D.4954 + 1859775393;
  a = D.4955 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4798 = block->l[6];
  D.4740 = block->l[1];
  D.4956 = D.4798 ^ D.4740;
  D.4843 = block->l[11];
  D.4957 = D.4956 ^ D.4843;
  D.4825 = block->l[9];
  D.4958 = D.4957 ^ D.4825;
  D.4959 = D.4958 r>> 31;
  block->l[9] = D.4959;
  D.4825 = block->l[9];
  D.4960 = D.4916 + D.4825;
  D.4734 = a r>> 27;
  D.4961 = D.4960 + D.4734;
  D.4962 = D.4961 + 1859775393;
  e = D.4962 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4807 = block->l[7];
  D.4753 = block->l[2];
  D.4963 = D.4807 ^ D.4753;
  D.4852 = block->l[12];
  D.4964 = D.4963 ^ D.4852;
  D.4834 = block->l[10];
  D.4965 = D.4964 ^ D.4834;
  D.4966 = D.4965 r>> 31;
  block->l[10] = D.4966;
  D.4834 = block->l[10];
  D.4967 = D.4924 + D.4834;
  D.4747 = e r>> 27;
  D.4968 = D.4967 + D.4747;
  D.4969 = D.4968 + 1859775393;
  d = D.4969 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4816 = block->l[8];
  D.4766 = block->l[3];
  D.4970 = D.4816 ^ D.4766;
  D.4861 = block->l[13];
  D.4971 = D.4970 ^ D.4861;
  D.4843 = block->l[11];
  D.4972 = D.4971 ^ D.4843;
  D.4973 = D.4972 r>> 31;
  block->l[11] = D.4973;
  D.4843 = block->l[11];
  D.4974 = D.4932 + D.4843;
  D.4760 = d r>> 27;
  D.4975 = D.4974 + D.4760;
  D.4976 = D.4975 + 1859775393;
  c = D.4976 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4825 = block->l[9];
  D.4779 = block->l[4];
  D.4977 = D.4825 ^ D.4779;
  D.4870 = block->l[14];
  D.4978 = D.4977 ^ D.4870;
  D.4852 = block->l[12];
  D.4979 = D.4978 ^ D.4852;
  D.4980 = D.4979 r>> 31;
  block->l[12] = D.4980;
  D.4852 = block->l[12];
  D.4981 = D.4940 + D.4852;
  D.4773 = c r>> 27;
  D.4982 = D.4981 + D.4773;
  D.4983 = D.4982 + 1859775393;
  b = D.4983 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4834 = block->l[10];
  D.4789 = block->l[5];
  D.4984 = D.4834 ^ D.4789;
  D.4879 = block->l[15];
  D.4985 = D.4984 ^ D.4879;
  D.4861 = block->l[13];
  D.4986 = D.4985 ^ D.4861;
  D.4987 = D.4986 r>> 31;
  block->l[13] = D.4987;
  D.4861 = block->l[13];
  D.4988 = D.4948 + D.4861;
  D.4786 = b r>> 27;
  D.4989 = D.4988 + D.4786;
  D.4990 = D.4989 + 1859775393;
  a = D.4990 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4843 = block->l[11];
  D.4798 = block->l[6];
  D.4991 = D.4843 ^ D.4798;
  D.4727 = block->l[0];
  D.4992 = D.4991 ^ D.4727;
  D.4870 = block->l[14];
  D.4993 = D.4992 ^ D.4870;
  D.4994 = D.4993 r>> 31;
  block->l[14] = D.4994;
  D.4870 = block->l[14];
  D.4995 = D.4916 + D.4870;
  D.4734 = a r>> 27;
  D.4996 = D.4995 + D.4734;
  D.4997 = D.4996 + 1859775393;
  e = D.4997 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4852 = block->l[12];
  D.4807 = block->l[7];
  D.4998 = D.4852 ^ D.4807;
  D.4740 = block->l[1];
  D.4999 = D.4998 ^ D.4740;
  D.4879 = block->l[15];
  D.5000 = D.4999 ^ D.4879;
  D.5001 = D.5000 r>> 31;
  block->l[15] = D.5001;
  D.4879 = block->l[15];
  D.5002 = D.4924 + D.4879;
  D.4747 = e r>> 27;
  D.5003 = D.5002 + D.4747;
  D.5004 = D.5003 + 1859775393;
  d = D.5004 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4861 = block->l[13];
  D.4816 = block->l[8];
  D.4888 = D.4861 ^ D.4816;
  D.4753 = block->l[2];
  D.4889 = D.4888 ^ D.4753;
  D.4727 = block->l[0];
  D.4890 = D.4889 ^ D.4727;
  D.4891 = D.4890 r>> 31;
  block->l[0] = D.4891;
  D.4727 = block->l[0];
  D.5005 = D.4932 + D.4727;
  D.4760 = d r>> 27;
  D.5006 = D.5005 + D.4760;
  D.5007 = D.5006 + 1859775393;
  c = D.5007 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4870 = block->l[14];
  D.4825 = block->l[9];
  D.4895 = D.4870 ^ D.4825;
  D.4766 = block->l[3];
  D.4896 = D.4895 ^ D.4766;
  D.4740 = block->l[1];
  D.4897 = D.4896 ^ D.4740;
  D.4898 = D.4897 r>> 31;
  block->l[1] = D.4898;
  D.4740 = block->l[1];
  D.5008 = D.4940 + D.4740;
  D.4773 = c r>> 27;
  D.5009 = D.5008 + D.4773;
  D.5010 = D.5009 + 1859775393;
  b = D.5010 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4879 = block->l[15];
  D.4834 = block->l[10];
  D.4902 = D.4879 ^ D.4834;
  D.4779 = block->l[4];
  D.4903 = D.4902 ^ D.4779;
  D.4753 = block->l[2];
  D.4904 = D.4903 ^ D.4753;
  D.4905 = D.4904 r>> 31;
  block->l[2] = D.4905;
  D.4753 = block->l[2];
  D.5011 = D.4948 + D.4753;
  D.4786 = b r>> 27;
  D.5012 = D.5011 + D.4786;
  D.5013 = D.5012 + 1859775393;
  a = D.5013 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4727 = block->l[0];
  D.4843 = block->l[11];
  D.4909 = D.4727 ^ D.4843;
  D.4789 = block->l[5];
  D.4910 = D.4909 ^ D.4789;
  D.4766 = block->l[3];
  D.4911 = D.4910 ^ D.4766;
  D.4912 = D.4911 r>> 31;
  block->l[3] = D.4912;
  D.4766 = block->l[3];
  D.5014 = D.4916 + D.4766;
  D.4734 = a r>> 27;
  D.5015 = D.5014 + D.4734;
  D.5016 = D.5015 + 1859775393;
  e = D.5016 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4740 = block->l[1];
  D.4852 = block->l[12];
  D.4917 = D.4740 ^ D.4852;
  D.4798 = block->l[6];
  D.4918 = D.4917 ^ D.4798;
  D.4779 = block->l[4];
  D.4919 = D.4918 ^ D.4779;
  D.4920 = D.4919 r>> 31;
  block->l[4] = D.4920;
  D.4779 = block->l[4];
  D.5017 = D.4924 + D.4779;
  D.4747 = e r>> 27;
  D.5018 = D.5017 + D.4747;
  D.5019 = D.5018 + 1859775393;
  d = D.5019 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4753 = block->l[2];
  D.4861 = block->l[13];
  D.4925 = D.4753 ^ D.4861;
  D.4807 = block->l[7];
  D.4926 = D.4925 ^ D.4807;
  D.4789 = block->l[5];
  D.4927 = D.4926 ^ D.4789;
  D.4928 = D.4927 r>> 31;
  block->l[5] = D.4928;
  D.4789 = block->l[5];
  D.5020 = D.4932 + D.4789;
  D.4760 = d r>> 27;
  D.5021 = D.5020 + D.4760;
  D.5022 = D.5021 + 1859775393;
  c = D.5022 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4766 = block->l[3];
  D.4870 = block->l[14];
  D.4933 = D.4766 ^ D.4870;
  D.4816 = block->l[8];
  D.4934 = D.4933 ^ D.4816;
  D.4798 = block->l[6];
  D.4935 = D.4934 ^ D.4798;
  D.4936 = D.4935 r>> 31;
  block->l[6] = D.4936;
  D.4798 = block->l[6];
  D.5023 = D.4940 + D.4798;
  D.4773 = c r>> 27;
  D.5024 = D.5023 + D.4773;
  D.5025 = D.5024 + 1859775393;
  b = D.5025 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4779 = block->l[4];
  D.4879 = block->l[15];
  D.4941 = D.4779 ^ D.4879;
  D.4825 = block->l[9];
  D.4942 = D.4941 ^ D.4825;
  D.4807 = block->l[7];
  D.4943 = D.4942 ^ D.4807;
  D.4944 = D.4943 r>> 31;
  block->l[7] = D.4944;
  D.4807 = block->l[7];
  D.5026 = D.4948 + D.4807;
  D.4786 = b r>> 27;
  D.5027 = D.5026 + D.4786;
  D.5028 = D.5027 + 1859775393;
  a = D.5028 + a;
  c = c r>> 2;
  D.5029 = b | c;
  D.5030 = D.5029 & d;
  D.5031 = b & c;
  D.5032 = D.5030 | D.5031;
  D.4789 = block->l[5];
  D.4727 = block->l[0];
  D.4949 = D.4789 ^ D.4727;
  D.4834 = block->l[10];
  D.4950 = D.4949 ^ D.4834;
  D.4816 = block->l[8];
  D.4951 = D.4950 ^ D.4816;
  D.4952 = D.4951 r>> 31;
  block->l[8] = D.4952;
  D.4816 = block->l[8];
  D.5033 = D.5032 + D.4816;
  D.4734 = a r>> 27;
  D.5034 = D.5033 + D.4734;
  D.5035 = D.5034 + 2400959708;
  e = D.5035 + e;
  b = b r>> 2;
  D.5036 = a | b;
  D.5037 = D.5036 & c;
  D.5038 = a & b;
  D.5039 = D.5037 | D.5038;
  D.4798 = block->l[6];
  D.4740 = block->l[1];
  D.4956 = D.4798 ^ D.4740;
  D.4843 = block->l[11];
  D.4957 = D.4956 ^ D.4843;
  D.4825 = block->l[9];
  D.4958 = D.4957 ^ D.4825;
  D.4959 = D.4958 r>> 31;
  block->l[9] = D.4959;
  D.4825 = block->l[9];
  D.5040 = D.5039 + D.4825;
  D.4747 = e r>> 27;
  D.5041 = D.5040 + D.4747;
  D.5042 = D.5041 + 2400959708;
  d = D.5042 + d;
  a = a r>> 2;
  D.5043 = e | a;
  D.5044 = D.5043 & b;
  D.5045 = e & a;
  D.5046 = D.5044 | D.5045;
  D.4807 = block->l[7];
  D.4753 = block->l[2];
  D.4963 = D.4807 ^ D.4753;
  D.4852 = block->l[12];
  D.4964 = D.4963 ^ D.4852;
  D.4834 = block->l[10];
  D.4965 = D.4964 ^ D.4834;
  D.4966 = D.4965 r>> 31;
  block->l[10] = D.4966;
  D.4834 = block->l[10];
  D.5047 = D.5046 + D.4834;
  D.4760 = d r>> 27;
  D.5048 = D.5047 + D.4760;
  D.5049 = D.5048 + 2400959708;
  c = D.5049 + c;
  e = e r>> 2;
  D.5050 = d | e;
  D.5051 = D.5050 & a;
  D.5052 = d & e;
  D.5053 = D.5051 | D.5052;
  D.4816 = block->l[8];
  D.4766 = block->l[3];
  D.4970 = D.4816 ^ D.4766;
  D.4861 = block->l[13];
  D.4971 = D.4970 ^ D.4861;
  D.4843 = block->l[11];
  D.4972 = D.4971 ^ D.4843;
  D.4973 = D.4972 r>> 31;
  block->l[11] = D.4973;
  D.4843 = block->l[11];
  D.5054 = D.5053 + D.4843;
  D.4773 = c r>> 27;
  D.5055 = D.5054 + D.4773;
  D.5056 = D.5055 + 2400959708;
  b = D.5056 + b;
  d = d r>> 2;
  D.5057 = c | d;
  D.5058 = D.5057 & e;
  D.5059 = c & d;
  D.5060 = D.5058 | D.5059;
  D.4825 = block->l[9];
  D.4779 = block->l[4];
  D.4977 = D.4825 ^ D.4779;
  D.4870 = block->l[14];
  D.4978 = D.4977 ^ D.4870;
  D.4852 = block->l[12];
  D.4979 = D.4978 ^ D.4852;
  D.4980 = D.4979 r>> 31;
  block->l[12] = D.4980;
  D.4852 = block->l[12];
  D.5061 = D.5060 + D.4852;
  D.4786 = b r>> 27;
  D.5062 = D.5061 + D.4786;
  D.5063 = D.5062 + 2400959708;
  a = D.5063 + a;
  c = c r>> 2;
  D.5029 = b | c;
  D.5030 = D.5029 & d;
  D.5031 = b & c;
  D.5032 = D.5030 | D.5031;
  D.4834 = block->l[10];
  D.4789 = block->l[5];
  D.4984 = D.4834 ^ D.4789;
  D.4879 = block->l[15];
  D.4985 = D.4984 ^ D.4879;
  D.4861 = block->l[13];
  D.4986 = D.4985 ^ D.4861;
  D.4987 = D.4986 r>> 31;
  block->l[13] = D.4987;
  D.4861 = block->l[13];
  D.5064 = D.5032 + D.4861;
  D.4734 = a r>> 27;
  D.5065 = D.5064 + D.4734;
  D.5066 = D.5065 + 2400959708;
  e = D.5066 + e;
  b = b r>> 2;
  D.5036 = a | b;
  D.5037 = D.5036 & c;
  D.5038 = a & b;
  D.5039 = D.5037 | D.5038;
  D.4843 = block->l[11];
  D.4798 = block->l[6];
  D.4991 = D.4843 ^ D.4798;
  D.4727 = block->l[0];
  D.4992 = D.4991 ^ D.4727;
  D.4870 = block->l[14];
  D.4993 = D.4992 ^ D.4870;
  D.4994 = D.4993 r>> 31;
  block->l[14] = D.4994;
  D.4870 = block->l[14];
  D.5067 = D.5039 + D.4870;
  D.4747 = e r>> 27;
  D.5068 = D.5067 + D.4747;
  D.5069 = D.5068 + 2400959708;
  d = D.5069 + d;
  a = a r>> 2;
  D.5043 = e | a;
  D.5044 = D.5043 & b;
  D.5045 = e & a;
  D.5046 = D.5044 | D.5045;
  D.4852 = block->l[12];
  D.4807 = block->l[7];
  D.4998 = D.4852 ^ D.4807;
  D.4740 = block->l[1];
  D.4999 = D.4998 ^ D.4740;
  D.4879 = block->l[15];
  D.5000 = D.4999 ^ D.4879;
  D.5001 = D.5000 r>> 31;
  block->l[15] = D.5001;
  D.4879 = block->l[15];
  D.5070 = D.5046 + D.4879;
  D.4760 = d r>> 27;
  D.5071 = D.5070 + D.4760;
  D.5072 = D.5071 + 2400959708;
  c = D.5072 + c;
  e = e r>> 2;
  D.5050 = d | e;
  D.5051 = D.5050 & a;
  D.5052 = d & e;
  D.5053 = D.5051 | D.5052;
  D.4861 = block->l[13];
  D.4816 = block->l[8];
  D.4888 = D.4861 ^ D.4816;
  D.4753 = block->l[2];
  D.4889 = D.4888 ^ D.4753;
  D.4727 = block->l[0];
  D.4890 = D.4889 ^ D.4727;
  D.4891 = D.4890 r>> 31;
  block->l[0] = D.4891;
  D.4727 = block->l[0];
  D.5073 = D.5053 + D.4727;
  D.4773 = c r>> 27;
  D.5074 = D.5073 + D.4773;
  D.5075 = D.5074 + 2400959708;
  b = D.5075 + b;
  d = d r>> 2;
  D.5057 = c | d;
  D.5058 = D.5057 & e;
  D.5059 = c & d;
  D.5060 = D.5058 | D.5059;
  D.4870 = block->l[14];
  D.4825 = block->l[9];
  D.4895 = D.4870 ^ D.4825;
  D.4766 = block->l[3];
  D.4896 = D.4895 ^ D.4766;
  D.4740 = block->l[1];
  D.4897 = D.4896 ^ D.4740;
  D.4898 = D.4897 r>> 31;
  block->l[1] = D.4898;
  D.4740 = block->l[1];
  D.5076 = D.5060 + D.4740;
  D.4786 = b r>> 27;
  D.5077 = D.5076 + D.4786;
  D.5078 = D.5077 + 2400959708;
  a = D.5078 + a;
  c = c r>> 2;
  D.5029 = b | c;
  D.5030 = D.5029 & d;
  D.5031 = b & c;
  D.5032 = D.5030 | D.5031;
  D.4879 = block->l[15];
  D.4834 = block->l[10];
  D.4902 = D.4879 ^ D.4834;
  D.4779 = block->l[4];
  D.4903 = D.4902 ^ D.4779;
  D.4753 = block->l[2];
  D.4904 = D.4903 ^ D.4753;
  D.4905 = D.4904 r>> 31;
  block->l[2] = D.4905;
  D.4753 = block->l[2];
  D.5079 = D.5032 + D.4753;
  D.4734 = a r>> 27;
  D.5080 = D.5079 + D.4734;
  D.5081 = D.5080 + 2400959708;
  e = D.5081 + e;
  b = b r>> 2;
  D.5036 = a | b;
  D.5037 = D.5036 & c;
  D.5038 = a & b;
  D.5039 = D.5037 | D.5038;
  D.4727 = block->l[0];
  D.4843 = block->l[11];
  D.4909 = D.4727 ^ D.4843;
  D.4789 = block->l[5];
  D.4910 = D.4909 ^ D.4789;
  D.4766 = block->l[3];
  D.4911 = D.4910 ^ D.4766;
  D.4912 = D.4911 r>> 31;
  block->l[3] = D.4912;
  D.4766 = block->l[3];
  D.5082 = D.5039 + D.4766;
  D.4747 = e r>> 27;
  D.5083 = D.5082 + D.4747;
  D.5084 = D.5083 + 2400959708;
  d = D.5084 + d;
  a = a r>> 2;
  D.5043 = e | a;
  D.5044 = D.5043 & b;
  D.5045 = e & a;
  D.5046 = D.5044 | D.5045;
  D.4740 = block->l[1];
  D.4852 = block->l[12];
  D.4917 = D.4740 ^ D.4852;
  D.4798 = block->l[6];
  D.4918 = D.4917 ^ D.4798;
  D.4779 = block->l[4];
  D.4919 = D.4918 ^ D.4779;
  D.4920 = D.4919 r>> 31;
  block->l[4] = D.4920;
  D.4779 = block->l[4];
  D.5085 = D.5046 + D.4779;
  D.4760 = d r>> 27;
  D.5086 = D.5085 + D.4760;
  D.5087 = D.5086 + 2400959708;
  c = D.5087 + c;
  e = e r>> 2;
  D.5050 = d | e;
  D.5051 = D.5050 & a;
  D.5052 = d & e;
  D.5053 = D.5051 | D.5052;
  D.4753 = block->l[2];
  D.4861 = block->l[13];
  D.4925 = D.4753 ^ D.4861;
  D.4807 = block->l[7];
  D.4926 = D.4925 ^ D.4807;
  D.4789 = block->l[5];
  D.4927 = D.4926 ^ D.4789;
  D.4928 = D.4927 r>> 31;
  block->l[5] = D.4928;
  D.4789 = block->l[5];
  D.5088 = D.5053 + D.4789;
  D.4773 = c r>> 27;
  D.5089 = D.5088 + D.4773;
  D.5090 = D.5089 + 2400959708;
  b = D.5090 + b;
  d = d r>> 2;
  D.5057 = c | d;
  D.5058 = D.5057 & e;
  D.5059 = c & d;
  D.5060 = D.5058 | D.5059;
  D.4766 = block->l[3];
  D.4870 = block->l[14];
  D.4933 = D.4766 ^ D.4870;
  D.4816 = block->l[8];
  D.4934 = D.4933 ^ D.4816;
  D.4798 = block->l[6];
  D.4935 = D.4934 ^ D.4798;
  D.4936 = D.4935 r>> 31;
  block->l[6] = D.4936;
  D.4798 = block->l[6];
  D.5091 = D.5060 + D.4798;
  D.4786 = b r>> 27;
  D.5092 = D.5091 + D.4786;
  D.5093 = D.5092 + 2400959708;
  a = D.5093 + a;
  c = c r>> 2;
  D.5029 = b | c;
  D.5030 = D.5029 & d;
  D.5031 = b & c;
  D.5032 = D.5030 | D.5031;
  D.4779 = block->l[4];
  D.4879 = block->l[15];
  D.4941 = D.4779 ^ D.4879;
  D.4825 = block->l[9];
  D.4942 = D.4941 ^ D.4825;
  D.4807 = block->l[7];
  D.4943 = D.4942 ^ D.4807;
  D.4944 = D.4943 r>> 31;
  block->l[7] = D.4944;
  D.4807 = block->l[7];
  D.5094 = D.5032 + D.4807;
  D.4734 = a r>> 27;
  D.5095 = D.5094 + D.4734;
  D.5096 = D.5095 + 2400959708;
  e = D.5096 + e;
  b = b r>> 2;
  D.5036 = a | b;
  D.5037 = D.5036 & c;
  D.5038 = a & b;
  D.5039 = D.5037 | D.5038;
  D.4789 = block->l[5];
  D.4727 = block->l[0];
  D.4949 = D.4789 ^ D.4727;
  D.4834 = block->l[10];
  D.4950 = D.4949 ^ D.4834;
  D.4816 = block->l[8];
  D.4951 = D.4950 ^ D.4816;
  D.4952 = D.4951 r>> 31;
  block->l[8] = D.4952;
  D.4816 = block->l[8];
  D.5097 = D.5039 + D.4816;
  D.4747 = e r>> 27;
  D.5098 = D.5097 + D.4747;
  D.5099 = D.5098 + 2400959708;
  d = D.5099 + d;
  a = a r>> 2;
  D.5043 = e | a;
  D.5044 = D.5043 & b;
  D.5045 = e & a;
  D.5046 = D.5044 | D.5045;
  D.4798 = block->l[6];
  D.4740 = block->l[1];
  D.4956 = D.4798 ^ D.4740;
  D.4843 = block->l[11];
  D.4957 = D.4956 ^ D.4843;
  D.4825 = block->l[9];
  D.4958 = D.4957 ^ D.4825;
  D.4959 = D.4958 r>> 31;
  block->l[9] = D.4959;
  D.4825 = block->l[9];
  D.5100 = D.5046 + D.4825;
  D.4760 = d r>> 27;
  D.5101 = D.5100 + D.4760;
  D.5102 = D.5101 + 2400959708;
  c = D.5102 + c;
  e = e r>> 2;
  D.5050 = d | e;
  D.5051 = D.5050 & a;
  D.5052 = d & e;
  D.5053 = D.5051 | D.5052;
  D.4807 = block->l[7];
  D.4753 = block->l[2];
  D.4963 = D.4807 ^ D.4753;
  D.4852 = block->l[12];
  D.4964 = D.4963 ^ D.4852;
  D.4834 = block->l[10];
  D.4965 = D.4964 ^ D.4834;
  D.4966 = D.4965 r>> 31;
  block->l[10] = D.4966;
  D.4834 = block->l[10];
  D.5103 = D.5053 + D.4834;
  D.4773 = c r>> 27;
  D.5104 = D.5103 + D.4773;
  D.5105 = D.5104 + 2400959708;
  b = D.5105 + b;
  d = d r>> 2;
  D.5057 = c | d;
  D.5058 = D.5057 & e;
  D.5059 = c & d;
  D.5060 = D.5058 | D.5059;
  D.4816 = block->l[8];
  D.4766 = block->l[3];
  D.4970 = D.4816 ^ D.4766;
  D.4861 = block->l[13];
  D.4971 = D.4970 ^ D.4861;
  D.4843 = block->l[11];
  D.4972 = D.4971 ^ D.4843;
  D.4973 = D.4972 r>> 31;
  block->l[11] = D.4973;
  D.4843 = block->l[11];
  D.5106 = D.5060 + D.4843;
  D.4786 = b r>> 27;
  D.5107 = D.5106 + D.4786;
  D.5108 = D.5107 + 2400959708;
  a = D.5108 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4825 = block->l[9];
  D.4779 = block->l[4];
  D.4977 = D.4825 ^ D.4779;
  D.4870 = block->l[14];
  D.4978 = D.4977 ^ D.4870;
  D.4852 = block->l[12];
  D.4979 = D.4978 ^ D.4852;
  D.4980 = D.4979 r>> 31;
  block->l[12] = D.4980;
  D.4852 = block->l[12];
  D.5109 = D.4916 + D.4852;
  D.4734 = a r>> 27;
  D.5110 = D.5109 + D.4734;
  D.5111 = D.5110 + 3395469782;
  e = D.5111 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4834 = block->l[10];
  D.4789 = block->l[5];
  D.4984 = D.4834 ^ D.4789;
  D.4879 = block->l[15];
  D.4985 = D.4984 ^ D.4879;
  D.4861 = block->l[13];
  D.4986 = D.4985 ^ D.4861;
  D.4987 = D.4986 r>> 31;
  block->l[13] = D.4987;
  D.4861 = block->l[13];
  D.5112 = D.4924 + D.4861;
  D.4747 = e r>> 27;
  D.5113 = D.5112 + D.4747;
  D.5114 = D.5113 + 3395469782;
  d = D.5114 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4843 = block->l[11];
  D.4798 = block->l[6];
  D.4991 = D.4843 ^ D.4798;
  D.4727 = block->l[0];
  D.4992 = D.4991 ^ D.4727;
  D.4870 = block->l[14];
  D.4993 = D.4992 ^ D.4870;
  D.4994 = D.4993 r>> 31;
  block->l[14] = D.4994;
  D.4870 = block->l[14];
  D.5115 = D.4932 + D.4870;
  D.4760 = d r>> 27;
  D.5116 = D.5115 + D.4760;
  D.5117 = D.5116 + 3395469782;
  c = D.5117 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4852 = block->l[12];
  D.4807 = block->l[7];
  D.4998 = D.4852 ^ D.4807;
  D.4740 = block->l[1];
  D.4999 = D.4998 ^ D.4740;
  D.4879 = block->l[15];
  D.5000 = D.4999 ^ D.4879;
  D.5001 = D.5000 r>> 31;
  block->l[15] = D.5001;
  D.4879 = block->l[15];
  D.5118 = D.4940 + D.4879;
  D.4773 = c r>> 27;
  D.5119 = D.5118 + D.4773;
  D.5120 = D.5119 + 3395469782;
  b = D.5120 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4861 = block->l[13];
  D.4816 = block->l[8];
  D.4888 = D.4861 ^ D.4816;
  D.4753 = block->l[2];
  D.4889 = D.4888 ^ D.4753;
  D.4727 = block->l[0];
  D.4890 = D.4889 ^ D.4727;
  D.4891 = D.4890 r>> 31;
  block->l[0] = D.4891;
  D.4727 = block->l[0];
  D.5121 = D.4948 + D.4727;
  D.4786 = b r>> 27;
  D.5122 = D.5121 + D.4786;
  D.5123 = D.5122 + 3395469782;
  a = D.5123 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4870 = block->l[14];
  D.4825 = block->l[9];
  D.4895 = D.4870 ^ D.4825;
  D.4766 = block->l[3];
  D.4896 = D.4895 ^ D.4766;
  D.4740 = block->l[1];
  D.4897 = D.4896 ^ D.4740;
  D.4898 = D.4897 r>> 31;
  block->l[1] = D.4898;
  D.4740 = block->l[1];
  D.5124 = D.4916 + D.4740;
  D.4734 = a r>> 27;
  D.5125 = D.5124 + D.4734;
  D.5126 = D.5125 + 3395469782;
  e = D.5126 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4879 = block->l[15];
  D.4834 = block->l[10];
  D.4902 = D.4879 ^ D.4834;
  D.4779 = block->l[4];
  D.4903 = D.4902 ^ D.4779;
  D.4753 = block->l[2];
  D.4904 = D.4903 ^ D.4753;
  D.4905 = D.4904 r>> 31;
  block->l[2] = D.4905;
  D.4753 = block->l[2];
  D.5127 = D.4924 + D.4753;
  D.4747 = e r>> 27;
  D.5128 = D.5127 + D.4747;
  D.5129 = D.5128 + 3395469782;
  d = D.5129 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4727 = block->l[0];
  D.4843 = block->l[11];
  D.4909 = D.4727 ^ D.4843;
  D.4789 = block->l[5];
  D.4910 = D.4909 ^ D.4789;
  D.4766 = block->l[3];
  D.4911 = D.4910 ^ D.4766;
  D.4912 = D.4911 r>> 31;
  block->l[3] = D.4912;
  D.4766 = block->l[3];
  D.5130 = D.4932 + D.4766;
  D.4760 = d r>> 27;
  D.5131 = D.5130 + D.4760;
  D.5132 = D.5131 + 3395469782;
  c = D.5132 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4740 = block->l[1];
  D.4852 = block->l[12];
  D.4917 = D.4740 ^ D.4852;
  D.4798 = block->l[6];
  D.4918 = D.4917 ^ D.4798;
  D.4779 = block->l[4];
  D.4919 = D.4918 ^ D.4779;
  D.4920 = D.4919 r>> 31;
  block->l[4] = D.4920;
  D.4779 = block->l[4];
  D.5133 = D.4940 + D.4779;
  D.4773 = c r>> 27;
  D.5134 = D.5133 + D.4773;
  D.5135 = D.5134 + 3395469782;
  b = D.5135 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4753 = block->l[2];
  D.4861 = block->l[13];
  D.4925 = D.4753 ^ D.4861;
  D.4807 = block->l[7];
  D.4926 = D.4925 ^ D.4807;
  D.4789 = block->l[5];
  D.4927 = D.4926 ^ D.4789;
  D.4928 = D.4927 r>> 31;
  block->l[5] = D.4928;
  D.4789 = block->l[5];
  D.5136 = D.4948 + D.4789;
  D.4786 = b r>> 27;
  D.5137 = D.5136 + D.4786;
  D.5138 = D.5137 + 3395469782;
  a = D.5138 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4766 = block->l[3];
  D.4870 = block->l[14];
  D.4933 = D.4766 ^ D.4870;
  D.4816 = block->l[8];
  D.4934 = D.4933 ^ D.4816;
  D.4798 = block->l[6];
  D.4935 = D.4934 ^ D.4798;
  D.4936 = D.4935 r>> 31;
  block->l[6] = D.4936;
  D.4798 = block->l[6];
  D.5139 = D.4916 + D.4798;
  D.4734 = a r>> 27;
  D.5140 = D.5139 + D.4734;
  D.5141 = D.5140 + 3395469782;
  e = D.5141 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4779 = block->l[4];
  D.4879 = block->l[15];
  D.4941 = D.4779 ^ D.4879;
  D.4825 = block->l[9];
  D.4942 = D.4941 ^ D.4825;
  D.4807 = block->l[7];
  D.4943 = D.4942 ^ D.4807;
  D.4944 = D.4943 r>> 31;
  block->l[7] = D.4944;
  D.4807 = block->l[7];
  D.5142 = D.4924 + D.4807;
  D.4747 = e r>> 27;
  D.5143 = D.5142 + D.4747;
  D.5144 = D.5143 + 3395469782;
  d = D.5144 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4789 = block->l[5];
  D.4727 = block->l[0];
  D.4949 = D.4789 ^ D.4727;
  D.4834 = block->l[10];
  D.4950 = D.4949 ^ D.4834;
  D.4816 = block->l[8];
  D.4951 = D.4950 ^ D.4816;
  D.4952 = D.4951 r>> 31;
  block->l[8] = D.4952;
  D.4816 = block->l[8];
  D.5145 = D.4932 + D.4816;
  D.4760 = d r>> 27;
  D.5146 = D.5145 + D.4760;
  D.5147 = D.5146 + 3395469782;
  c = D.5147 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4798 = block->l[6];
  D.4740 = block->l[1];
  D.4956 = D.4798 ^ D.4740;
  D.4843 = block->l[11];
  D.4957 = D.4956 ^ D.4843;
  D.4825 = block->l[9];
  D.4958 = D.4957 ^ D.4825;
  D.4959 = D.4958 r>> 31;
  block->l[9] = D.4959;
  D.4825 = block->l[9];
  D.5148 = D.4940 + D.4825;
  D.4773 = c r>> 27;
  D.5149 = D.5148 + D.4773;
  D.5150 = D.5149 + 3395469782;
  b = D.5150 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4807 = block->l[7];
  D.4753 = block->l[2];
  D.4963 = D.4807 ^ D.4753;
  D.4852 = block->l[12];
  D.4964 = D.4963 ^ D.4852;
  D.4834 = block->l[10];
  D.4965 = D.4964 ^ D.4834;
  D.4966 = D.4965 r>> 31;
  block->l[10] = D.4966;
  D.4834 = block->l[10];
  D.5151 = D.4948 + D.4834;
  D.4786 = b r>> 27;
  D.5152 = D.5151 + D.4786;
  D.5153 = D.5152 + 3395469782;
  a = D.5153 + a;
  c = c r>> 2;
  D.4737 = b ^ c;
  D.4916 = D.4737 ^ d;
  D.4816 = block->l[8];
  D.4766 = block->l[3];
  D.4970 = D.4816 ^ D.4766;
  D.4861 = block->l[13];
  D.4971 = D.4970 ^ D.4861;
  D.4843 = block->l[11];
  D.4972 = D.4971 ^ D.4843;
  D.4973 = D.4972 r>> 31;
  block->l[11] = D.4973;
  D.4843 = block->l[11];
  D.5154 = D.4916 + D.4843;
  D.4734 = a r>> 27;
  D.5155 = D.5154 + D.4734;
  D.5156 = D.5155 + 3395469782;
  e = D.5156 + e;
  b = b r>> 2;
  D.4750 = a ^ b;
  D.4924 = D.4750 ^ c;
  D.4825 = block->l[9];
  D.4779 = block->l[4];
  D.4977 = D.4825 ^ D.4779;
  D.4870 = block->l[14];
  D.4978 = D.4977 ^ D.4870;
  D.4852 = block->l[12];
  D.4979 = D.4978 ^ D.4852;
  D.4980 = D.4979 r>> 31;
  block->l[12] = D.4980;
  D.4852 = block->l[12];
  D.5157 = D.4924 + D.4852;
  D.4747 = e r>> 27;
  D.5158 = D.5157 + D.4747;
  D.5159 = D.5158 + 3395469782;
  d = D.5159 + d;
  a = a r>> 2;
  D.4763 = e ^ a;
  D.4932 = D.4763 ^ b;
  D.4834 = block->l[10];
  D.4789 = block->l[5];
  D.4984 = D.4834 ^ D.4789;
  D.4879 = block->l[15];
  D.4985 = D.4984 ^ D.4879;
  D.4861 = block->l[13];
  D.4986 = D.4985 ^ D.4861;
  D.4987 = D.4986 r>> 31;
  block->l[13] = D.4987;
  D.4861 = block->l[13];
  D.5160 = D.4932 + D.4861;
  D.4760 = d r>> 27;
  D.5161 = D.5160 + D.4760;
  D.5162 = D.5161 + 3395469782;
  c = D.5162 + c;
  e = e r>> 2;
  D.4776 = d ^ e;
  D.4940 = D.4776 ^ a;
  D.4843 = block->l[11];
  D.4798 = block->l[6];
  D.4991 = D.4843 ^ D.4798;
  D.4727 = block->l[0];
  D.4992 = D.4991 ^ D.4727;
  D.4870 = block->l[14];
  D.4993 = D.4992 ^ D.4870;
  D.4994 = D.4993 r>> 31;
  block->l[14] = D.4994;
  D.4870 = block->l[14];
  D.5163 = D.4940 + D.4870;
  D.4773 = c r>> 27;
  D.5164 = D.5163 + D.4773;
  D.5165 = D.5164 + 3395469782;
  b = D.5165 + b;
  d = d r>> 2;
  D.4724 = c ^ d;
  D.4948 = D.4724 ^ e;
  D.4852 = block->l[12];
  D.4807 = block->l[7];
  D.4998 = D.4852 ^ D.4807;
  D.4740 = block->l[1];
  D.4999 = D.4998 ^ D.4740;
  D.4879 = block->l[15];
  D.5000 = D.4999 ^ D.4879;
  D.5001 = D.5000 r>> 31;
  block->l[15] = D.5001;
  D.4879 = block->l[15];
  D.5166 = D.4948 + D.4879;
  D.4786 = b r>> 27;
  D.5167 = D.5166 + D.4786;
  D.5168 = D.5167 + 3395469782;
  a = D.5168 + a;
  c = c r>> 2;
  D.5169 = *state;
  D.5170 = D.5169 + a;
  *state = D.5170;
  D.5171 = state + 4;
  D.5171 = state + 4;
  D.5172 = *D.5171;
  D.5173 = D.5172 + b;
  *D.5171 = D.5173;
  D.5174 = state + 8;
  D.5174 = state + 8;
  D.5175 = *D.5174;
  D.5176 = D.5175 + c;
  *D.5174 = D.5176;
  D.5177 = state + 12;
  D.5177 = state + 12;
  D.5178 = *D.5177;
  D.5179 = D.5178 + d;
  *D.5177 = D.5179;
  D.5180 = state + 16;
  D.5180 = state + 16;
  D.5181 = *D.5180;
  D.5182 = D.5181 + e;
  *D.5180 = D.5182;
  e = 0;
  d = e;
  c = d;
  b = c;
  a = b;
}


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

  D.5184 = __builtin_object_size (__dest, 0);
  D.5183 = __builtin___memcpy_chk (__dest, __src, __len, D.5184);
  return D.5183;
}


mono_sha1_final (struct MonoSHA1Context * context, unsigned char * digest)
{
  _Bool D.5186;
  int D.5187;
  unsigned int D.5188;
  unsigned int D.5189;
  unsigned int D.5190;
  unsigned int D.5191;
  int D.5192;
  unsigned int D.5193;
  unsigned char D.5194;
  unsigned int D.5195;
  unsigned int D.5196;
  unsigned char * D.5197;
  unsigned int D.5198;
  unsigned int D.5199;
  unsigned int D.5200;
  unsigned char D.5201;
  unsigned char[64] * D.5202;
  guint32[5] * D.5203;
  guint32[2] * D.5204;
  guint32 i;
  unsigned char finalcount[8];

  try
    {
      i = 0;
      goto <D.4667>;
      <D.4666>:
      D.5186 = i <= 3;
      D.5187 = (int) D.5186;
      D.5188 = context->count[D.5187];
      D.5189 = ~i;
      D.5190 = D.5189 & 3;
      D.5191 = D.5190 * 8;
      D.5192 = (int) D.5191;
      D.5193 = D.5188 >> D.5192;
      D.5194 = (unsigned char) D.5193;
      finalcount[i] = D.5194;
      i = i + 1;
      <D.4667>:
      if (i <= 7) goto <D.4666>; else goto <D.4668>;
      <D.4668>:
      mono_sha1_update (context, "€", 1);
      goto <D.4670>;
      <D.4669>:
      mono_sha1_update (context, "", 1);
      <D.4670>:
      D.5195 = context->count[0];
      D.5196 = D.5195 & 504;
      if (D.5196 != 448) goto <D.4669>; else goto <D.4671>;
      <D.4671>:
      mono_sha1_update (context, &finalcount, 8);
      i = 0;
      goto <D.4673>;
      <D.4672>:
      D.5197 = digest + i;
      D.5198 = i >> 2;
      D.5199 = context->state[D.5198];
      D.5189 = ~i;
      D.5190 = D.5189 & 3;
      D.5191 = D.5190 * 8;
      D.5192 = (int) D.5191;
      D.5200 = D.5199 >> D.5192;
      D.5201 = (unsigned char) D.5200;
      *D.5197 = D.5201;
      i = i + 1;
      <D.4673>:
      if (i <= 19) goto <D.4672>; else goto <D.4674>;
      <D.4674>:
      i = 0;
      D.5202 = &context->buffer;
      memset (D.5202, 0, 64);
      D.5203 = &context->state;
      memset (D.5203, 0, 20);
      D.5204 = &context->count;
      memset (D.5204, 0, 8);
      memset (&finalcount, 0, 8);
      D.5202 = &context->buffer;
      D.5203 = &context->state;
      SHA1Transform (D.5203, D.5202);
    }
  finally
    {
      finalcount = {CLOBBER};
    }
}


memset (void * __dest, int __ch, size_t __len)
{
  int D.5207;
  int D.5212;
  void * D.5214;
  unsigned int D.5215;

  D.5207 = __builtin_constant_p (__len);
  if (D.5207 != 0) goto <D.5208>; else goto <D.5209>;
  <D.5208>:
  if (__len == 0) goto <D.5210>; else goto <D.5211>;
  <D.5210>:
  D.5212 = __builtin_constant_p (__ch);
  if (D.5212 == 0) goto <D.5205>; else goto <D.5213>;
  <D.5213>:
  if (__ch != 0) goto <D.5205>; else goto <D.5206>;
  <D.5205>:
  __warn_memset_zero_len ();
  D.5214 = __dest;
  return D.5214;
  <D.5206>:
  <D.5211>:
  <D.5209>:
  D.5215 = __builtin_object_size (__dest, 0);
  D.5214 = __builtin___memset_chk (__dest, __ch, __len, D.5215);
  return D.5214;
}


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;
  unsigned int D.5221;
  int D.5222;
  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.5218>; else goto <D.5219>;
      <D.5218>:
      return;
      <D.5219>:
      goto <D.4690>;
      <D.4689>:
      nb_bytes_read.1 = (unsigned int) nb_bytes_read;
      mono_sha1_update (&ctx, &tmp_buf, nb_bytes_read.1);
      <D.4690>:
      D.5221 = fread (&tmp_buf, 1, 1024, fp);
      nb_bytes_read = (gint) D.5221;
      if (nb_bytes_read > 0) goto <D.4689>; else goto <D.4691>;
      <D.4691>:
      D.5222 = ferror (fp);
      if (D.5222 != 0) goto <D.5223>; else goto <D.5224>;
      <D.5223>:
      fclose (fp);
      return;
      <D.5224>:
      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)
{
  unsigned int D.5228;
  int D.5233;
  int D.5235;
  unsigned int D.5237;
  size_t D.5238;
  unsigned int D.5239;
  unsigned int D.5240;
  unsigned int D.5241;
  unsigned int D.5244;

  D.5228 = __builtin_object_size (__ptr, 0);
  if (D.5228 != 4294967295) goto <D.5229>; else goto <D.5230>;
  <D.5229>:
  D.5233 = __builtin_constant_p (__size);
  if (D.5233 == 0) goto <D.5231>; else goto <D.5234>;
  <D.5234>:
  D.5235 = __builtin_constant_p (__n);
  if (D.5235 == 0) goto <D.5231>; else goto <D.5236>;
  <D.5236>:
  D.5237 = __size | __n;
  if (D.5237 > 65535) goto <D.5231>; else goto <D.5232>;
  <D.5231>:
  D.5239 = __builtin_object_size (__ptr, 0);
  D.5238 = __fread_chk (__ptr, D.5239, __size, __n, __stream);
  return D.5238;
  <D.5232>:
  D.5240 = __size * __n;
  D.5241 = __builtin_object_size (__ptr, 0);
  if (D.5240 > D.5241) goto <D.5242>; else goto <D.5243>;
  <D.5242>:
  D.5244 = __builtin_object_size (__ptr, 0);
  D.5238 = __fread_chk_warn (__ptr, D.5244, __size, __n, __stream);
  return D.5238;
  <D.5243>:
  <D.5230>:
  D.5238 = __fread_alias (__ptr, __size, __n, __stream);
  return D.5238;
}


mono_digest_get_public_token (guchar * token, const guchar * pubkey, guint32 len)
{
  int len.2;
  sizetype i.3;
  guchar * D.5250;
  int D.5251;
  unsigned char D.5252;
  guchar digest[20];
  int i;

  try
    {
      if (token == 0B) goto <D.5246>; else goto <D.5247>;
      <D.5246>:
      monoeg_g_log (0B, 8, "%s:%d: assertion \'%s\' failed", "mono-sha1.c", 331, "token != NULL");
      return;
      <D.5247>:
      len.2 = (int) len;
      mono_sha1_get_digest (pubkey, len.2, &digest);
      i = 0;
      goto <D.4700>;
      <D.4699>:
      i.3 = (sizetype) i;
      D.5250 = token + i.3;
      D.5251 = 19 - i;
      D.5252 = digest[D.5251];
      *D.5250 = D.5252;
      i = i + 1;
      <D.4700>:
      if (i <= 7) goto <D.4699>; else goto <D.4701>;
      <D.4701>:
    }
  finally
    {
      digest = {CLOBBER};
    }
}


