RtlpHpVaMgrCtxQuery

NTSTATUS __stdcall RtlpHpVaMgrCtxQuery(INT64 a1, INT64 a2, INT64 a3){
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 

  LODWORD(v6) = RtlSparseArrayElementAllocated(a1 + 16, (unsigned __int64)(a2 - *(_QWORD *)(a1 + 8)) >> 20);
  v7 = v6;
  if( v6 )
  {
    *(_DWORD *)(a3 + 28) = 0;
    if( (*(_BYTE *)v6 & 4) != 0 )
      v8 = *(_QWORD *)(v6 + 24);
    else
      v8 = *(unsigned __int16 *)(v6 + 24);
    *(_QWORD *)a3 = v8 << 20;
    v9 = *(unsigned __int8 *)(v7 + 1) + 45i64;
    *(_DWORD *)(a3 + 24) = 16;
    *(_DWORD *)(a3 + 8) = (*(unsigned __int8 *)(a1 + 48 * v9 + 46) >> 1) & 3;
    *(_DWORD *)(a3 + 12) = *(unsigned __int8 *)(a1 + 48 * v9 + 45);
    *(_QWORD *)(a3 + 16) = v7 + 8;
    return 0;
  }
  else
  {
    RtlpLogHeapFailure(heap_failure_invalid_va_mgr_query, (VOID *)a2, 0i64, 0i64, 0i64);
    return -1073741823;
  }
}

Referenced by:

RtlpHpQueryVA
RtlpHpSegMgrCommit