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

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


mono_sha1_update (struct MonoSHA1Context * context, const guchar * data, guint32 len)
{
  unsigned int D.5221;
  unsigned int D.5222;
  unsigned int D.5223;
  unsigned int D.5224;
  unsigned int D.5227;
  unsigned int D.5228;
  unsigned int D.5229;
  unsigned int D.5230;
  unsigned int D.5231;
  unsigned char * D.5234;
  long unsigned int D.5235;
  guint32[5] * D.5236;
  unsigned char[64] * D.5237;
  sizetype D.5238;
  const guchar * D.5239;
  unsigned int D.5240;
  unsigned int D.5242;
  long unsigned int D.5243;
  guint32 i;
  guint32 j;

  D.5221 = context->count[0];
  D.5222 = D.5221 >> 3;
  j = D.5222 & 63;
  D.5221 = context->count[0];
  D.5223 = len << 3;
  D.5224 = D.5221 + D.5223;
  context->count[0] = D.5224;
  D.5221 = context->count[0];
  D.5223 = len << 3;
  if (D.5221 < D.5223) goto <D.5225>; else goto <D.5226>;
  <D.5225>:
  D.5227 = context->count[1];
  D.5228 = D.5227 + 1;
  context->count[1] = D.5228;
  <D.5226>:
  D.5227 = context->count[1];
  D.5229 = len >> 29;
  D.5230 = D.5227 + D.5229;
  context->count[1] = D.5230;
  D.5231 = j + len;
  if (D.5231 > 63) goto <D.5232>; else goto <D.5233>;
  <D.5232>:
  D.5234 = &context->buffer[j];
  i = 64 - j;
  D.5235 = (long unsigned int) i;
  memcpy (D.5234, data, D.5235);
  D.5236 = &context->state;
  D.5237 = &context->buffer;
  SHA1Transform (D.5236, D.5237);
  goto <D.5175>;
  <D.5174>:
  D.5236 = &context->state;
  D.5238 = (sizetype) i;
  D.5239 = data + D.5238;
  SHA1Transform (D.5236, D.5239);
  i = i + 64;
  <D.5175>:
  D.5240 = i + 63;
  if (D.5240 < len) goto <D.5174>; else goto <D.5176>;
  <D.5176>:
  j = 0;
  goto <D.5241>;
  <D.5233>:
  i = 0;
  <D.5241>:
  D.5234 = &context->buffer[j];
  D.5238 = (sizetype) i;
  D.5239 = data + D.5238;
  D.5242 = len - i;
  D.5243 = (long unsigned int) D.5242;
  memcpy (D.5234, D.5239, D.5243);
}


