AslpFileGetHeaderAttributesNE

__int64 __fastcall AslpFileGetHeaderAttributesNE(__int64 a1, __int64 a2){
  int v4; 
  unsigned int v5; 
  const CHAR *v6; 
  UINT64 v7; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  __int64 v12; 
  int v13; 
  WCHAR *UnicodeBuffer; 
  WCHAR *String; 
  UnicodeBuffer = 0i64;
  String = 0i64;
  v4 = AslFileMappingEnsure(a2);
  v5 = v4;
  if( v4 >= 0 )
  {
    if( *(_DWORD *)(a2 + 64) == 5 )
    {
      *(_DWORD *)(a1 + 600) |= 2u;
      *(_DWORD *)(a1 + 632) |= 2u;
      *(_DWORD *)(a1 + 728) |= 2u;
      *(_DWORD *)(a1 + 56) |= 2u;
      *(_DWORD *)(a1 + 824) |= 2u;
      *(_DWORD *)(a1 + 760) |= 2u;
      *(_DWORD *)(a1 + 952) |= 2u;
      *(_DWORD *)(a1 + 984) |= 2u;
      *(_DWORD *)(a1 + 1016) |= 2u;
      v9 = -1i64;
      if( (int)AslpFileGet16BitDescription(&UnicodeBuffer, a2) < 0 )
      {
        *(_DWORD *)(a1 + 664) |= 2u;
      }
      else
      {
        v4 = AslStringXmlSanitize(UnicodeBuffer);
        v5 = v4;
        if( v4 < 0 )
        {
          v6 = "AslStringXmlSanitize failed [%x]";
          v7 = 2629i64;
          goto LABEL_3;
        }
        *(_DWORD *)(a1 + 640) = 4;
        v11 = -1i64;
        do
          ++v11;
        while( *(_WORD *)(v10 + 2 * v11) );
        *(_DWORD *)(a1 + 664) |= 5u;
        *(_QWORD *)(a1 + 648) = v11;
        *(_QWORD *)(a1 + 656) = v10;
      }
      if( (int)AslpFileGet16BitModuleName(&String, a2) >= 0 )
      {
        v4 = AslStringXmlSanitize(String);
        v5 = v4;
        if( v4 < 0 )
        {
          v6 = "AslStringXmlSanitize failed [%x]";
          v7 = 2650i64;
          goto LABEL_3;
        }
        *(_DWORD *)(a1 + 672) = 4;
        do
          ++v9;
        while( *(_WORD *)(v12 + 2 * v9) );
        *(_DWORD *)(a1 + 696) |= 5u;
        *(_QWORD *)(a1 + 680) = v9;
        *(_QWORD *)(a1 + 688) = v12;
        return 0;
      }
    }
    else
    {
      *(_DWORD *)(a1 + 664) |= 2u;
    }
    *(_DWORD *)(a1 + 696) |= 2u;
    return 0;
  }
  v6 = "AslFileMappingEnsure failed [%x]";
  v7 = 2594i64;
LABEL_3:
  v13 = v4;
  AslLogCallPrintf(1ui64, "AslpFileGetHeaderAttributesNE", v7, v6, v13);
  return v5;
}

Referenced by:

AslFileAllocAndGetAttributes