CmpBounceContextCleanup

VOID __fastcall CmpBounceContextCleanup(INT64 a1){
  _SLIST_ENTRY *v1; 

  v1 = *(_SLIST_ENTRY **)(a1 + 8);
  if( v1 && v1 != *(_SLIST_ENTRY **)a1 && v1 != (_SLIST_ENTRY *)(a1 + 17) )
  {
    if( (*(_BYTE *)(a1 + 16) & 1) != 0 )
    {
      ++*(&WheapErrorSourceTable + 401);
      if( *(&WheapErrorSourceTable + 788) >= *(&WheapErrorSourceTable + 796) )
      {
        ++*(&WheapErrorSourceTable + 402);
        (*(&WheapErrorSourceTable + 204))(v1, (char *)&WheapErrorSourceTable + 1576);
      }
      else
      {
        RtlpInterlockedPushEntrySList((PSLIST_HEADER)((char *)&WheapErrorSourceTable + 1576), v1);
      }
    }
    else
    {
      CmSiFreeMemory(*(PPRIVILEGE_SET *)(a1 + 8));
    }
  }
}

Referenced by:

NtEnumerateKey
NtEnumerateValueKey
NtQueryMultipleValueKey