USB, leuk
Vanaf regel 10050 staat 'gewoon' informatie over USB. Ik herken de 05010906, dat is in USB HID (Human interface devices) het identificatiestukje. Meer informatie is daar wel te vinden, maar houd het maar even op "Heey, ik ben een toetsenbord". Waarschijnlijk staat dat gewoon ergens gedeclareerd als char usb_identification[] = { 0x05, 0x01, 0x09, 0x06 ...}. Naast dat stukje ID, wordt er nog wat meer doorgestuurd, (het is een HID, usb1.1 oid), wat vooraf gestuurd wordt. Vandaar dat op 10050 dat nog niet direct staat
Maar aangezien daar iets van data staat, zal er wel meer bij staan. Ik heb zelf gezocht op 360, wat volgens de
USB HID Usage Tables ergens 20, 23, 27 is. Dat blijkt op regel 10059, 1005A te staan. De 37 die daarachter komt, is een '.'. De 020008, tsja. 02 kan ik niet plaatsen, maar ik vermoed shift, 08 is de 'e'. De 18 daaropvolgend de 'u'. 2C zou een spatie moeten zijn, 39 capslock en 28 een enter. Beetje crap dus, maar het is gedeeltelijk terug te vinden
Terugrekeken zegt dan ook dat op 10056, 02000B staat, wat de h is van http

Daarvoor wrdt nog 020000 gedaan (geen idee, ik denk shift), 000039 (capslock volgens HUT), 080015 (iets met R, dus win+R), 08000A (win+G?

) en 058103, redelijk useless

Dus ga maar even uit dat 08000A het eerste is.
Goed, 32 keys dus, dus dat moet te doen zijn. Je weet wat een 'shift' is, wat een enter is, etc
Punt is alleen, volgens de USB HID Spec wordt er een bericht verstuurd, bijvoorbeeld 000100h, waarin bit g16 hoog dus hoog staat. Dat betekend dat de status van die key is veranderd (ofwel press, ofwel release), en die bit 2x gezet moet worden. Dat ga je ofcourse niet in de data zetten (waste of space), dus in de applicatie en dat toggle je daar dan wel. Ik vermoed dat dat ergens vanaf 10069 staat, maar van het IC'tje is er geen datasheet dus dat kan ik niet vinden.
Maargoed, ga er maar even vanuit dat er ergens een lusje zit die de data af gaat. Dat is ofwel 32d, ofwel 32d*2. Makkelijker is een setdata(); send(); send();, beter dan if(counter%1) setdata(); senddata(); (let, geen accolades). Goed, dus je zoekt voor 32.
Dus dan zoek je in de vermoedelijke broncode op 20 (32d=20h

) Nu ga je er even vanuit dat je een 8bitter hebt. Assumption is the mother of all fuckup's, maar iets anders is nog dommer
Op 1006E zit er eentje,
10072 drie (eerste hoort bij de 10072

), tweede en derde hebben geen juiste offset voor een 8bit instructie. 10074 (juiste offset)
10075 (verkeerde offset)
10077 (juiste offset)
10078 (verkeerde offset)
10079 (verkeerde offset)
1007B (verkeerde offset)
1007F (verkeerde offset)
Hoe ik het vervolgens zou testen, is vervang van de key's (alle?

) door een kale enter. Vervolgens ga je de 20 op regel 6E, 74 en 77 aanpassen (stuk voor stuk

), en kijken hoeveel enters je binnen krijgt
Laat het in ieder geval even weten hoe het gaat