NormBuffer__ReplaceLastStartBase

CHAR __fastcall NormBuffer__ReplaceLastStartBase(INT64 a1, INT64 a2, CHAR a3, CHAR a4){
  int v4; 
  __int64 v6; 
  __int64 v7; 
  CHAR result; 
  int v9; 
  int v10; 
  v4 = *(_DWORD *)(a1 + 88);
  v6 = *(_QWORD *)(a1 + 80);
  *(_DWORD *)(a1 + 100) = 0;
  *(_DWORD *)(a1 + 96) = 0;
  v10 = 0;
  v9 = 0;
  *(_DWORD *)(a1 + 88) = a2;
  *(_BYTE *)(a1 + 92) = a3;
  *(_BYTE *)(a1 + 93) = a4;
  v7 = *(_QWORD *)(a1 + 112);
  *(_WORD *)(v6 - 2) = a2;
  Normalization__GetSecondAndThirdDecomposedCharPlane0(v7, v4, &v10, &v9);
  if( !v9 || (result = NormBuffer__AppendAndSortDecomposed((_QWORD *)a1, v9)) != 0 )
  {
    if( v10 )
      return NormBuffer__AppendAndSortDecomposed((_QWORD *)a1, v10);
    else
      return 1;
  }
  return result;
}

Referenced by:

Normalization__NormalizeCharacter