RtlSparseArrayElementAllocate

UINT8 *__fastcall RtlSparseArrayElementAllocate(INT64 a1, INT64 a2, const VOID *a3){
  int v3; 
  INT64 v5; 
  UINT8 *v6; 
  INT64 v8[2]; 
  UINT8 v9[16]; 
  v3 = *(_DWORD *)(a1 + 8);
  v5 = a2 << v3;
  v6 = (UINT8 *)(v5 + *(_QWORD *)(a1 + 24));
  *(_OWORD *)v8 = 0i64;
  *(_OWORD *)v9 = 0i64;
  if( (int)RtlpCSparseBitmapPageCommit(a1 + 16, (unsigned __int64)(8 * v5) >> 15, v8, v9) < 0 )
    return 0i64;
  memmove(v6, (UINT8 *)a3, (unsigned int)(1 << v3));
  RtlpCSparseBitmapUnlock(v8);
  RtlCSparseBitmapLeaveLockingRegion(v9);
  return v6;
}

Referenced by:

RtlpHpVaMgrRangeCreate