MiApplyCommitDelay

VOID __stdcall MiApplyCommitDelay(INT64 a1, CHAR a2, INT64 a3){
  INT64 *v4; 
  unsigned __int8 v5; 
  int v6; 
  unsigned __int64 v7; 
  int v8; 
  unsigned __int8 v9; 
  unsigned __int64 v10; 
  _LARGE_INTEGER v11; 

  if( (a2 & 4) == 0
    && (KeGetCurrentThread()->ApcState.Process->Flags3 & 0x1000) == 0
    && KeGetCurrentIrql() < 2u
    && a3 != *(_QWORD *)(a1 + 6216)
    && *(_DWORD *)(a1 + 1868) )
  {
    v4 = (INT64 *)(a1 + 1344);
    v5 = ExAcquireSpinLockExclusive((INT64 *)(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);
    v11 = Mi10Milliseconds;
    KeWaitForSingleObject(a1 + 1872, 0, 0, 0, (INT64)&v11);
    v9 = ExAcquireSpinLockExclusive(v4);
    --*(_DWORD *)(a1 + 1864);
    v10 = v9;
    ExReleaseSpinLockExclusiveFromDpcLevel(v4);
    __writecr8(v10);
  }
}

Referenced by:

MiChargeCommit