SdbpReleaseSearchDBContext
void __fastcall SdbpReleaseSearchDBContext(_QWORD *a1){
void *v2;
void *v3;
_DWORD *v4;
void *v5;
void *v6;
void *v7;
__int64 v8;
__int64 i;
__int64 v10;
void *v11;
void *v12;
void *v13;
if( a1 )
{
v2 = (void *)a1[3];
if( v2 )
{
ExFreePoolWithTag(v2, 0x74705041u);
a1[3] = 0i64;
}
v3 = (void *)a1[8];
if( v3 )
{
ExFreePoolWithTag(v3, 0x74705041u);
a1[8] = 0i64;
}
v4 = (_DWORD *)a1[9];
if( v4 )
{
for( i = 0i64; (unsigned int)i < *v4; i = (unsigned int)(i + 1) )
{
v10 = (__int64)&v4[12 * i + 2];
if( v10 )
{
v11 = *(void **)(v10 + 16);
if( v11 )
{
AslHashFree(v11);
*(_QWORD *)(v10 + 16) = 0i64;
}
v12 = *(void **)(v10 + 24);
if( v12 )
{
AslHashFree(v12);
*(_QWORD *)(v10 + 24) = 0i64;
}
v13 = *(void **)(v10 + 40);
if( v13 )
{
ExFreePoolWithTag(v13, 0x74705041u);
*(_OWORD *)(v10 + 32) = 0i64;
}
}
v4 = (_DWORD *)a1[9];
}
if( v4 )
ExFreePoolWithTag(v4, 0x74705041u);
a1[9] = 0i64;
}
v5 = (void *)a1[4];
if( v5 )
{
ExFreePoolWithTag(v5, 0x74705041u);
a1[4] = 0i64;
}
v6 = (void *)a1[5];
if( v6 )
{
ExFreePoolWithTag(v6, 0x74705041u);
a1[5] = 0i64;
}
v7 = (void *)a1[6];
if( v7 )
{
ExFreePoolWithTag(v7, 0x74705041u);
a1[6] = 0i64;
}
v8 = a1[11];
if( v8 )
{
SdbpFreePackageAttributes(v8);
a1[11] = 0i64;
}
}
}Referenced by:
SdbGetDatabaseMatch
SdbpCheckKObject