SHA1Transform (guint32 * state, const guchar * buffer)
{
  unsigned int D.5244;
  unsigned int D.5245;
  unsigned int D.5246;
  unsigned int D.5247;
  unsigned int D.5248;
  unsigned int D.5249;
  unsigned int D.5250;
  unsigned int D.5251;
  unsigned int D.5252;
  unsigned int D.5253;
  unsigned int D.5254;
  unsigned int D.5255;
  unsigned int D.5256;
  unsigned int D.5257;
  unsigned int D.5258;
  unsigned int D.5259;
  unsigned int D.5260;
  unsigned int D.5261;
  unsigned int D.5262;
  unsigned int D.5263;
  unsigned int D.5264;
  unsigned int D.5265;
  unsigned int D.5266;
  unsigned int D.5267;
  unsigned int D.5268;
  unsigned int D.5269;
  unsigned int D.5270;
  unsigned int D.5271;
  unsigned int D.5272;
  unsigned int D.5273;
  unsigned int D.5274;
  unsigned int D.5275;
  unsigned int D.5276;
  unsigned int D.5277;
  unsigned int D.5278;
  unsigned int D.5279;
  unsigned int D.5280;
  unsigned int D.5281;
  unsigned int D.5282;
  unsigned int D.5283;
  unsigned int D.5284;
  unsigned int D.5285;
  unsigned int D.5286;
  unsigned int D.5287;
  unsigned int D.5288;
  unsigned int D.5289;
  unsigned int D.5290;
  unsigned int D.5291;
  unsigned int D.5292;
  unsigned int D.5293;
  unsigned int D.5294;
  unsigned int D.5295;
  unsigned int D.5296;
  unsigned int D.5297;
  unsigned int D.5298;
  unsigned int D.5299;
  unsigned int D.5300;
  unsigned int D.5301;
  unsigned int D.5302;
  unsigned int D.5303;
  unsigned int D.5304;
  unsigned int D.5305;
  unsigned int D.5306;
  unsigned int D.5307;
  unsigned int D.5308;
  unsigned int D.5309;
  unsigned int D.5310;
  unsigned int D.5311;
  unsigned int D.5312;
  unsigned int D.5313;
  unsigned int D.5314;
  unsigned int D.5315;
  unsigned int D.5316;
  unsigned int D.5317;
  unsigned int D.5318;
  unsigned int D.5319;
  unsigned int D.5320;
  unsigned int D.5321;
  unsigned int D.5322;
  unsigned int D.5323;
  unsigned int D.5324;
  unsigned int D.5325;
  unsigned int D.5326;
  unsigned int D.5327;
  unsigned int D.5328;
  unsigned int D.5329;
  unsigned int D.5330;
  unsigned int D.5331;
  unsigned int D.5332;
  unsigned int D.5333;
  unsigned int D.5334;
  unsigned int D.5335;
  unsigned int D.5336;
  unsigned int D.5337;
  unsigned int D.5338;
  unsigned int D.5339;
  unsigned int D.5340;
  unsigned int D.5341;
  unsigned int D.5342;
  unsigned int D.5343;
  unsigned int D.5344;
  unsigned int D.5345;
  unsigned int D.5346;
  unsigned int D.5347;
  unsigned int D.5348;
  unsigned int D.5349;
  unsigned int D.5350;
  unsigned int D.5351;
  unsigned int D.5352;
  unsigned int D.5353;
  unsigned int D.5354;
  unsigned int D.5355;
  unsigned int D.5356;
  unsigned int D.5357;
  unsigned int D.5358;
  unsigned int D.5359;
  unsigned int D.5360;
  unsigned int D.5361;
  unsigned int D.5362;
  unsigned int D.5363;
  unsigned int D.5364;
  unsigned int D.5365;
  unsigned int D.5366;
  unsigned int D.5367;
  unsigned int D.5368;
  unsigned int D.5369;
  unsigned int D.5370;
  unsigned int D.5371;
  unsigned int D.5372;
  unsigned int D.5373;
  unsigned int D.5374;
  unsigned int D.5375;
  unsigned int D.5376;
  unsigned int D.5377;
  unsigned int D.5378;
  unsigned int D.5379;
  unsigned int D.5380;
  unsigned int D.5381;
  unsigned int D.5382;
  unsigned int D.5383;
  unsigned int D.5384;
  unsigned int D.5385;
  unsigned int D.5386;
  unsigned int D.5387;
  unsigned int D.5388;
  unsigned int D.5389;
  unsigned int D.5390;
  unsigned int D.5391;
  unsigned int D.5392;
  unsigned int D.5393;
  unsigned int D.5394;
  unsigned int D.5395;
  unsigned int D.5396;
  unsigned int D.5397;
  unsigned int D.5398;
  unsigned int D.5399;
  unsigned int D.5400;
  unsigned int D.5401;
  unsigned int D.5402;
  unsigned int D.5403;
  unsigned int D.5404;
  unsigned int D.5405;
  unsigned int D.5406;
  unsigned int D.5407;
  unsigned int D.5408;
  unsigned int D.5409;
  unsigned int D.5410;
  unsigned int D.5411;
  unsigned int D.5412;
  unsigned int D.5413;
  unsigned int D.5414;
  unsigned int D.5415;
  unsigned int D.5416;
  unsigned int D.5417;
  unsigned int D.5418;
  unsigned int D.5419;
  unsigned int D.5420;
  unsigned int D.5421;
  unsigned int D.5422;
  unsigned int D.5423;
  unsigned int D.5424;
  unsigned int D.5425;
  unsigned int D.5426;
  unsigned int D.5427;
  unsigned int D.5428;
  unsigned int D.5429;
  unsigned int D.5430;
  unsigned int D.5431;
  unsigned int D.5432;
  unsigned int D.5433;
  unsigned int D.5434;
  unsigned int D.5435;
  unsigned int D.5436;
  unsigned int D.5437;
  unsigned int D.5438;
  unsigned int D.5439;
  unsigned int D.5440;
  unsigned int D.5441;
  unsigned int D.5442;
  unsigned int D.5443;
  unsigned int D.5444;
  unsigned int D.5445;
  unsigned int D.5446;
  unsigned int D.5447;
  unsigned int D.5448;
  unsigned int D.5449;
  unsigned int D.5450;
  unsigned int D.5451;
  unsigned int D.5452;
  unsigned int D.5453;
  unsigned int D.5454;
  unsigned int D.5455;
  unsigned int D.5456;
  unsigned int D.5457;
  unsigned int D.5458;
  unsigned int D.5459;
  unsigned int D.5460;
  unsigned int D.5461;
  unsigned int D.5462;
  unsigned int D.5463;
  unsigned int D.5464;
  unsigned int D.5465;
  unsigned int D.5466;
  unsigned int D.5467;
  unsigned int D.5468;
  unsigned int D.5469;
  unsigned int D.5470;
  unsigned int D.5471;
  unsigned int D.5472;
  unsigned int D.5473;
  unsigned int D.5474;
  unsigned int D.5475;
  unsigned int D.5476;
  unsigned int D.5477;
  unsigned int D.5478;
  unsigned int D.5479;
  unsigned int D.5480;
  unsigned int D.5481;
  unsigned int D.5482;
  unsigned int D.5483;
  unsigned int D.5484;
  unsigned int D.5485;
  unsigned int D.5486;
  unsigned int D.5487;
  unsigned int D.5488;
  unsigned int D.5489;
  unsigned int D.5490;
  unsigned int D.5491;
  unsigned int D.5492;
  unsigned int D.5493;
  unsigned int D.5494;
  unsigned int D.5495;
  unsigned int D.5496;
  unsigned int D.5497;
  unsigned int D.5498;
  unsigned int D.5499;
  unsigned int D.5500;
  unsigned int D.5501;
  unsigned int D.5502;
  unsigned int D.5503;
  unsigned int D.5504;
  unsigned int D.5505;
  unsigned int D.5506;
  unsigned int D.5507;
  unsigned int D.5508;
  unsigned int D.5509;
  unsigned int D.5510;
  unsigned int D.5511;
  unsigned int D.5512;
  unsigned int D.5513;
  unsigned int D.5514;
  unsigned int D.5515;
  unsigned int D.5516;
  unsigned int D.5517;
  unsigned int D.5518;
  unsigned int D.5519;
  unsigned int D.5520;
  unsigned int D.5521;
  unsigned int D.5522;
  unsigned int D.5523;
  unsigned int D.5524;
  unsigned int D.5525;
  unsigned int D.5526;
  unsigned int D.5527;
  unsigned int D.5528;
  unsigned int D.5529;
  unsigned int D.5530;
  unsigned int D.5531;
  unsigned int D.5532;
  unsigned int D.5533;
  unsigned int D.5534;
  unsigned int D.5535;
  unsigned int D.5536;
  unsigned int D.5537;
  unsigned int D.5538;
  unsigned int D.5539;
  unsigned int D.5540;
  unsigned int D.5541;
  unsigned int D.5542;
  unsigned int D.5543;
  unsigned int D.5544;
  unsigned int D.5545;
  unsigned int D.5546;
  unsigned int D.5547;
  unsigned int D.5548;
  unsigned int D.5549;
  unsigned int D.5550;
  unsigned int D.5551;
  unsigned int D.5552;
  unsigned int D.5553;
  unsigned int D.5554;
  unsigned int D.5555;
  unsigned int D.5556;
  unsigned int D.5557;
  unsigned int D.5558;
  unsigned int D.5559;
  unsigned int D.5560;
  unsigned int D.5561;
  unsigned int D.5562;
  unsigned int D.5563;
  unsigned int D.5564;
  unsigned int D.5565;
  unsigned int D.5566;
  unsigned int D.5567;
  unsigned int D.5568;
  unsigned int D.5569;
  unsigned int D.5570;
  unsigned int D.5571;
  unsigned int D.5572;
  unsigned int D.5573;
  unsigned int D.5574;
  unsigned int D.5575;
  unsigned int D.5576;
  unsigned int D.5577;
  unsigned int D.5578;
  unsigned int D.5579;
  unsigned int D.5580;
  unsigned int D.5581;
  unsigned int D.5582;
  unsigned int D.5583;
  unsigned int D.5584;
  unsigned int D.5585;
  unsigned int D.5586;
  unsigned int D.5587;
  unsigned int D.5588;
  unsigned int D.5589;
  unsigned int D.5590;
  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;
  guint32 * D.5611;
  unsigned int D.5612;
  unsigned int D.5613;
  guint32 * D.5614;
  unsigned int D.5615;
  unsigned int D.5616;
  guint32 * D.5617;
  unsigned int D.5618;
  unsigned int D.5619;
  guint32 * D.5620;
  unsigned int D.5621;
  unsigned int D.5622;
  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.5244 = c ^ d;
  D.5245 = D.5244 & b;
  D.5246 = D.5245 ^ d;
  D.5247 = block->l[0];
  D.5248 = D.5246 + D.5247;
  D.5249 = a r>> 27;
  D.5250 = D.5248 + D.5249;
  D.5251 = D.5250 + e;
  e = D.5251 + 1518500249;
  b = b r>> 2;
  D.5252 = b ^ c;
  D.5253 = D.5252 & a;
  D.5254 = D.5253 ^ c;
  D.5255 = block->l[1];
  D.5256 = D.5254 + D.5255;
  D.5257 = e r>> 27;
  D.5258 = D.5256 + D.5257;
  D.5259 = D.5258 + d;
  d = D.5259 + 1518500249;
  a = a r>> 2;
  D.5260 = a ^ b;
  D.5261 = D.5260 & e;
  D.5262 = D.5261 ^ b;
  D.5263 = block->l[2];
  D.5264 = D.5262 + D.5263;
  D.5265 = d r>> 27;
  D.5266 = D.5264 + D.5265;
  D.5267 = D.5266 + c;
  c = D.5267 + 1518500249;
  e = e r>> 2;
  D.5268 = e ^ a;
  D.5269 = D.5268 & d;
  D.5270 = D.5269 ^ a;
  D.5271 = block->l[3];
  D.5272 = D.5270 + D.5271;
  D.5273 = c r>> 27;
  D.5274 = D.5272 + D.5273;
  D.5275 = D.5274 + b;
  b = D.5275 + 1518500249;
  d = d r>> 2;
  D.5276 = d ^ e;
  D.5277 = D.5276 & c;
  D.5278 = D.5277 ^ e;
  D.5279 = block->l[4];
  D.5280 = D.5278 + D.5279;
  D.5281 = b r>> 27;
  D.5282 = D.5280 + D.5281;
  D.5283 = D.5282 + a;
  a = D.5283 + 1518500249;
  c = c r>> 2;
  D.5244 = c ^ d;
  D.5245 = D.5244 & b;
  D.5246 = D.5245 ^ d;
  D.5284 = block->l[5];
  D.5285 = D.5246 + D.5284;
  D.5249 = a r>> 27;
  D.5286 = D.5285 + D.5249;
  D.5287 = D.5286 + e;
  e = D.5287 + 1518500249;
  b = b r>> 2;
  D.5252 = b ^ c;
  D.5253 = D.5252 & a;
  D.5254 = D.5253 ^ c;
  D.5288 = block->l[6];
  D.5289 = D.5254 + D.5288;
  D.5257 = e r>> 27;
  D.5290 = D.5289 + D.5257;
  D.5291 = D.5290 + d;
  d = D.5291 + 1518500249;
  a = a r>> 2;
  D.5260 = a ^ b;
  D.5261 = D.5260 & e;
  D.5262 = D.5261 ^ b;
  D.5292 = block->l[7];
  D.5293 = D.5262 + D.5292;
  D.5265 = d r>> 27;
  D.5294 = D.5293 + D.5265;
  D.5295 = D.5294 + c;
  c = D.5295 + 1518500249;
  e = e r>> 2;
  D.5268 = e ^ a;
  D.5269 = D.5268 & d;
  D.5270 = D.5269 ^ a;
  D.5296 = block->l[8];
  D.5297 = D.5270 + D.5296;
  D.5273 = c r>> 27;
  D.5298 = D.5297 + D.5273;
  D.5299 = D.5298 + b;
  b = D.5299 + 1518500249;
  d = d r>> 2;
  D.5276 = d ^ e;
  D.5277 = D.5276 & c;
  D.5278 = D.5277 ^ e;
  D.5300 = block->l[9];
  D.5301 = D.5278 + D.5300;
  D.5281 = b r>> 27;
  D.5302 = D.5301 + D.5281;
  D.5303 = D.5302 + a;
  a = D.5303 + 1518500249;
  c = c r>> 2;
  D.5244 = c ^ d;
  D.5245 = D.5244 & b;
  D.5246 = D.5245 ^ d;
  D.5304 = block->l[10];
  D.5305 = D.5246 + D.5304;
  D.5249 = a r>> 27;
  D.5306 = D.5305 + D.5249;
  D.5307 = D.5306 + e;
  e = D.5307 + 1518500249;
  b = b r>> 2;
  D.5252 = b ^ c;
  D.5253 = D.5252 & a;
  D.5254 = D.5253 ^ c;
  D.5308 = block->l[11];
  D.5309 = D.5254 + D.5308;
  D.5257 = e r>> 27;
  D.5310 = D.5309 + D.5257;
  D.5311 = D.5310 + d;
  d = D.5311 + 1518500249;
  a = a r>> 2;
  D.5260 = a ^ b;
  D.5261 = D.5260 & e;
  D.5262 = D.5261 ^ b;
  D.5312 = block->l[12];
  D.5313 = D.5262 + D.5312;
  D.5265 = d r>> 27;
  D.5314 = D.5313 + D.5265;
  D.5315 = D.5314 + c;
  c = D.5315 + 1518500249;
  e = e r>> 2;
  D.5268 = e ^ a;
  D.5269 = D.5268 & d;
  D.5270 = D.5269 ^ a;
  D.5316 = block->l[13];
  D.5317 = D.5270 + D.5316;
  D.5273 = c r>> 27;
  D.5318 = D.5317 + D.5273;
  D.5319 = D.5318 + b;
  b = D.5319 + 1518500249;
  d = d r>> 2;
  D.5276 = d ^ e;
  D.5277 = D.5276 & c;
  D.5278 = D.5277 ^ e;
  D.5320 = block->l[14];
  D.5321 = D.5278 + D.5320;
  D.5281 = b r>> 27;
  D.5322 = D.5321 + D.5281;
  D.5323 = D.5322 + a;
  a = D.5323 + 1518500249;
  c = c r>> 2;
  D.5244 = c ^ d;
  D.5245 = D.5244 & b;
  D.5246 = D.5245 ^ d;
  D.5324 = block->l[15];
  D.5325 = D.5246 + D.5324;
  D.5249 = a r>> 27;
  D.5326 = D.5325 + D.5249;
  D.5327 = D.5326 + e;
  e = D.5327 + 1518500249;
  b = b r>> 2;
  D.5252 = b ^ c;
  D.5253 = D.5252 & a;
  D.5254 = D.5253 ^ c;
  D.5316 = block->l[13];
  D.5296 = block->l[8];
  D.5328 = D.5316 ^ D.5296;
  D.5263 = block->l[2];
  D.5329 = D.5328 ^ D.5263;
  D.5247 = block->l[0];
  D.5330 = D.5329 ^ D.5247;
  D.5331 = D.5330 r>> 31;
  block->l[0] = D.5331;
  D.5247 = block->l[0];
  D.5332 = D.5254 + D.5247;
  D.5257 = e r>> 27;
  D.5333 = D.5332 + D.5257;
  D.5334 = D.5333 + 1518500249;
  d = D.5334 + d;
  a = a r>> 2;
  D.5260 = a ^ b;
  D.5261 = D.5260 & e;
  D.5262 = D.5261 ^ b;
  D.5320 = block->l[14];
  D.5300 = block->l[9];
  D.5335 = D.5320 ^ D.5300;
  D.5271 = block->l[3];
  D.5336 = D.5335 ^ D.5271;
  D.5255 = block->l[1];
  D.5337 = D.5336 ^ D.5255;
  D.5338 = D.5337 r>> 31;
  block->l[1] = D.5338;
  D.5255 = block->l[1];
  D.5339 = D.5262 + D.5255;
  D.5265 = d r>> 27;
  D.5340 = D.5339 + D.5265;
  D.5341 = D.5340 + 1518500249;
  c = D.5341 + c;
  e = e r>> 2;
  D.5268 = e ^ a;
  D.5269 = D.5268 & d;
  D.5270 = D.5269 ^ a;
  D.5324 = block->l[15];
  D.5304 = block->l[10];
  D.5342 = D.5324 ^ D.5304;
  D.5279 = block->l[4];
  D.5343 = D.5342 ^ D.5279;
  D.5263 = block->l[2];
  D.5344 = D.5343 ^ D.5263;
  D.5345 = D.5344 r>> 31;
  block->l[2] = D.5345;
  D.5263 = block->l[2];
  D.5346 = D.5270 + D.5263;
  D.5273 = c r>> 27;
  D.5347 = D.5346 + D.5273;
  D.5348 = D.5347 + 1518500249;
  b = D.5348 + b;
  d = d r>> 2;
  D.5276 = d ^ e;
  D.5277 = D.5276 & c;
  D.5278 = D.5277 ^ e;
  D.5247 = block->l[0];
  D.5308 = block->l[11];
  D.5349 = D.5247 ^ D.5308;
  D.5284 = block->l[5];
  D.5350 = D.5349 ^ D.5284;
  D.5271 = block->l[3];
  D.5351 = D.5350 ^ D.5271;
  D.5352 = D.5351 r>> 31;
  block->l[3] = D.5352;
  D.5271 = block->l[3];
  D.5353 = D.5278 + D.5271;
  D.5281 = b r>> 27;
  D.5354 = D.5353 + D.5281;
  D.5355 = D.5354 + 1518500249;
  a = D.5355 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5255 = block->l[1];
  D.5312 = block->l[12];
  D.5357 = D.5255 ^ D.5312;
  D.5288 = block->l[6];
  D.5358 = D.5357 ^ D.5288;
  D.5279 = block->l[4];
  D.5359 = D.5358 ^ D.5279;
  D.5360 = D.5359 r>> 31;
  block->l[4] = D.5360;
  D.5279 = block->l[4];
  D.5361 = D.5356 + D.5279;
  D.5249 = a r>> 27;
  D.5362 = D.5361 + D.5249;
  D.5363 = D.5362 + 1859775393;
  e = D.5363 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5263 = block->l[2];
  D.5316 = block->l[13];
  D.5365 = D.5263 ^ D.5316;
  D.5292 = block->l[7];
  D.5366 = D.5365 ^ D.5292;
  D.5284 = block->l[5];
  D.5367 = D.5366 ^ D.5284;
  D.5368 = D.5367 r>> 31;
  block->l[5] = D.5368;
  D.5284 = block->l[5];
  D.5369 = D.5364 + D.5284;
  D.5257 = e r>> 27;
  D.5370 = D.5369 + D.5257;
  D.5371 = D.5370 + 1859775393;
  d = D.5371 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5271 = block->l[3];
  D.5320 = block->l[14];
  D.5373 = D.5271 ^ D.5320;
  D.5296 = block->l[8];
  D.5374 = D.5373 ^ D.5296;
  D.5288 = block->l[6];
  D.5375 = D.5374 ^ D.5288;
  D.5376 = D.5375 r>> 31;
  block->l[6] = D.5376;
  D.5288 = block->l[6];
  D.5377 = D.5372 + D.5288;
  D.5265 = d r>> 27;
  D.5378 = D.5377 + D.5265;
  D.5379 = D.5378 + 1859775393;
  c = D.5379 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5279 = block->l[4];
  D.5324 = block->l[15];
  D.5381 = D.5279 ^ D.5324;
  D.5300 = block->l[9];
  D.5382 = D.5381 ^ D.5300;
  D.5292 = block->l[7];
  D.5383 = D.5382 ^ D.5292;
  D.5384 = D.5383 r>> 31;
  block->l[7] = D.5384;
  D.5292 = block->l[7];
  D.5385 = D.5380 + D.5292;
  D.5273 = c r>> 27;
  D.5386 = D.5385 + D.5273;
  D.5387 = D.5386 + 1859775393;
  b = D.5387 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5284 = block->l[5];
  D.5247 = block->l[0];
  D.5389 = D.5284 ^ D.5247;
  D.5304 = block->l[10];
  D.5390 = D.5389 ^ D.5304;
  D.5296 = block->l[8];
  D.5391 = D.5390 ^ D.5296;
  D.5392 = D.5391 r>> 31;
  block->l[8] = D.5392;
  D.5296 = block->l[8];
  D.5393 = D.5388 + D.5296;
  D.5281 = b r>> 27;
  D.5394 = D.5393 + D.5281;
  D.5395 = D.5394 + 1859775393;
  a = D.5395 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5288 = block->l[6];
  D.5255 = block->l[1];
  D.5396 = D.5288 ^ D.5255;
  D.5308 = block->l[11];
  D.5397 = D.5396 ^ D.5308;
  D.5300 = block->l[9];
  D.5398 = D.5397 ^ D.5300;
  D.5399 = D.5398 r>> 31;
  block->l[9] = D.5399;
  D.5300 = block->l[9];
  D.5400 = D.5356 + D.5300;
  D.5249 = a r>> 27;
  D.5401 = D.5400 + D.5249;
  D.5402 = D.5401 + 1859775393;
  e = D.5402 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5292 = block->l[7];
  D.5263 = block->l[2];
  D.5403 = D.5292 ^ D.5263;
  D.5312 = block->l[12];
  D.5404 = D.5403 ^ D.5312;
  D.5304 = block->l[10];
  D.5405 = D.5404 ^ D.5304;
  D.5406 = D.5405 r>> 31;
  block->l[10] = D.5406;
  D.5304 = block->l[10];
  D.5407 = D.5364 + D.5304;
  D.5257 = e r>> 27;
  D.5408 = D.5407 + D.5257;
  D.5409 = D.5408 + 1859775393;
  d = D.5409 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5296 = block->l[8];
  D.5271 = block->l[3];
  D.5410 = D.5296 ^ D.5271;
  D.5316 = block->l[13];
  D.5411 = D.5410 ^ D.5316;
  D.5308 = block->l[11];
  D.5412 = D.5411 ^ D.5308;
  D.5413 = D.5412 r>> 31;
  block->l[11] = D.5413;
  D.5308 = block->l[11];
  D.5414 = D.5372 + D.5308;
  D.5265 = d r>> 27;
  D.5415 = D.5414 + D.5265;
  D.5416 = D.5415 + 1859775393;
  c = D.5416 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5300 = block->l[9];
  D.5279 = block->l[4];
  D.5417 = D.5300 ^ D.5279;
  D.5320 = block->l[14];
  D.5418 = D.5417 ^ D.5320;
  D.5312 = block->l[12];
  D.5419 = D.5418 ^ D.5312;
  D.5420 = D.5419 r>> 31;
  block->l[12] = D.5420;
  D.5312 = block->l[12];
  D.5421 = D.5380 + D.5312;
  D.5273 = c r>> 27;
  D.5422 = D.5421 + D.5273;
  D.5423 = D.5422 + 1859775393;
  b = D.5423 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5304 = block->l[10];
  D.5284 = block->l[5];
  D.5424 = D.5304 ^ D.5284;
  D.5324 = block->l[15];
  D.5425 = D.5424 ^ D.5324;
  D.5316 = block->l[13];
  D.5426 = D.5425 ^ D.5316;
  D.5427 = D.5426 r>> 31;
  block->l[13] = D.5427;
  D.5316 = block->l[13];
  D.5428 = D.5388 + D.5316;
  D.5281 = b r>> 27;
  D.5429 = D.5428 + D.5281;
  D.5430 = D.5429 + 1859775393;
  a = D.5430 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5308 = block->l[11];
  D.5288 = block->l[6];
  D.5431 = D.5308 ^ D.5288;
  D.5247 = block->l[0];
  D.5432 = D.5431 ^ D.5247;
  D.5320 = block->l[14];
  D.5433 = D.5432 ^ D.5320;
  D.5434 = D.5433 r>> 31;
  block->l[14] = D.5434;
  D.5320 = block->l[14];
  D.5435 = D.5356 + D.5320;
  D.5249 = a r>> 27;
  D.5436 = D.5435 + D.5249;
  D.5437 = D.5436 + 1859775393;
  e = D.5437 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5312 = block->l[12];
  D.5292 = block->l[7];
  D.5438 = D.5312 ^ D.5292;
  D.5255 = block->l[1];
  D.5439 = D.5438 ^ D.5255;
  D.5324 = block->l[15];
  D.5440 = D.5439 ^ D.5324;
  D.5441 = D.5440 r>> 31;
  block->l[15] = D.5441;
  D.5324 = block->l[15];
  D.5442 = D.5364 + D.5324;
  D.5257 = e r>> 27;
  D.5443 = D.5442 + D.5257;
  D.5444 = D.5443 + 1859775393;
  d = D.5444 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5316 = block->l[13];
  D.5296 = block->l[8];
  D.5328 = D.5316 ^ D.5296;
  D.5263 = block->l[2];
  D.5329 = D.5328 ^ D.5263;
  D.5247 = block->l[0];
  D.5330 = D.5329 ^ D.5247;
  D.5331 = D.5330 r>> 31;
  block->l[0] = D.5331;
  D.5247 = block->l[0];
  D.5445 = D.5372 + D.5247;
  D.5265 = d r>> 27;
  D.5446 = D.5445 + D.5265;
  D.5447 = D.5446 + 1859775393;
  c = D.5447 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5320 = block->l[14];
  D.5300 = block->l[9];
  D.5335 = D.5320 ^ D.5300;
  D.5271 = block->l[3];
  D.5336 = D.5335 ^ D.5271;
  D.5255 = block->l[1];
  D.5337 = D.5336 ^ D.5255;
  D.5338 = D.5337 r>> 31;
  block->l[1] = D.5338;
  D.5255 = block->l[1];
  D.5448 = D.5380 + D.5255;
  D.5273 = c r>> 27;
  D.5449 = D.5448 + D.5273;
  D.5450 = D.5449 + 1859775393;
  b = D.5450 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5324 = block->l[15];
  D.5304 = block->l[10];
  D.5342 = D.5324 ^ D.5304;
  D.5279 = block->l[4];
  D.5343 = D.5342 ^ D.5279;
  D.5263 = block->l[2];
  D.5344 = D.5343 ^ D.5263;
  D.5345 = D.5344 r>> 31;
  block->l[2] = D.5345;
  D.5263 = block->l[2];
  D.5451 = D.5388 + D.5263;
  D.5281 = b r>> 27;
  D.5452 = D.5451 + D.5281;
  D.5453 = D.5452 + 1859775393;
  a = D.5453 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5247 = block->l[0];
  D.5308 = block->l[11];
  D.5349 = D.5247 ^ D.5308;
  D.5284 = block->l[5];
  D.5350 = D.5349 ^ D.5284;
  D.5271 = block->l[3];
  D.5351 = D.5350 ^ D.5271;
  D.5352 = D.5351 r>> 31;
  block->l[3] = D.5352;
  D.5271 = block->l[3];
  D.5454 = D.5356 + D.5271;
  D.5249 = a r>> 27;
  D.5455 = D.5454 + D.5249;
  D.5456 = D.5455 + 1859775393;
  e = D.5456 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5255 = block->l[1];
  D.5312 = block->l[12];
  D.5357 = D.5255 ^ D.5312;
  D.5288 = block->l[6];
  D.5358 = D.5357 ^ D.5288;
  D.5279 = block->l[4];
  D.5359 = D.5358 ^ D.5279;
  D.5360 = D.5359 r>> 31;
  block->l[4] = D.5360;
  D.5279 = block->l[4];
  D.5457 = D.5364 + D.5279;
  D.5257 = e r>> 27;
  D.5458 = D.5457 + D.5257;
  D.5459 = D.5458 + 1859775393;
  d = D.5459 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5263 = block->l[2];
  D.5316 = block->l[13];
  D.5365 = D.5263 ^ D.5316;
  D.5292 = block->l[7];
  D.5366 = D.5365 ^ D.5292;
  D.5284 = block->l[5];
  D.5367 = D.5366 ^ D.5284;
  D.5368 = D.5367 r>> 31;
  block->l[5] = D.5368;
  D.5284 = block->l[5];
  D.5460 = D.5372 + D.5284;
  D.5265 = d r>> 27;
  D.5461 = D.5460 + D.5265;
  D.5462 = D.5461 + 1859775393;
  c = D.5462 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5271 = block->l[3];
  D.5320 = block->l[14];
  D.5373 = D.5271 ^ D.5320;
  D.5296 = block->l[8];
  D.5374 = D.5373 ^ D.5296;
  D.5288 = block->l[6];
  D.5375 = D.5374 ^ D.5288;
  D.5376 = D.5375 r>> 31;
  block->l[6] = D.5376;
  D.5288 = block->l[6];
  D.5463 = D.5380 + D.5288;
  D.5273 = c r>> 27;
  D.5464 = D.5463 + D.5273;
  D.5465 = D.5464 + 1859775393;
  b = D.5465 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5279 = block->l[4];
  D.5324 = block->l[15];
  D.5381 = D.5279 ^ D.5324;
  D.5300 = block->l[9];
  D.5382 = D.5381 ^ D.5300;
  D.5292 = block->l[7];
  D.5383 = D.5382 ^ D.5292;
  D.5384 = D.5383 r>> 31;
  block->l[7] = D.5384;
  D.5292 = block->l[7];
  D.5466 = D.5388 + D.5292;
  D.5281 = b r>> 27;
  D.5467 = D.5466 + D.5281;
  D.5468 = D.5467 + 1859775393;
  a = D.5468 + a;
  c = c r>> 2;
  D.5469 = b | c;
  D.5470 = D.5469 & d;
  D.5471 = b & c;
  D.5472 = D.5470 | D.5471;
  D.5284 = block->l[5];
  D.5247 = block->l[0];
  D.5389 = D.5284 ^ D.5247;
  D.5304 = block->l[10];
  D.5390 = D.5389 ^ D.5304;
  D.5296 = block->l[8];
  D.5391 = D.5390 ^ D.5296;
  D.5392 = D.5391 r>> 31;
  block->l[8] = D.5392;
  D.5296 = block->l[8];
  D.5473 = D.5472 + D.5296;
  D.5249 = a r>> 27;
  D.5474 = D.5473 + D.5249;
  D.5475 = D.5474 + 2400959708;
  e = D.5475 + e;
  b = b r>> 2;
  D.5476 = a | b;
  D.5477 = D.5476 & c;
  D.5478 = a & b;
  D.5479 = D.5477 | D.5478;
  D.5288 = block->l[6];
  D.5255 = block->l[1];
  D.5396 = D.5288 ^ D.5255;
  D.5308 = block->l[11];
  D.5397 = D.5396 ^ D.5308;
  D.5300 = block->l[9];
  D.5398 = D.5397 ^ D.5300;
  D.5399 = D.5398 r>> 31;
  block->l[9] = D.5399;
  D.5300 = block->l[9];
  D.5480 = D.5479 + D.5300;
  D.5257 = e r>> 27;
  D.5481 = D.5480 + D.5257;
  D.5482 = D.5481 + 2400959708;
  d = D.5482 + d;
  a = a r>> 2;
  D.5483 = e | a;
  D.5484 = D.5483 & b;
  D.5485 = e & a;
  D.5486 = D.5484 | D.5485;
  D.5292 = block->l[7];
  D.5263 = block->l[2];
  D.5403 = D.5292 ^ D.5263;
  D.5312 = block->l[12];
  D.5404 = D.5403 ^ D.5312;
  D.5304 = block->l[10];
  D.5405 = D.5404 ^ D.5304;
  D.5406 = D.5405 r>> 31;
  block->l[10] = D.5406;
  D.5304 = block->l[10];
  D.5487 = D.5486 + D.5304;
  D.5265 = d r>> 27;
  D.5488 = D.5487 + D.5265;
  D.5489 = D.5488 + 2400959708;
  c = D.5489 + c;
  e = e r>> 2;
  D.5490 = d | e;
  D.5491 = D.5490 & a;
  D.5492 = d & e;
  D.5493 = D.5491 | D.5492;
  D.5296 = block->l[8];
  D.5271 = block->l[3];
  D.5410 = D.5296 ^ D.5271;
  D.5316 = block->l[13];
  D.5411 = D.5410 ^ D.5316;
  D.5308 = block->l[11];
  D.5412 = D.5411 ^ D.5308;
  D.5413 = D.5412 r>> 31;
  block->l[11] = D.5413;
  D.5308 = block->l[11];
  D.5494 = D.5493 + D.5308;
  D.5273 = c r>> 27;
  D.5495 = D.5494 + D.5273;
  D.5496 = D.5495 + 2400959708;
  b = D.5496 + b;
  d = d r>> 2;
  D.5497 = c | d;
  D.5498 = D.5497 & e;
  D.5499 = c & d;
  D.5500 = D.5498 | D.5499;
  D.5300 = block->l[9];
  D.5279 = block->l[4];
  D.5417 = D.5300 ^ D.5279;
  D.5320 = block->l[14];
  D.5418 = D.5417 ^ D.5320;
  D.5312 = block->l[12];
  D.5419 = D.5418 ^ D.5312;
  D.5420 = D.5419 r>> 31;
  block->l[12] = D.5420;
  D.5312 = block->l[12];
  D.5501 = D.5500 + D.5312;
  D.5281 = b r>> 27;
  D.5502 = D.5501 + D.5281;
  D.5503 = D.5502 + 2400959708;
  a = D.5503 + a;
  c = c r>> 2;
  D.5469 = b | c;
  D.5470 = D.5469 & d;
  D.5471 = b & c;
  D.5472 = D.5470 | D.5471;
  D.5304 = block->l[10];
  D.5284 = block->l[5];
  D.5424 = D.5304 ^ D.5284;
  D.5324 = block->l[15];
  D.5425 = D.5424 ^ D.5324;
  D.5316 = block->l[13];
  D.5426 = D.5425 ^ D.5316;
  D.5427 = D.5426 r>> 31;
  block->l[13] = D.5427;
  D.5316 = block->l[13];
  D.5504 = D.5472 + D.5316;
  D.5249 = a r>> 27;
  D.5505 = D.5504 + D.5249;
  D.5506 = D.5505 + 2400959708;
  e = D.5506 + e;
  b = b r>> 2;
  D.5476 = a | b;
  D.5477 = D.5476 & c;
  D.5478 = a & b;
  D.5479 = D.5477 | D.5478;
  D.5308 = block->l[11];
  D.5288 = block->l[6];
  D.5431 = D.5308 ^ D.5288;
  D.5247 = block->l[0];
  D.5432 = D.5431 ^ D.5247;
  D.5320 = block->l[14];
  D.5433 = D.5432 ^ D.5320;
  D.5434 = D.5433 r>> 31;
  block->l[14] = D.5434;
  D.5320 = block->l[14];
  D.5507 = D.5479 + D.5320;
  D.5257 = e r>> 27;
  D.5508 = D.5507 + D.5257;
  D.5509 = D.5508 + 2400959708;
  d = D.5509 + d;
  a = a r>> 2;
  D.5483 = e | a;
  D.5484 = D.5483 & b;
  D.5485 = e & a;
  D.5486 = D.5484 | D.5485;
  D.5312 = block->l[12];
  D.5292 = block->l[7];
  D.5438 = D.5312 ^ D.5292;
  D.5255 = block->l[1];
  D.5439 = D.5438 ^ D.5255;
  D.5324 = block->l[15];
  D.5440 = D.5439 ^ D.5324;
  D.5441 = D.5440 r>> 31;
  block->l[15] = D.5441;
  D.5324 = block->l[15];
  D.5510 = D.5486 + D.5324;
  D.5265 = d r>> 27;
  D.5511 = D.5510 + D.5265;
  D.5512 = D.5511 + 2400959708;
  c = D.5512 + c;
  e = e r>> 2;
  D.5490 = d | e;
  D.5491 = D.5490 & a;
  D.5492 = d & e;
  D.5493 = D.5491 | D.5492;
  D.5316 = block->l[13];
  D.5296 = block->l[8];
  D.5328 = D.5316 ^ D.5296;
  D.5263 = block->l[2];
  D.5329 = D.5328 ^ D.5263;
  D.5247 = block->l[0];
  D.5330 = D.5329 ^ D.5247;
  D.5331 = D.5330 r>> 31;
  block->l[0] = D.5331;
  D.5247 = block->l[0];
  D.5513 = D.5493 + D.5247;
  D.5273 = c r>> 27;
  D.5514 = D.5513 + D.5273;
  D.5515 = D.5514 + 2400959708;
  b = D.5515 + b;
  d = d r>> 2;
  D.5497 = c | d;
  D.5498 = D.5497 & e;
  D.5499 = c & d;
  D.5500 = D.5498 | D.5499;
  D.5320 = block->l[14];
  D.5300 = block->l[9];
  D.5335 = D.5320 ^ D.5300;
  D.5271 = block->l[3];
  D.5336 = D.5335 ^ D.5271;
  D.5255 = block->l[1];
  D.5337 = D.5336 ^ D.5255;
  D.5338 = D.5337 r>> 31;
  block->l[1] = D.5338;
  D.5255 = block->l[1];
  D.5516 = D.5500 + D.5255;
  D.5281 = b r>> 27;
  D.5517 = D.5516 + D.5281;
  D.5518 = D.5517 + 2400959708;
  a = D.5518 + a;
  c = c r>> 2;
  D.5469 = b | c;
  D.5470 = D.5469 & d;
  D.5471 = b & c;
  D.5472 = D.5470 | D.5471;
  D.5324 = block->l[15];
  D.5304 = block->l[10];
  D.5342 = D.5324 ^ D.5304;
  D.5279 = block->l[4];
  D.5343 = D.5342 ^ D.5279;
  D.5263 = block->l[2];
  D.5344 = D.5343 ^ D.5263;
  D.5345 = D.5344 r>> 31;
  block->l[2] = D.5345;
  D.5263 = block->l[2];
  D.5519 = D.5472 + D.5263;
  D.5249 = a r>> 27;
  D.5520 = D.5519 + D.5249;
  D.5521 = D.5520 + 2400959708;
  e = D.5521 + e;
  b = b r>> 2;
  D.5476 = a | b;
  D.5477 = D.5476 & c;
  D.5478 = a & b;
  D.5479 = D.5477 | D.5478;
  D.5247 = block->l[0];
  D.5308 = block->l[11];
  D.5349 = D.5247 ^ D.5308;
  D.5284 = block->l[5];
  D.5350 = D.5349 ^ D.5284;
  D.5271 = block->l[3];
  D.5351 = D.5350 ^ D.5271;
  D.5352 = D.5351 r>> 31;
  block->l[3] = D.5352;
  D.5271 = block->l[3];
  D.5522 = D.5479 + D.5271;
  D.5257 = e r>> 27;
  D.5523 = D.5522 + D.5257;
  D.5524 = D.5523 + 2400959708;
  d = D.5524 + d;
  a = a r>> 2;
  D.5483 = e | a;
  D.5484 = D.5483 & b;
  D.5485 = e & a;
  D.5486 = D.5484 | D.5485;
  D.5255 = block->l[1];
  D.5312 = block->l[12];
  D.5357 = D.5255 ^ D.5312;
  D.5288 = block->l[6];
  D.5358 = D.5357 ^ D.5288;
  D.5279 = block->l[4];
  D.5359 = D.5358 ^ D.5279;
  D.5360 = D.5359 r>> 31;
  block->l[4] = D.5360;
  D.5279 = block->l[4];
  D.5525 = D.5486 + D.5279;
  D.5265 = d r>> 27;
  D.5526 = D.5525 + D.5265;
  D.5527 = D.5526 + 2400959708;
  c = D.5527 + c;
  e = e r>> 2;
  D.5490 = d | e;
  D.5491 = D.5490 & a;
  D.5492 = d & e;
  D.5493 = D.5491 | D.5492;
  D.5263 = block->l[2];
  D.5316 = block->l[13];
  D.5365 = D.5263 ^ D.5316;
  D.5292 = block->l[7];
  D.5366 = D.5365 ^ D.5292;
  D.5284 = block->l[5];
  D.5367 = D.5366 ^ D.5284;
  D.5368 = D.5367 r>> 31;
  block->l[5] = D.5368;
  D.5284 = block->l[5];
  D.5528 = D.5493 + D.5284;
  D.5273 = c r>> 27;
  D.5529 = D.5528 + D.5273;
  D.5530 = D.5529 + 2400959708;
  b = D.5530 + b;
  d = d r>> 2;
  D.5497 = c | d;
  D.5498 = D.5497 & e;
  D.5499 = c & d;
  D.5500 = D.5498 | D.5499;
  D.5271 = block->l[3];
  D.5320 = block->l[14];
  D.5373 = D.5271 ^ D.5320;
  D.5296 = block->l[8];
  D.5374 = D.5373 ^ D.5296;
  D.5288 = block->l[6];
  D.5375 = D.5374 ^ D.5288;
  D.5376 = D.5375 r>> 31;
  block->l[6] = D.5376;
  D.5288 = block->l[6];
  D.5531 = D.5500 + D.5288;
  D.5281 = b r>> 27;
  D.5532 = D.5531 + D.5281;
  D.5533 = D.5532 + 2400959708;
  a = D.5533 + a;
  c = c r>> 2;
  D.5469 = b | c;
  D.5470 = D.5469 & d;
  D.5471 = b & c;
  D.5472 = D.5470 | D.5471;
  D.5279 = block->l[4];
  D.5324 = block->l[15];
  D.5381 = D.5279 ^ D.5324;
  D.5300 = block->l[9];
  D.5382 = D.5381 ^ D.5300;
  D.5292 = block->l[7];
  D.5383 = D.5382 ^ D.5292;
  D.5384 = D.5383 r>> 31;
  block->l[7] = D.5384;
  D.5292 = block->l[7];
  D.5534 = D.5472 + D.5292;
  D.5249 = a r>> 27;
  D.5535 = D.5534 + D.5249;
  D.5536 = D.5535 + 2400959708;
  e = D.5536 + e;
  b = b r>> 2;
  D.5476 = a | b;
  D.5477 = D.5476 & c;
  D.5478 = a & b;
  D.5479 = D.5477 | D.5478;
  D.5284 = block->l[5];
  D.5247 = block->l[0];
  D.5389 = D.5284 ^ D.5247;
  D.5304 = block->l[10];
  D.5390 = D.5389 ^ D.5304;
  D.5296 = block->l[8];
  D.5391 = D.5390 ^ D.5296;
  D.5392 = D.5391 r>> 31;
  block->l[8] = D.5392;
  D.5296 = block->l[8];
  D.5537 = D.5479 + D.5296;
  D.5257 = e r>> 27;
  D.5538 = D.5537 + D.5257;
  D.5539 = D.5538 + 2400959708;
  d = D.5539 + d;
  a = a r>> 2;
  D.5483 = e | a;
  D.5484 = D.5483 & b;
  D.5485 = e & a;
  D.5486 = D.5484 | D.5485;
  D.5288 = block->l[6];
  D.5255 = block->l[1];
  D.5396 = D.5288 ^ D.5255;
  D.5308 = block->l[11];
  D.5397 = D.5396 ^ D.5308;
  D.5300 = block->l[9];
  D.5398 = D.5397 ^ D.5300;
  D.5399 = D.5398 r>> 31;
  block->l[9] = D.5399;
  D.5300 = block->l[9];
  D.5540 = D.5486 + D.5300;
  D.5265 = d r>> 27;
  D.5541 = D.5540 + D.5265;
  D.5542 = D.5541 + 2400959708;
  c = D.5542 + c;
  e = e r>> 2;
  D.5490 = d | e;
  D.5491 = D.5490 & a;
  D.5492 = d & e;
  D.5493 = D.5491 | D.5492;
  D.5292 = block->l[7];
  D.5263 = block->l[2];
  D.5403 = D.5292 ^ D.5263;
  D.5312 = block->l[12];
  D.5404 = D.5403 ^ D.5312;
  D.5304 = block->l[10];
  D.5405 = D.5404 ^ D.5304;
  D.5406 = D.5405 r>> 31;
  block->l[10] = D.5406;
  D.5304 = block->l[10];
  D.5543 = D.5493 + D.5304;
  D.5273 = c r>> 27;
  D.5544 = D.5543 + D.5273;
  D.5545 = D.5544 + 2400959708;
  b = D.5545 + b;
  d = d r>> 2;
  D.5497 = c | d;
  D.5498 = D.5497 & e;
  D.5499 = c & d;
  D.5500 = D.5498 | D.5499;
  D.5296 = block->l[8];
  D.5271 = block->l[3];
  D.5410 = D.5296 ^ D.5271;
  D.5316 = block->l[13];
  D.5411 = D.5410 ^ D.5316;
  D.5308 = block->l[11];
  D.5412 = D.5411 ^ D.5308;
  D.5413 = D.5412 r>> 31;
  block->l[11] = D.5413;
  D.5308 = block->l[11];
  D.5546 = D.5500 + D.5308;
  D.5281 = b r>> 27;
  D.5547 = D.5546 + D.5281;
  D.5548 = D.5547 + 2400959708;
  a = D.5548 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5300 = block->l[9];
  D.5279 = block->l[4];
  D.5417 = D.5300 ^ D.5279;
  D.5320 = block->l[14];
  D.5418 = D.5417 ^ D.5320;
  D.5312 = block->l[12];
  D.5419 = D.5418 ^ D.5312;
  D.5420 = D.5419 r>> 31;
  block->l[12] = D.5420;
  D.5312 = block->l[12];
  D.5549 = D.5356 + D.5312;
  D.5249 = a r>> 27;
  D.5550 = D.5549 + D.5249;
  D.5551 = D.5550 + 3395469782;
  e = D.5551 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5304 = block->l[10];
  D.5284 = block->l[5];
  D.5424 = D.5304 ^ D.5284;
  D.5324 = block->l[15];
  D.5425 = D.5424 ^ D.5324;
  D.5316 = block->l[13];
  D.5426 = D.5425 ^ D.5316;
  D.5427 = D.5426 r>> 31;
  block->l[13] = D.5427;
  D.5316 = block->l[13];
  D.5552 = D.5364 + D.5316;
  D.5257 = e r>> 27;
  D.5553 = D.5552 + D.5257;
  D.5554 = D.5553 + 3395469782;
  d = D.5554 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5308 = block->l[11];
  D.5288 = block->l[6];
  D.5431 = D.5308 ^ D.5288;
  D.5247 = block->l[0];
  D.5432 = D.5431 ^ D.5247;
  D.5320 = block->l[14];
  D.5433 = D.5432 ^ D.5320;
  D.5434 = D.5433 r>> 31;
  block->l[14] = D.5434;
  D.5320 = block->l[14];
  D.5555 = D.5372 + D.5320;
  D.5265 = d r>> 27;
  D.5556 = D.5555 + D.5265;
  D.5557 = D.5556 + 3395469782;
  c = D.5557 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5312 = block->l[12];
  D.5292 = block->l[7];
  D.5438 = D.5312 ^ D.5292;
  D.5255 = block->l[1];
  D.5439 = D.5438 ^ D.5255;
  D.5324 = block->l[15];
  D.5440 = D.5439 ^ D.5324;
  D.5441 = D.5440 r>> 31;
  block->l[15] = D.5441;
  D.5324 = block->l[15];
  D.5558 = D.5380 + D.5324;
  D.5273 = c r>> 27;
  D.5559 = D.5558 + D.5273;
  D.5560 = D.5559 + 3395469782;
  b = D.5560 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5316 = block->l[13];
  D.5296 = block->l[8];
  D.5328 = D.5316 ^ D.5296;
  D.5263 = block->l[2];
  D.5329 = D.5328 ^ D.5263;
  D.5247 = block->l[0];
  D.5330 = D.5329 ^ D.5247;
  D.5331 = D.5330 r>> 31;
  block->l[0] = D.5331;
  D.5247 = block->l[0];
  D.5561 = D.5388 + D.5247;
  D.5281 = b r>> 27;
  D.5562 = D.5561 + D.5281;
  D.5563 = D.5562 + 3395469782;
  a = D.5563 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5320 = block->l[14];
  D.5300 = block->l[9];
  D.5335 = D.5320 ^ D.5300;
  D.5271 = block->l[3];
  D.5336 = D.5335 ^ D.5271;
  D.5255 = block->l[1];
  D.5337 = D.5336 ^ D.5255;
  D.5338 = D.5337 r>> 31;
  block->l[1] = D.5338;
  D.5255 = block->l[1];
  D.5564 = D.5356 + D.5255;
  D.5249 = a r>> 27;
  D.5565 = D.5564 + D.5249;
  D.5566 = D.5565 + 3395469782;
  e = D.5566 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5324 = block->l[15];
  D.5304 = block->l[10];
  D.5342 = D.5324 ^ D.5304;
  D.5279 = block->l[4];
  D.5343 = D.5342 ^ D.5279;
  D.5263 = block->l[2];
  D.5344 = D.5343 ^ D.5263;
  D.5345 = D.5344 r>> 31;
  block->l[2] = D.5345;
  D.5263 = block->l[2];
  D.5567 = D.5364 + D.5263;
  D.5257 = e r>> 27;
  D.5568 = D.5567 + D.5257;
  D.5569 = D.5568 + 3395469782;
  d = D.5569 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5247 = block->l[0];
  D.5308 = block->l[11];
  D.5349 = D.5247 ^ D.5308;
  D.5284 = block->l[5];
  D.5350 = D.5349 ^ D.5284;
  D.5271 = block->l[3];
  D.5351 = D.5350 ^ D.5271;
  D.5352 = D.5351 r>> 31;
  block->l[3] = D.5352;
  D.5271 = block->l[3];
  D.5570 = D.5372 + D.5271;
  D.5265 = d r>> 27;
  D.5571 = D.5570 + D.5265;
  D.5572 = D.5571 + 3395469782;
  c = D.5572 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5255 = block->l[1];
  D.5312 = block->l[12];
  D.5357 = D.5255 ^ D.5312;
  D.5288 = block->l[6];
  D.5358 = D.5357 ^ D.5288;
  D.5279 = block->l[4];
  D.5359 = D.5358 ^ D.5279;
  D.5360 = D.5359 r>> 31;
  block->l[4] = D.5360;
  D.5279 = block->l[4];
  D.5573 = D.5380 + D.5279;
  D.5273 = c r>> 27;
  D.5574 = D.5573 + D.5273;
  D.5575 = D.5574 + 3395469782;
  b = D.5575 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5263 = block->l[2];
  D.5316 = block->l[13];
  D.5365 = D.5263 ^ D.5316;
  D.5292 = block->l[7];
  D.5366 = D.5365 ^ D.5292;
  D.5284 = block->l[5];
  D.5367 = D.5366 ^ D.5284;
  D.5368 = D.5367 r>> 31;
  block->l[5] = D.5368;
  D.5284 = block->l[5];
  D.5576 = D.5388 + D.5284;
  D.5281 = b r>> 27;
  D.5577 = D.5576 + D.5281;
  D.5578 = D.5577 + 3395469782;
  a = D.5578 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5271 = block->l[3];
  D.5320 = block->l[14];
  D.5373 = D.5271 ^ D.5320;
  D.5296 = block->l[8];
  D.5374 = D.5373 ^ D.5296;
  D.5288 = block->l[6];
  D.5375 = D.5374 ^ D.5288;
  D.5376 = D.5375 r>> 31;
  block->l[6] = D.5376;
  D.5288 = block->l[6];
  D.5579 = D.5356 + D.5288;
  D.5249 = a r>> 27;
  D.5580 = D.5579 + D.5249;
  D.5581 = D.5580 + 3395469782;
  e = D.5581 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5279 = block->l[4];
  D.5324 = block->l[15];
  D.5381 = D.5279 ^ D.5324;
  D.5300 = block->l[9];
  D.5382 = D.5381 ^ D.5300;
  D.5292 = block->l[7];
  D.5383 = D.5382 ^ D.5292;
  D.5384 = D.5383 r>> 31;
  block->l[7] = D.5384;
  D.5292 = block->l[7];
  D.5582 = D.5364 + D.5292;
  D.5257 = e r>> 27;
  D.5583 = D.5582 + D.5257;
  D.5584 = D.5583 + 3395469782;
  d = D.5584 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5284 = block->l[5];
  D.5247 = block->l[0];
  D.5389 = D.5284 ^ D.5247;
  D.5304 = block->l[10];
  D.5390 = D.5389 ^ D.5304;
  D.5296 = block->l[8];
  D.5391 = D.5390 ^ D.5296;
  D.5392 = D.5391 r>> 31;
  block->l[8] = D.5392;
  D.5296 = block->l[8];
  D.5585 = D.5372 + D.5296;
  D.5265 = d r>> 27;
  D.5586 = D.5585 + D.5265;
  D.5587 = D.5586 + 3395469782;
  c = D.5587 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5288 = block->l[6];
  D.5255 = block->l[1];
  D.5396 = D.5288 ^ D.5255;
  D.5308 = block->l[11];
  D.5397 = D.5396 ^ D.5308;
  D.5300 = block->l[9];
  D.5398 = D.5397 ^ D.5300;
  D.5399 = D.5398 r>> 31;
  block->l[9] = D.5399;
  D.5300 = block->l[9];
  D.5588 = D.5380 + D.5300;
  D.5273 = c r>> 27;
  D.5589 = D.5588 + D.5273;
  D.5590 = D.5589 + 3395469782;
  b = D.5590 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5292 = block->l[7];
  D.5263 = block->l[2];
  D.5403 = D.5292 ^ D.5263;
  D.5312 = block->l[12];
  D.5404 = D.5403 ^ D.5312;
  D.5304 = block->l[10];
  D.5405 = D.5404 ^ D.5304;
  D.5406 = D.5405 r>> 31;
  block->l[10] = D.5406;
  D.5304 = block->l[10];
  D.5591 = D.5388 + D.5304;
  D.5281 = b r>> 27;
  D.5592 = D.5591 + D.5281;
  D.5593 = D.5592 + 3395469782;
  a = D.5593 + a;
  c = c r>> 2;
  D.5252 = b ^ c;
  D.5356 = D.5252 ^ d;
  D.5296 = block->l[8];
  D.5271 = block->l[3];
  D.5410 = D.5296 ^ D.5271;
  D.5316 = block->l[13];
  D.5411 = D.5410 ^ D.5316;
  D.5308 = block->l[11];
  D.5412 = D.5411 ^ D.5308;
  D.5413 = D.5412 r>> 31;
  block->l[11] = D.5413;
  D.5308 = block->l[11];
  D.5594 = D.5356 + D.5308;
  D.5249 = a r>> 27;
  D.5595 = D.5594 + D.5249;
  D.5596 = D.5595 + 3395469782;
  e = D.5596 + e;
  b = b r>> 2;
  D.5260 = a ^ b;
  D.5364 = D.5260 ^ c;
  D.5300 = block->l[9];
  D.5279 = block->l[4];
  D.5417 = D.5300 ^ D.5279;
  D.5320 = block->l[14];
  D.5418 = D.5417 ^ D.5320;
  D.5312 = block->l[12];
  D.5419 = D.5418 ^ D.5312;
  D.5420 = D.5419 r>> 31;
  block->l[12] = D.5420;
  D.5312 = block->l[12];
  D.5597 = D.5364 + D.5312;
  D.5257 = e r>> 27;
  D.5598 = D.5597 + D.5257;
  D.5599 = D.5598 + 3395469782;
  d = D.5599 + d;
  a = a r>> 2;
  D.5268 = e ^ a;
  D.5372 = D.5268 ^ b;
  D.5304 = block->l[10];
  D.5284 = block->l[5];
  D.5424 = D.5304 ^ D.5284;
  D.5324 = block->l[15];
  D.5425 = D.5424 ^ D.5324;
  D.5316 = block->l[13];
  D.5426 = D.5425 ^ D.5316;
  D.5427 = D.5426 r>> 31;
  block->l[13] = D.5427;
  D.5316 = block->l[13];
  D.5600 = D.5372 + D.5316;
  D.5265 = d r>> 27;
  D.5601 = D.5600 + D.5265;
  D.5602 = D.5601 + 3395469782;
  c = D.5602 + c;
  e = e r>> 2;
  D.5276 = d ^ e;
  D.5380 = D.5276 ^ a;
  D.5308 = block->l[11];
  D.5288 = block->l[6];
  D.5431 = D.5308 ^ D.5288;
  D.5247 = block->l[0];
  D.5432 = D.5431 ^ D.5247;
  D.5320 = block->l[14];
  D.5433 = D.5432 ^ D.5320;
  D.5434 = D.5433 r>> 31;
  block->l[14] = D.5434;
  D.5320 = block->l[14];
  D.5603 = D.5380 + D.5320;
  D.5273 = c r>> 27;
  D.5604 = D.5603 + D.5273;
  D.5605 = D.5604 + 3395469782;
  b = D.5605 + b;
  d = d r>> 2;
  D.5244 = c ^ d;
  D.5388 = D.5244 ^ e;
  D.5312 = block->l[12];
  D.5292 = block->l[7];
  D.5438 = D.5312 ^ D.5292;
  D.5255 = block->l[1];
  D.5439 = D.5438 ^ D.5255;
  D.5324 = block->l[15];
  D.5440 = D.5439 ^ D.5324;
  D.5441 = D.5440 r>> 31;
  block->l[15] = D.5441;
  D.5324 = block->l[15];
  D.5606 = D.5388 + D.5324;
  D.5281 = b r>> 27;
  D.5607 = D.5606 + D.5281;
  D.5608 = D.5607 + 3395469782;
  a = D.5608 + a;
  c = c r>> 2;
  D.5609 = *state;
  D.5610 = D.5609 + a;
  *state = D.5610;
  D.5611 = state + 4;
  D.5611 = state + 4;
  D.5612 = *D.5611;
  D.5613 = D.5612 + b;
  *D.5611 = D.5613;
  D.5614 = state + 8;
  D.5614 = state + 8;
  D.5615 = *D.5614;
  D.5616 = D.5615 + c;
  *D.5614 = D.5616;
  D.5617 = state + 12;
  D.5617 = state + 12;
  D.5618 = *D.5617;
  D.5619 = D.5618 + d;
  *D.5617 = D.5619;
  D.5620 = state + 16;
  D.5620 = state + 16;
  D.5621 = *D.5620;
  D.5622 = D.5621 + e;
  *D.5620 = D.5622;
  e = 0;
  d = e;
  c = d;
  b = c;
  a = b;
}


