ViCheckPadding
void __fastcall ViCheckPadding(
void *RealBufferStart,
UINT64 RealBufferLength,
void *AdvertisedBufferStart,
UINT64 AdvertisedBufferLength){
UINT64 *Param3;
UINT64 v7;
char *v8;
char *v9;
__int64 v10;
UINT64 v11;
UINT8 v12;
UINT64 *v13;
UINT8 v14;
UINT64 v15;
UINT64 *v16;
UINT64 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);
v13 = ViHasBufferBeenTouched(RealBufferStart, v11, v12);
v15 = (UINT64)v13;
if( v13 )
{
ViHalPreprocessOptions(
&dword_140C12CE4,
(PSTR)"Padding before allocation at %p has been illegally modified at %p.",
0x1000000Fui64,
4ui64,
(UINT64)AdvertisedBufferStart,
(UINT64)v13,
v18);
VfReportIssueWithOptions(0xE6ui64, 0xFui64, 4ui64, (UINT64)AdvertisedBufferStart, v15, &dword_140C12CE4);
}
v16 = ViHasBufferBeenTouched(v8, (UINT64)v9, v14);
v17 = (UINT64)v16;
if( v16 )
{
ViHalPreprocessOptions(
&byte_140C12CE0,
(PSTR)"Padding after allocation at %p has been illegally modified at %p.",
0x1000000Fui64,
5ui64,
(UINT64)AdvertisedBufferStart,
(UINT64)v16,
v18);
VfReportIssueWithOptions(0xE6ui64, 0xFui64, 5ui64, (UINT64)AdvertisedBufferStart, v17, &byte_140C12CE0);
}
}
else
{
Param3 = ViHasBufferBeenTouched(RealBufferStart, (unsigned int)RealBufferLength, (UINT8)AdvertisedBufferStart);
v7 = (UINT64)Param3;
if( Param3 )
{
ViHalPreprocessOptions(
&byte_140C12CD8,
(PSTR)"Verified driver or hardware has corrupted memory at %p.",
0x1000000Fui64,
3ui64,
(UINT64)Param3,
0i64,
v18);
VfReportIssueWithOptions(0xE6ui64, 0xFui64, 3ui64, v7, 0i64, &byte_140C12CD8);
}
}
}
}Referenced by:
ViFreeMapRegisterFile
ViSpecialFreeCommonBuffer