PfTCleanupBuffers

VOID __fastcall PfTCleanupBuffers(INT64 a1){
  _QWORD **v2; 
  _QWORD *v3; 
  _QWORD *v4; 
  _QWORD *v5; 
  void *v6; 
  v2 = (_QWORD **)(a1 + 24);
  while( 1 )
  {
    v3 = *v2;
    if( *v2 == v2 )
      break;
    if( (_QWORD **)v3[1] != v2 || (v4 = (_QWORD *)*v3, *(_QWORD **)(*v3 + 8i64) != v3) )
      __fastfail(3u);
    *v2 = v4;
    v4[1] = v2;
    ExFreePoolWithTag(v3, 0);
  }
  v5 = *(_QWORD **)(a1 + 16);
  if( v5 )
  {
    *(_QWORD *)(a1 + 16) = *v5;
    do
    {
      v6 = v5;
      v5 = *(_QWORD **)(a1 + 16);
      if( v5 )
        *(_QWORD *)(a1 + 16) = *v5;
      ExFreePoolWithTag(v6, 0);
    }
    while( v5 );
  }
  *(_WORD *)(a1 + 10) = 0;
}

Referenced by:

PfTCleanup