MiApplyCommitDelay

VOID __fastcall MiApplyCommitDelay(INT64 a1, CHAR a2, INT64 a3){
  INT64 *v4; 
  KIRQL v5; 
  int v6; 
  unsigned __int64 v7; 
  int v8; 
  KIRQL v9; 
  unsigned __int64 v10; 
  union _LARGE_INTEGER Timeout; 
  if( (a2 & 4) == 0
    && (*(_DWORD *)(*((_QWORD *)KeGetCurrentThread() + 23) + 2172i64) & 0x1000) == 0
    && KeGetCurrentIrql() < 2u
    && a3 != *(_QWORD *)(a1 + 6216)
    && *(_DWORD *)(a1 + 1868) )
  {
    v4 = (INT64 *)(a1 + 1344);
    v5 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 1344));
    v6 = *(_DWORD *)(a1 + 1864);
    v7 = v5;
    if( v6 )
    {
      v8 = v6 + 1;
    }
    else
    {
      *(_WORD *)(a1 + 1872) = 0;
      *(_DWORD *)(a1 + 1876) = 0;
      *(_QWORD *)(a1 + 1888) = a1 + 1880;
      *(_QWORD *)(a1 + 1880) = a1 + 1880;
      v8 = 1;
      *(_BYTE *)(a1 + 1874) = 6;
    }
    *(_DWORD *)(a1 + 1864) = v8;
    ExReleaseSpinLockExclusiveFromDpcLevel(v4);
    __writecr8(v7);
    Timeout = Mi10Milliseconds;
    KeWaitForSingleObject((PVOID)(a1 + 1872), Executive, 0, 0, &Timeout);
    v9 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)v4);
    --*(_DWORD *)(a1 + 1864);
    v10 = v9;
    ExReleaseSpinLockExclusiveFromDpcLevel(v4);
    __writecr8(v10);
  }
}

Referenced by:

MiChargeCommit