MiMarkNonPagedHiberPhasePte

INT64 __fastcall MiMarkNonPagedHiberPhasePte(INT64 a1, INT64 a2, INT64 a3){
  int v3; 
  unsigned __int64 v4; 
  char v5; 
  __int64 v6; 
  UINT64 v7; 
  __int64 v8; 
  char *v9; 
  __int64 v10; 
  UINT64 Tag; 
  UINT64 v13; 
  v3 = a3;
  v4 = MI_READ_PTE_LOCK_FREE(a2);
  v13 = v4;
  v5 = v4;
  if( (v4 & 1) != 0 )
  {
    v6 = (v4 >> 12) & 0xFFFFFFFFFi64;
    if( (unsigned int)MiIsPfn(v6) )
    {
      if( v5 >= 0 )
      {
        if( v3 )
          return 0i64;
        v9 = (char *)MmGetPfnDb() + 48 * v6;
        if( *((_WORD *)v9 + 16) <= 1u && (unsigned int)MiIsPfnTradable((BYTE *)v9) && (*(_BYTE *)(v10 + 35) & 8) == 0 )
          return 0i64;
        v7 = 1i64;
      }
      else
      {
        v7 = 512i64;
        if( v3 <= 1 )
        {
LABEL_14:
          LODWORD(Tag) = 1818521678;
          PoSetHiberRange(0i64, 0x14000ui64, (VOID *)v6, v7, Tag);
          return 0i64;
        }
        v8 = (unsigned int)(v3 - 1);
        do
        {
          v7 <<= 9;
          --v8;
        }
        while( v8 );
      }
      if( v7 )
        goto LABEL_14;
    }
  }
  return 0i64;
}

Referenced by:

No references.