RtlCSparseBitmapCleanup

NTSTATUS __stdcall RtlCSparseBitmapCleanup(INT64 a1){
  _KAPC_STATE *v1; 
  unsigned __int64 v3; 
  __int64 v4; 
  NTSTATUS result; 
  UINT64 v6; 
  UINT64 v7; 

  v1 = *(_KAPC_STATE **)(a1 + 8);
  if( v1 )
  {
    v3 = (((unsigned __int64)(*(_QWORD *)(a1 + 16) + 7i64) >> 3) + 4095) & 0xFFFFFFFFFFFFF000ui64;
    if( *(_QWORD *)a1 )
    {
      RtlpEnvRegisterFaultRange(v1, (_KAPC_STATE *)v3);
      v1 = *(_KAPC_STATE **)(a1 + 8);
    }
    v4 = 1i64 << *(_BYTE *)(a1 + 51);
    v7 = (UINT64)v1;
    v6 = ~(v4 - 1) & (v4 + (((((v3 >> 12) + 7) >> 3) + 4095) & 0xFFFFFFFFFFFFF000ui64) + v3 - 1);
    return RtlpHpEnvFreeVA(&v7, &v6, 0x8000i64);
  }
  return result;
}

Referenced by:

ExCleanupSessionHeapManager