Faits :
A.
A.a. X._ SA est active en particulier dans les conseils, la gestion et le courtage en assurance et prévoyance. A._ et B._ en sont notamment administrateurs. Le capital-actions de la société, de 200 actions au porteur d'une valeur nominale de 1'000 fr. chacune, était détenu jusqu'au 1er septembre 2017 par A._ à concurrence de 190 actions (95 %) et par B._ à concurrence de 10 actions (5 %).
A.b. Dans le but d'assurer la pérennité de X._ SA au vu du départ progressif de A._, ce dernier a vendu, par convention du 1er septembre 2017, 120 actions à C._ et 10 actions à B._.
Le 1er septembre 2017 également, A._, B._ et C._ ont conclu une convention d'actionnaires de X._ SA, qui avait pour but d' " assurer un développement harmonieux de la société " et de " régler clairement leurs relations ". Ils sont notamment convenus de dispositions concernant la transmission des actions. En particulier, cette convention prévoyait que lorsque l'un des actionnaires quitterait son emploi au sein de X._ SA, il devait proposer de vendre ses actions aux autres actionnaires, qui disposaient d'un droit de préemption à l'égard de tout tiers.
A.c. A compter du 4 septembre 2017, C._ s'est engagé au service de X._ SA en qualité de responsable du développement commercial. Il a ensuite été inscrit au Registre du commerce du canton de Genève en tant qu'administrateur de X._ SA, aux côtés de A._ et de B._, au bénéfice de la signature collective à deux.
A.d. Le 6 septembre 2017, D._ Sàrl a été inscrite au Registre du commerce, avec pour associé-gérant C._, et pour but l'acquisition et la détention de participations dans toutes sociétés et/ou entreprises.
A.e. X._ SA a allégué que C._ avait rapidement eu une attitude problématique au sein de X._ SA.
Le 19 mars 2018, X._ SA a licencié C._ pour le 30 avril 2018 et l'a libéré de son obligation de travailler pendant le délai de congé.
Lors de l'assemblée générale de X._ SA du 16 août 2018, à laquelle C._ n'était pas présent, il a été mis fin à son mandat d'administrateur avec effet immédiat; les autres administrateurs ont été réélus.
A.f. Le 25 janvier 2019, un formulaire fiscal n° 106 intitulé " demande de remplacer le paiement de l'impôt anticipé par une déclaration ", destiné à l'Administration fédérale des contributions, a été complété par X._ SA, sous les signatures de A._ et B._, en faveur de D._ Sàrl, " société bénéficiaire du divi dende ". Il y était indiqué qu'un dividende de 144'000 fr. était attribué à D._ Sàrl, en sa qualité de titulaire de 60 % du capital social de X._ SA depuis le 22 septembre 2017.
A.g. Par jugement du 12 décembre 2019, le Tribunal de première instance du canton de Genève a rejeté la requête en convocation d'une assemblée générale formée par C._, pour défaut de légitimation active. Il a retenu que celui-ci avait transmis, le 22juillet [recte: septembre] 2017, ses 120 actions de X._ SA acquises le 1er juillet [recte: septembre] 2017 à sa société D._ Sàrl. Ce jugement n'a pas été contesté.
A.h. Le 17 avril 2020, A._ et B._ ont déposé à l'encontre de C._ et D._ Sàrl une requête en nomination d'un liquidateur aux fins de liquider la société simple formée par les quatre prénommés. Par jugement du 27 août 2020, le tribunal a désigné un liquidateur de la société simple existant entre A._, B._ et C._. Par arrêt du 23 décembre 2020, la Cour de justice du canton de Genève a partiellement annulé ce jugement et a débouté A._ et B._ des fins de leur requête. Par arrêt du 28 février 2022, le Tribunal fédéral a rejeté dans la mesure de sa recevabilité le recours formé par ces derniers à l'encontre de l'arrêt de la cour cantonale (cause 4A_110/2021).
A.i. Dans l'intervalle, par courrier recommandé du 27 mai 2020 adressé aux administrateurs de X._ SA, D._ Sàrl a sollicité la convocation d'une assemblée générale ordinaire, en précisant les points à porter à l'ordre du jour.
Le conseil d'administration de X._ SA n'a entrepris aucune démarche en vue de convoquer une telle assemblée.
B.
B.a. Le 13 août 2020, D._ Sàrl a saisi le Tribunal de première instance d'une demande tendant à ce qu'il ordonne la convocation d'une assemblée générale de X._ SA dans les plus brefs délais, en portant à l'ordre du jour les points détaillés dans son courrier du 27 mai 2020. Elle a exposé détenir 60 % des actions de X._ SA, en produisant une copie d'un certificat d'actions pour 120 actions au porteur et le formulaire fiscal n° 106 précité.
Après l'échange des écritures, D._ Sàrl a demandé au tribunal, par courrier du 25 février 2021, si celui-ci avait gardé la cause à juger ou s'il entendait " prononcer une ordonnance visant, par exemple, à l'audi tion des parties ". Il n'a pas été donné suite à ce courrier.
Par jugement du 12 avril 2021, le tribunal a ordonné au conseil d'administration de X._ SA de procéder dans les 20 jours à compter de l'entrée en force du jugement à la convocation d'une assemblée générale avec inscription à l'ordre du jour de plusieurs points déterminés (ch. 1 du dispositif).
B.b. Statuant par arrêt du 17 septembre 2021 sur appel de X._ SA, la Chambre civile de la Cour de justice a annulé le chiffre 1 du dispositif du jugement attaqué et, statuant à nouveau, a ordonné au conseil d'administration de X._ SA de convoquer, dans les 20 jours à compter de la réception de l'arrêt, une assemblée générale avec inscription à l'ordre du jour des points suivants: a. Révocation du conseil d'administration des administrateurs F._ et B._; b. Nomination au conseil d'administration de C._, comme président, avec signature individuelle; c. Nomination au conseil d'administration de G._, comme secrétaire, avec signature collective à deux. La cour cantonale a confirmé le jugement pour le surplus.
C.
X._ SA (ci-après: la recourante) a exercé un recours en matière civile au Tribunal fédéral à l'encontre de cet arrêt. Elle a conclu à sa réforme en ce sens que la requête en convocation d'une assemblée générale formée par D._ Sàrl (ci-après: l'intimée) soit déclarée irrecevable, subsidiairement rejetée. Plus subsidiairement encore, elle a conclu à son annulation et au renvoi de la cause à l'autorité cantonale pour nouvelle décision au sens des considérants. Elle a présenté une requête d'effet suspensif.
L'intimée a conclu au rejet du recours et de la demande d'effet suspensif.
La cour cantonale s'en est remise à justice sur ces deux points.
L'effet suspensif a été accordé au recours par ordonnance du 29 novembre 2021.
La recourante a déposé une réplique spontanée, suscitant une duplique de l'intimée.

Considérant en droit :
1.
Interjeté en temps utile (art. 45 al. 1 et 100 al. 1 LTF) par la partie qui a succombé dans ses conclusions (<ref-law>), le recours est dirigé contre un arrêt final (<ref-law>) rendu sur appel par un tribunal cantonal supérieur (<ref-law>) dans une affaire civile de droit des sociétés (<ref-law>), dont la valeur litigieuse atteint le seuil de 30'000 fr. requis en la matière (<ref-law>). Le recours en matière civile est recevable au regard de ces dispositions.
2.
2.1. Le recours peut être formé pour violation du droit fédéral (<ref-law>). Le Tribunal fédéral applique le droit d'office (<ref-law>). Eu égard, toutefois, à l'exigence de motivation qu'impose l'<ref-law>, sous peine d'irrecevabilité (<ref-law>), il n'examine que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes (<ref-ruling> consid. 2). Le recourant doit discuter les motifs de la décision entreprise et indiquer précisément en quoi il estime que l'autorité précédente a méconnu le droit (<ref-ruling> consid. 2).
2.2. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). " Manifestement inexactes " signifie ici " arbitraires " (<ref-ruling> consid. 2; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi les conditions précitées seraient réalisées (<ref-ruling> consid. 1.3.1 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes en conformité avec les règles de procédure les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1).
En matière d'appréciation des preuves, il y a arbitraire lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables. L'arbitraire ne résulte pas du seul fait qu'une autre solution serait envisageable, voire préférable (<ref-ruling> consid. 4.2).
3.
Tout d'abord, la recourante, invoquant les art. 6 CEDH et 29 al. 2 Cst., se plaint d'une violation de son droit à la réplique à deux égards.
3.1. Le droit à la réplique est garanti par l'art. 29 al. 2 Cst. et l'art. 6 par. 1 CEDH (<ref-ruling> consid. 2.3). Le droit d'être entendu, ancré à l'art. 29 al. 2 Cst., garantit le droit pour une partie à un procès de prendre connaissance de toute argumentation présentée au tribunal et de se déterminer à son propos, que celle-ci contienne ou non de nouveaux éléments de fait ou de droit, et qu'elle soit ou non concrètement susceptible d'influer sur le jugement à rendre. Il appartient en effet aux parties, et non au juge, de décider si une prise de position ou une pièce nouvellement versée au dossier contient des éléments déterminants qui appellent des observations de leur part. Ce droit de réplique vaut pour toutes les procédures judiciaires. Toute prise de position ou pièce nouvelle versée au dossier doit dès lors être communiquée aux parties pour leur permettre de décider si elles veulent ou non faire usage de leur faculté de se déterminer (<ref-ruling> consid. 3.4.1; <ref-ruling> consid. 4.1.1; <ref-ruling> consid. 3.2; <ref-ruling> consid. 2.3.1).
En principe, la violation du droit d'être entendu entraîne l'annulation de la décision attaquée, indépendamment des chances de succès du recours sur le fond. Toutefois, le droit d'être entendu n'est pas une fin en soi; il doit permettre d'éviter qu'une procédure judiciaire ne débouche sur un jugement vicié en raison de la violation du droit des parties de participer à la procédure, notamment à l'administration des preuves. Lorsqu'on ne voit pas quelle influence la violation du droit d'être entendu a pu avoir sur la procédure, il n'y a pas lieu d'annuler la décision attaquée (<ref-ruling> consid. 1.4.1; arrêt 4A_216/2021 du 2 novembre 2021 consid. 4.1 et les arrêts cités).
La jurisprudence admet en outre qu'un manquement au droit d'être entendu puisse être considéré comme réparé lorsque la partie lésée a bénéficié de la faculté de s'exprimer librement devant une autorité de recours, pour autant que celle-ci dispose du même pouvoir d'examen que l'autorité inférieure et puisse ainsi contrôler librement l'état de fait et les considérations juridiques de la décision attaquée (<ref-ruling> consid. 2.8.1 et les arrêts cités). Une telle réparation doit rester l'exception et n'est en principe admissible que si l'atteinte aux droits procéduraux n'est pas particulièrement grave. En présence d'un vice grave, l'effet guérisseur de la procédure de recours peut également être reconnu lorsque le renvoi constituerait une vaine formalité et aboutirait à un allongement inutile de la procédure, ce qui serait incompatible avec l'intérêt de la partie concernée à ce que sa cause soit tranchée dans un délai raisonnable (<ref-ruling> consid. 2.8.1 et les arrêts cités).
3.2.
3.2.1. En l'espèce, dans un premier temps, la recourante soutient que le courrier du 25 février 2021 adressé par l'intimée au Tribunal de première instance ne lui a pas été transmis par le premier juge et ne figurait pas dans le jugement de première instance. Elle n'a découvert son existence qu'à la lecture de l'arrêt de la cour cantonale et n'a donc pas pu se déterminer à son égard.
Toutefois, par ce courrier, l'intimée se contentait de demander au tribunal s'il avait gardé la cause à juger ou s'il entendait " prononcer une ordonnance visant, par exemple, à l'audition des parties ". Ainsi, ce courrier se limitait à une question et ne comportait aucune prise de position quelconque. Le tribunal n'y a même pas donné suite. Dans ces conditions, on ne saurait retenir une violation du droit à la réplique propre à entraîner l'annulation d'une décision, contrairement à ce qu'invoque la recourante.
3.2.2. Dans un second temps, la recourante s'en prend au raisonnement suivant des juges cantonaux: ils ont admis que le Tribunal de première instance avait retenu dans son état de fait un fait survenu après qu'il ait gardé la cause à juger, à savoir l'arrêt du 23 décembre 2020 de la cour cantonale, sans en informer les parties; les juges cantonaux ont néanmoins considéré que le tribunal avait retenu " qu'il ressortait des pièces versées au dossier et notamment du formulaire 106 signé par les administrateurs de X._ SA et destiné à l'administration fiscale " que D._ Sàrl était actionnaire à 60 % de X._ SA. Les juges cantonaux ont ainsi retenu que le tribunal n'avait pas fondé son raisonnement sur le seul prononcé de l'arrêt précité, de sorte que les éventuelles observations de X._ SA sur cet arrêt n'auraient pas eu d'influence déterminante sur le raisonnement du tribunal. X._ SA avait en tout état eu l'occasion de se déterminer sur celui-ci en instance d'appel, étant rappelé que la cour cantonale disposait d'un plein pouvoir d'examen.
La recourante soutient que les juges cantonaux ne pouvaient pas décider a posteriori de l'influence, sur le raisonnement du premier juge, que des éventuelles déterminations auraient pu avoir. Elle ajoute que le tribunal s'est bel et bien fondé sur l'arrêt précité, ce qui lui a vraisemblablement permis de passer sous silence certaines problématiques.
Par son argumentation, se fondant principalement sur sa propre appréciation, la recourante ne parvient pas à démontrer une violation de son droit d'être entendue justifiant l'annulation de la décision attaquée. Il est possible de prendre en compte l'influence d'une violation du droit d'être entendu sur la procédure afin de déterminer si la décision attaquée doit ou non être annulée (cf. consid. 3.1 supra). Quoi qu'il en soit, les juges cantonaux ont considéré à juste titre qu'une telle violation avait pu être réparée dans le cadre de l'appel.
4.
Ensuite, la recourante fait valoir un déni de justice formel et une violation de son droit d'être entendue. Elle reproche à la cour cantonale de ne pas s'être prononcée sur la question de savoir s'il était nécessaire que l'intimée agisse par un représentant commun, en raison de la liquidation de la société simple existant entre A._, B._ et C._, pour requérir la convocation d'une assemblée générale. La recourante soutient qu'elle avait invoqué l'irrecevabilité de la requête en convocation de l'assemblée générale au motif que les 60 % d'actions dont se prévalait - à tort - l'intimée étaient entrés dans une masse en liquidation. Ainsi, l'intimée n'était pas légitimée à former une telle requête en l'absence d'un représentant commun.
4.1. Le droit d'être entendu consacré à l'art. 29 al. 2 Cst. implique pour l'autorité l'obligation de motiver sa décision. Selon la jurisprudence, il suffit que le juge mentionne, au moins brièvement, les motifs qui l'ont guidé et sur lesquels il a fondé sa décision, de manière à ce que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause (<ref-ruling> consid. 5.2; <ref-ruling> consid. 3.2.1). L'autorité n'a pas l'obligation d'exposer et de discuter tous les faits, moyens de preuve et griefs invoqués par les parties, mais peut au contraire se limiter à l'examen des questions décisives pour l'issue du litige (ATF <ref-ruling> consid. 3.2.1; <ref-ruling> consid. 3.2). La motivation peut pour le reste être implicite et résulter des différents considérants de la décision (ATF <ref-ruling> consid. 3.2.1). En revanche, une autorité se rend coupable d'un déni de justice formel prohibé par l'art. 29 al. 1 Cst. si elle ne se prononce pas sur un des chefs de conclusions de la demande, alors qu'elle devrait le faire (cf. <ref-ruling> consid. 4.2; arrêt 4A_198/2020 du 1er décembre 2020 consid. 4.1).
4.2. En l'espèce, les juges cantonaux ont considéré que l'intimée avait rendu vraisemblable sa titularité de 60 % des actions de X._ SA. Ils se sont fondés sur deux pièces. Ils ont ensuite relevé que la question de savoir s'il était nécessaire que l'intimée agisse par un représentant commun pour requérir la convocation d'une assemblée générale en raison de la prétendue liquidation de la société simple existant entre A._, B._ et C._ pouvait rester indécise. Pour les juges cantonaux, X._ SA, qui se basait essentiellement sur le jugement du tribunal du 27 août 2020, lequel avait été annulé par arrêt du 23 décembre 2020 de la cour cantonale, n'avait pas rendu suffisamment vraisemblable une telle nécessité.
4.3. Force est de constater que la cour cantonale a expliqué à satisfaction la raison pour laquelle elle n'a pas tranché la question précitée. En réalité, la recourante se prévaut surtout d'un prétendu " vice formel grave pouvant entraîner la nullité des décisions prises lorsqu'est litigieuse la détermination des droits de participation et de vote attachés aux actions dont plusieurs personnes [seraient] titulaires et qui auraient dû être représentées par un représentant commun en vertu de l'<ref-law> ". Cependant, dans une procédure tendant à une convocation d'une assemblée générale, telle qu'en l'espèce, le juge n'a pas à examiner la validité des décisions que l'assemblée générale sera amenée à prendre à la suite de la convocation (cf. consid. 5.1 infra). Le grief de la recourante doit ainsi être rejeté.
5.
La recourante dénonce encore une appréciation arbitraire des preuves et une violation de l'<ref-law>, dans la mesure où la cour cantonale a retenu que l'intimée avait rendu sa qualité d'actionnaire vraisemblable.
5.1.
Selon l'<ref-law>, un ou plusieurs actionnaires représentant ensemble 10 % au moins du capital-actions peuvent requérir la convocation de l'assemblée générale; des actionnaires qui représentent des actions totalisant une valeur nominale de 1 million de francs ou 10 % au moins du capital-actions (<ref-ruling> consid. 2) peuvent requérir l'inscription d'un objet à l'ordre du jour; la convocation et l'inscription d'un objet à l'ordre du jour doivent être requises par écrit en indiquant les objets de discussion et les propositions.
Conformément à l'<ref-law>, si le conseil d'administration ne donne pas suite à cette requête dans un délai convenable, la convocation est ordonnée par le juge, à la demande des requérants.
L'action prévue à l'<ref-law> fournit à l'actionnaire requérant, qui pâtit du comportement (passif) de l'administrateur, un instrument efficace pour défendre ses intérêts. Le juge saisi sur la base de cet article ne soumet la requête qu'à un examen formel; sa décision ne reconnaît que la simple vraisemblance ( Glaubhaftmachen) des conditions formelles de l'<ref-law>. Ainsi, dans cette procédure, le requérant peut se limiter à rendre simplement vraisemblable sa qualité d'actionnaire, le fait qu'il détient au moins le 10 % du capital-actions et qu'il a déjà sollicité sans succès une telle convocation auprès du conseil d'administration (<ref-ruling> consid. 3.1; arrêts 4A_508/2020 du 25 mars 2021 consid. 3.1 et 3.2; 4A_184/2019 du 15 juillet 2019 consid. 2.1; 4A_507/2014 du 15 avril 2015 consid. 5.6 et 5.6.2). Le juge n'a, en particulier, pas à se prononcer sur la validité des décisions que l'assemblée générale sera amenée à prendre à la suite de la convocation et inscription à l'ordre du jour; cette question ne doit être examinée que dans le cadre d'une éventuelle action en annulation ou en nullité des décisions prises par l'assemblée générale selon les <ref-law> (<ref-ruling> consid. 3.1; arrêts précités 4A_508/2020 consid. 3.1 et 4A_184/2019 consid. 2.1).
5.2. En l'espèce, la cour cantonale a jugé que l'intimée avait rendu vraisemblable sa titularité de 60 % des actions de X._ SA. Elle a considéré qu'il ne serait pas compréhensible que A._ et B._ aient signé le formulaire fiscal n° 106 destiné à l'Administration fédérale des contributions le 25 janvier 2019, attestant de ce qu'un dividende de 144'000 fr. avait été attribué à l'intimée en qualité de titulaire de 60 % du capital social de X._ SA, s'ils n'étaient pas d'accord avec son contenu. Il ressortait de ce formulaire qu'ils reconnaissaient, par leur signature, que l'intimée était titulaire de 60 % du capital-actions depuis le 22 septembre 2017. Or, X._ SA soutenait que l'intimée ne serait jamais devenue actionnaire et non pas qu'elle ne l'aurait plus été au dépôt de la requête en convocation d'une assemblée générale.
La cour cantonale a ajouté que l'intimée avait produit le certificat d'actions au porteur, constituant un indice supplémentaire en faveur de sa titularité desdites actions. X._ SA n'avait par ailleurs pas démontré que la conversion de plein droit des actions au porteur en actions nominatives au 1er mai 2021 ferait perdre à l'intimée son intérêt actuel à agir en convocation d'une assemblée générale.
5.3.
5.3.1. La recourante critique tout d'abord l'appréciation opérée par les juges cantonaux en lien avec le formulaire fiscal. Elle soutient qu'ils perdaient de vue qu'il portait sur l'année fiscale 2017, moment auquel la qualité d'actionnaire de l'intimée n'était pas contestable puisque, à cette date, " les rapports de société simple noués entre les parties " n'avaient pas encore été dissous. Elle ajoute que la qualité d'actionnaire entre C._ à titre personnel et l'intimée n'était pas claire. Elle conclut qu'il était arbitraire de lui opposer ses actions antérieures à la dissolution de la société simple: ce qui avait été fait en 2017 ne valait plus en 2021.
En tant que la recourante allègue que le formulaire portait sur l'année fiscale 2017 uniquement, elle se fonde sur un fait qui n'a pas été constaté par la cour cantonale. Or, pour obtenir un complètement de l'état de fait sur ce point, il lui appartenait d'exposer de façon précise, notamment par des renvois à ses écritures, avoir présenté ce point à la cour cantonale, ce qu'elle n'a pas fait. En outre, la recourante ne discute pas de l'argumentation des juges cantonaux, lesquels relevaient qu'elle avait soutenu que l'intimée ne serait jamais devenue actionnaire et non pas qu'elle ne l'aurait plus été au dépôt de la requête en convocation d'une assemblée générale. Elle fait désormais valoir que l'intimée (ou C._) aurait été actionnaire en 2017, mais que la situation aurait été différente en 2021. La cour cantonale n'a toutefois pas reconnu une quelconque dissolution de société simple dont se prévaut la recourante. Au final, cette dernière ne parvient pas à démontrer que l'appréciation des juges cantonaux en lien avec le formulaire précité serait arbitraire. Pour peu qu'il soit recevable, son grief doit être rejeté.
5.3.2. S'agissant du certificat d'actions au porteur, la recourante soutient que la cour cantonale a omis de prendre en compte les faits nouveaux qu'elle avait produits le 9 juin 2021, puisque l'état de fait s'arrêtait au 25 février 2021.
Tel n'est pas le cas. Sous la lettre B.d de son état de fait, la cour cantonale a détaillé sur plus d'une page le contenu de l'écriture du 9 juin 2021 de X._ SA, y compris les faits nouveaux allégués et les pièces nouvelles produites. La cour cantonale a ensuite déclaré ces pièces recevables, au considérant 2.2 de son arrêt.
Lorsque la recourante fait valoir que ces faits démontraient qu'à la suite de la suppression des titres au porteur, l'assemblée générale " avait entériné un nouveau registre des actionnaires retenant les trois associés de la société simple comme propriétaires en main commune des 60 % d'actions litigieux ", elle se fonde encore sur des faits qui n'ont pas été retenus par la cour cantonale. Là aussi, elle ne démontre pas, par un renvoi précis aux pièces du dossier, qu'elle les aurait présentés à l'instance précédente. Ils ne ressortent au demeurant pas expressément de son écriture du 9 juin 2021. Par ailleurs, la cour cantonale a relevé que X._ SA n'avait pas démontré que la conversion de plein droit des actions au porteur en actions nominatives au 1er mai 2021 ferait perdre à l'intimée son intérêt actuel à agir en convocation d'une assemblée générale. La recourante ne critique pas valablement ce point. Elle soutient qu'au vu du contexte litigieux, la simple possession du certificat au porteur, annulé, n'était pas suffisante pour rendre vraisemblable la qualité d'actionnaire de l'intimée. La cour cantonale ne s'est toutefois pas fondée exclusivement sur ce certificat au porteur pour retenir, sans arbitraire, que l'intimée avait rendu vraisemblable sa titularité de 60 % des actions de X._ SA.
6.
Enfin, la recourante reproche aux juges précédents d'avoir violé l'<ref-law> en laissant indécise la question de savoir si l'intimée devait agir par un représentant commun pour requérir la convocation d'une assemblée générale. Ce faisant, ils auraient également violé son droit à la contre-preuve découlant de l'<ref-law>. La recourante soutient que la cour cantonale aurait dû constater l'existence, puis la dissolution d'une société simple formée entre A._, B._ et C._, avant de trancher la question du représentant commun. Elle ajoute que si le jugement du 27 août 2020 du Tribunal de première instance, nommant un liquidateur à cette société simple, a été annulé par la cour cantonale par arrêt du 23 décembre 2020, cela n'était pas déterminant, puisque cette annulation reposait sur des motifs purement procéduraux.
6.1. Selon l'<ref-law>, lorsqu'une action est la propriété de plusieurs personnes, celles-ci ne peuvent exercer que par un représentant commun les droits attachés à leur titre.
6.2. La cour cantonale a considéré que la question de la nécessité d'un représentant commun pouvait rester ouverte, puisque X._ SA se fondait essentiellement sur un jugement qui avait été annulé par arrêt du 23 décembre 2020 et n'avait donc pas rendu cette nécessité suffisamment vraisemblable. Dans cet arrêt, les juges cantonaux avaient expressément retenu que tant l'existence d'une société simple, que sa dissolution, étaient litigieuses, de sorte qu'un liquidateur ne pouvait être nommé dans le cadre de la procédure intentée. Ainsi, ils n'ont pas reconnu la dissolution d'une telle société, comme la recourante pourrait tenter de le faire croire. Par ailleurs, le jugement du 27 août 2020 écartait précisément D._ Sàrl, intimée à la présente procédure, de la société simple qu'il avait retenue; l'arrêt du 23 décembre 2020 n'a pas remis en cause ce point concernant D._ Sàrl. Dans son argumentation, la recourante revient sur une prétendue dissolution de société simple formée par A._, B._ et C._, mais ne mentionne pas de manière claire l'intimée D._ Sàrl. Au vu de ce qui précède, la recourante ne démontre pas que la cour cantonale aurait violé le droit fédéral en laissant ouverte la question de savoir s'il était nécessaire que l'intimée agisse par un représentant commun pour requérir la convocation d'une assemblée générale.
7.
En définitive, le recours doit être rejeté, dans la mesure où il est recevable.
La recourante, qui succombe, prendra en charge les frais judiciaires (<ref-law>). Elle versera en outre une indemnité de dépens à l'intimée (art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 7'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 8'000 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Chambre civile de la Cour de justice du canton de Genève.
Lausanne, le 28 février 2022
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Hohl
La Greffière : Raetz