MiReleaseWalkLocks

VOID __stdcall MiReleaseWalkLocks(INT64 a1){
  UINT64 v1; 
  _MMSUPPORT_INSTANCE *v3; 

  v1 = *(_QWORD *)(a1 + 48);
  v3 = *(_MMSUPPORT_INSTANCE **)(a1 + 24);
  if( v1 )
  {
    MiUnlockPageTableInternal(*(_QWORD *)(a1 + 24), v1);
    *(_QWORD *)(a1 + 48) = 0i64;
  }
  if( (*(_WORD *)a1 & 4) != 0 )
  {
    LOBYTE(v1) = *(_BYTE *)(a1 + 6);
    MiUnlockWorkingSetShared(v3, v1);
  }
  else
  {
    if( (*(_WORD *)a1 & 0x400) != 0 )
      ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)((char *)&stru_140C4DB30 + 1324));
    MiUnlockWorkingSetExclusive(v3, *(_BYTE *)(a1 + 6));
  }
  *(_BYTE *)(a1 + 2) |= 1u;
}

Referenced by:

MiCombineWorkingSetTail
MiDeleteEmptyPageTableTail
MiGetNextPageTablePte
MiQueryEPTAccessedState
MiYieldPageTableWalk