PfSnLogPageFaultCommon

INT64 __fastcall PfSnLogPageFaultCommon(INT64 a1, _QWORD *a2, UINT64 a3, UINT64 a4, INT64 a5){
  UINT64 v8; 
  unsigned int v9; 
  INT64 result; 
  unsigned __int64 *v11; 
  unsigned __int64 *a3a; 
  a3a = 0i64;
  PfSnGetFileInformation(a1, a2);
  if( (*(_BYTE *)(a1 + 484) & 1) == 0 && *(_BYTE *)(*(_QWORD *)(a1 + 352) + 1850i64) == 2 )
    _InterlockedOr16((volatile signed __int16 *)(a1 + 484), 1u);
  if( a4 >= 0x20000000000i64 )
    return 3221227780i64;
  v8 = a4 >> 9;
  if( (a5 & 1) != 0 )
    v9 = 1;
  else
    v9 = (a5 & 2) != 0 ? 3 : 0;
  PfSnCheckLogSequenceNumber(a1);
  if( v9 || (a3a = *(unsigned __int64 **)(a1 + 408), *a3a >> 3 != v8) || a3a[1] != a3 )
  {
    result = PfSnTraceGetLogEntry(a1, 1ui64, &a3a);
    if( (int)result < 0 )
      return result;
    v11 = a3a;
    *a3a = (8 * v8) | *(_DWORD *)a3a & 7;
    v11[1] = a3;
    *v11 = v9 | *v11 & 0xFFFFFFFFFFFFFFF8ui64;
    _InterlockedAdd((volatile signed __int32 *)(a1 + 332), 1u);
    if( !v9 )
      *(_QWORD *)(a1 + 408) = a3a;
  }
  return 0i64;
}

Referenced by:

MiCompleteRestrictedImageFault
MiMakeSystemCacheRangeValid
PfFileInfoNotify
PfSnLogPageFault