AslpFileMappingGetFileKind

__int64 __fastcall AslpFileMappingGetFileKind(_QWORD *a1, int *a2){
  unsigned __int64 v3; 
  unsigned int v4; 
  int v5; 
  __int64 v6; 
  __int64 v7; 
  v3 = a1[2];
  v4 = 0;
  if( !v3 || !a1[4] )
  {
    *a2 = 1;
    return 0i64;
  }
  v5 = 3;
  if( v3 < 0x40 )
  {
    *a2 = 3;
    return 0i64;
  }
  v6 = a1[3];
  if( (unsigned __int64)(v6 - 1) > 0xFFFFFFFFFFFFFFFDui64 )
  {
    v4 = -1073741811;
    AslLogCallPrintf(1ui64, "AslpFileMappingGetFileKind", 0x4E8ui64, "File mapping invalid [%x]", -1073741811);
  }
  else if( *(_WORD *)v6 == 23117 )
  {
    v5 = 4;
    v7 = *(unsigned int *)(v6 + 60);
    if( v3 >= v7 + 4 )
    {
      if( *(_DWORD *)(v7 + v6) == 17744 )
      {
        v5 = 6;
      }
      else if( *(_WORD *)(v7 + v6) == 17742 )
      {
        v5 = 5;
      }
    }
  }
  *a2 = v5;
  return v4;
}

Referenced by:

AslFileMappingCreate
AslFileMappingCreateFromImageView
AslFileMappingEnsure
AslFileMappingEnsureMappedAs
AslpFileLargeEnsureLargeFileMapping