void FUN_00418160(int *param_1,int *param_2)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  
  uVar5 = param_1[2];
  uVar3 = param_1[3];
  uVar4 = param_1[1];
  iVar17 = *param_2;
  uVar1 = *param_1 + -0x28955b88 + iVar17 + ((uVar3 ^ uVar5) & uVar4 ^ uVar3);
  iVar21 = param_2[1];
  uVar6 = (uVar1 * 0x80 | uVar1 >> 0x19) + uVar4;
  iVar2 = param_2[2];
  uVar1 = uVar3 + 0xe8c7b756 + iVar21 + (uVar6 & (uVar5 ^ uVar4) ^ uVar5);
  uVar7 = (uVar1 * 0x1000 | uVar1 >> 0x14) + uVar6;
  uVar1 = uVar5 + 0x242070db + iVar2 + (uVar7 & (uVar6 ^ uVar4) ^ uVar4);
  iVar19 = param_2[3];
  uVar3 = (uVar1 * 0x20000 | uVar1 >> 0xf) + uVar7;
  uVar1 = uVar4 + 0xc1bdceee + iVar19 + (uVar3 & (uVar7 ^ uVar6) ^ uVar6);
  iVar22 = param_2[4];
  uVar5 = (uVar1 * 0x400000 | uVar1 >> 10) + uVar3;
  uVar1 = iVar22 + -0xa83f051 + uVar6 + (uVar5 & (uVar3 ^ uVar7) ^ uVar7);
  iVar15 = param_2[5];
  uVar4 = (uVar1 * 0x80 | uVar1 >> 0x19) + uVar5;
  uVar1 = iVar15 + 0x4787c62a + uVar7 + (uVar4 & (uVar5 ^ uVar3) ^ uVar3);
  iVar20 = param_2[6];
  uVar6 = (uVar1 * 0x1000 | uVar1 >> 0x14) + uVar4;
  uVar1 = iVar20 + -0x57cfb9ed + uVar3 + (uVar6 & (uVar4 ^ uVar5) ^ uVar5);
  iVar12 = param_2[7];
  uVar3 = (uVar1 * 0x20000 | uVar1 >> 0xf) + uVar6;
  uVar1 = iVar12 + -0x2b96aff + uVar5 + (uVar3 & (uVar6 ^ uVar4) ^ uVar4);
  iVar16 = param_2[8];
  uVar5 = (uVar1 * 0x400000 | uVar1 >> 10) + uVar3;
  uVar1 = iVar16 + 0x698098d8 + uVar4 + (uVar5 & (uVar3 ^ uVar6) ^ uVar6);
  iVar9 = param_2[9];
  uVar4 = (uVar1 * 0x80 | uVar1 >> 0x19) + uVar5;
  uVar1 = iVar9 + -0x74bb0851 + uVar6 + (uVar4 & (uVar5 ^ uVar3) ^ uVar3);
  iVar13 = param_2[10];
  uVar6 = (uVar1 * 0x1000 | uVar1 >> 0x14) + uVar4;
  uVar1 = iVar13 + -0xa44f + uVar3 + (uVar6 & (uVar4 ^ uVar5) ^ uVar5);
  iVar18 = param_2[0xb];
  uVar3 = (uVar1 * 0x20000 | uVar1 >> 0xf) + uVar6;
  uVar1 = iVar18 + -0x76a32842 + uVar5 + (uVar3 & (uVar6 ^ uVar4) ^ uVar4);
  iVar10 = param_2[0xc];
  uVar7 = (uVar1 * 0x400000 | uVar1 >> 10) + uVar3;
  uVar1 = iVar10 + 0x6b901122 + uVar4 + (uVar7 & (uVar3 ^ uVar6) ^ uVar6);
  iVar14 = param_2[0xd];
  uVar4 = (uVar1 * 0x80 | uVar1 >> 0x19) + uVar7;
  uVar1 = iVar14 + -0x2678e6d + uVar6 + (uVar4 & (uVar7 ^ uVar3) ^ uVar3);
  iVar8 = param_2[0xe];
  uVar5 = (uVar1 * 0x1000 | uVar1 >> 0x14) + uVar4;
  uVar1 = iVar8 + -0x5986bc72 + uVar3 + (uVar5 & (uVar4 ^ uVar7) ^ uVar7);
  iVar11 = param_2[0xf];
  uVar6 = (uVar1 * 0x20000 | uVar1 >> 0xf) + uVar5;
  uVar1 = iVar11 + 0x49b40821 + uVar7 + (uVar6 & (uVar5 ^ uVar4) ^ uVar4);
  uVar3 = (uVar1 * 0x400000 | uVar1 >> 10) + uVar6;
  uVar1 = iVar21 + -0x9e1da9e + uVar4 + ((uVar3 ^ uVar6) & uVar5 ^ uVar6);
  uVar4 = (uVar1 * 0x20 | uVar1 >> 0x1b) + uVar3;
  uVar1 = iVar20 + -0x3fbf4cc0 + uVar5 + ((uVar4 ^ uVar3) & uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x200 | uVar1 >> 0x17) + uVar4;
  uVar1 = iVar18 + 0x265e5a51 + uVar6 + ((uVar5 ^ uVar4) & uVar3 ^ uVar4);
  uVar6 = (uVar1 * 0x4000 | uVar1 >> 0x12) + uVar5;
  uVar1 = iVar17 + -0x16493856 + uVar3 + ((uVar6 ^ uVar5) & uVar4 ^ uVar5);
  uVar3 = (uVar1 * 0x100000 | uVar1 >> 0xc) + uVar6;
  uVar1 = iVar15 + -0x29d0efa3 + uVar4 + ((uVar3 ^ uVar6) & uVar5 ^ uVar6);
  uVar4 = (uVar1 * 0x20 | uVar1 >> 0x1b) + uVar3;
  uVar1 = iVar13 + 0x2441453 + uVar5 + ((uVar4 ^ uVar3) & uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x200 | uVar1 >> 0x17) + uVar4;
  uVar1 = iVar11 + -0x275e197f + uVar6 + ((uVar5 ^ uVar4) & uVar3 ^ uVar4);
  uVar6 = (uVar1 * 0x4000 | uVar1 >> 0x12) + uVar5;
  uVar1 = iVar22 + -0x182c0438 + uVar3 + ((uVar6 ^ uVar5) & uVar4 ^ uVar5);
  uVar3 = (uVar1 * 0x100000 | uVar1 >> 0xc) + uVar6;
  uVar1 = iVar9 + 0x21e1cde6 + uVar4 + ((uVar3 ^ uVar6) & uVar5 ^ uVar6);
  uVar4 = (uVar1 * 0x20 | uVar1 >> 0x1b) + uVar3;
  uVar1 = iVar8 + -0x3cc8f82a + uVar5 + ((uVar4 ^ uVar3) & uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x200 | uVar1 >> 0x17) + uVar4;
  uVar1 = iVar19 + -0xb2af279 + uVar6 + ((uVar5 ^ uVar4) & uVar3 ^ uVar4);
  uVar6 = (uVar1 * 0x4000 | uVar1 >> 0x12) + uVar5;
  uVar1 = iVar16 + 0x455a14ed + uVar3 + ((uVar6 ^ uVar5) & uVar4 ^ uVar5);
  uVar7 = (uVar1 * 0x100000 | uVar1 >> 0xc) + uVar6;
  uVar1 = iVar14 + -0x561c16fb + uVar4 + ((uVar7 ^ uVar6) & uVar5 ^ uVar6);
  uVar3 = (uVar1 * 0x20 | uVar1 >> 0x1b) + uVar7;
  uVar1 = iVar2 + -0x3105c08 + uVar5 + ((uVar3 ^ uVar7) & uVar6 ^ uVar7);
  uVar5 = (uVar1 * 0x200 | uVar1 >> 0x17) + uVar3;
  uVar1 = iVar12 + 0x676f02d9 + uVar6 + ((uVar5 ^ uVar3) & uVar7 ^ uVar3);
  uVar6 = (uVar1 * 0x4000 | uVar1 >> 0x12) + uVar5;
  uVar1 = iVar10 + -0x72d5b376 + uVar7 + ((uVar6 ^ uVar5) & uVar3 ^ uVar5);
  uVar4 = (uVar1 * 0x100000 | uVar1 >> 0xc) + uVar6;
  uVar1 = iVar15 + -0x5c6be + uVar3 + (uVar4 ^ uVar6 ^ uVar5);
  uVar3 = (uVar1 * 0x10 | uVar1 >> 0x1c) + uVar4;
  uVar1 = iVar16 + -0x788e097f + uVar5 + (uVar4 ^ uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x800 | uVar1 >> 0x15) + uVar3;
  uVar1 = iVar18 + 0x6d9d6122 + uVar6 + (uVar3 ^ uVar4 ^ uVar5);
  uVar6 = (uVar1 * 0x10000 | uVar1 >> 0x10) + uVar5;
  uVar1 = iVar8 + -0x21ac7f4 + uVar4 + (uVar5 ^ uVar3 ^ uVar6);
  uVar4 = (uVar1 * 0x800000 | uVar1 >> 9) + uVar6;
  uVar1 = iVar21 + -0x5b4115bc + uVar3 + (uVar6 ^ uVar5 ^ uVar4);
  uVar3 = (uVar1 * 0x10 | uVar1 >> 0x1c) + uVar4;
  uVar1 = iVar22 + 0x4bdecfa9 + uVar5 + (uVar4 ^ uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x800 | uVar1 >> 0x15) + uVar3;
  uVar1 = iVar12 + -0x944b4a0 + uVar6 + (uVar3 ^ uVar4 ^ uVar5);
  uVar6 = (uVar1 * 0x10000 | uVar1 >> 0x10) + uVar5;
  uVar1 = iVar13 + -0x41404390 + uVar4 + (uVar5 ^ uVar3 ^ uVar6);
  uVar4 = (uVar1 * 0x800000 | uVar1 >> 9) + uVar6;
  uVar1 = iVar14 + 0x289b7ec6 + uVar3 + (uVar6 ^ uVar5 ^ uVar4);
  uVar3 = (uVar1 * 0x10 | uVar1 >> 0x1c) + uVar4;
  uVar1 = iVar17 + -0x155ed806 + uVar5 + (uVar4 ^ uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x800 | uVar1 >> 0x15) + uVar3;
  uVar1 = iVar19 + -0x2b10cf7b + uVar6 + (uVar3 ^ uVar4 ^ uVar5);
  uVar6 = (uVar1 * 0x10000 | uVar1 >> 0x10) + uVar5;
  uVar1 = iVar20 + 0x4881d05 + uVar4 + (uVar5 ^ uVar3 ^ uVar6);
  uVar4 = (uVar1 * 0x800000 | uVar1 >> 9) + uVar6;
  uVar1 = iVar9 + -0x262b2fc7 + uVar3 + (uVar6 ^ uVar5 ^ uVar4);
  uVar3 = (uVar1 * 0x10 | uVar1 >> 0x1c) + uVar4;
  uVar1 = iVar10 + -0x1924661b + uVar5 + (uVar4 ^ uVar6 ^ uVar3);
  uVar5 = (uVar1 * 0x800 | uVar1 >> 0x15) + uVar3;
  uVar1 = iVar11 + 0x1fa27cf8 + uVar6 + (uVar3 ^ uVar4 ^ uVar5);
  uVar6 = (uVar1 * 0x10000 | uVar1 >> 0x10) + uVar5;
  uVar1 = iVar2 + -0x3b53a99b + uVar4 + (uVar5 ^ uVar3 ^ uVar6);
  uVar4 = (uVar1 * 0x800000 | uVar1 >> 9) + uVar6;
  uVar1 = iVar17 + -0xbd6ddbc + uVar3 + ((uVar4 | ~uVar5) ^ uVar6);
  uVar1 = (uVar1 * 0x40 | uVar1 >> 0x1a) + uVar4;
  uVar3 = iVar12 + 0x432aff97 + uVar5 + ((uVar1 | ~uVar6) ^ uVar4);
  uVar5 = (uVar3 * 0x400 | uVar3 >> 0x16) + uVar1;
  uVar3 = iVar8 + -0x546bdc59 + uVar6 + ((uVar5 | ~uVar4) ^ uVar1);
  uVar6 = (uVar3 * 0x8000 | uVar3 >> 0x11) + uVar5;
  uVar3 = iVar15 + -0x36c5fc7 + uVar4 + ((uVar6 | ~uVar1) ^ uVar5);
  uVar3 = (uVar3 * 0x200000 | uVar3 >> 0xb) + uVar6;
  uVar1 = iVar10 + 0x655b59c3 + uVar1 + ((uVar3 | ~uVar5) ^ uVar6);
  uVar1 = (uVar1 * 0x40 | uVar1 >> 0x1a) + uVar3;
  uVar4 = iVar19 + -0x70f3336e + uVar5 + ((uVar1 | ~uVar6) ^ uVar3);
  uVar4 = (uVar4 * 0x400 | uVar4 >> 0x16) + uVar1;
  uVar5 = iVar13 + -0x100b83 + uVar6 + ((uVar4 | ~uVar3) ^ uVar1);
  uVar5 = (uVar5 * 0x8000 | uVar5 >> 0x11) + uVar4;
  uVar3 = iVar21 + -0x7a7ba22f + uVar3 + ((uVar5 | ~uVar1) ^ uVar4);
  uVar3 = (uVar3 * 0x200000 | uVar3 >> 0xb) + uVar5;
  uVar1 = iVar16 + 0x6fa87e4f + uVar1 + ((uVar3 | ~uVar4) ^ uVar5);
  uVar1 = (uVar1 * 0x40 | uVar1 >> 0x1a) + uVar3;
  uVar4 = iVar11 + -0x1d31920 + uVar4 + ((uVar1 | ~uVar5) ^ uVar3);
  uVar4 = (uVar4 * 0x400 | uVar4 >> 0x16) + uVar1;
  uVar5 = iVar20 + -0x5cfebcec + uVar5 + ((uVar4 | ~uVar3) ^ uVar1);
  uVar6 = (uVar5 * 0x8000 | uVar5 >> 0x11) + uVar4;
  uVar3 = iVar14 + 0x4e0811a1 + uVar3 + ((uVar6 | ~uVar1) ^ uVar4);
  uVar3 = (uVar3 * 0x200000 | uVar3 >> 0xb) + uVar6;
  uVar1 = iVar22 + -0x8ac817e + uVar1 + ((uVar3 | ~uVar4) ^ uVar6);
  uVar5 = (uVar1 * 0x40 | uVar1 >> 0x1a) + uVar3;
  uVar1 = iVar18 + -0x42c50dcb + uVar4 + ((uVar5 | ~uVar6) ^ uVar3);
  uVar4 = (uVar1 * 0x400 | uVar1 >> 0x16) + uVar5;
  uVar1 = iVar2 + 0x2ad7d2bb + uVar6 + ((uVar4 | ~uVar3) ^ uVar5);
  uVar1 = (uVar1 * 0x8000 | uVar1 >> 0x11) + uVar4;
  uVar3 = iVar9 + -0x14792c6f + uVar3 + ((uVar1 | ~uVar5) ^ uVar4);
  param_1[3] = param_1[3] + uVar4;
  *param_1 = uVar5 + *param_1;
  param_1[1] = uVar1 + param_1[1] + (uVar3 >> 0xb | uVar3 * 0x200000);
  param_1[2] = param_1[2] + uVar1;
  return;
}