SdbpReleaseSearchDBContext
VOID __stdcall SdbpReleaseSearchDBContext(tagSEARCHDBCONTEXT *pContext){
void *v2;
void *v3;
_DWORD *v4;
void *v5;
void *v6;
void *v7;
_RTL_ARRAY *v8;
__int64 i;
__int64 v10;
_ASL_STRING_HASH *v11;
_ASL_STRING_HASH *v12;
void *v13;
if( pContext )
{
v2 = (void *)*((_QWORD *)pContext + 3);
if( v2 )
{
ExFreePoolWithTag(v2, 0x74705041u);
*((_QWORD *)pContext + 3) = 0i64;
}
v3 = (void *)*((_QWORD *)pContext + 8);
if( v3 )
{
ExFreePoolWithTag(v3, 0x74705041u);
*((_QWORD *)pContext + 8) = 0i64;
}
v4 = (_DWORD *)*((_QWORD *)pContext + 9);
if( v4 )
{
for( i = 0i64; (unsigned int)i < *v4; i = (unsigned int)(i + 1) )
{
v10 = (__int64)&v4[12 * i + 2];
if( v10 )
{
v11 = *(_ASL_STRING_HASH **)(v10 + 16);
if( v11 )
{
AslHashFree(v11);
*(_QWORD *)(v10 + 16) = 0i64;
}
v12 = *(_ASL_STRING_HASH **)(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 *)*((_QWORD *)pContext + 9);
}
if( v4 )
ExFreePoolWithTag(v4, 0x74705041u);
*((_QWORD *)pContext + 9) = 0i64;
}
v5 = (void *)*((_QWORD *)pContext + 4);
if( v5 )
{
ExFreePoolWithTag(v5, 0x74705041u);
*((_QWORD *)pContext + 4) = 0i64;
}
v6 = (void *)*((_QWORD *)pContext + 5);
if( v6 )
{
ExFreePoolWithTag(v6, 0x74705041u);
*((_QWORD *)pContext + 5) = 0i64;
}
v7 = (void *)*((_QWORD *)pContext + 6);
if( v7 )
{
ExFreePoolWithTag(v7, 0x74705041u);
*((_QWORD *)pContext + 6) = 0i64;
}
v8 = (_RTL_ARRAY *)*((_QWORD *)pContext + 11);
if( v8 )
{
SdbpFreePackageAttributes(v8);
*((_QWORD *)pContext + 11) = 0i64;
}
}
}Referenced by:
SdbGetDatabaseMatch
SdbpCheckKObject