void RT_SHA256_Append(int param_1,int param_2,int param_3)

{
  int iVar1;
  uint uVar2;
  void *__dest;
  void *__src;
  int iVar3;
  size_t __n;
  
  iVar3 = 0;
  while (__n = param_3 - iVar3, iVar3 != param_3) {   //possible issue identified - semgrep
    iVar1 = *(int *)(param_1 + 0x68);
    __src = (void *)(param_2 + iVar3);
    __dest = (void *)(param_1 + iVar1 + 0x28);
    if (__n + iVar1 < 0x40) {
      iVar3 = iVar3 + __n   //possible issue identified - semgrep
      memmove(__dest,__src,__n)   //possible issue identified - semgrep
      *(size_t *)(param_1 + 0x68) = *(int *)(param_1 + 0x68) + __n;
    }
    else {
      memmove(__dest,__src,0x40 - iVar1)   //possible issue identified - semgrep
      iVar1 = *(int *)(param_1 + 0x68);
      *(undefined4 *)(param_1 + 0x68) = 0x40;
      iVar3 = iVar3 + (0x40 - iVar1);
      RT_SHA256_Hash(param_1);
    }
  }
  uVar2 = *(uint *)(param_1 + 0x20) + iVar3;
  *(uint *)(param_1 + 0x24) = (uint)(uVar2 < *(uint *)(param_1 + 0x20)) + *(int *)(param_1 + 0x24);
  *(uint *)(param_1 + 0x20) = uVar2;
  return;
}