AslpFileGetPeExportNameExeWrapper

__int64 __fastcall AslpFileGetPeExportNameExeWrapper(__int64 a1, __int64 a2){
  int v4; 
  unsigned int v5; 
  const CHAR *v6; 
  UINT64 v7; 
  int v9; 
  __int64 v10; 
  __int64 v11; 
  int v12; 
  unsigned int v13; 
  WCHAR *UnicodeBuffer; 
  v13 = 0;
  UnicodeBuffer = 0i64;
  v4 = AslFileMappingEnsure(a2);
  v5 = v4;
  if( v4 >= 0 )
  {
    if( *(_DWORD *)(a2 + 64) == 6 )
    {
      if( (int)AslpFileGetExeWrapper(&v13, a2) < 0 )
      {
        v9 = 2;
      }
      else
      {
        *(_QWORD *)(a1 + 816) = v13;
        v9 = 1;
        *(_DWORD *)(a1 + 800) = 2;
        *(_QWORD *)(a1 + 808) = 4i64;
      }
      *(_DWORD *)(a1 + 824) |= v9;
      if( (int)AslpFileGetExportName(&UnicodeBuffer, a2) >= 0 )
      {
        v4 = AslStringXmlSanitize(UnicodeBuffer);
        v5 = v4;
        if( v4 < 0 )
        {
          v6 = "AslStringXmlSanitize failed [%x]";
          v7 = 2417i64;
          goto LABEL_3;
        }
        *(_DWORD *)(a1 + 736) = 4;
        v11 = -1i64;
        do
          ++v11;
        while( *(_WORD *)(v10 + 2 * v11) );
        *(_DWORD *)(a1 + 760) |= 5u;
        *(_QWORD *)(a1 + 744) = v11;
        *(_QWORD *)(a1 + 752) = v10;
        return 0;
      }
    }
    else
    {
      *(_DWORD *)(a1 + 824) |= 2u;
    }
    *(_DWORD *)(a1 + 760) |= 2u;
    return 0;
  }
  v6 = "AslFileMappingEnsure failed [%x]";
  v7 = 2382i64;
LABEL_3:
  v12 = v4;
  AslLogCallPrintf(1ui64, "AslpFileGetPeExportNameExeWrapper", v7, v6, v12);
  return v5;
}

Referenced by:

AslFileAllocAndGetAttributes