RtlpHpSegLfhVsCommit

INT64 __fastcall RtlpHpSegLfhVsCommit(INT64 a1, UINT64 a2, UINT64 a3){
  __int64 v3; 
  UINT64 v5; 
  unsigned int v6; 
  char v8; 
  INT64 v9; 
  char v10; 
  char v11; 
  INT64 a5; 
  v3 = *(_QWORD *)a1;
  v5 = a2 & *(_QWORD *)a1;
  v6 = a3;
  v8 = *(_BYTE *)(a1 + 8);
  if( (a1 ^ v5 ^ (unsigned __int64)RtlpHpHeapGlobals ^ *(_QWORD *)(v5 + 0x10)) != 0xA2E64EADA2E64EADui64 )
    goto LABEL_8;
  v9 = v5 + 32 * ((unsigned __int64)(unsigned int)(a2 - v5) >> v8);
  if( !v9 )
    goto LABEL_8;
  v10 = *(_BYTE *)(v9 + 24);
  if( (v10 & 1) == 0 )
    goto LABEL_8;
  if( (v10 & 2) == 0 )
  {
    v9 -= 32i64 * *(unsigned __int8 *)(v9 + 31);
    v11 = *(_BYTE *)(v9 + 24);
    if( (v11 & 3) == 3 && (v11 & 0xCu) >= 8 )
      goto LABEL_7;
LABEL_8:
    v9 = 0i64;
    goto LABEL_7;
  }
  if( (v10 & 0xCu) < 8 && (((1 << v8) - 1) & a2) != 0 )
    goto LABEL_8;
LABEL_7:
  LODWORD(a5) = 0;
  return RtlpHpSegPageRangeCommit(
           a1,
           v9,
           ((_DWORD)a2 - (unsigned int)((v9 - (v9 & v3)) >> 5 << v8) - ((unsigned int)v9 & (unsigned int)v3)) >> 12,
           v6 >> 12,
           a5,
           0i64);
}

Referenced by:

No references.