PfpPrefetchEntireDirectory

__int64 PfpPrefetchEntireDirectory(__int64 a1, __int64 a2, UINT64 a3, __int64 a4, __int64 a5, ...){
  __int64 v8; 
  __int64 v9; 
  int v10; 
  __int64 v11; 
  NTSTATUS v12; 
  _QWORD *v13; 
  UINT64 *ReturnedLength; 
  __int64 Information; 
  UINT64 v17[2]; 
  VOID *Handle; 
  PVOID FileObject[2]; 
  __int64 v20; 
  va_list va; 

  va_start(va, a5);
  Information = 0i64;
  v8 = *(_QWORD *)(a5 + 8);
  v9 = *(_QWORD *)(a5 + 16);
  Handle = 0i64;
  v20 = 0x200000000i64;
  *(_OWORD *)v17 = 0i64;
  *(_OWORD *)FileObject = 0i64;
  v10 = PfpOpenHandleCreate((__int64)&Handle, a1, v9, v8, 1048577, 0x4021u, 0, a2);
  v11 = v20;
  v12 = v10;
  if( v10 >= 0 )
  {
    if( a4 )
    {
      v13 = FileObject[0];
      if( IopQueryXxxInformation(FileObject[0], 6ui64, 8ui64, 0, &Information, (UINT64 *)va, 1u) >= 0 )
      {
        *(_QWORD *)(a4 + 12) = Information;
        *(_QWORD *)a4 = v13[3];
        *(_DWORD *)(a4 + 8) = v11;
      }
    }
    LODWORD(ReturnedLength) = 590112;
    v12 = IopXxxControlFile(Handle, 0i64, 0i64, 0i64, v17, (UINT64)ReturnedLength, a3);
    if( v12 >= 0 )
      v12 = 0;
  }
  if( (v11 & 0x400000000i64) != 0 )
    PfpOpenHandleClose(&Handle, a1);
  return(unsigned int)v12;
}

Referenced by:

PfSnPrefetchMetadata