Normalization__GetSecondAndThirdDecomposedCharPlane0

VOID __stdcall Normalization__GetSecondAndThirdDecomposedCharPlane0(
        _RTL_NORMALIZATION *pNormalization,
        INT64 cDecompose,
        INT64 *pcSecond,
        INT64 *pcThird){
  int v4; 
  int v5; 
  __int64 v6; 
  unsigned __int16 v9; 
  __int64 v10; 
  unsigned __int16 i; 
  unsigned __int16 v12; 
  unsigned int v13; 
  __int64 v14; 
  unsigned __int16 v15; 

  v4 = cDecompose;
  v5 = (int)cDecompose % pNormalization[14];
  v6 = *((_QWORD *)pNormalization + 8);
  *(_DWORD *)pcThird = 0;
  *(_DWORD *)pcSecond = 0;
  v9 = *(_WORD *)(v6 + 2i64 * v5);
  if( (v9 & 0xE000) == 0 )
  {
    v10 = *((_QWORD *)pNormalization + 9);
    for( i = 2 * v9; ; i += 2 )
    {
      v12 = *(_WORD *)(v10 + 2i64 * i);
      if( !v12 || v12 == v4 )
        break;
    }
    v9 = *(_WORD *)(v10 + 2i64 * i + 2);
  }
  v13 = v9 >> 13;
  if( v13 > 1 )
  {
    v14 = *((_QWORD *)pNormalization + 10);
    v15 = (v9 & 0x1FFF) + 1;
    *(_DWORD *)pcSecond = *(unsigned __int16 *)(v14 + 2i64 * v15);
    if( v13 != 2 )
      *(_DWORD *)pcThird = *(unsigned __int16 *)(v14 + 2i64 * (unsigned __int16)(v15 + 1));
  }
}

Referenced by:

NormBuffer__ReplaceLastStartBase