HalpDmaRemoveAdapterFromMasterQueue

char __fastcall HalpDmaRemoveAdapterFromMasterQueue(__int64 a1){
  __int64 v1; 
  _QWORD **v3; 
  _QWORD **v4; 
  char v5; 
  _QWORD *v6; 
  __int64 v7; 
  _QWORD **v8; 
  _QWORD *v10; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  v1 = *(_QWORD *)(a1 + 152);
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((UINT64 *)(v1 + 120), &LockHandle);
  v3 = (_QWORD **)(v1 + 152);
  v4 = (_QWORD **)(v1 + 168);
  if( !*(_BYTE *)(a1 + 434) )
    v4 = v3;
  v5 = 0;
  v6 = *v4;
  if( *v4 != v4 )
  {
    v7 = a1 + 160;
    while( 1 )
    {
      v8 = (_QWORD **)*v6;
      if( v6 == (_QWORD *)v7 )
        break;
      v6 = (_QWORD *)*v6;
      if( v8 == v4 )
        goto LABEL_7;
    }
    v10 = (_QWORD *)v6[1];
    if( v8[1] != v6 || (_QWORD *)*v10 != v6 )
      __fastfail(3u);
    *v10 = v8;
    v5 = 1;
    v8[1] = v10;
  }
LABEL_7:
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  return v5;
}

Referenced by:

HalCancelAdapterChannel
HalCancelAdapterChannelThin
HalpAllocateDmaResourcesInternal