Normalization__LoadTables
NTSTATUS __stdcall Normalization__LoadTables(
_RTL_NORM_FORM eNormalizationForm,
VOID *FileViewBase,
UINT64 FileViewSize,
_RTL_NORMALIZATION *pNormalization){
char v6;
UINT64 v8;
UINT64 v9;
UINT64 v10;
char *v11;
_RTL_NORMALIZATION v12;
v6 = BYTE1(eNormalizationForm);
memset(pNormalization, 0i64, 0x78u);
v8 = FileViewSize >> 1;
if( FileViewSize >> 1 < *((unsigned __int16 *)FileViewBase + 26) )
return -1073741672;
v9 = *((unsigned __int16 *)FileViewBase + 27);
if( v8 < v9 )
return -1073741672;
v10 = *((unsigned __int16 *)FileViewBase + 28);
if( v8 < v10
|| v8 < *((unsigned __int16 *)FileViewBase + 29)
|| v8 < *((unsigned __int16 *)FileViewBase + 30)
|| v8 < *((unsigned __int16 *)FileViewBase + 31)
|| v8 < *((unsigned __int16 *)FileViewBase + 32)
|| v8 < *((unsigned __int16 *)FileViewBase + 33)
|| (_DWORD)v10 - (_DWORD)v9 != 4352 )
{
return -1073741672;
}
*((_QWORD *)pNormalization + 1) = FileViewBase;
*((_QWORD *)pNormalization + 2) = FileViewSize;
*pNormalization = *((unsigned __int16 *)FileViewBase + 20);
pNormalization[6] = *((unsigned __int16 *)FileViewBase + 21);
pNormalization[7] = *((unsigned __int16 *)FileViewBase + 22);
*((_QWORD *)pNormalization + 4) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 27);
*((_QWORD *)pNormalization + 5) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 28);
pNormalization[14] = *((unsigned __int16 *)FileViewBase + 23);
*((_QWORD *)pNormalization + 8) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 29);
*((_QWORD *)pNormalization + 9) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 30);
*((_QWORD *)pNormalization + 10) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 31);
v11 = 0i64;
v12 = *((unsigned __int16 *)FileViewBase + 24);
pNormalization[22] = v12;
if( v12 )
{
*((_BYTE *)pNormalization + 112) = 0;
*((_QWORD *)pNormalization + 12) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 32);
v11 = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 33);
}
else
{
*((_BYTE *)pNormalization + 112) = 1;
*((_QWORD *)pNormalization + 12) = 0i64;
}
*((_QWORD *)pNormalization + 13) = v11;
*((_QWORD *)pNormalization + 6) = (char *)FileViewBase + 2 * *((unsigned __int16 *)FileViewBase + 26);
Normalization__LoadClassMapExceptions(pNormalization);
*((_BYTE *)pNormalization + 113) = (v6 & 1) == 0;
return 0;
}Referenced by:
RtlpGetNormalization