ViCheckPadding
VOID __stdcall ViCheckPadding(
VOID *RealBufferStart,
UINT64 RealBufferLength,
VOID *AdvertisedBufferStart,
UINT64 AdvertisedBufferLength){
UINT64 *Param3;
ULONG_PTR v7;
char *v8;
char *v9;
__int64 v10;
UINT64 v11;
UINT8 v12;
UINT64 *Param4;
UINT8 v14;
ULONG_PTR v15;
UINT64 *v16;
ULONG_PTR v17;
UINT64 v18;
if( (_DWORD)AdvertisedBufferLength != (_DWORD)RealBufferLength )
{
if( (_DWORD)AdvertisedBufferLength )
{
v8 = (char *)AdvertisedBufferStart + (unsigned int)AdvertisedBufferLength;
v9 = (char *)RealBufferStart + (unsigned int)RealBufferLength - (_QWORD)v8;
v10 = (unsigned __int64)((_BYTE *)AdvertisedBufferStart - (_BYTE *)RealBufferStart) >= 8;
v11 = (_BYTE *)AdvertisedBufferStart - (_BYTE *)RealBufferStart - 8;
if( (unsigned __int64)((_BYTE *)AdvertisedBufferStart - (_BYTE *)RealBufferStart) < 8 )
v11 = (_BYTE *)AdvertisedBufferStart - (_BYTE *)RealBufferStart;
if( (unsigned __int64)v9 >= 8 )
{
v9 -= 8;
v8 += 8;
LOWORD(v10) = v10 | 2;
}
ViCheckTag(AdvertisedBufferStart, (unsigned int)AdvertisedBufferLength, 0i64, v10);
Param4 = ViHasBufferBeenTouched(RealBufferStart, v11, v12);
v15 = (unsigned int)Param4;
if( Param4 )
{
ViHalPreprocessOptions(
(UINT64 *)((char *)&qword_140C12CE0 + 4),
(PSTR)"Padding before allocation at %p has been illegally modified at %p.",
0x1000000Fui64,
4ui64,
(UINT64)AdvertisedBufferStart,
(UINT64)Param4,
v18);
VfReportIssueWithOptions(
0xE6ui64,
0xFu,
4u,
(ULONG_PTR)AdvertisedBufferStart,
v15,
(UINT64 *)((char *)&qword_140C12CE0 + 4));
}
v16 = ViHasBufferBeenTouched(v8, (UINT64)v9, v14);
v17 = (unsigned int)v16;
if( v16 )
{
ViHalPreprocessOptions(
&qword_140C12CE0,
(PSTR)"Padding after allocation at %p has been illegally modified at %p.",
0x1000000Fui64,
5ui64,
(UINT64)AdvertisedBufferStart,
(UINT64)v16,
v18);
VfReportIssueWithOptions(0xE6ui64, 0xFu, 5u, (ULONG_PTR)AdvertisedBufferStart, v17, &qword_140C12CE0);
}
}
else
{
Param3 = ViHasBufferBeenTouched(RealBufferStart, (unsigned int)RealBufferLength, (UINT8)AdvertisedBufferStart);
v7 = (unsigned int)Param3;
if( Param3 )
{
ViHalPreprocessOptions(
&unk_140C12CD8,
(PSTR)"Verified driver or hardware has corrupted memory at %p.",
0x1000000Fui64,
3ui64,
(UINT64)Param3,
0i64,
v18);
VfReportIssueWithOptions(0xE6ui64, 0xFu, 3u, v7, 0, &unk_140C12CD8);
}
}
}
}Referenced by:
ViFreeMapRegisterFile
ViSpecialFreeCommonBuffer