__attribute__((__artificial__, __gnu_inline__, __always_inline__, __nothrow__, __leaf__))
memcpy (void * restrict __dest, const void * restrict __src, size_t __len)
{
  void * D.5623;
  long unsigned int D.5624;

  D.5624 = __builtin_object_size (__dest, 0);
  D.5623 = __builtin___memcpy_chk (__dest, __src, __len, D.5624);
  return D.5623;
}


mono_sha1_final (struct MonoSHA1Context * context, unsigned char * digest)
{
  _Bool D.5626;
  int D.5627;
  unsigned int D.5628;
  unsigned int D.5629;
  unsigned int D.5630;
  unsigned int D.5631;
  unsigned int D.5632;
  unsigned char D.5633;
  unsigned int D.5634;
  unsigned int D.5635;
  sizetype D.5636;
  unsigned char * D.5637;
  unsigned int D.5638;
  unsigned int D.5639;
  unsigned int D.5640;
  unsigned char D.5641;
  unsigned char[64] * D.5642;
  guint32[5] * D.5643;
  guint32[2] * D.5644;
  guint32 i;
  unsigned char finalcount[8];

  try
    {
      i = 0;
      goto <D.5184>;
      <D.5183>:
      D.5626 = i <= 3;
      D.5627 = (int) D.5626;
      D.5628 = context->count[D.5627];
      D.5629 = ~i;
      D.5630 = D.5629 & 3;
      D.5631 = D.5630 * 8;
      D.5632 = D.5628 >> D.5631;
      D.5633 = (unsigned char) D.5632;
      finalcount[i] = D.5633;
      i = i + 1;
      <D.5184>:
      if (i <= 7) goto <D.5183>; else goto <D.5185>;
      <D.5185>:
      mono_sha1_update (context, "€", 1);
      goto <D.5187>;
      <D.5186>:
      mono_sha1_update (context, "", 1);
      <D.5187>:
      D.5634 = context->count[0];
      D.5635 = D.5634 & 504;
      if (D.5635 != 448) goto <D.5186>; else goto <D.5188>;
      <D.5188>:
      mono_sha1_update (context, &finalcount, 8);
      i = 0;
      goto <D.5190>;
      <D.5189>:
      D.5636 = (sizetype) i;
      D.5637 = digest + D.5636;
      D.5638 = i >> 2;
      D.5639 = context->state[D.5638];
      D.5629 = ~i;
      D.5630 = D.5629 & 3;
      D.5631 = D.5630 * 8;
      D.5640 = D.5639 >> D.5631;
      D.5641 = (unsigned char) D.5640;
      *D.5637 = D.5641;
      i = i + 1;
      <D.5190>:
      if (i <= 19) goto <D.5189>; else goto <D.5191>;
      <D.5191>:
      i = 0;
      D.5642 = &context->buffer;
      memset (D.5642, 0, 64);
      D.5643 = &context->state;
      memset (D.5643, 0, 20);
      D.5644 = &context->count;
      memset (D.5644, 0, 8);
      memset (&finalcount, 0, 8);
      D.5643 = &context->state;
      D.5642 = &context->buffer;
      SHA1Transform (D.5643, D.5642);
    }
  finally
    {
      finalcount = {CLOBBER};
    }
}


