HalpDmaRemoveFromEmergencyLogicalAddressQueue

CHAR __stdcall HalpDmaRemoveFromEmergencyLogicalAddressQueue(INT64 a1, _XSTATE_CONFIGURATION *a2){
  UINT64 *v2; 
  CHAR v4; 
  _XSTATE_CONFIGURATION **v5; 
  unsigned __int64 v6; 
  _XSTATE_CONFIGURATION *v7; 
  _XSTATE_CONFIGURATION **EnabledFeatures; 
  _XSTATE_CONFIGURATION **EnabledVolatileFeatures; 

  v2 = (UINT64 *)(a1 + 560);
  v4 = 0;
  v5 = (_XSTATE_CONFIGURATION **)(a1 + 568);
  v6 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)(a1 + 560));
  v7 = *v5;
  if( *v5 != (_XSTATE_CONFIGURATION *)v5 )
  {
    while( 1 )
    {
      EnabledFeatures = (_XSTATE_CONFIGURATION **)v7->EnabledFeatures;
      if( v7 == a2 )
        break;
      v7 = (_XSTATE_CONFIGURATION *)v7->EnabledFeatures;
      if( EnabledFeatures == v5 )
        goto LABEL_4;
    }
    v4 = 1;
    EnabledVolatileFeatures = (_XSTATE_CONFIGURATION **)v7->EnabledVolatileFeatures;
    if( EnabledFeatures[1] != v7 || *EnabledVolatileFeatures != v7 )
      __fastfail(3u);
    *EnabledVolatileFeatures = (_XSTATE_CONFIGURATION *)EnabledFeatures;
    EnabledFeatures[1] = (_XSTATE_CONFIGURATION *)EnabledVolatileFeatures;
  }
LABEL_4:
  KxReleaseSpinLock(v2);
  __writecr8(v6);
  return v4;
}

Referenced by:

HalCancelAdapterChannel
HalCancelAdapterChannelThin
HalpAllocateDmaResourcesInternal