public sealed class PeAnalysisOrchestrator
{
    private readonly IEnumerable<IPeAnalyzer> _analyzers;

    public PeAnalysisOrchestrator(IEnumerable<IPeAnalyzer> analyzers)
    {
        _analyzers = analyzers;
    }

    public async Task<IReadOnlyList<AnalysisFinding>> AnalyzeAsync(PeImageInfo peInfo, CancellationToken cancellationToken)
    {
        var findings = new List<AnalysisFinding>();
        foreach (var analyzer in _analyzers)
        {
            cancellationToken.ThrowIfCancellationRequested();
            findings.AddRange(await analyzer.AnalyzeAsync(peInfo, cancellationToken).ConfigureAwait(false));
        }

        return findings;
    }
}