Ich gehe einfach mal davon aus, dass das C ist, evtl. C++.
Was sollen die ganzen '%%' in den IF-Abfragen? Sollten das denn nicht auch '&&' sein? Des Weiteren würde ich mal sagen, dass man in C Strings nicht per "==" vergleichen kann.
Was du machen könntest, wäre alles zu einem String zusammen zu kopieren, damit quase "AuthenticAMD" an einem Stück ist.
Bei den Variablen bin ich mir nicht ganz sicher, aber diese müssten (denke ich mir mal so) alles Arrays mit 4 Feldern sein, da EAX, EBX sowie ECX immer 4 Buchstaben enthalten. (*EDIT* Bsp.: char EAX[4]; *EDIT*)
Gruß Christian
PS: Es würde helfen, wenn du Grob sagen kannst, was funktioniert und was nicht. z.B. cpuid_check funktioniert oder so...