__attribute__((__artificial__, __gnu_inline__, __always_inline__, __nothrow__, __leaf__))
memset (void * __dest, int __ch, size_t __len)
{
  void * D.5645;
  long unsigned int D.5646;

  D.5646 = __builtin_object_size (__dest, 0);
  D.5645 = __builtin___memset_chk (__dest, __ch, __len, D.5646);
  return D.5645;
}


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.5652;
  int D.5653;
  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.5649>; else goto <D.5650>;
      <D.5649>:
      return;
      <D.5650>:
      goto <D.5207>;
      <D.5206>:
      nb_bytes_read.1 = (unsigned int) nb_bytes_read;
      mono_sha1_update (&ctx, &tmp_buf, nb_bytes_read.1);
      <D.5207>:
      D.5652 = fread (&tmp_buf, 1, 1024, fp);
      nb_bytes_read = (gint) D.5652;
      if (nb_bytes_read > 0) goto <D.5206>; else goto <D.5208>;
      <D.5208>:
      D.5653 = ferror (fp);
      if (D.5653 != 0) goto <D.5654>; else goto <D.5655>;
      <D.5654>:
      fclose (fp);
      return;
      <D.5655>:
      fclose (fp);
      mono_sha1_final (&ctx, digest);
    }
  finally
    {
      ctx = {CLOBBER};
      tmp_buf = {CLOBBER};
    }
}


