void RT_SHA256_End(uint *param_1,void *param_2)

{
  uint uVar1;
  uint uVar2;
  uint *puVar3;
  int iVar4;
  uint uVar5;
  uint local_18;
  uint local_14;
  
  memset((void *)((int)param_1 + param_1[0x1a] + 0x28),0x80,1)   //possible issue identified - semgrep
  if (param_1[0x1a] < 0x38) {
    uVar5 = param_1[8];
  }
  else {
    RT_SHA256_Hash(param_1);
    uVar5 = param_1[8];
  }
  uVar2 = uVar5 << 3;
  uVar1 = param_1[9] << 3;
  local_14 = uVar5 << 0x1b | (uVar2 & 0xff00) << 8 | (uVar2 & 0xff0000) >> 8 | uVar2 >> 0x18;
  local_18 = uVar1 >> 0x18 | (uVar5 >> 0x1d | uVar1 & 0xff) << 0x18 | (uVar1 & 0xff00) << 8 |
             (uVar1 & 0xff0000) >> 8;
  memmove(param_1 + 0x18,&local_18,8)   //possible issue identified - semgrep
  RT_SHA256_Hash(param_1);
  iVar4 = 0;
  puVar3 = param_1;
  do {
    uVar5 = *puVar3;
    iVar4 = iVar4 + 1;
    *puVar3 = uVar5 >> 0x18 | uVar5 << 0x18 | (uVar5 & 0xff00) << 8 | (uVar5 & 0xff0000) >> 8;
    puVar3 = puVar3 + 1;
  } while (iVar4 != 8);
  memmove(param_2,param_1,0x20)   //possible issue identified - semgrep
  return;
}