HalpDmaRemoveFromEmergencyLogicalAddressQueue

CHAR __fastcall HalpDmaRemoveFromEmergencyLogicalAddressQueue(INT64 a1, _QWORD *a2){
  UINT64 *v2; 
  CHAR v5; 
  _QWORD **v6; 
  unsigned __int8 v7; 
  unsigned __int64 v8; 
  _QWORD *v9; 
  _QWORD **v10; 
  _QWORD *v12; 
  v2 = (UINT64 *)(a1 + 560);
  v5 = 0;
  KeAcquireSpinLockRaiseToDpc((UINT64 *)(a1 + 560), (UINT64)a2);
  v6 = (_QWORD **)(a1 + 568);
  v8 = v7;
  v9 = *v6;
  if( *v6 != v6 )
  {
    while( 1 )
    {
      v10 = (_QWORD **)*v9;
      if( v9 == a2 )
        break;
      v9 = (_QWORD *)*v9;
      if( v10 == v6 )
        goto LABEL_4;
    }
    v5 = 1;
    v12 = (_QWORD *)v9[1];
    if( v10[1] != v9 || (_QWORD *)*v12 != v9 )
      __fastfail(3u);
    *v12 = v10;
    v10[1] = v12;
  }
LABEL_4:
  KxReleaseSpinLock(v2);
  __writecr8(v8);
  return v5;
}

Referenced by:

HalCancelAdapterChannel
HalCancelAdapterChannelThin
HalpAllocateDmaResourcesInternal