void RT_SHA256_Hash(uint *param_1)

{
  int iVar1;
  uint uVar2;
  uint *puVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint *__dest;
  int *piVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  uint local_15c [9];
  uint local_138 [5];
  uint local_124 [17];
  uint auStack_e0 [49];
  
  __dest = local_124 + 1;
  memmove(__dest,param_1 + 10,0x40)   //possible issue identified - semgrep
  puVar3 = __dest;
  while( true ) {
    *puVar3 = local_124[1] >> 0x18 | local_124[1] << 0x18 | (local_124[1] & 0xff00) << 8 |
              (local_124[1] & 0xff0000) >> 8;
    puVar3 = puVar3 + 1;
    if (puVar3 == auStack_e0) break;
    local_124[1] = *puVar3;
  }
  piVar11 = &SHA256_K;
  uVar7 = 0;
  uVar2 = param_1[7];
  uVar12 = param_1[4];
  uVar8 = *param_1;
  uVar6 = param_1[1];
  uVar9 = param_1[2];
  uVar4 = param_1[3];
  uVar5 = param_1[5];
  uVar14 = param_1[6];
  while( true ) {
    uVar13 = uVar5;
    uVar10 = uVar9;
    uVar9 = uVar6;
    uVar6 = uVar8;
    uVar5 = uVar12;
    iVar1 = *__dest + *piVar11 + uVar2 +
            ((uVar5 >> 0xb) + uVar5 * 0x200000 ^ (uVar5 >> 6) + uVar5 * 0x4000000 ^
            (uVar5 >> 0x19) + uVar5 * 0x80) + (~uVar5 & uVar14 ^ uVar13 & uVar5);
    uVar7 = uVar7 + 1;
    uVar12 = iVar1 + uVar4;
    piVar11 = piVar11 + 1;
    uVar8 = ((uVar9 ^ uVar10) & uVar6 ^ uVar9 & uVar10) +
            ((uVar6 >> 0xd) + uVar6 * 0x80000 ^ (uVar6 >> 2) + uVar6 * 0x40000000 ^
            (uVar6 >> 0x16) + uVar6 * 0x400) + iVar1;
    if (uVar7 == 0x40) break;
    if (0xf < uVar7) {
      uVar2 = __dest[-1];
      uVar4 = __dest[-0xe];
      __dest[1] = __dest[-0xf] + __dest[-6] +
                  ((uVar2 >> 0x13) + uVar2 * 0x2000 ^ (uVar2 >> 0x11) + uVar2 * 0x8000 ^ uVar2 >> 10
                  ) + ((uVar4 >> 0x12) + uVar4 * 0x4000 ^ (uVar4 >> 7) + uVar4 * 0x2000000 ^
                      uVar4 >> 3);
    }
    __dest = __dest + 1;
    uVar2 = uVar14;
    uVar4 = uVar10;
    uVar14 = uVar13;
  }
  *param_1 = *param_1 + uVar8;
  param_1[2] = param_1[2] + uVar9;
  param_1[3] = param_1[3] + uVar10;
  param_1[4] = param_1[4] + uVar12;
  param_1[1] = param_1[1] + uVar6;
  param_1[5] = param_1[5] + uVar5;
  param_1[6] = param_1[6] + uVar13;
  param_1[7] = param_1[7] + uVar14;
  memset(param_1 + 10,0,0x40)   //possible issue identified - semgrep
  param_1[0x1a] = 0;
  return;
}