void RT_MD5_End(void *param_1,void *param_2)

{
  uint uVar1;
  int local_18;
  uint local_14;
  
  memset((void *)((int)param_1 + *(int *)((int)param_1 + 0x58) + 0x18),0x80,1)   //possible issue identified - semgrep
  if (*(uint *)((int)param_1 + 0x58) < 0x38) {
    uVar1 = *(uint *)((int)param_1 + 0x10);
  }
  else {
    RT_MD5_Hash(param_1);
    uVar1 = *(uint *)((int)param_1 + 0x10);
  }
  local_14 = *(int *)((int)param_1 + 0x14) << 3 | uVar1 >> 0x1d;
  local_18 = uVar1 << 3;
  memmove((void *)((int)param_1 + 0x50),&local_18,8)   //possible issue identified - semgrep
  RT_MD5_Hash(param_1);
  memmove(param_2,param_1,0x10)   //possible issue identified - semgrep
  return;
}