NormBuffer__ReplaceLastStartBase

UINT8 __stdcall NormBuffer__ReplaceLastStartBase(
        _RTL_NORM_BUFFER *pNormBuffer,
        INT64 cNewStart,
        UINT8 bClass,
        UINT8 bFlags){
  unsigned int v4; 
  __int64 v6; 
  _RTL_NORMALIZATION *v7; 
  UINT8 result; 
  INT64 pcThird; 
  INT64 pcSecond; 

  v4 = pNormBuffer[22];
  v6 = *((_QWORD *)pNormBuffer + 10);
  pNormBuffer[25] = 0;
  pNormBuffer[24] = 0;
  LODWORD(pcSecond) = 0;
  LODWORD(pcThird) = 0;
  pNormBuffer[22] = cNewStart;
  *((_BYTE *)pNormBuffer + 92) = bClass;
  *((_BYTE *)pNormBuffer + 93) = bFlags;
  v7 = (_RTL_NORMALIZATION *)*((_QWORD *)pNormBuffer + 14);
  *(_WORD *)(v6 - 2) = cNewStart;
  Normalization__GetSecondAndThirdDecomposedCharPlane0(v7, v4, &pcSecond, &pcThird);
  if( !(_DWORD)pcThird || (result = NormBuffer__AppendAndSortDecomposed(pNormBuffer, (unsigned int)pcThird)) != 0 )
  {
    if( (_DWORD)pcSecond )
      return NormBuffer__AppendAndSortDecomposed(pNormBuffer, (unsigned int)pcSecond);
    else
      return 1;
  }
  return result;
}

Referenced by:

Normalization__NormalizeCharacter