CcUnpinData

VOID __stdcall CcUnpinData(PVOID Bcb){
  PVOID v1; 
  char v2; 
  void *v3; 
  char *i; 
  v1 = Bcb;
  if( ((unsigned __int8)Bcb & 1) != 0 )
  {
    v2 = 1;
    Bcb = (PVOID)((unsigned __int64)Bcb & 0xFFFFFFFFFFFFFFFEui64);
LABEL_3:
    CcUnpinFileDataEx(Bcb, v2, 0);
    return;
  }
  if( *(_WORD *)Bcb != 762 )
  {
    v2 = 0;
    goto LABEL_3;
  }
  v3 = (void *)*((_QWORD *)Bcb + 2);
  for( i = (char *)Bcb + 16; v3; i += 8 )
  {
    CcUnpinData(v3);
    v3 = (void *)*((_QWORD *)i + 1);
  }
  ExFreePoolWithTag(v1, 0);
}

Referenced by:

CcPinMappedData
CcPinRead
CcPreparePinWrite
CcUnpinData
CcUnpinDataForThread