PfFbBufferListInitialize

VOID __stdcall PfFbBufferListInitialize(
        _PFFB_BUFFER_LIST *BufferList,
        _PFFB_BUFFER_LIST_PARAMS *Params,
        UINT8 Reinitialize){
  unsigned int v6; 
  __int128 v7; 
  __int64 v8; 

  if( Reinitialize )
  {
    *((_QWORD *)BufferList + 13) = 0i64;
    BufferList[28] = 0;
  }
  else
  {
    memset(BufferList, 0i64, 0x80u);
  }
  InitializeSListHead((PSLIST_HEADER)BufferList + 1);
  InitializeSListHead((PSLIST_HEADER)BufferList + 2);
  InitializeSListHead((PSLIST_HEADER)BufferList + 3);
  v6 = Params[3];
  v7 = *((_OWORD *)Params + 1);
  *((_OWORD *)BufferList + 4) = *(_OWORD *)Params;
  if( v6 < 0x30 )
    v6 = 48;
  v8 = *((_QWORD *)Params + 4);
  *((_OWORD *)BufferList + 5) = v7;
  *((_QWORD *)BufferList + 12) = v8;
  BufferList[19] = v6;
  if( Reinitialize )
    _InterlockedExchange64((volatile __int64 *)BufferList, 0i64);
  else
    ExInitializePushLock((PULONG_PTR)BufferList);
}

Referenced by:

PfTInitialize