SUBTRACT_MAP_REGISTERS

VOID __fastcall SUBTRACT_MAP_REGISTERS(INT64 a1, INT64 a2){
  int v3; 
  UINT64 v4; 
  UINT64 v5; 
  v3 = _InterlockedExchangeAdd((volatile signed __int32 *)(a1 + 160), -(int)a2) - a2;
  if( v3 < 0 )
  {
    v4 = -v3;
    ViHalPreprocessOptions(&byte_140C12CB8, (PSTR)"Freed too many map registers: -%x.", 5ui64, v4, 0i64, 0i64, v5);
    VfReportIssueWithOptions(0xE6ui64, 5ui64, v4, 0i64, 0i64, &byte_140C12CB8);
  }
  _InterlockedExchange((volatile __int32 *)(a1 + 188), 0);
}

Referenced by:

VfAllocateAdapterChannel
VfAllocateAdapterChannelEx
VfCancelAdapterChannel
VfFreeAdapterChannel
VfFreeAdapterObject
VfFreeMapRegisters
VfPutScatterGatherList
ViAdapterCallback
ViFlushZeroMapRegisterBaseWcbs