__attribute__((__artificial__, __gnu_inline__, __always_inline__))
fread (void * restrict __ptr, size_t __size, size_t __n, struct FILE * restrict __stream)
{
  long unsigned int D.5659;
  int D.5664;
  int D.5666;
  long unsigned int D.5668;
  size_t D.5669;
  long unsigned int D.5670;
  long unsigned int D.5671;
  long unsigned int D.5672;
  long unsigned int D.5675;

  D.5659 = __builtin_object_size (__ptr, 0);
  if (D.5659 != 18446744073709551615) goto <D.5660>; else goto <D.5661>;
  <D.5660>:
  D.5664 = __builtin_constant_p (__size);
  if (D.5664 == 0) goto <D.5662>; else goto <D.5665>;
  <D.5665>:
  D.5666 = __builtin_constant_p (__n);
  if (D.5666 == 0) goto <D.5662>; else goto <D.5667>;
  <D.5667>:
  D.5668 = __size | __n;
  if (D.5668 > 4294967295) goto <D.5662>; else goto <D.5663>;
  <D.5662>:
  D.5670 = __builtin_object_size (__ptr, 0);
  D.5669 = __fread_chk (__ptr, D.5670, __size, __n, __stream);
  return D.5669;
  <D.5663>:
  D.5671 = __size * __n;
  D.5672 = __builtin_object_size (__ptr, 0);
  if (D.5671 > D.5672) goto <D.5673>; else goto <D.5674>;
  <D.5673>:
  D.5675 = __builtin_object_size (__ptr, 0);
  D.5669 = __fread_chk_warn (__ptr, D.5675, __size, __n, __stream);
  return D.5669;
  <D.5674>:
  <D.5661>:
  D.5669 = __fread_alias (__ptr, __size, __n, __stream);
  return D.5669;
}


mono_digest_get_public_token (guchar * token, const guchar * pubkey, guint32 len)
{
  int len.2;
  sizetype D.5680;
  guchar * D.5681;
  int D.5682;
  unsigned char D.5683;
  guchar digest[20];
  int i;

  try
    {
      if (token == 0B) goto <D.5677>; else goto <D.5678>;
      <D.5677>:
      monoeg_g_log (0B, 8, "%s:%d: assertion \'%s\' failed", "mono-sha1.c", 331, "token != NULL");
      return;
      <D.5678>:
      len.2 = (int) len;
      mono_sha1_get_digest (pubkey, len.2, &digest);
      i = 0;
      goto <D.5217>;
      <D.5216>:
      D.5680 = (sizetype) i;
      D.5681 = token + D.5680;
      D.5682 = 19 - i;
      D.5683 = digest[D.5682];
      *D.5681 = D.5683;
      i = i + 1;
      <D.5217>:
      if (i <= 7) goto <D.5216>; else goto <D.5218>;
      <D.5218>:
    }
  finally
    {
      digest = {CLOBBER};
    }
}


