DECREMENT_SCATTER_GATHER_LISTS

void __fastcall DECREMENT_SCATTER_GATHER_LISTS(__int64 a1){
  int v2; 
  UINT64 v3; 
  v2 = _InterlockedDecrement((volatile signed __int32 *)(a1 + 168));
  if( v2 < 0 )
  {
    ViHalPreprocessOptions(
      &dword_140C12CA4,
      (PSTR)"Driver has freed too many scatter gather lists %x allocated, %x freed.",
      6ui64,
      *(unsigned int *)(a1 + 164),
      (unsigned int)(*(_DWORD *)(a1 + 164) - v2),
      0i64,
      v3);
    VfReportIssueWithOptions(
      0xE6ui64,
      6ui64,
      *(unsigned int *)(a1 + 164),
      (unsigned int)(*(_DWORD *)(a1 + 164) - v2),
      0i64,
      &dword_140C12CA4);
  }
}

Referenced by:

VfBuildScatterGatherList
VfBuildScatterGatherListEx
VfGetScatterGatherList
VfGetScatterGatherListEx
VfPutScatterGatherList