diff --git a/config/function_inventory.tsv b/config/function_inventory.tsv new file mode 100644 index 0000000..d7502d0 --- /dev/null +++ b/config/function_inventory.tsv @@ -0,0 +1,2879 @@ +# Syphon Filter 3 (USA) function-boundary inventory. +# Columns: addresscomma-separated evidence grades. +# Grades: entry, jal, prologue, ghidra. Addresses only; no bytes. +# Library-versus-game-code is unresolved; no grade answers it. +0x80010010 jal,prologue,ghidra +0x8001029C jal,prologue,ghidra +0x8001035C jal,prologue,ghidra +0x80010418 jal,ghidra +0x80010444 jal,prologue,ghidra +0x80010654 jal,ghidra +0x80010698 jal,ghidra +0x80010750 jal,ghidra +0x800107B4 jal,ghidra +0x80010810 jal,ghidra +0x8001084C jal,prologue,ghidra +0x80010B14 jal,ghidra +0x80010C44 jal,ghidra +0x80010F30 jal,ghidra +0x80011084 jal,ghidra +0x800110E0 jal,ghidra +0x800111B0 jal,prologue,ghidra +0x8001132C ghidra +0x80011384 jal,ghidra +0x80011484 jal,ghidra +0x80011508 jal,prologue,ghidra +0x80012780 jal +0x8001278C jal,prologue,ghidra +0x800127F0 jal,ghidra +0x8001281C jal,ghidra +0x80012834 jal,prologue,ghidra +0x8001289C jal,prologue,ghidra +0x800128E4 jal,prologue,ghidra +0x80012918 jal,prologue,ghidra +0x80012960 jal,prologue,ghidra +0x800129C8 jal,prologue,ghidra +0x80012A10 jal,ghidra +0x80012A48 jal,ghidra +0x80012A98 jal +0x80012AE0 jal,ghidra +0x80012B20 jal,ghidra +0x80012B88 jal,prologue,ghidra +0x80012CFC jal +0x80012D54 jal,ghidra +0x80012D8C jal,ghidra +0x80012DBC jal,ghidra +0x80012DE8 jal,prologue,ghidra +0x80012E84 jal,prologue,ghidra +0x80012F24 jal,ghidra +0x80012F80 jal,prologue +0x80013024 jal,prologue,ghidra +0x80013114 jal,ghidra +0x80013154 jal,prologue,ghidra +0x80013524 jal +0x800137C8 jal,ghidra +0x800138CC jal,ghidra +0x800138D8 prologue +0x800139E4 jal,prologue,ghidra +0x80013AF0 jal,prologue,ghidra +0x80013B80 jal,prologue,ghidra +0x80013C88 jal,ghidra +0x80013C90 jal,prologue,ghidra +0x80013D04 jal,prologue,ghidra +0x80013D44 jal,prologue,ghidra +0x80014054 jal,prologue,ghidra +0x80014258 jal,ghidra +0x800142CC prologue +0x800142F4 jal,ghidra +0x80014FE8 jal,ghidra +0x800150A0 jal,prologue,ghidra +0x800152AC jal,ghidra +0x800152B0 prologue +0x8001587C jal,prologue,ghidra +0x8001590C jal,prologue,ghidra +0x80015950 jal,ghidra +0x80015A2C jal,prologue,ghidra +0x80015B88 jal,ghidra +0x80015B8C prologue +0x80015CC0 jal,prologue,ghidra +0x80015D50 jal,ghidra +0x80015DBC jal,prologue,ghidra +0x80015FC8 jal,prologue,ghidra +0x800160E8 jal +0x80016110 jal +0x80016120 jal +0x80016158 jal +0x80016174 jal,ghidra +0x80016198 jal,ghidra +0x800161E0 jal,ghidra +0x80016224 jal,ghidra +0x80016268 jal,ghidra +0x800162B4 jal,prologue,ghidra +0x8001644C jal,prologue,ghidra +0x800164EC jal,prologue,ghidra +0x80016660 jal,ghidra +0x80016704 jal,prologue,ghidra +0x80016954 jal,ghidra +0x80016BD4 jal,ghidra +0x80016DCC jal,ghidra +0x80016E24 jal,prologue,ghidra +0x80016E50 jal +0x80016E68 jal,prologue +0x80016F18 jal,ghidra +0x80016F80 jal,ghidra +0x80016F88 prologue +0x8001703C jal,prologue,ghidra +0x800170C0 jal,prologue,ghidra +0x80017108 jal,ghidra +0x800171D8 jal,ghidra +0x80017200 jal,ghidra +0x8001758C jal,prologue +0x8001761C jal,ghidra +0x80017660 jal,prologue,ghidra +0x8001778C jal,prologue,ghidra +0x800179B8 jal +0x800179CC jal +0x800179D4 jal,ghidra +0x800179E0 jal,prologue,ghidra +0x80017A38 jal,prologue,ghidra +0x80017A80 jal,ghidra +0x80017AD4 jal,ghidra +0x80017AE8 jal,ghidra +0x80017AF8 jal,prologue,ghidra +0x80017B50 jal,prologue,ghidra +0x80017B98 jal +0x80017C50 jal +0x80017C60 jal +0x80017C6C jal +0x80017D1C jal,ghidra +0x80017D48 jal,ghidra +0x80017D88 jal,prologue,ghidra +0x80017DD0 jal,prologue,ghidra +0x80017DF0 jal,ghidra +0x80017E38 jal,ghidra +0x80017F7C prologue +0x800180D8 jal,prologue,ghidra +0x80018210 jal,prologue,ghidra +0x80018284 jal,ghidra +0x800182D4 jal +0x800182F4 jal,ghidra +0x80018384 jal,prologue,ghidra +0x800183B8 jal,prologue,ghidra +0x800183EC jal,ghidra +0x80018458 jal,ghidra +0x80018560 jal,prologue,ghidra +0x80018728 jal,prologue,ghidra +0x8001896C jal,prologue,ghidra +0x800189E8 jal,prologue,ghidra +0x80018CB0 jal,ghidra +0x80018D28 jal,prologue,ghidra +0x800192D8 jal,prologue,ghidra +0x800194A8 jal,prologue,ghidra +0x800196B4 jal,prologue,ghidra +0x80019700 jal,prologue,ghidra +0x80019738 jal,ghidra +0x80019740 prologue +0x80019808 jal,prologue,ghidra +0x800198C0 jal,ghidra +0x800198F4 jal,ghidra +0x800199D0 jal,prologue,ghidra +0x80019B6C jal,ghidra +0x80019B94 jal,ghidra +0x80019C04 jal,ghidra +0x80019C10 jal,ghidra +0x8001AA9C jal +0x8001AAA8 jal,prologue,ghidra +0x8001AB24 jal,prologue,ghidra +0x8001AC10 jal,prologue,ghidra +0x8001ADC4 jal,ghidra +0x8001AE3C jal,ghidra +0x8001AE50 jal,prologue,ghidra +0x8001B10C jal,prologue,ghidra +0x8001B94C jal +0x8001B994 jal,prologue,ghidra +0x8001BC50 jal,prologue,ghidra +0x8001C0B0 jal,prologue,ghidra +0x8001C1EC jal,prologue,ghidra +0x8001C450 jal,prologue,ghidra +0x8001C634 jal,prologue,ghidra +0x8001C8AC jal,ghidra +0x8001CB3C jal,ghidra +0x8001CDA0 jal,prologue,ghidra +0x8001CE40 jal,ghidra +0x8001CE70 jal,prologue,ghidra +0x8001D7B0 jal,prologue,ghidra +0x8001D98C jal,prologue,ghidra +0x8001DB40 jal,ghidra +0x8001DC20 jal,ghidra +0x8001DC68 jal,ghidra +0x8001DD04 jal,ghidra +0x8001DD30 prologue +0x8001DDBC prologue +0x8001DECC jal,ghidra +0x8001E07C jal,prologue,ghidra +0x8001EAFC jal +0x8001F4C0 ghidra +0x8001F920 jal,ghidra +0x8001F9BC jal,ghidra +0x8001FAFC jal,ghidra +0x8001FB90 jal,ghidra +0x8001FD38 jal,prologue,ghidra +0x8001FECC jal,prologue,ghidra +0x80020E6C jal,ghidra +0x80020F9C jal,ghidra +0x800210B0 jal,prologue,ghidra +0x800213C8 jal,prologue,ghidra +0x80021588 jal,prologue,ghidra +0x80021B20 jal +0x80021BA8 jal,ghidra +0x80021BB0 prologue +0x80021C64 jal,prologue,ghidra +0x80021CDC jal,prologue,ghidra +0x80021D90 jal,prologue,ghidra +0x80021E6C jal,ghidra +0x80021E70 prologue +0x80021F24 jal,ghidra +0x80021F30 prologue +0x80021F50 jal +0x80021F64 jal,ghidra +0x80021F68 prologue +0x80021F88 jal,ghidra +0x80021FA8 jal,ghidra +0x80021FF4 jal,prologue,ghidra +0x8002203C jal,prologue,ghidra +0x800228D8 jal,prologue,ghidra +0x80022A60 jal,ghidra +0x80022A98 jal,prologue,ghidra +0x80022BCC jal,ghidra +0x80022D30 prologue +0x80022E44 jal,ghidra +0x80022E78 jal,prologue +0x80022F20 jal,ghidra +0x80022FB8 jal +0x80022FCC jal,prologue,ghidra +0x80022FFC jal,ghidra +0x80023080 jal,prologue,ghidra +0x800230E4 jal,ghidra +0x8002311C jal,prologue,ghidra +0x800231BC jal,prologue,ghidra +0x80023374 jal,ghidra +0x800235C0 jal,prologue,ghidra +0x800236F8 jal,prologue,ghidra +0x800237B4 jal,prologue,ghidra +0x800238BC jal,prologue,ghidra +0x800239C4 jal,prologue,ghidra +0x80023A4C jal,prologue,ghidra +0x80023AB0 jal,ghidra +0x80023BF4 jal,prologue,ghidra +0x80023CAC jal,ghidra +0x80023D40 jal,ghidra +0x80023DA8 jal,prologue,ghidra +0x80024494 jal,prologue,ghidra +0x800245D8 jal,prologue,ghidra +0x80024630 jal,ghidra +0x80024668 jal,prologue,ghidra +0x800247A4 jal,prologue,ghidra +0x80024838 jal,prologue +0x80024894 jal,prologue,ghidra +0x8002497C jal,prologue,ghidra +0x80024B28 jal,ghidra +0x80024C14 jal,prologue,ghidra +0x80024C34 jal,prologue,ghidra +0x80024E28 jal,prologue,ghidra +0x80024E80 jal +0x80024F6C jal,prologue +0x8002504C prologue +0x80025070 jal,prologue,ghidra +0x800250AC jal,prologue,ghidra +0x8002515C jal,prologue,ghidra +0x80025198 jal,prologue,ghidra +0x800254B0 jal,prologue +0x800254EC jal,prologue,ghidra +0x800256F0 jal,prologue +0x80025758 jal,prologue,ghidra +0x800257A8 jal,ghidra +0x800258D4 jal,prologue,ghidra +0x800259A0 jal,prologue,ghidra +0x800259DC jal,prologue,ghidra +0x80025A2C jal,prologue,ghidra +0x80025ADC jal,prologue,ghidra +0x80025B64 jal,prologue,ghidra +0x80025D20 jal,prologue,ghidra +0x80025DC4 jal,prologue,ghidra +0x80025E54 jal,prologue,ghidra +0x80025EAC jal,prologue +0x80025F10 jal,prologue +0x80025FE4 jal,prologue,ghidra +0x80026180 jal,ghidra +0x800261C0 jal,ghidra +0x8002622C jal,ghidra +0x80026258 jal,ghidra +0x80026264 jal,ghidra +0x80026274 jal,ghidra +0x800262E0 jal +0x800262EC jal,ghidra +0x800262F8 jal +0x80026304 jal,ghidra +0x800263A8 jal,ghidra +0x800263E8 jal,ghidra +0x80026460 jal,ghidra +0x800264C4 jal,ghidra +0x80026560 jal,prologue,ghidra +0x80026650 jal,prologue,ghidra +0x800266A8 jal,ghidra +0x800266EC jal,ghidra +0x800267C0 jal,ghidra +0x800267CC jal,ghidra +0x800267D0 prologue +0x800268C4 jal +0x800268F4 jal,prologue +0x8002697C jal,ghidra +0x80026A04 jal,prologue,ghidra +0x80026A9C jal,prologue,ghidra +0x80026C2C jal,ghidra +0x80026C7C jal,prologue,ghidra +0x80026E10 jal,prologue +0x80026E94 jal,prologue,ghidra +0x80026F14 jal,ghidra +0x80026F3C prologue +0x8002705C prologue +0x800270D4 jal,prologue +0x80027178 jal,prologue,ghidra +0x800272C8 jal,prologue +0x80027430 jal,prologue +0x8002753C prologue +0x800275CC jal,prologue +0x80027644 prologue +0x800276B0 jal,ghidra +0x800276D4 jal,ghidra +0x80027744 jal,ghidra +0x800277AC jal,prologue +0x800278F8 jal,prologue,ghidra +0x800279E4 jal +0x80027AB8 jal,prologue,ghidra +0x80027BE8 jal,prologue,ghidra +0x80027C44 jal,prologue,ghidra +0x80027CA0 jal,prologue,ghidra +0x80027D00 jal,ghidra +0x80027D88 jal,ghidra +0x80027E1C jal,ghidra +0x80027ECC jal,prologue,ghidra +0x80027FD4 jal,prologue,ghidra +0x800280DC jal,prologue,ghidra +0x80028150 jal,prologue,ghidra +0x800281A4 jal,ghidra +0x800281E4 jal,ghidra +0x800282EC jal,prologue,ghidra +0x80028344 jal,prologue,ghidra +0x800283F4 jal,ghidra +0x8002864C jal,prologue,ghidra +0x80028698 jal,prologue,ghidra +0x80028750 jal,prologue,ghidra +0x80028844 jal,prologue,ghidra +0x800289B4 jal,ghidra +0x80028AD4 jal +0x80028C34 jal,prologue,ghidra +0x80028CE0 jal,prologue,ghidra +0x80028DD4 jal,ghidra +0x80029054 jal,ghidra +0x800290D0 jal,prologue,ghidra +0x800290F0 jal,prologue,ghidra +0x80029118 jal,ghidra +0x800292AC jal,prologue,ghidra +0x800295D4 jal,ghidra +0x800297F4 jal,prologue,ghidra +0x800298C0 jal,ghidra +0x80029A48 jal,prologue,ghidra +0x80029C84 jal,prologue,ghidra +0x80029E88 jal,prologue,ghidra +0x80029ED8 jal,prologue,ghidra +0x80029FB8 jal,prologue,ghidra +0x8002A9D4 jal,ghidra +0x8002AA18 prologue +0x8002AAD8 jal,ghidra +0x8002AAE0 prologue +0x8002AC84 jal,ghidra +0x8002AC88 prologue +0x8002ACBC jal,prologue +0x8002AE80 prologue +0x8002AEAC jal,prologue,ghidra +0x8002B138 jal,ghidra +0x8002B608 jal,prologue,ghidra +0x8002B924 jal,prologue,ghidra +0x8002BA50 jal,ghidra +0x8002BA54 prologue +0x8002BC20 jal,prologue,ghidra +0x8002BCE8 jal,prologue,ghidra +0x8002BD80 jal,prologue,ghidra +0x8002BE6C jal,prologue,ghidra +0x8002C22C jal,prologue,ghidra +0x8002C30C jal,ghidra +0x8002C314 prologue +0x8002C3D0 prologue +0x8002C3F8 jal,prologue,ghidra +0x8002C6EC jal,ghidra +0x8002C728 jal,ghidra +0x8002C72C prologue +0x8002C764 jal,prologue,ghidra +0x8002C7BC jal,ghidra +0x8002C7EC jal,ghidra +0x8002C888 jal,ghidra +0x8002C894 jal,ghidra +0x8002C930 jal,ghidra +0x8002CB84 jal,ghidra +0x8002CC50 jal,prologue,ghidra +0x8002CD94 jal,ghidra +0x8002CD9C prologue +0x8002CED0 jal,ghidra +0x8002CED4 prologue +0x8002D014 jal +0x8002D060 jal +0x8002D0A8 jal,ghidra +0x8002D17C jal,ghidra +0x8002D180 prologue +0x8002D1F8 jal,ghidra +0x8002D22C prologue +0x8002D288 jal,ghidra +0x8002D2A0 jal,ghidra +0x8002D2BC jal,ghidra +0x8002D2D4 prologue +0x8002D364 jal,ghidra +0x8002D3F4 jal,ghidra +0x8002D5D0 jal +0x8002D608 jal,prologue,ghidra +0x8002D828 jal,ghidra +0x8002D82C prologue +0x8002D9E0 jal,ghidra +0x8002DA48 jal,prologue +0x8002DB40 jal,prologue +0x8002DCA8 jal,ghidra +0x8002DD14 jal,prologue,ghidra +0x8002DE28 jal +0x8002DEB4 jal +0x8002DF1C jal,ghidra +0x8002DF84 jal,prologue +0x8002E028 jal +0x8002E070 jal,ghidra +0x8002E0D8 jal +0x8002E0E0 prologue +0x8002E198 jal,prologue,ghidra +0x8002E24C jal,ghidra +0x8002E254 prologue +0x8002E3A8 jal,ghidra +0x8002E3B8 prologue +0x8002E3FC jal,ghidra +0x8002E44C jal,ghidra +0x8002E454 prologue +0x8002E4C8 jal,ghidra +0x8002E4F8 prologue +0x8002E528 jal,ghidra +0x8002E530 prologue +0x8002E7C4 jal +0x8002E7E4 prologue +0x8002E870 jal,ghidra +0x8002E87C prologue +0x8002E8EC jal,ghidra +0x8002E968 jal,ghidra +0x8002E9AC jal,prologue,ghidra +0x8002E9F4 jal,ghidra +0x8002E9FC prologue +0x8002EBC4 jal,prologue,ghidra +0x8002EF54 jal,ghidra +0x8002F0D0 jal,ghidra +0x8002F160 jal,prologue,ghidra +0x8002F1A4 jal +0x8002F1D8 jal,prologue +0x8002F2F8 jal,ghidra +0x8002F300 jal,prologue +0x8002F404 jal +0x8002F450 jal,prologue +0x8002FAB8 jal,ghidra +0x8002FB54 jal,ghidra +0x8002FBC0 jal,ghidra +0x8002FCD0 jal,prologue,ghidra +0x8002FD4C jal,prologue,ghidra +0x8002FDC8 jal,prologue,ghidra +0x8002FE3C jal,prologue,ghidra +0x80030000 jal,prologue,ghidra +0x800301FC jal,prologue,ghidra +0x8003022C jal,prologue,ghidra +0x80030284 jal,prologue,ghidra +0x800302DC jal,prologue,ghidra +0x80030358 jal,ghidra +0x80030390 jal,ghidra +0x80030414 jal,prologue,ghidra +0x800304D8 jal,prologue,ghidra +0x80030630 jal,prologue,ghidra +0x800307FC jal,prologue,ghidra +0x80030858 jal,prologue,ghidra +0x800308C4 jal,prologue,ghidra +0x800309CC jal,prologue,ghidra +0x80030B64 jal,prologue,ghidra +0x8003126C jal,ghidra +0x800313D8 jal,prologue,ghidra +0x80031684 jal,prologue,ghidra +0x800319F0 jal,prologue,ghidra +0x80031A48 jal,prologue,ghidra +0x80031B18 jal,prologue,ghidra +0x80031BBC jal,prologue,ghidra +0x80031CC0 jal,prologue,ghidra +0x80031EBC jal,ghidra +0x80031F2C jal,ghidra +0x80031F78 jal,ghidra +0x80031FC4 jal,prologue,ghidra +0x800320D8 jal,prologue,ghidra +0x800321EC jal,ghidra +0x800321F8 jal,ghidra +0x80032258 jal,prologue,ghidra +0x80032300 jal,ghidra +0x800323E4 jal,prologue,ghidra +0x800324B0 jal,ghidra +0x80032540 jal,prologue,ghidra +0x80033040 jal,ghidra +0x800331D4 jal,prologue,ghidra +0x800335E8 prologue +0x80033700 jal,prologue,ghidra +0x80033ADC jal,prologue,ghidra +0x80033DC8 jal,ghidra +0x80033F30 jal,ghidra +0x80034638 jal,prologue,ghidra +0x80034A80 jal,ghidra +0x80034ABC jal,prologue,ghidra +0x80034E50 jal,prologue,ghidra +0x80034FCC jal,prologue,ghidra +0x800354F8 jal,prologue,ghidra +0x80035548 prologue +0x8003570C jal,prologue,ghidra +0x800357D4 jal,prologue,ghidra +0x80036134 jal,prologue,ghidra +0x8003622C prologue +0x80036278 jal,prologue +0x80036308 jal,prologue +0x80036328 jal,prologue +0x8003636C jal,ghidra +0x80036378 jal +0x80036380 jal,ghidra +0x80036390 jal,prologue,ghidra +0x80036A0C jal,prologue,ghidra +0x80036A54 jal,prologue,ghidra +0x80036A9C jal,ghidra +0x80036AD8 jal,ghidra +0x80036B14 jal,prologue,ghidra +0x80036DA4 jal,prologue,ghidra +0x80036F70 jal,prologue,ghidra +0x8003713C jal,prologue,ghidra +0x800372A0 jal,prologue,ghidra +0x800373C8 jal,prologue,ghidra +0x800374F8 jal,ghidra +0x8003768C jal,ghidra +0x800376CC jal,ghidra +0x80037770 jal,prologue,ghidra +0x80037878 jal,prologue,ghidra +0x80037984 jal,prologue,ghidra +0x800379E0 jal,prologue +0x80037A40 prologue +0x80037B44 prologue +0x80037B98 jal,prologue,ghidra +0x80037F94 jal,prologue,ghidra +0x8003870C jal,prologue +0x80038788 jal +0x80038790 jal +0x8003879C jal,prologue,ghidra +0x80038BD4 jal,prologue,ghidra +0x80038D48 jal,ghidra +0x80038DD8 jal,prologue,ghidra +0x80038F58 jal,prologue,ghidra +0x80039168 jal,prologue,ghidra +0x80039308 jal,ghidra +0x80039354 jal,prologue,ghidra +0x800393E0 jal +0x80039534 jal,prologue,ghidra +0x8003993C prologue +0x800399E4 prologue +0x80039AE4 jal,prologue,ghidra +0x80039C18 prologue +0x8003A5F4 jal,ghidra +0x8003A644 jal,ghidra +0x8003A6E0 jal,prologue,ghidra +0x8003A7F8 jal,prologue,ghidra +0x8003A9C8 jal,prologue,ghidra +0x8003AAE8 jal +0x8003AB20 jal,prologue +0x8003ABB4 jal,prologue +0x8003AC00 prologue +0x8003AD70 prologue +0x8003B178 jal,prologue,ghidra +0x8003B2F0 jal,ghidra +0x8003B320 jal,prologue,ghidra +0x8003B34C jal,ghidra +0x8003B354 prologue +0x8003B488 prologue +0x8003C590 jal +0x8003C7C0 jal +0x8003CB3C prologue +0x8003CB64 prologue +0x8003CB8C jal +0x8003CBE4 jal,prologue +0x8003D224 prologue +0x8003D2A0 prologue +0x8003D310 jal,ghidra +0x8003D4B8 prologue +0x8003D594 jal,prologue,ghidra +0x8003D708 prologue +0x8003DBE0 jal +0x8003DF80 prologue +0x8003EA88 prologue +0x8003EB18 jal,ghidra +0x8003EB84 prologue +0x8003EBAC jal,prologue,ghidra +0x8003F010 jal,prologue +0x8003F190 jal,prologue,ghidra +0x8003F5BC prologue +0x8003F700 prologue +0x8003F7CC jal,ghidra +0x8003F9B8 jal,prologue,ghidra +0x8003FC78 jal,prologue,ghidra +0x8003FD00 jal,prologue,ghidra +0x80040884 jal,prologue,ghidra +0x80040E04 prologue +0x80041190 jal,ghidra +0x80041610 jal,ghidra +0x80041688 jal,ghidra +0x800419D0 jal +0x80041A24 jal,prologue +0x80041A58 jal,prologue +0x80041DA0 jal +0x80041DA8 prologue +0x80041FE4 jal,prologue,ghidra +0x80042088 jal,ghidra +0x80042090 prologue +0x80042138 jal,prologue,ghidra +0x800421BC jal,prologue,ghidra +0x800422B8 prologue +0x8004247C prologue +0x800424EC prologue +0x80042964 jal +0x8004296C prologue +0x800429B0 jal +0x800429B8 prologue +0x800429F0 prologue +0x80042A54 jal +0x80042A90 jal,prologue +0x80042BC0 prologue +0x80042CE0 jal,ghidra +0x80042D64 jal,ghidra +0x80042D88 jal,ghidra +0x80042DD4 jal,ghidra +0x80042E10 jal,ghidra +0x80042E68 jal,ghidra +0x80042EB4 prologue +0x80042FF0 jal +0x8004331C jal,ghidra +0x800433B0 jal,prologue,ghidra +0x80043404 jal +0x8004345C jal,prologue,ghidra +0x80043554 jal,prologue,ghidra +0x800437CC jal,prologue,ghidra +0x8004388C jal,ghidra +0x800439D8 jal,prologue,ghidra +0x80043AE4 jal,ghidra +0x80043B80 jal,ghidra +0x80043D8C jal,ghidra +0x80043DC4 jal,ghidra +0x80043E98 jal,prologue,ghidra +0x80044610 jal,prologue,ghidra +0x800447B4 jal,prologue,ghidra +0x80044B90 jal,ghidra +0x80044C54 jal,prologue,ghidra +0x80044D78 jal +0x80044F58 jal,ghidra +0x80044FA4 jal,ghidra +0x800450C4 jal,ghidra +0x80045110 jal,ghidra +0x80045230 jal,prologue,ghidra +0x80045388 jal,ghidra +0x800453C0 jal,ghidra +0x800453F8 jal +0x800454C8 jal +0x80045540 jal +0x800455CC prologue +0x80045748 prologue +0x80045948 prologue +0x80045A5C prologue +0x80045AC8 prologue +0x80045B6C prologue +0x80045CA0 jal +0x80045CA8 prologue +0x80045D84 jal +0x80045D8C prologue +0x80045E48 jal,ghidra +0x80045F1C jal,prologue,ghidra +0x80045FD8 jal +0x800460AC jal +0x800460D4 jal +0x80046198 jal,prologue +0x800461E8 jal +0x80046278 jal,prologue +0x80046348 jal,prologue +0x800463F8 prologue +0x80046770 prologue +0x800467A4 prologue +0x80046884 jal +0x8004688C prologue +0x80046A18 jal +0x80046AD8 jal +0x80046BCC jal,ghidra +0x80046BD4 prologue +0x80046CCC jal +0x80046CD4 prologue +0x80046DBC jal +0x80046EE8 jal,prologue,ghidra +0x8004702C jal,ghidra +0x80047190 jal,ghidra +0x800472E8 jal +0x80047368 prologue +0x800473F4 prologue +0x80047468 jal,ghidra +0x800474B0 jal,ghidra +0x800475CC jal +0x80047640 prologue +0x8004780C jal,prologue +0x80047984 jal +0x80047A14 jal,prologue +0x80047DE0 jal,prologue +0x80047F4C jal,prologue +0x80048128 jal +0x80048180 jal,prologue +0x8004820C jal,prologue +0x8004824C prologue +0x8004832C prologue +0x80048350 jal,prologue +0x80048394 prologue +0x8004857C jal +0x80048618 prologue +0x80048684 jal,prologue +0x800489D8 jal,ghidra +0x800489E0 prologue +0x80048B84 jal,prologue +0x80048C20 prologue +0x80048DA8 jal,prologue +0x80048E20 jal,prologue +0x80048E70 jal,ghidra +0x80048E78 prologue +0x800491FC jal,prologue +0x80049298 jal +0x800496CC jal,ghidra +0x8004970C jal,prologue,ghidra +0x80049CB0 jal,prologue,ghidra +0x80049FE4 jal,prologue,ghidra +0x8004A0E8 jal,ghidra +0x8004A1E0 jal,prologue,ghidra +0x8004A278 jal,prologue,ghidra +0x8004AAF0 jal,prologue,ghidra +0x8004AC88 jal,prologue,ghidra +0x8004B438 jal,prologue,ghidra +0x8004B64C jal,prologue,ghidra +0x8004C000 jal +0x8004C060 jal,ghidra +0x8004C090 jal,ghidra +0x8004C0AC jal,ghidra +0x8004C0F0 jal,ghidra +0x8004C3BC jal,ghidra +0x8004C400 jal +0x8004C800 jal +0x8004CAD8 prologue +0x8004CEEC jal,ghidra +0x8004CF0C jal,ghidra +0x8004D5CC jal,ghidra +0x8004D7C8 jal,prologue,ghidra +0x8004D8A4 jal,prologue,ghidra +0x8004DD74 jal,ghidra +0x8004DD7C prologue +0x8004E24C jal,prologue,ghidra +0x8004E3FC jal,prologue,ghidra +0x8004E440 prologue +0x8004EC04 prologue +0x8004ED90 jal,prologue,ghidra +0x8004F2F8 jal,prologue,ghidra +0x8004FE38 jal,prologue,ghidra +0x800501DC jal,prologue,ghidra +0x800504E4 jal,ghidra +0x80050548 jal,prologue,ghidra +0x80050604 jal,ghidra +0x80050674 jal,ghidra +0x800506E4 jal,prologue,ghidra +0x800507A0 jal,prologue,ghidra +0x8005085C jal,ghidra +0x800508CC jal,ghidra +0x80050998 jal +0x80050BF4 jal,prologue +0x80050CA8 jal,prologue,ghidra +0x80050D20 prologue +0x80050D48 jal,prologue,ghidra +0x80051628 jal,ghidra +0x800516E0 jal,ghidra +0x800516FC jal,prologue,ghidra +0x800517A0 jal,ghidra +0x8005182C jal,ghidra +0x80051864 jal,ghidra +0x800518BC jal,ghidra +0x80051914 jal,ghidra +0x8005191C prologue +0x800519A8 jal,ghidra +0x800519B0 prologue +0x80051C4C jal,ghidra +0x80051C54 prologue +0x80051F50 jal,ghidra +0x800520F0 jal,ghidra +0x800521E8 jal,ghidra +0x800522A8 jal,ghidra +0x80052424 jal,prologue,ghidra +0x8005260C jal,prologue,ghidra +0x800526F0 jal,ghidra +0x800529A0 jal,prologue,ghidra +0x80052ABC jal,ghidra +0x80052C98 jal,ghidra +0x80052CAC jal,prologue,ghidra +0x80052FF4 jal,ghidra +0x80053064 jal,prologue,ghidra +0x80053954 jal,prologue,ghidra +0x80054AF8 jal,ghidra +0x80054BC4 jal,ghidra +0x80055108 jal,prologue,ghidra +0x80055240 jal,prologue,ghidra +0x80055654 jal +0x800556E8 jal,prologue,ghidra +0x8005584C jal,prologue,ghidra +0x800558BC jal,ghidra +0x80055958 jal,ghidra +0x800559C4 jal,ghidra +0x80055B84 jal,prologue,ghidra +0x800564AC jal,prologue,ghidra +0x80056854 jal,prologue,ghidra +0x80056C88 jal,prologue,ghidra +0x800571AC jal,prologue,ghidra +0x80057418 jal,prologue,ghidra +0x80057524 jal,prologue,ghidra +0x80057564 jal,ghidra +0x8005756C prologue +0x800575C4 jal,prologue,ghidra +0x80057664 jal,prologue,ghidra +0x80057748 jal,ghidra +0x80057798 jal,ghidra +0x800577E8 jal,prologue,ghidra +0x8005784C jal,ghidra +0x8005789C jal,ghidra +0x800578EC jal,prologue,ghidra +0x80057950 jal,ghidra +0x800579A0 jal,ghidra +0x800579F0 jal,ghidra +0x80057A40 jal,ghidra +0x80057AE0 jal,ghidra +0x80057B30 jal,ghidra +0x80057B84 jal,ghidra +0x80057BE8 jal +0x80057C30 jal +0x80057C80 jal +0x80057CD0 jal,prologue,ghidra +0x80057DFC jal,ghidra +0x80057E04 jal,ghidra +0x80057E7C jal,prologue,ghidra +0x80057F08 jal,prologue,ghidra +0x80057F84 jal,ghidra +0x80058058 jal,ghidra +0x800580E4 jal,ghidra +0x80058190 jal,prologue,ghidra +0x80058230 jal,ghidra +0x80058288 jal +0x800582AC jal +0x800582EC jal,ghidra +0x80058424 jal,ghidra +0x80058524 jal,ghidra +0x80058608 jal,prologue,ghidra +0x800589E8 jal,prologue,ghidra +0x80058AA8 jal,prologue,ghidra +0x80058BA0 jal,ghidra +0x80058C10 jal,ghidra +0x80058CE8 jal,prologue,ghidra +0x80058DEC jal,prologue,ghidra +0x80058EE4 jal,prologue,ghidra +0x80058FEC prologue +0x800590D8 jal,prologue,ghidra +0x800592A4 jal,prologue,ghidra +0x8005934C jal,ghidra +0x800593D0 jal +0x80059504 jal,prologue,ghidra +0x80059730 jal,prologue,ghidra +0x80059AF0 jal,prologue,ghidra +0x80059DF8 jal,prologue,ghidra +0x80059FDC jal,prologue,ghidra +0x8005A33C jal,prologue,ghidra +0x8005A474 jal,prologue,ghidra +0x8005A5A4 jal,prologue,ghidra +0x8005A6D4 jal,prologue,ghidra +0x8005A78C jal,ghidra +0x8005A81C jal,prologue,ghidra +0x8005A8E8 jal,prologue,ghidra +0x8005AD44 jal,ghidra +0x8005AE54 jal,prologue,ghidra +0x8005B638 jal,prologue,ghidra +0x8005BB70 jal,prologue,ghidra +0x8005BE3C jal,prologue,ghidra +0x8005BF44 jal,prologue,ghidra +0x8005BFD0 jal,ghidra +0x8005C508 jal,ghidra +0x8005CA30 jal,ghidra +0x8005CDA0 jal,ghidra +0x8005D1B0 jal,prologue,ghidra +0x8005D4C4 jal,ghidra +0x8005D620 jal,prologue,ghidra +0x8005D7A0 jal,prologue,ghidra +0x8005DC60 jal,prologue,ghidra +0x8005DDD0 jal,prologue,ghidra +0x8005DEF8 jal,prologue,ghidra +0x8005DF74 jal,prologue,ghidra +0x8005E070 jal,prologue,ghidra +0x8005E17C jal +0x8005E1E4 jal +0x8005E29C jal,prologue +0x8005E340 jal,prologue +0x8005E3D0 jal,ghidra +0x8005E3F4 jal,prologue,ghidra +0x8005E538 jal,prologue,ghidra +0x8005E590 jal,prologue,ghidra +0x8005E63C jal,prologue,ghidra +0x8005E79C jal,prologue,ghidra +0x8005E820 jal,prologue,ghidra +0x8005E8B8 jal,prologue,ghidra +0x8005ED6C jal,ghidra +0x8005EDBC prologue,ghidra +0x8005F518 prologue,ghidra +0x8005F7A4 prologue +0x80060000 prologue +0x8006089C prologue +0x80060C70 prologue +0x80061780 prologue +0x80061D4C prologue +0x80062660 prologue +0x800626C0 prologue +0x80062740 prologue +0x80062B00 prologue +0x80062D10 jal,prologue,ghidra +0x80062E14 jal,prologue,ghidra +0x80063060 jal,prologue,ghidra +0x800630F0 jal,ghidra +0x80063224 jal,ghidra +0x80063358 jal,prologue,ghidra +0x800637DC jal,prologue,ghidra +0x80063870 jal,prologue,ghidra +0x80063900 jal,prologue,ghidra +0x80063B2C jal,prologue,ghidra +0x80064230 jal,prologue,ghidra +0x800645CC jal,prologue,ghidra +0x80064664 jal,prologue,ghidra +0x80064858 jal,ghidra +0x8006496C jal,prologue,ghidra +0x80064B4C jal,prologue,ghidra +0x80064D2C jal,ghidra +0x80064D3C prologue +0x800652A0 jal,prologue,ghidra +0x80065494 jal,ghidra +0x800654E4 jal,prologue,ghidra +0x800655A8 jal,prologue,ghidra +0x80065670 jal,prologue,ghidra +0x80065700 jal,ghidra +0x80065794 jal,prologue,ghidra +0x800658FC jal +0x80065930 jal,ghidra +0x80065980 jal,ghidra +0x80065988 prologue +0x80065B6C jal +0x80065B8C jal,ghidra +0x80065C34 jal,prologue,ghidra +0x80065D1C jal,ghidra +0x80065E10 jal,ghidra +0x80065E18 prologue +0x8006606C jal,prologue,ghidra +0x80066208 jal,prologue,ghidra +0x80066738 jal,ghidra +0x800667DC jal,ghidra +0x800668A8 jal,ghidra +0x800668F0 jal,ghidra +0x800668F8 prologue +0x80066DA0 jal,ghidra +0x80066E2C jal +0x80066E58 jal,prologue,ghidra +0x80067D34 jal,prologue,ghidra +0x80067E70 jal,prologue +0x80068078 jal,ghidra +0x800681A4 jal,ghidra +0x800681E0 jal,ghidra +0x8006821C jal +0x800682F0 jal,prologue,ghidra +0x800683B0 jal,prologue,ghidra +0x800683E4 jal +0x80068470 jal,ghidra +0x8006848C prologue +0x80068754 jal,ghidra +0x80068874 jal,ghidra +0x80068910 jal,ghidra +0x800689DC jal,ghidra +0x80068A64 jal,prologue,ghidra +0x80068D54 jal,prologue,ghidra +0x80068D78 jal,prologue,ghidra +0x80068F40 jal,ghidra +0x80068F6C jal +0x80068F98 jal,ghidra +0x80068FA8 jal,ghidra +0x80069034 jal,ghidra +0x800690E4 jal,ghidra +0x80069128 jal,prologue,ghidra +0x80069398 jal,prologue,ghidra +0x80069580 jal,prologue +0x800695D8 jal,prologue,ghidra +0x800697A4 jal,prologue,ghidra +0x800697C4 jal,prologue,ghidra +0x800697FC jal,prologue,ghidra +0x80069A10 jal,prologue,ghidra +0x80069C90 jal,prologue,ghidra +0x8006A654 jal,prologue,ghidra +0x8006A6F0 jal,ghidra +0x8006A98C jal,ghidra +0x8006AA10 jal,ghidra +0x8006AA88 jal,prologue,ghidra +0x8006AB7C jal,prologue,ghidra +0x8006AD5C jal,ghidra +0x8006AD60 prologue +0x8006ADB0 jal,ghidra +0x8006ADB4 prologue +0x8006AE04 jal,ghidra +0x8006AE08 prologue +0x8006AE54 jal,ghidra +0x8006B0A8 jal,prologue,ghidra +0x8006B184 jal,ghidra +0x8006B188 prologue +0x8006B1CC jal,ghidra +0x8006B1D0 prologue +0x8006B214 jal,ghidra +0x8006B218 prologue +0x8006B270 jal,ghidra +0x8006B274 prologue +0x8006B2D4 jal,ghidra +0x8006B2D8 prologue +0x8006B328 jal,ghidra +0x8006B32C prologue +0x8006B398 jal,ghidra +0x8006B470 jal,ghidra +0x8006B474 prologue +0x8006B4C4 jal,ghidra +0x8006B4C8 prologue +0x8006B5F0 jal,prologue,ghidra +0x8006B66C jal,ghidra +0x8006B670 prologue +0x8006B6BC jal,prologue,ghidra +0x8006B778 jal,ghidra +0x8006B77C prologue +0x8006B7C0 jal,prologue,ghidra +0x8006B964 jal,prologue,ghidra +0x8006B9E0 jal,prologue,ghidra +0x8006BA3C jal,ghidra +0x8006BB0C jal,prologue,ghidra +0x8006BB88 jal,ghidra +0x8006BC08 jal,prologue,ghidra +0x8006BC34 jal,prologue,ghidra +0x8006BC74 jal,ghidra +0x8006BF30 jal,prologue,ghidra +0x8006C044 jal,ghidra +0x8006C324 jal,prologue,ghidra +0x8006CC54 jal,prologue,ghidra +0x8006CFB0 jal,ghidra +0x8006CFB8 prologue +0x8006D148 jal,ghidra +0x8006D14C prologue +0x8006D1C4 jal,ghidra +0x8006D250 jal,ghidra +0x8006D2FC jal,ghidra +0x8006D3B0 jal,ghidra +0x8006D470 jal +0x8006D548 ghidra +0x8006D884 jal,prologue,ghidra +0x8006DB90 jal,prologue,ghidra +0x8006DEB4 ghidra +0x8006E1B0 jal,ghidra +0x8006EBA0 jal,prologue,ghidra +0x8006EC94 jal,ghidra +0x8006ECD4 jal,ghidra +0x8006ED58 jal,prologue,ghidra +0x8006EE44 jal,ghidra +0x8006EE4C prologue +0x8006EFBC jal,prologue,ghidra +0x8006F28C jal,ghidra +0x8006F290 prologue +0x8006F2F4 jal,prologue,ghidra +0x8006F6BC jal,ghidra +0x8006F6F4 jal,ghidra +0x8006F77C jal,ghidra +0x8006F930 jal,ghidra +0x8006F944 jal,ghidra +0x8006F95C jal,ghidra +0x8006F9B4 jal,ghidra +0x8006F9BC prologue +0x8006FA78 jal,ghidra +0x8006FAA0 jal,ghidra +0x8006FAEC jal,ghidra +0x8006FB44 jal,prologue,ghidra +0x80070270 jal,ghidra +0x80070454 jal,ghidra +0x8007049C jal,ghidra +0x800704BC jal,prologue,ghidra +0x8007061C jal,ghidra +0x80070624 prologue +0x80070938 prologue +0x800713D0 jal,ghidra +0x800713D8 prologue +0x80071C64 jal,prologue,ghidra +0x80072048 jal,prologue,ghidra +0x80072360 jal,prologue,ghidra +0x80072680 jal,prologue +0x80072914 jal,prologue,ghidra +0x80072BA8 jal +0x80072BDC jal,prologue,ghidra +0x80072D0C jal,ghidra +0x80072D78 jal,prologue,ghidra +0x80072DF4 jal,prologue,ghidra +0x80073190 prologue +0x80073250 jal,prologue +0x80073284 jal,prologue,ghidra +0x8007330C prologue +0x80073364 jal,prologue,ghidra +0x800733C4 jal,prologue,ghidra +0x800734A4 jal,prologue,ghidra +0x800734DC jal,prologue,ghidra +0x800735EC jal,prologue,ghidra +0x8007374C jal,prologue,ghidra +0x80073798 jal,prologue,ghidra +0x80073B74 jal,prologue +0x80073D08 jal +0x80073D0C prologue +0x80073F78 jal,prologue,ghidra +0x8007405C jal,prologue +0x80074140 jal,prologue,ghidra +0x80074268 jal,prologue,ghidra +0x8007432C jal,ghidra +0x80074394 jal,prologue,ghidra +0x80074570 jal,prologue,ghidra +0x80074658 jal,prologue,ghidra +0x80074734 jal,prologue,ghidra +0x800747E4 jal,prologue,ghidra +0x800748EC jal,ghidra +0x80074C00 jal,ghidra +0x80074C74 jal,ghidra +0x80074F1C jal,prologue,ghidra +0x800751E8 jal,prologue,ghidra +0x80075228 jal,prologue,ghidra +0x8007587C jal,prologue,ghidra +0x80076110 jal,prologue,ghidra +0x80076778 jal,prologue,ghidra +0x800768C8 prologue +0x80077088 jal,ghidra +0x8007708C prologue +0x80077250 jal,ghidra +0x80077254 prologue +0x8007759C jal,ghidra +0x800775E4 prologue +0x8007793C prologue +0x80077D04 jal,ghidra +0x80077D7C jal +0x80077D80 prologue +0x80077ED4 prologue +0x800784A4 jal +0x800784F4 jal,ghidra +0x80078564 prologue +0x800789BC prologue +0x80078B94 jal,prologue +0x80078E94 jal +0x80078E98 prologue +0x80078FD0 jal +0x80078FD8 prologue +0x800791AC prologue +0x800799A8 prologue +0x80079B34 jal,prologue,ghidra +0x80079C90 jal,ghidra +0x80079D24 jal,ghidra +0x80079DDC jal,ghidra +0x80079DE4 prologue +0x80079EEC jal,ghidra +0x80079EF4 prologue +0x8007A080 jal,prologue,ghidra +0x8007A114 jal,ghidra +0x8007A16C jal,ghidra +0x8007A174 prologue +0x8007A2AC jal,ghidra +0x8007A324 jal,prologue,ghidra +0x8007A404 jal,prologue,ghidra +0x8007A428 jal,ghidra +0x8007A4FC jal,prologue,ghidra +0x8007AB7C jal,ghidra +0x8007AC34 jal,ghidra +0x8007AD28 jal,prologue,ghidra +0x8007B00C jal,prologue,ghidra +0x8007B168 prologue +0x8007B2A0 jal,prologue,ghidra +0x8007B83C jal,prologue,ghidra +0x8007B928 jal,ghidra +0x8007BA60 jal,prologue,ghidra +0x8007BC64 jal,prologue,ghidra +0x8007BD0C jal,prologue,ghidra +0x8007C108 jal,ghidra +0x8007C228 jal,ghidra +0x8007C2DC jal,ghidra +0x8007C408 jal,prologue,ghidra +0x8007C4A8 jal,ghidra +0x8007C4EC jal,ghidra +0x8007C524 jal +0x8007C664 jal,ghidra +0x8007C6E0 jal,prologue,ghidra +0x8007C7CC jal,prologue,ghidra +0x8007CFFC jal,prologue,ghidra +0x8007D20C jal,prologue,ghidra +0x8007D2B0 jal,ghidra +0x8007D418 jal,ghidra +0x8007D41C prologue +0x8007D5AC jal +0x8007D5FC jal,prologue +0x8007D680 jal,prologue,ghidra +0x8007D718 jal,prologue,ghidra +0x8007DC40 jal,ghidra +0x8007DC4C jal,prologue,ghidra +0x8007DF00 jal,ghidra +0x8007DF34 jal,prologue,ghidra +0x8007E0A4 jal,ghidra +0x8007E12C jal,prologue,ghidra +0x8007E228 jal,prologue,ghidra +0x8007E7C0 prologue +0x8007E7FC jal,prologue,ghidra +0x8007E85C jal +0x8007E8B8 jal,prologue,ghidra +0x8007E904 prologue +0x8007E948 prologue +0x8007E98C prologue +0x8007EA5C prologue +0x8007EB00 prologue +0x8007EB8C jal,ghidra +0x8007EBEC jal,prologue,ghidra +0x8007ED4C jal,prologue,ghidra +0x8007ED8C jal,prologue,ghidra +0x8007EF84 jal,prologue,ghidra +0x8007F07C jal,prologue,ghidra +0x8007F2B8 prologue +0x8007F51C prologue +0x8007F638 prologue +0x8007F774 jal +0x8007F9B0 jal,prologue +0x8007FA1C prologue +0x8007FB30 prologue +0x8007FC84 prologue +0x8007FCCC jal +0x8007FDB0 prologue +0x8007FF48 prologue +0x80080088 prologue +0x800800D0 jal +0x800801B4 jal,ghidra +0x8008022C jal,prologue,ghidra +0x800807E0 jal,ghidra +0x800807E8 prologue +0x80080800 jal +0x800809B8 jal,prologue,ghidra +0x80081174 jal,prologue,ghidra +0x8008132C jal,prologue,ghidra +0x80082750 jal,ghidra +0x800827A8 jal +0x800827C4 jal,prologue +0x80082868 jal,prologue +0x80082914 jal +0x80082944 jal,ghidra +0x800829D8 jal,ghidra +0x80082A68 jal,prologue,ghidra +0x80082BAC jal,prologue,ghidra +0x80082CF0 jal,prologue,ghidra +0x80083018 jal,ghidra +0x8008301C prologue +0x800830B4 jal,ghidra +0x800830B8 prologue +0x800833CC jal,prologue,ghidra +0x80083440 jal,ghidra +0x80083470 jal,prologue +0x800834B8 jal,prologue,ghidra +0x80083504 jal +0x8008352C jal,ghidra +0x8008355C jal,prologue,ghidra +0x80083878 jal,prologue,ghidra +0x800839E8 jal,ghidra +0x800839EC prologue +0x80083BAC jal,ghidra +0x80083C78 jal,prologue,ghidra +0x800844B8 jal,prologue,ghidra +0x80084770 jal,prologue,ghidra +0x80084A48 prologue +0x80085494 jal,ghidra +0x800855D4 jal,prologue,ghidra +0x80085B44 jal,ghidra +0x80085B80 jal,ghidra +0x80085B90 jal,ghidra +0x80085CDC jal,prologue,ghidra +0x80086388 jal,prologue,ghidra +0x800868E8 jal,prologue,ghidra +0x80086CFC jal,ghidra +0x80086DBC jal,ghidra +0x80086DFC jal,ghidra +0x80086E0C prologue +0x80088F38 jal,prologue,ghidra +0x80089314 jal,ghidra +0x80089338 jal,prologue,ghidra +0x800893E8 jal,prologue,ghidra +0x80089434 jal,prologue,ghidra +0x800897B8 jal,prologue,ghidra +0x80089B30 jal,prologue,ghidra +0x80089B88 jal +0x80089C4C jal,ghidra +0x80089C54 jal +0x80089C64 jal +0x80089C74 jal,prologue +0x80089D14 jal +0x80089D54 jal,prologue,ghidra +0x80089DE8 jal,prologue,ghidra +0x80089E74 jal +0x80089E7C jal,prologue,ghidra +0x80089FA0 jal +0x80089FA8 prologue +0x8008A0E8 jal,ghidra +0x8008A198 jal +0x8008A1D0 jal +0x8008A1D4 prologue +0x8008A400 jal,ghidra +0x8008A414 prologue +0x8008A47C jal,prologue,ghidra +0x8008A758 jal,ghidra +0x8008A7C0 jal,prologue,ghidra +0x8008B8D4 jal +0x8008B8E4 jal +0x8008B8F4 jal +0x8008B910 jal,ghidra +0x8008B960 jal,prologue,ghidra +0x8008BA80 jal,ghidra +0x8008BAE0 jal,ghidra +0x8008CC00 jal +0x8008CCC0 jal,ghidra +0x8008D5F8 jal,ghidra +0x8008D6E0 jal,prologue,ghidra +0x8008D86C jal,prologue,ghidra +0x8008D9AC jal,prologue,ghidra +0x8008DA0C jal,prologue,ghidra +0x8008DB44 jal,prologue,ghidra +0x8008DC04 jal,prologue,ghidra +0x8008DFE8 jal +0x8008E19C jal,prologue,ghidra +0x8008E258 jal,ghidra +0x8008E2D0 jal,prologue +0x8008E3E4 jal,prologue,ghidra +0x8008EBFC jal,prologue,ghidra +0x8008EFC4 prologue +0x8008F114 jal,prologue,ghidra +0x8008F2E0 jal,prologue +0x8008F338 jal +0x8008F344 prologue +0x8008F478 jal +0x8008F4A0 jal +0x8008F4AC jal,ghidra +0x8008F4F4 jal,ghidra +0x8008F508 jal,prologue,ghidra +0x8008F530 jal,ghidra +0x8008F534 prologue +0x8008F60C jal,prologue,ghidra +0x8008FA58 jal,prologue,ghidra +0x8008FCD8 jal,prologue,ghidra +0x8008FDBC jal,ghidra +0x8008FDC0 prologue +0x8008FE98 jal,prologue,ghidra +0x8008FF58 jal +0x8008FF84 jal +0x8008FFC4 jal,prologue,ghidra +0x80090028 jal,prologue,ghidra +0x80090048 jal,ghidra +0x800900A0 jal,prologue +0x800900CC prologue +0x80090374 prologue +0x80090408 jal,ghidra +0x80090410 prologue +0x800907A4 jal,ghidra +0x800907AC prologue +0x80090894 jal,prologue,ghidra +0x800908E4 jal,prologue,ghidra +0x80090990 jal +0x800909D8 jal,ghidra +0x80090A44 jal,prologue,ghidra +0x80090A70 jal,ghidra +0x80090B64 jal,ghidra +0x80090B7C jal,prologue +0x80090BB4 jal,prologue,ghidra +0x80090C8C jal,prologue,ghidra +0x80090CAC jal,prologue,ghidra +0x80090D00 jal,prologue,ghidra +0x8009107C jal,ghidra +0x800910BC jal,prologue,ghidra +0x800911D4 jal,prologue,ghidra +0x800912D4 jal,ghidra +0x800912FC jal,ghidra +0x8009132C jal +0x80091370 jal +0x8009141C jal,ghidra +0x80091490 jal,prologue,ghidra +0x800914E4 jal,prologue,ghidra +0x80091674 jal,prologue,ghidra +0x800916DC jal,prologue,ghidra +0x800919BC jal,ghidra +0x80091A7C jal,prologue,ghidra +0x80091D88 jal,prologue,ghidra +0x80092068 jal,prologue +0x80092088 jal +0x800920BC jal +0x800920DC jal,ghidra +0x80092104 jal +0x80092130 jal,ghidra +0x8009214C jal,prologue,ghidra +0x800921C0 jal,prologue,ghidra +0x800922D0 jal,prologue,ghidra +0x80092340 jal +0x800923E8 jal,ghidra +0x80092460 jal,prologue,ghidra +0x80092898 jal,ghidra +0x80092A48 jal,prologue,ghidra +0x80092B2C jal,prologue,ghidra +0x80093330 prologue +0x80093768 jal,prologue,ghidra +0x80093A08 jal,ghidra +0x80093A64 jal,prologue,ghidra +0x80093A84 jal,prologue,ghidra +0x80093D80 jal,ghidra +0x80093E54 jal,prologue,ghidra +0x80094370 jal,ghidra +0x800943C4 jal,ghidra +0x800943E0 jal,prologue,ghidra +0x80094670 jal,prologue,ghidra +0x80094988 jal,prologue,ghidra +0x80094F54 jal,prologue,ghidra +0x80095364 jal,prologue,ghidra +0x80095820 jal,prologue,ghidra +0x80095BB0 jal,prologue,ghidra +0x80095CF8 jal,prologue,ghidra +0x80095D74 jal,prologue,ghidra +0x80096324 jal,prologue,ghidra +0x80096364 jal,prologue,ghidra +0x800964F8 jal,prologue,ghidra +0x8009736C jal,prologue,ghidra +0x800975C4 jal,ghidra +0x8009829C jal,prologue,ghidra +0x800985A4 jal,prologue,ghidra +0x80098E18 jal,prologue,ghidra +0x80099024 jal,prologue,ghidra +0x80099078 jal,prologue,ghidra +0x8009916C jal,prologue,ghidra +0x80099420 jal,prologue,ghidra +0x80099A94 jal,ghidra +0x80099AE4 jal,ghidra +0x80099BB0 jal,ghidra +0x80099C44 jal,ghidra +0x80099D14 jal,ghidra +0x80099DC4 jal,ghidra +0x80099E14 jal,ghidra +0x80099E34 jal,prologue,ghidra +0x80099E5C prologue +0x80099E84 jal,prologue +0x8009A0D0 prologue +0x8009A4AC jal,prologue,ghidra +0x8009A904 jal,ghidra +0x8009A90C prologue +0x8009AC08 jal,prologue,ghidra +0x8009AC28 jal,prologue,ghidra +0x8009AE2C jal,ghidra +0x8009B074 jal,ghidra +0x8009B464 jal,ghidra +0x8009B4A0 jal,prologue,ghidra +0x8009B56C jal,ghidra +0x8009B638 jal,ghidra +0x8009B63C prologue +0x8009B7A4 jal,prologue,ghidra +0x8009BDF0 jal,prologue,ghidra +0x8009BF70 jal,prologue,ghidra +0x8009C56C jal,ghidra +0x8009C69C jal,ghidra +0x8009C6D8 jal,ghidra +0x8009C750 jal,prologue,ghidra +0x8009C904 jal,prologue,ghidra +0x8009CB28 jal,prologue,ghidra +0x8009CE58 jal,prologue,ghidra +0x8009CFC8 jal,prologue,ghidra +0x8009D244 jal,ghidra +0x8009D47C jal,ghidra +0x8009D69C jal,prologue,ghidra +0x8009D798 jal,ghidra +0x8009D8A0 jal,ghidra +0x8009D8E0 jal,prologue,ghidra +0x8009DA98 jal,prologue,ghidra +0x8009E8D0 jal,ghidra +0x8009E95C jal,prologue,ghidra +0x8009F0E8 jal,ghidra +0x8009F120 jal,ghidra +0x8009F264 jal,prologue,ghidra +0x8009F3A8 jal,prologue,ghidra +0x8009F4B4 jal,ghidra +0x8009F4B8 prologue +0x8009F5AC jal,ghidra +0x8009F5B0 prologue +0x8009F6A0 jal,ghidra +0x8009F6A4 prologue +0x8009F798 jal,ghidra +0x8009F79C prologue +0x8009F890 jal,ghidra +0x8009F894 prologue +0x8009F988 jal,prologue,ghidra +0x800A2684 jal,ghidra +0x800A2B04 jal,prologue,ghidra +0x800A2F20 jal +0x800A2F44 jal,ghidra +0x800A30D4 jal,prologue,ghidra +0x800A3358 jal,ghidra +0x800A3400 jal,prologue,ghidra +0x800A34E8 jal,prologue,ghidra +0x800A3540 jal,ghidra +0x800A3600 jal,prologue,ghidra +0x800A38B8 jal,prologue,ghidra +0x800A3D34 jal,prologue,ghidra +0x800A44CC prologue +0x800A45E0 jal,ghidra +0x800A466C jal,ghidra +0x800A4674 prologue +0x800A4764 jal,ghidra +0x800A47E0 jal,prologue,ghidra +0x800A4AC8 jal,prologue,ghidra +0x800A4B70 jal,prologue,ghidra +0x800A4CA8 jal,ghidra +0x800A4D2C jal +0x800A4E48 jal,ghidra +0x800A4E50 prologue +0x800A4F20 jal,ghidra +0x800A4F8C jal,ghidra +0x800A5180 jal,prologue,ghidra +0x800A5228 jal,prologue,ghidra +0x800A5C1C jal,ghidra +0x800A5CC8 jal,prologue,ghidra +0x800A5CEC jal,prologue,ghidra +0x800A5D24 jal,ghidra +0x800A5D34 prologue +0x800A5EBC jal,prologue,ghidra +0x800A613C jal,ghidra +0x800A623C jal,prologue,ghidra +0x800A6268 jal,prologue,ghidra +0x800A6294 jal,prologue,ghidra +0x800A631C jal,ghidra +0x800A6324 prologue +0x800A63D0 jal,prologue,ghidra +0x800A648C jal +0x800A64C8 jal,prologue +0x800A6574 jal,prologue +0x800A6658 jal +0x800A66B0 jal,ghidra +0x800A67E4 prologue +0x800A6840 jal,prologue,ghidra +0x800A6880 jal,ghidra +0x800A6934 jal,ghidra +0x800A6998 jal,ghidra +0x800A6A18 jal,ghidra +0x800A6A70 jal,prologue,ghidra +0x800A6B38 jal,prologue,ghidra +0x800A6BEC jal,ghidra +0x800A6C34 jal,prologue,ghidra +0x800A6C8C jal,ghidra +0x800A6E9C jal,prologue,ghidra +0x800A6FAC jal,prologue,ghidra +0x800A745C jal,ghidra +0x800A7460 prologue +0x800A74BC jal,ghidra +0x800A74D0 jal,ghidra +0x800A74D8 prologue +0x800A75CC jal,ghidra +0x800A76AC jal,ghidra +0x800A76B4 prologue +0x800A7E68 jal,prologue,ghidra +0x800A80B8 jal,ghidra +0x800A8138 jal,ghidra +0x800A813C prologue +0x800A8224 jal,prologue,ghidra +0x800A82D0 jal,ghidra +0x800A8310 jal,ghidra +0x800A8464 jal,ghidra +0x800A84E8 jal,prologue,ghidra +0x800A8564 jal,prologue,ghidra +0x800A86B4 jal,ghidra +0x800A8700 jal,prologue,ghidra +0x800A88A0 jal,ghidra +0x800A8920 jal,ghidra +0x800A8984 jal,ghidra +0x800A8A40 jal,ghidra +0x800A8AEC jal,ghidra +0x800A8B48 jal,ghidra +0x800A8B8C jal,prologue,ghidra +0x800A8C34 prologue +0x800A8E00 jal,ghidra +0x800A8E58 jal,ghidra +0x800A8F18 jal,prologue,ghidra +0x800A96CC jal,ghidra +0x800A9768 jal,prologue,ghidra +0x800A98CC jal,prologue +0x800A9C24 jal,ghidra +0x800A9CC4 jal,ghidra +0x800A9D58 jal,prologue,ghidra +0x800A9D90 jal,ghidra +0x800A9E44 jal,ghidra +0x800A9EBC prologue +0x800A9EF8 jal,prologue,ghidra +0x800A9F7C jal,prologue,ghidra +0x800A9FD4 jal,prologue,ghidra +0x800AA01C jal,prologue,ghidra +0x800AA0A0 jal,prologue +0x800AA10C jal,prologue,ghidra +0x800AA2B4 jal,prologue,ghidra +0x800AA2F8 jal,prologue,ghidra +0x800AA4F4 jal,prologue,ghidra +0x800AA56C jal,ghidra +0x800AA59C jal,prologue,ghidra +0x800AA6AC jal,ghidra +0x800AA6B4 prologue +0x800AA808 jal,prologue,ghidra +0x800AAC44 jal,prologue,ghidra +0x800AAC9C jal,prologue,ghidra +0x800AB078 jal,ghidra +0x800AB0EC jal,prologue,ghidra +0x800AB3CC jal,ghidra +0x800AB504 jal,prologue,ghidra +0x800AB598 jal,ghidra +0x800AB6CC jal,prologue,ghidra +0x800AB858 jal,ghidra +0x800ABA28 jal,ghidra +0x800ABA30 prologue +0x800ABB88 jal,prologue,ghidra +0x800ABF10 jal,prologue,ghidra +0x800AC2C4 jal,ghidra +0x800AC648 jal,prologue,ghidra +0x800AC694 jal,ghidra +0x800AC7A0 jal,ghidra +0x800AC818 jal,ghidra +0x800AC85C jal,ghidra +0x800AC864 prologue +0x800AC884 jal,prologue,ghidra +0x800AC98C jal,ghidra +0x800AC9D8 jal +0x800ACA10 jal,ghidra +0x800ACAC8 jal,prologue,ghidra +0x800ACB34 jal +0x800ACC00 jal,ghidra +0x800ACCD8 jal,ghidra +0x800ACDAC jal,ghidra +0x800ACED4 jal +0x800ACFA8 jal,ghidra +0x800AD068 jal,ghidra +0x800AD104 jal,ghidra +0x800AD1C8 jal,ghidra +0x800AD258 prologue +0x800AD3D4 jal,ghidra +0x800AD484 jal,prologue,ghidra +0x800AD698 jal,ghidra +0x800AD6A0 prologue +0x800AD7E8 jal,ghidra +0x800AD7F0 prologue +0x800AD9A8 jal +0x800ADA80 prologue +0x800ADB30 jal,ghidra +0x800ADB38 prologue +0x800ADC74 jal,prologue,ghidra +0x800ADDE8 jal,prologue,ghidra +0x800ADF18 jal,ghidra +0x800ADFA0 prologue +0x800AE0F4 jal,ghidra +0x800AE10C jal,ghidra +0x800AE268 jal,prologue,ghidra +0x800AE358 jal,ghidra +0x800AE458 jal,ghidra +0x800AE45C prologue +0x800AE4DC jal,prologue,ghidra +0x800AE548 jal,prologue,ghidra +0x800AE574 prologue +0x800AE66C jal,ghidra +0x800AE6C0 jal,ghidra +0x800AE7A0 jal,ghidra +0x800AE7A8 prologue +0x800AE8F0 jal,ghidra +0x800AE9E0 jal,prologue,ghidra +0x800AEBA0 jal,ghidra +0x800AEC48 jal,prologue,ghidra +0x800AF1FC jal +0x800AF20C jal +0x800AF260 jal +0x800AF268 prologue +0x800AF324 prologue +0x800AF3E8 jal,prologue,ghidra +0x800AF538 prologue +0x800AFACC jal +0x800AFB1C jal,ghidra +0x800AFB6C jal,prologue,ghidra +0x800AFDBC jal,ghidra +0x800AFEB4 jal,prologue +0x800AFFB8 jal,prologue,ghidra +0x800AFFE4 prologue +0x800B0550 jal +0x800B0558 prologue +0x800B0940 jal,prologue +0x800B0B88 jal +0x800B0BE0 jal,prologue +0x800B0E30 jal,ghidra +0x800B0E64 jal +0x800B0ECC jal,ghidra +0x800B107C jal,prologue,ghidra +0x800B1114 jal,prologue,ghidra +0x800B129C jal,prologue,ghidra +0x800B1A64 jal,prologue,ghidra +0x800B1BB0 jal,prologue,ghidra +0x800B1C34 jal,prologue,ghidra +0x800B1D5C jal,prologue,ghidra +0x800B1DD0 jal,prologue,ghidra +0x800B1E80 jal,prologue,ghidra +0x800B1F94 jal,prologue,ghidra +0x800B2048 jal,prologue,ghidra +0x800B2488 jal,ghidra +0x800B24EC jal,ghidra +0x800B2534 jal,prologue,ghidra +0x800B255C jal,prologue +0x800B25F0 prologue +0x800B2860 prologue +0x800B2B70 jal,prologue,ghidra +0x800B2F54 prologue +0x800B3110 prologue +0x800B3130 prologue +0x800B3150 prologue +0x800B3218 prologue +0x800B340C prologue +0x800B3474 jal +0x800B34A4 jal +0x800B34FC jal +0x800B3554 prologue +0x800B3788 prologue +0x800B38F8 prologue +0x800B3AEC prologue +0x800B3B54 prologue +0x800B3D98 prologue +0x800B4060 prologue +0x800B422C prologue +0x800B44E4 prologue +0x800B4504 prologue +0x800B4740 prologue +0x800B4764 prologue +0x800B47C4 prologue +0x800B47E4 prologue +0x800B4804 prologue +0x800B4824 prologue +0x800B4858 prologue +0x800B4940 prologue +0x800B4BF4 prologue +0x800B51D8 prologue +0x800B5524 prologue +0x800B5544 prologue +0x800B55F4 prologue +0x800B56F8 prologue +0x800B5718 prologue +0x800B577C prologue +0x800B579C prologue +0x800B57D0 prologue +0x800B58C8 jal,prologue +0x800B5924 jal,prologue +0x800B5AA0 prologue +0x800B5AF0 jal +0x800B5AF8 jal,ghidra +0x800B5C5C jal,ghidra +0x800B5CB4 jal,ghidra +0x800B5CF8 jal,prologue,ghidra +0x800B5FF0 jal,ghidra +0x800B6090 jal,prologue,ghidra +0x800B62C8 jal,ghidra +0x800B6330 jal,prologue,ghidra +0x800B6754 jal,ghidra +0x800B67B8 jal,ghidra +0x800B6838 jal,ghidra +0x800B6894 jal,prologue,ghidra +0x800B6AE0 jal,ghidra +0x800B6AE4 prologue +0x800B6B50 jal +0x800B6B54 prologue +0x800B6BDC jal,ghidra +0x800B6C14 jal,prologue +0x800B6C60 jal,prologue +0x800B6CB4 jal,ghidra +0x800B6CB8 prologue +0x800B6D00 jal,ghidra +0x800B6D04 prologue +0x800B6E5C jal,prologue +0x800B6F64 jal,prologue +0x800B704C jal,ghidra +0x800B7190 jal,ghidra +0x800B7230 jal,ghidra +0x800B7264 jal,prologue,ghidra +0x800B74D0 jal,prologue,ghidra +0x800B7524 jal,prologue,ghidra +0x800B78EC jal,ghidra +0x800B7E14 jal,prologue,ghidra +0x800B8958 jal,prologue,ghidra +0x800B8DE4 jal,prologue,ghidra +0x800B8E60 jal,prologue,ghidra +0x800B9C64 jal,ghidra +0x800BA114 jal,prologue,ghidra +0x800BA8D4 jal,ghidra +0x800BAA48 jal,prologue,ghidra +0x800BAED4 jal,prologue,ghidra +0x800BB1C4 jal,prologue,ghidra +0x800BB2AC jal,prologue,ghidra +0x800BB9FC jal,prologue,ghidra +0x800BBAC8 jal,ghidra +0x800BBB10 jal,ghidra +0x800BBC1C jal,ghidra +0x800BBDEC jal +0x800BBDF8 jal,ghidra +0x800BBE90 jal,ghidra +0x800BC054 jal,ghidra +0x800BC194 jal,prologue,ghidra +0x800BC658 jal,prologue,ghidra +0x800BC6EC jal,prologue,ghidra +0x800BC7D8 jal,prologue,ghidra +0x800BC8C4 jal,ghidra +0x800BC8C8 prologue +0x800BC960 jal,ghidra +0x800BC9C4 jal +0x800BCA14 jal,prologue,ghidra +0x800BCB14 jal,ghidra +0x800BCBBC jal,ghidra +0x800BCE20 jal,prologue,ghidra +0x800BD298 jal,ghidra +0x800BD5E8 jal,prologue,ghidra +0x800BD764 jal,prologue,ghidra +0x800BE6D8 jal,ghidra +0x800BE780 jal,ghidra +0x800BE828 jal,prologue,ghidra +0x800BE9C8 jal,ghidra +0x800BEA28 jal,prologue,ghidra +0x800BF5A8 jal,prologue,ghidra +0x800BF734 jal,prologue,ghidra +0x800BF968 jal,prologue,ghidra +0x800BFBAC jal,prologue,ghidra +0x800BFCF4 jal,prologue,ghidra +0x800BFE80 jal,prologue,ghidra +0x800BFEA0 jal,prologue,ghidra +0x800BFEC0 jal,prologue,ghidra +0x800BFEE0 jal,prologue,ghidra +0x800BFF00 jal,prologue,ghidra +0x800BFF20 jal,ghidra +0x800C022C jal,prologue,ghidra +0x800C03FC jal,prologue,ghidra +0x800C0874 jal,prologue,ghidra +0x800C0BFC jal,prologue,ghidra +0x800C0C88 jal,prologue,ghidra +0x800C1048 jal,prologue,ghidra +0x800C110C jal +0x800C1304 jal +0x800C1424 jal,prologue +0x800C14BC jal,prologue,ghidra +0x800C1A58 jal,prologue,ghidra +0x800C1E54 jal,prologue,ghidra +0x800C1EA8 jal,ghidra +0x800C1F04 jal,prologue,ghidra +0x800C2054 jal,prologue,ghidra +0x800C29D4 jal,ghidra +0x800C29DC prologue +0x800C2C30 jal,prologue,ghidra +0x800C2CE4 jal,ghidra +0x800C2D88 jal,ghidra +0x800C2E3C prologue +0x800C2F34 prologue +0x800C3038 prologue +0x800C313C prologue +0x800C3230 prologue +0x800C3328 prologue +0x800C3420 prologue +0x800C3490 jal +0x800C3514 jal,ghidra +0x800C356C jal,prologue,ghidra +0x800C3C4C jal,ghidra +0x800C417C jal,prologue,ghidra +0x800C49BC jal +0x800C4A08 jal +0x800C4B48 jal +0x800C4CC4 jal +0x800C4F10 jal +0x800C5168 jal,prologue,ghidra +0x800C5278 jal +0x800C52F4 jal,prologue,ghidra +0x800C54EC jal,prologue,ghidra +0x800C583C prologue +0x800C5AEC jal,prologue,ghidra +0x800C5C84 jal,ghidra +0x800C5CD4 jal,ghidra +0x800C5CDC prologue +0x800F2A50 jal,prologue,ghidra +0x800F2F08 jal,prologue,ghidra +0x800F2F6C jal,ghidra +0x800F2FC0 jal,ghidra +0x800F3140 jal,prologue,ghidra +0x800F3160 jal,ghidra +0x800F3170 jal,ghidra +0x800F317C prologue +0x800F3A00 jal,prologue,ghidra +0x800F3A30 jal,ghidra +0x800F3B10 jal,ghidra +0x800F3BB4 jal,ghidra +0x800F3C60 jal,ghidra +0x800F3DC0 jal,ghidra +0x800F3E18 jal,ghidra +0x800F3E70 jal,ghidra +0x800F3E8C jal,prologue,ghidra +0x800F4000 jal,prologue,ghidra +0x800F4098 jal,ghidra +0x800F40A0 prologue +0x800F4100 jal,ghidra +0x800F421C jal,prologue,ghidra +0x800F42AC jal,prologue,ghidra +0x800F430C prologue +0x800F436C jal,prologue,ghidra +0x800F4424 jal,ghidra +0x800F442C prologue +0x800F44D0 jal,prologue,ghidra +0x800F452C jal,ghidra +0x800F4534 prologue +0x800F459C jal,prologue,ghidra +0x800F465C jal,prologue,ghidra +0x800F4B54 jal,prologue,ghidra +0x800F4B88 jal,prologue,ghidra +0x800F4C08 jal,prologue,ghidra +0x800F4C48 prologue +0x800F4E40 jal,prologue,ghidra +0x800F50B0 jal,ghidra +0x800F50D0 jal,ghidra +0x800F5168 jal,ghidra +0x800F5200 jal,ghidra +0x800F521C jal,ghidra +0x800F52B4 prologue,ghidra +0x800F55C4 prologue +0x800F5800 prologue +0x800F5A80 ghidra +0x800F5AB8 ghidra +0x800F5AF8 jal,ghidra +0x800F5B40 jal,ghidra +0x800F5B70 prologue +0x800F5B94 jal,prologue,ghidra +0x800F5E44 jal,ghidra +0x800F5E4C prologue +0x800F60A4 jal,prologue,ghidra +0x800F61F4 prologue,ghidra +0x800F6330 jal,prologue,ghidra +0x800F6364 jal,prologue,ghidra +0x800F64A8 jal,ghidra +0x800F6548 prologue +0x800F6570 jal,ghidra +0x800F6598 jal,ghidra +0x800F6638 jal,ghidra +0x800F66B8 jal,ghidra +0x800F6718 jal,ghidra +0x800F6898 jal,ghidra +0x800F68A0 prologue +0x800F6948 jal,prologue,ghidra +0x800F69BC jal,prologue,ghidra +0x800F6AD8 jal,ghidra +0x800F6B40 jal,ghidra +0x800F6D60 jal,ghidra +0x800F6DD0 jal,prologue,ghidra +0x800F6E50 jal,prologue,ghidra +0x800F6ED0 jal,ghidra +0x800F6F00 jal,ghidra +0x800F6F10 jal,ghidra +0x800F6F20 jal,ghidra +0x800F6F60 jal,ghidra +0x800F6F70 jal,prologue,ghidra +0x800F70D0 jal,prologue,ghidra +0x800F75D0 jal,ghidra +0x800F7610 jal,prologue,ghidra +0x800F7660 jal,ghidra +0x800F7670 prologue +0x800F77D8 jal,ghidra +0x800F7870 jal,ghidra +0x800F7930 jal,ghidra +0x800F7990 jal,ghidra +0x800F7998 prologue +0x800F79C0 jal,ghidra +0x800F79C8 prologue +0x800F79F0 jal,ghidra +0x800F79F8 prologue +0x800F7A20 jal,ghidra +0x800F7A54 jal +0x800F7A5C prologue +0x800F7A84 jal,ghidra +0x800F7A94 jal,ghidra +0x800F7AAC prologue,ghidra +0x800F7B84 jal,prologue,ghidra +0x800F7D54 prologue,ghidra +0x800F7E9C prologue +0x800F7F3C prologue +0x800F7FB4 jal,ghidra +0x800F7FD8 jal,prologue,ghidra +0x800F8294 jal,ghidra +0x800F8360 prologue +0x800F8638 jal,prologue,ghidra +0x800F8658 jal,ghidra +0x800F8660 prologue +0x800F8724 jal,ghidra +0x800F872C prologue +0x800F8824 prologue +0x800F88F0 jal,ghidra +0x800F88F8 prologue +0x800F8928 jal,ghidra +0x800F8930 prologue +0x800F897C jal,prologue,ghidra +0x800F8A0C jal,prologue,ghidra +0x800F8A48 prologue +0x800F8A70 prologue +0x800F8A98 prologue +0x800F8ACC jal,ghidra +0x800F8ADC jal,ghidra +0x800F8AEC jal,ghidra +0x800F8AF8 jal,prologue,ghidra +0x800F8B18 jal,prologue,ghidra +0x800F8B38 jal,prologue,ghidra +0x800F8B58 jal,ghidra +0x800F8B6C jal,ghidra +0x800F8B80 jal,prologue,ghidra +0x800F8CBC jal,prologue,ghidra +0x800F8DF0 jal,prologue,ghidra +0x800F8F3C jal,prologue +0x800F8F5C jal,prologue,ghidra +0x800F8F7C jal,prologue,ghidra +0x800F8F9C jal,prologue,ghidra +0x800F8FC0 jal,prologue,ghidra +0x800F8FE4 jal,ghidra +0x800F8FF8 jal,ghidra +0x800F9014 jal,ghidra +0x800F9094 jal,ghidra +0x800F9134 jal,ghidra +0x800F9174 jal,ghidra +0x800F9204 jal,ghidra +0x800F92A4 jal,ghidra +0x800F9344 jal,ghidra +0x800F9380 jal,ghidra +0x800F9414 jal,ghidra +0x800F95CC jal,ghidra +0x800F96E8 jal,ghidra +0x800F9938 jal,ghidra +0x800F9BC8 jal,ghidra +0x800F9CD8 jal +0x800F9DC8 jal,ghidra +0x800F9DD8 prologue +0x800F9E0C prologue +0x800FA080 prologue +0x800FA150 jal,prologue,ghidra +0x800FA338 jal,prologue,ghidra +0x800FA4D4 jal,prologue,ghidra +0x800FA5D8 jal,prologue +0x800FA65C prologue +0x800FA688 jal,ghidra +0x800FA698 prologue +0x800FA960 jal,prologue,ghidra +0x800FA980 jal,ghidra +0x800FAC44 jal,prologue,ghidra +0x800FACE8 jal,ghidra +0x800FACF0 prologue +0x800FAF84 jal,prologue,ghidra +0x800FAFF8 jal,ghidra +0x800FB008 jal,ghidra +0x800FB018 jal,ghidra +0x800FB028 jal,ghidra +0x800FB038 jal,ghidra +0x800FB13C jal,ghidra +0x800FB1C8 jal,ghidra +0x800FB228 jal,ghidra +0x800FB368 entry,ghidra +0x800FB410 jal,ghidra +0x800FB418 prologue +0x800FB480 jal,ghidra +0x800FB54C jal,ghidra +0x800FB5B4 jal,ghidra +0x800FB5C4 jal,ghidra +0x800FB5D4 jal,ghidra +0x800FB5E4 jal +0x800FB600 prologue +0x800FB6C4 jal +0x800FB6D8 jal,ghidra +0x800FB6DC prologue +0x800FB758 jal,ghidra +0x800FB7C8 jal,prologue,ghidra +0x800FB8EC jal,prologue,ghidra +0x800FBB20 jal,ghidra +0x800FBB24 prologue +0x800FBBA0 jal,ghidra +0x800FBBA4 prologue +0x800FBD80 jal,ghidra +0x800FBDC0 jal,ghidra +0x800FBDF8 jal,ghidra +0x800FBE04 jal +0x800FBE84 jal,ghidra +0x800FBF5C jal,ghidra +0x800FBF94 prologue +0x800FC280 jal,prologue,ghidra +0x800FC2CC jal +0x800FC2D8 jal,prologue,ghidra +0x800FC774 jal,prologue,ghidra +0x800FC8D0 jal,ghidra +0x800FC9F0 jal,ghidra +0x800FCA90 jal,ghidra +0x800FCB4C jal,prologue,ghidra +0x800FCC30 jal +0x800FCC48 jal,prologue,ghidra +0x800FCF60 jal,ghidra +0x800FCFDC jal,prologue +0x800FD120 jal,prologue +0x800FD220 jal +0x800FD278 jal,prologue,ghidra +0x800FD674 prologue +0x800FD834 jal,prologue,ghidra +0x800FDAA0 prologue +0x800FDB08 jal,ghidra +0x800FDB94 jal,ghidra +0x800FDC38 prologue +0x800FDE54 jal +0x800FDE9C jal,prologue,ghidra +0x800FE844 jal,ghidra +0x800FE86C jal,ghidra +0x800FE878 jal,prologue,ghidra +0x800FE970 jal,prologue +0x800FE9C4 jal,ghidra +0x800FECF8 jal,ghidra +0x800FED84 jal,prologue,ghidra +0x800FEE3C jal,ghidra +0x800FEEB8 jal +0x800FEED0 jal +0x800FEED4 prologue +0x800FEFFC jal +0x800FF008 jal +0x800FF0E4 jal,prologue,ghidra +0x800FF184 jal,prologue +0x800FF43C jal +0x800FF47C jal,ghidra +0x800FF4BC jal,prologue +0x800FF5A8 jal,ghidra +0x800FF5AC prologue +0x800FF6A4 jal +0x800FF6DC jal +0x800FF72C prologue +0x800FF758 jal,prologue,ghidra +0x800FF800 jal,prologue +0x800FFA8C prologue +0x800FFB74 jal +0x800FFBBC jal,ghidra +0x800FFBEC jal,ghidra +0x800FFBF0 prologue +0x800FFC3C jal,prologue,ghidra +0x800FFDB4 jal,prologue,ghidra +0x800FFF60 jal,ghidra +0x800FFFEC jal,ghidra +0x80100038 jal,prologue,ghidra +0x801000A0 jal,prologue,ghidra +0x80100120 jal,prologue,ghidra +0x801001C4 jal,prologue,ghidra +0x80100254 jal,prologue,ghidra +0x80100318 jal,ghidra +0x80100334 jal,ghidra +0x8010036C jal,ghidra +0x801003A4 jal,prologue,ghidra +0x80100438 jal,ghidra +0x80100508 jal,ghidra +0x80100598 jal,ghidra +0x80100660 jal,prologue,ghidra +0x80100740 jal +0x801007E0 jal,prologue,ghidra +0x80100808 jal +0x8010080C jal +0x801008DC jal,ghidra +0x80100934 prologue +0x80100964 jal,ghidra +0x8010097C jal,ghidra +0x80100998 jal,ghidra +0x801009E8 jal,ghidra +0x801009EC prologue +0x80100B2C jal,ghidra +0x80100B30 prologue +0x80101244 jal,ghidra +0x8010128C jal,prologue,ghidra +0x80101678 jal,prologue,ghidra +0x80101764 jal,prologue,ghidra +0x80101838 jal,ghidra +0x80101878 jal,prologue,ghidra +0x80101A54 prologue +0x80101C2C jal,ghidra +0x80101C5C jal,ghidra +0x80101C7C jal,ghidra +0x80101CAC jal,ghidra +0x80101CDC jal,ghidra +0x80101E50 jal +0x80101EA0 jal +0x80101EB0 jal +0x801027CC jal +0x801027F8 jal,prologue +0x801029A0 jal +0x80102A00 jal,prologue +0x80102A80 jal,prologue +0x80102B10 jal +0x80102B30 jal,prologue +0x80102B60 jal +0x80102C20 jal +0x80102CD0 jal,ghidra +0x80102E10 jal,ghidra +0x80102E20 jal +0x80102E24 prologue +0x80102F58 jal +0x80102F5C prologue +0x80102F94 jal,ghidra +0x80102FA4 jal,ghidra +0x80102FD4 jal,ghidra +0x80102FE4 jal,ghidra +0x80103014 jal,ghidra +0x80103024 jal,ghidra +0x80103094 jal,prologue,ghidra +0x80103134 jal,ghidra +0x80103144 jal,ghidra +0x801031C4 jal,ghidra +0x801031CC prologue +0x801032D4 jal,prologue,ghidra +0x80103324 jal,ghidra +0x80103434 jal,ghidra +0x80103544 jal,prologue,ghidra +0x80103804 jal,ghidra +0x80103A94 jal,ghidra +0x80103AA4 jal,ghidra +0x80103AD4 jal,ghidra +0x80103B54 jal,ghidra +0x80103B60 jal,ghidra +0x80103B6C jal,ghidra +0x80103B8C jal,ghidra +0x80103BEC prologue +0x80103C7C jal,ghidra +0x80103CB4 jal,ghidra +0x80103CCC jal,ghidra +0x80103CDC jal,ghidra +0x80103CEC jal,ghidra +0x80103CFC jal,ghidra +0x80103D0C jal,ghidra +0x80103D60 prologue +0x80103F84 jal,ghidra +0x80103FB4 jal,ghidra +0x80103FCC jal,ghidra +0x80103FDC jal,ghidra +0x80103FEC jal,ghidra +0x80103FFC jal,ghidra +0x8010400C jal,ghidra +0x80104040 prologue +0x801040A8 prologue +0x80104230 jal,prologue,ghidra +0x801042FC jal,prologue,ghidra +0x80104630 jal,prologue,ghidra +0x80104720 jal,prologue,ghidra +0x80104930 jal,prologue,ghidra +0x80104BA8 jal,ghidra +0x80104C38 jal,ghidra +0x80104C6C jal,ghidra +0x80104CA0 prologue +0x80104DB0 prologue +0x80105014 jal,prologue,ghidra +0x8010512C jal,ghidra +0x8010513C jal,ghidra +0x80105148 jal,prologue,ghidra +0x801051CC jal,prologue,ghidra +0x8010543C jal,ghidra +0x80105474 jal,prologue,ghidra +0x80105548 prologue +0x801059E8 jal,prologue,ghidra +0x80105B34 jal,ghidra +0x80105B54 jal,ghidra +0x80105B68 jal,ghidra +0x80105B88 jal,ghidra +0x80105BA8 jal,ghidra +0x80105BC8 jal,ghidra +0x80105BE0 jal +0x80105BF0 jal,ghidra +0x80106154 jal,prologue,ghidra +0x801063D4 jal,prologue,ghidra +0x8010669C jal,ghidra +0x801066A4 prologue +0x80106AA8 jal +0x80106B30 jal,ghidra +0x80106C04 jal,ghidra +0x80106CF4 jal,ghidra +0x80106ED4 jal,prologue,ghidra +0x8010703C jal,ghidra +0x8010713C jal,ghidra +0x8010723C prologue +0x80107314 jal,ghidra +0x80107338 jal,ghidra +0x80107398 jal,ghidra +0x80107458 jal +0x80107468 prologue +0x801074E4 jal,ghidra +0x801074F4 jal,ghidra +0x80107874 jal,ghidra +0x801078A4 jal,prologue,ghidra +0x80107A94 jal,ghidra +0x80107AA0 jal,ghidra +0x80107AE0 jal,ghidra +0x80107B20 jal,ghidra +0x80107B40 jal +0x80107B84 jal,ghidra +0x80107B88 prologue +0x80107C5C jal,ghidra +0x80107CCC jal,ghidra +0x80107D18 jal,ghidra +0x80107D7C jal,ghidra +0x80107DE8 jal,prologue,ghidra +0x80107E68 jal,ghidra +0x80107E74 jal,ghidra +0x80107E84 jal,ghidra +0x80107E90 jal,ghidra +0x80107F10 jal +0x80107FAC jal +0x80107FDC jal +0x80108014 jal +0x80108024 jal +0x80108034 jal,ghidra +0x8010804C jal,ghidra +0x8010805C jal +0x8010806C jal +0x801080B8 jal,prologue +0x80108168 jal,prologue,ghidra +0x80108284 jal,prologue +0x80108434 jal,prologue,ghidra +0x801084EC jal,ghidra +0x80108578 jal +0x801085B0 jal,prologue +0x801085D0 jal +0x801085E0 jal,prologue,ghidra +0x80108690 jal,ghidra +0x801086B0 jal +0x80108710 jal +0x80108740 jal,prologue +0x801087D0 jal,ghidra +0x80108990 jal,prologue,ghidra +0x801089C0 jal,prologue,ghidra +0x80108FC0 jal +0x80108FD0 jal +0x80108FE0 jal +0x80108FF0 jal +0x80109000 jal +0x80109010 jal,prologue +0x801091AC prologue +0x801092B0 jal +0x801092C0 jal +0x80109300 jal +0x80109314 jal,prologue +0x80109338 jal,prologue +0x801094D8 jal,prologue +0x801095A8 jal,prologue +0x80109778 jal,ghidra +0x801097A0 jal,ghidra +0x80109828 jal,ghidra +0x80109838 jal,ghidra +0x80109848 jal,ghidra +0x80109868 jal,ghidra +0x80109908 prologue +0x80109960 prologue +0x80109A30 prologue +0x80109AD4 prologue +0x80109BA0 prologue +0x80109F38 jal +0x80109F48 jal,prologue +0x8010A1C8 jal +0x8010A1D8 prologue +0x8010A444 jal +0x8010A454 prologue +0x8010A6C4 jal +0x8010A6CC prologue +0x8010A748 jal +0x8010A78C jal,ghidra +0x8010A888 jal +0x8010A8B0 jal +0x8010A8D8 jal +0x8010A940 jal,prologue +0x8010AA28 jal +0x8010AAA0 jal,ghidra +0x8010AAC0 jal,prologue +0x8010AAF0 jal,ghidra +0x8010ABC0 jal,ghidra +0x8010AE80 jal +0x8010AE90 jal +0x8010AEA0 jal +0x8010AEB0 jal +0x8010AF40 jal +0x8010AF50 jal +0x8010B420 jal,ghidra +0x8010B500 jal,ghidra +0x80140808 jal +0x8014080C jal +0x80142A40 jal +0x80146C90 jal +0x80146D00 jal +0x80146D50 jal +0x80146FBC jal +0x801471CC jal +0x80147248 jal +0x80147400 jal +0x80147538 jal +0x8014762C jal,ghidra +0x80147650 jal,ghidra +0x80147660 jal,ghidra +0x801478A8 jal +0x801478C8 jal +0x80147960 jal,ghidra +0x80147BEC jal +0x80147C6C jal +0x80147CE0 jal,ghidra +0x80147D40 jal +0x80147D74 jal +0x80147D80 jal +0x80147DFC jal +0x80147E1C jal +0x80147E40 jal +0x80147F30 jal +0x80147FC0 jal +0x8014804C jal +0x801480E0 jal +0x8014818C jal +0x80148210 jal,ghidra +0x80148240 jal +0x801482B0 jal +0x801482F0 jal +0x80148674 jal +0x80148D6C jal +0x80148FC4 jal +0x8014921C jal +0x80149478 jal +0x8014948C jal +0x801495A8 jal +0x801496A4 jal +0x801497CC jal +0x801498CC jal +0x80149928 jal +0x801499B8 jal +0x80149A00 jal +0x80149A10 jal +0x80149A8C jal +0x80149AF8 jal +0x80149BB0 jal +0x80149D8C jal +0x80149E40 jal +0x80149F48 jal +0x8014A020 jal +0x8014A0F8 jal +0x8014A134 jal +0x8014A170 jal +0x8014A180 jal +0x8014A1C0 jal +0x8014A1D0 jal +0x8014A5A0 jal +0x8014AC60 jal +0x8014AC70 jal +0x8014AC80 jal +0x8014AC90 jal +0x8014AD6C jal +0x8014AE00 jal +0x8014AE70 jal +0x8014AEB0 jal +0x8014AEC0 jal +0x8014F07C jal,ghidra +0x8014F51C jal,ghidra +0x801509BC jal,ghidra +0x80150EB0 jal +0x80151098 jal +0x80151294 jal,ghidra +0x801512D4 jal +0x801513B0 jal +0x801515F4 jal,ghidra +0x80151600 jal +0x80151660 jal +0x80151680 jal,ghidra +0x80151968 jal +0x80151A08 jal +0x80151AF4 jal +0x80151B64 jal +0x80151C64 jal +0x80151CEC jal +0x80151D80 jal +0x801520AC jal +0x80152144 jal,ghidra +0x801521EC jal +0x80152258 jal +0x801522D0 jal +0x8015230C jal +0x8015236C jal +0x80152408 jal +0x801525B8 jal +0x8015272C jal +0x80152C88 jal +0x80152E3C jal +0x80152F68 jal +0x80153034 jal +0x80153140 jal +0x801532A4 jal +0x80153458 jal +0x801536E8 jal +0x80153868 jal +0x801538D4 jal +0x80153ABC jal +0x80153DD0 jal +0x80154060 jal +0x801540D4 jal +0x801540FC jal +0x801541AC jal +0x8015450C jal +0x80155678 jal +0x80155F64 jal +0x80155FFC jal +0x80156328 jal +0x801564B4 jal +0x80156548 jal +0x801569A0 jal +0x80156B24 jal,ghidra +0x80156D78 jal,ghidra +0x80156FD8 jal,ghidra +0x80159DE8 jal,ghidra +0x80159FD0 jal,ghidra +0x8015EE38 jal +0x8015EE9C jal +0x8015F200 jal +0x8015F4AC jal +0x8015F554 jal +0x8015F590 jal +0x801617F4 jal +0x80161924 jal +0x8016192C jal +0x80161978 jal +0x80161A74 jal +0x80161B70 jal,ghidra +0x80162070 jal +0x80162690 jal +0x80162830 jal +0x80162AA8 jal +0x80162B10 jal +0x80162FCC jal +0x80163034 jal +0x80163114 jal,ghidra +0x80163CB8 jal +0x80163D78 jal +0x80163E24 jal +0x801640B0 jal +0x8016420C jal +0x801643B0 jal,ghidra +0x801644AC jal +0x80164568 jal +0x80164624 jal +0x80164824 jal +0x8016486C jal +0x801648E8 jal +0x8016498C jal +0x80164AFC jal +0x80164B94 jal +0x80164CF4 jal +0x80164DFC jal +0x80164F5C jal +0x80165058 jal +0x80165450 jal +0x80165828 jal +0x80165FF8 jal +0x80166088 jal +0x80166528 jal +0x801665E4 jal +0x80166A00 jal +0x80166BEC jal +0x80166EAC jal +0x80166FBC jal +0x80167174 jal +0x8016729C jal +0x8016733C jal,ghidra +0x801679E0 jal +0x80167E68 jal +0x80167F38 jal +0x80168288 jal,ghidra +0x8016829C jal +0x80168638 jal +0x801687B0 jal +0x80168910 jal +0x80168A48 jal +0x801690CC jal +0x80169374 jal +0x80169448 jal,ghidra +0x8016946C jal,ghidra +0x80169490 jal +0x801694EC jal +0x80169540 jal +0x801696A0 jal +0x80169840 jal +0x80169944 jal +0x80169994 jal +0x801699F0 jal +0x80169CD4 jal +0x8016A004 jal +0x8016A05C jal,ghidra +0x8016A830 jal +0x8016A974 jal +0x8016AA20 jal,ghidra +0x8016AAB4 jal +0x8016ADA8 jal +0x8016ADF0 jal +0x8016AE30 jal +0x8016B298 jal +0x8016B348 jal +0x8016B524 jal +0x8016B564 jal +0x8016B8F4 jal +0x8016C0C4 jal +0x8016C164 jal +0x8016C1C4 jal +0x8016C27C jal +0x8016C324 jal +0x8016C47C jal +0x8016C4D4 jal +0x8016C75C jal +0x8016C808 jal +0x8016C838 jal +0x8016C850 jal +0x8016C8E4 jal +0x8016CA70 jal +0x8016CAA4 jal +0x8016CD48 jal +0x8016CDEC jal +0x8016CF84 jal +0x8016D090 jal +0x8016D108 jal +0x8016D1D0 jal,ghidra +0x8016D364 jal +0x8016D3D8 jal +0x8016D818 jal,ghidra +0x8016D88C jal +0x8016D9AC jal +0x8016DA80 jal +0x8016DDA8 jal +0x8016DDE0 jal +0x8016E2D8 jal,ghidra +0x8016E32C jal +0x8016E494 jal +0x8016E4DC jal +0x8016E504 jal +0x8016E60C jal +0x8016E93C jal +0x8017D5C0 jal +0x801800C4 jal +0x80180808 jal +0x8018080C jal +0x801AF338 prologue +0x801AF704 prologue +0x801AF99C prologue +0x801AFB10 prologue +0x801AFCD4 prologue +0x801AFF1C prologue +0x801B0098 prologue +0x801B01DC prologue +0x801B02E0 prologue +0x801B03E4 prologue +0x801B0504 prologue +0x801B0638 prologue +0x801B0754 prologue +0x801B0820 prologue +0x801B0924 prologue +0x801B0A28 prologue +0x801B0B04 prologue +0x801B0B94 prologue +0x801B0D1C prologue +0x801B0FCC prologue +0x801B1160 prologue +0x801B18EC prologue +0x801B1A6C prologue +0x801B1AB0 prologue +0x801B1BAC prologue +0x801B1CA8 prologue +0x801B21B0 prologue +0x801B27D0 prologue +0x801B2968 prologue +0x801B3104 prologue +0x801B316C prologue +0x801B324C prologue +0x801B3DF0 prologue +0x801B41E8 prologue +0x801B4344 prologue +0x801B44E8 prologue +0x801B49A4 prologue +0x801B4A20 prologue +0x801B4C34 prologue +0x801B4CCC prologue +0x801B4E2C prologue +0x801B4F34 prologue +0x801B5094 prologue +0x801B5190 prologue +0x801B54F8 prologue +0x801B568C prologue +0x801B57D8 prologue +0x801B5894 prologue +0x801B5A38 prologue +0x801B5BA8 prologue +0x801B5CF8 prologue +0x801B5EC8 prologue +0x801B6130 prologue +0x801B61C0 prologue +0x801B6200 prologue +0x801B6318 prologue +0x801B63E0 prologue +0x801B6660 prologue +0x801B6790 prologue +0x801B6984 prologue +0x801B6B38 prologue +0x801B6D24 prologue +0x801B6D74 prologue +0x801B6F54 prologue +0x801B70F4 prologue +0x801B72AC prologue +0x801B7474 prologue +0x801B7654 prologue +0x801B7768 prologue +0x801B79C8 prologue +0x801B7B18 prologue +0x801B7BF8 prologue +0x801B7DB8 prologue +0x801B7FA0 prologue +0x801B8070 prologue +0x801B80F8 prologue +0x801B816C prologue +0x801B83D4 prologue +0x801B88E8 prologue +0x801B8A48 prologue +0x801B8B80 prologue +0x801B9204 prologue +0x801B93C8 prologue +0x801B94AC prologue +0x801B9580 prologue +0x801B95A4 prologue +0x801B95C8 prologue +0x801B9678 prologue +0x801B97D8 prologue +0x801B9978 prologue +0x801B9A7C prologue +0x801B9B28 prologue +0x801B9E0C prologue +0x801BA194 prologue +0x801BAAAC prologue +0x801BAB58 prologue +0x801BAF68 prologue +0x801BB3D8 prologue +0x801BB450 jal +0x801BB480 prologue +0x801BB69C prologue +0x801BBA2C prologue +0x801BC29C prologue +0x801BC3B4 prologue +0x801BC45C prologue +0x801BC5B4 prologue +0x801BC60C prologue +0x801BC940 prologue +0x801BC990 prologue +0x801BCA24 prologue +0x801BCBDC prologue +0x801BCE80 prologue +0x801BCF24 prologue +0x801BD0BC prologue +0x801BD1C8 prologue +0x801BD310 prologue +0x801BD49C prologue +0x801BD9C4 prologue +0x801BDBB8 prologue +0x801BDF18 prologue +0x801BE464 prologue +0x801BE614 prologue +0x801BE63C prologue +0x801BE744 prologue +0x801BEA74 prologue +0x801C0BA8 prologue +0x801C0C10 prologue +0x801C0C60 prologue +0x801C0ECC prologue +0x801C10DC prologue +0x801C1158 prologue +0x801C1570 prologue +0x801C17B8 prologue +0x801C17E0 prologue +0x801C1878 prologue +0x801C1C50 prologue +0x801C1D0C prologue +0x801C1D2C prologue +0x801C1E40 prologue +0x801C1ED0 prologue +0x801C2120 prologue +0x801C2150 prologue +0x801C2268 prologue +0x801C25EC prologue +0x801C294C prologue +0x801C2B40 prologue +0x801C2C7C prologue +0x801C2D94 prologue +0x801C2ED4 prologue +0x801C2FEC prologue +0x801C312C prologue +0x801C34B8 prologue +0x801C3730 prologue +0x801C3838 prologue +0x801C38C8 prologue +0x801C3AC0 prologue +0x801C3C9C prologue +0x801C3D58 prologue +0x801C3E58 prologue +0x801C3F30 prologue +0x801C4090 prologue +0x801C40E0 prologue +0x801C44B0 prologue +0x801D3CA8 prologue +0x801D3E90 prologue +0x801D43F8 prologue +0x801D4458 prologue +0x801D4760 prologue +0x801D4808 prologue +0x801D4A5C prologue +0x801D4B78 prologue +0x801D4EA4 prologue +0x801D5164 prologue +0x801D5200 prologue +0x801D53B8 prologue +0x801D54DC prologue +0x801D5524 prologue +0x801D5818 prologue +0x801D5B78 prologue +0x801D5D28 prologue +0x801D5E2C prologue +0x801D5F38 prologue +0x801D609C prologue +0x801D6250 prologue +0x801D64E0 prologue +0x801D6660 prologue +0x801D66CC prologue +0x801D68B4 prologue +0x801D6BC8 prologue +0x801D6E58 prologue +0x801D6ECC prologue +0x801D6EF4 prologue +0x801D6FD8 prologue +0x801D7314 prologue +0x801D7478 prologue +0x801D75E8 prologue +0x801D7608 prologue +0x801D79A4 prologue +0x801D7A64 prologue +0x801D7B58 prologue +0x801D7C50 prologue +0x801D7D44 prologue +0x801D7F68 prologue +0x801D7FD0 prologue +0x801D8670 prologue +0x801D87A8 prologue +0x801D8CE8 prologue +0x801D8D38 prologue +0x801D8D64 prologue +0x801D8DF4 prologue +0x801D9120 prologue +0x801D9340 prologue +0x801D9798 prologue +0x801D991C prologue diff --git a/docs/PHASE6_BOUNDARIES.md b/docs/PHASE6_BOUNDARIES.md new file mode 100644 index 0000000..b4ef293 --- /dev/null +++ b/docs/PHASE6_BOUNDARIES.md @@ -0,0 +1,68 @@ +# Phase 6 — Evidence-Graded Function-Boundary Inventory + +**Scope:** P6-T5 — replace address-gap guessing with an inventory of candidate function starts graded +by evidence, and state the limits of every grade. +**Status:** complete. The inventory is tracked as `config/function_inventory.tsv`; no candidate is +promoted to a match on the strength of the inventory alone. + +## What the inventory is + +`config/function_inventory.tsv` lists every candidate function start in the payload with the evidence +that supports it. It contains **addresses and grade names only** — no instruction bytes and no +disassembly. + +| Grade | Definition | Basis | Limit | +|---|---|---|---| +| `entry` | the PS-X EXE header's entry PC | header field | definite address, but it is CRT startup, not C | +| `jal` | the target of a `jal` instruction in the payload | direct call site | strongest grade: a called address is a function entry; a shared tail reached by `jal` would be mislabeled, but no such case is known here | +| `prologue` | first instruction `addiu sp,sp,-N` (N>0), second a `sw ...,off(sp)` | standard non-leaf prologue | medium: a function may contain such a sequence internally; leaf functions have no prologue | +| `ghidra` | present in the Ghidra function list | Ghidra auto-analysis | medium: Ghidra both misses functions and can invent them; not necessary or sufficient | + +## Provenance and reproduction + +- Executable: the validated USA `SCUS_946.40;1` (SHA-1 `e173426c…`). +- Ghidra list: `ghidra_read_function_list` from the ignored Phase 2 working program + `/P2-analysis-SCUS_946.40;1` — **1,721** defined functions. It is stored in the ignored path + `ghidra/function_starts.txt` (one hex address per line) and is not tracked. +- Tool: tracked `tools/sf3_boundaries`, synthetic-tested (15 tests), standard library only. + +```bash +./tools/sf3_boundaries scan \ + --exe 'extracted/SCUS_946.40;1' \ + --ghidra ghidra/function_starts.txt \ + --out config/function_inventory.tsv +# -> candidates=2875 grade_entry=1 grade_jal=2283 grade_prologue=1513 grade_ghidra=1721 +``` + +## Agreement and disagreement + +| Measure | Count | +|---|---| +| Candidates (union of all grades) | 2,875 | +| `entry` | 1 | +| `jal` | 2,283 | +| `prologue` | 1,513 | +| `ghidra` | 1,721 | +| Ghidra functions that are also `jal` targets | 1,708 | +| **`jal` targets Ghidra did not define** | **575** | +| `prologue` candidates Ghidra did not define | 691 | +| Ghidra functions found by no scan grade | 6 | +| Candidates whose only grade is `ghidra` | 6 | + +The important disagreement is the **575 called addresses Ghidra did not define**: every one is the +target of a `jal`, so Ghidra's function set is incomplete for call targets. Conversely, only 6 Ghidra +functions lack any scan grade, and prologue-only candidates are the least reliable (a repeated +prologue pattern inside a larger function is a known false-positive source). + +## Library versus game code + +**Unresolved.** No grade distinguishes a PsyQ library routine from game code. The executable is a +single linked image; there is no symbol table, no relocation table, and no section map that separates +them. Any claim that a given address is library or game code requires evidence this phase does not +have. This is recorded as a limit, not a conclusion. + +## Use + +The inventory is an input for choosing match targets (P6-T6): prefer `jal`-graded, unique, small +bodies. It is **not** a match claim. A candidate becomes a match only after an instruction-identical +`sf3_match range` comparison and a green clean full-binary `make gate`. diff --git a/phase-ends/CURRENT_PHASE.md b/phase-ends/CURRENT_PHASE.md index b7211f2..cf20d80 100644 --- a/phase-ends/CURRENT_PHASE.md +++ b/phase-ends/CURRENT_PHASE.md @@ -11,7 +11,7 @@ - [x] **P6-T3 — `maspsx` integration and the ASPSX `la` verification** (complete) - [x] **P6-T4 — `-G` small-data threshold from byte evidence** (complete) - [x] **Rules check** — re-read `AGENTS.md` mandatory behavior after P6-T4 and stated the required continuation notice. -- [ ] P6-T5 — Evidence-graded function-boundary inventory +- [x] **P6-T5 — Evidence-graded function-boundary inventory** (complete) - [ ] P6-T6 — First matching batch, with duplicate sharing - [ ] P6-T7 — Cookbook, conventions, verification record, and phase gate @@ -163,3 +163,33 @@ the numeric `-G` is unresolved and unnecessary under this mechanism; the `la`-of is implemented but not yet exercised on a real function. **Rules check — re-read complete. Continuing with P6-T5.** + +## P6-T5 — Evidence-graded function-boundary inventory (2026-09-23) + +**Delivered:** + +- Tracked tool `tools/sf3_boundaries` (stdlib only, synthetic-tested) that scans the executable and + grades every candidate function start as `entry`, `jal`, `prologue`, and/or `ghidra`. +- Tracked inventory `config/function_inventory.tsv` — 2,875 candidates, addresses and grades only + (no bytes, no disassembly). +- Record `docs/PHASE6_BOUNDARIES.md` with the grade definitions, their limits, provenance, counts, and + the reproduction command. +- The Ghidra list (1,721 functions) is kept in the ignored `ghidra/function_starts.txt`. + +**Key finding:** 575 `jal` targets are **not** in Ghidra's function set, so Ghidra alone is incomplete +for call targets; the inventory is more complete for that grade. Prologue-only candidates are the +least reliable (a repeated prologue inside a larger function is a false positive). + +**Library-versus-game-code is explicitly unresolved:** no grade separates PsyQ library code from game +code in this single linked image. + +**Verification:** + +| Check | Result | +|---|---| +| `tools/sf3_boundaries scan` on the validated executable | 2,875 candidates; `jal` 2,283, `prologue` 1,513, `ghidra` 1,721 | +| Synthetic suite | 86 tests pass (15 added for the boundary tool) | +| ROM safety | inventory contains addresses and grade names only | + +**Limit:** no candidate is promoted to a match on the strength of the inventory alone; every match +still needs `sf3_match range` and `make gate`. diff --git a/tools/sf3_boundaries b/tools/sf3_boundaries new file mode 100755 index 0000000..416aea7 --- /dev/null +++ b/tools/sf3_boundaries @@ -0,0 +1,192 @@ +#!/usr/bin/env python3 +"""Evidence-graded function-boundary inventory for the USA executable. + +This replaces address-gap guessing with a deterministic scan that labels every +candidate function start with the evidence that supports it: + + entry the PS-X EXE header's entry PC. + jal the target of a `jal` instruction inside the payload. A direct call + target is a function entry; this is the strongest grade. + prologue an address whose first instruction is `addiu sp,sp,-N` (N > 0) and + whose second is a `sw ...,off(sp)`. This is the standard non-leaf + prologue; it can be a false positive if such a sequence appears + inside another function. + ghidra an address present in a Ghidra function list supplied by the caller + (`--ghidra FILE`, one hex address per line). Ghidra's auto-analysis + both misses functions and invents them, so this grade is neither + necessary nor sufficient. + +Output is a sorted TSV of `addressgrades` with a short header. It contains +addresses only -- never instruction bytes -- and the input executable is only +read from a caller-supplied path. Nothing here promotes a candidate to a match: +a match still requires an instruction-identical comparison and the full-binary +gate. + +The library-versus-game-code question is **unresolved**; no grade distinguishes +a PsyQ library routine from game code. + +Exit codes: 0 success, 2 usage or environment error. +""" + +from __future__ import annotations + +import argparse +from pathlib import Path +import struct +import sys +from typing import Sequence + + +EXE_MAGIC = b"PS-X EXE" +HEADER_SIZE = 0x800 +PAYLOAD_LMA = 0x800 + +GRADE_ORDER = ("entry", "jal", "prologue", "ghidra") + + +class ToolError(Exception): + """A usage or environment problem; maps to exit code 2.""" + + +def parse_hex(text: str, label: str) -> int: + try: + return int(text, 16) + except ValueError as exc: + raise ToolError(f"{label}: not a hex address: {text!r}") from exc + + +def require_file(path: Path, label: str) -> Path: + if not path.is_file(): + raise ToolError(f"{label} is not a regular file: {path}") + return path + + +def fresh_path(path: Path, label: str) -> Path: + if path.exists() or path.is_symlink(): + raise ToolError(f"{label} already exists: {path}") + return path + + +def parse_psx_exe(header: bytes) -> tuple[int, int, int]: + if len(header) < HEADER_SIZE: + raise ToolError("executable is smaller than a PS-X EXE header") + if header[:8] != EXE_MAGIC: + raise ToolError("executable does not carry the PS-X EXE magic") + entry, _gp, text_address, text_size = struct.unpack_from(" set[int]: + if path is None: + return set() + addresses: set[int] = set() + for number, raw in enumerate(path.read_text(encoding="utf-8").splitlines(), 1): + line = raw.split("#", 1)[0].strip() + if not line: + continue + addresses.add(parse_hex(line, f"ghidra line {number}")) + return addresses + + +def scan(payload: bytes, text_address: int, entry: int, ghidra: set[int]) -> dict[int, set[str]]: + """Return address -> evidence grades for every candidate start.""" + grades: dict[int, set[str]] = {} + end = text_address + len(payload) + + def add(address: int, grade: str) -> None: + if text_address <= address < end and address % 4 == 0: + grades.setdefault(address, set()).add(grade) + + add(entry, "entry") + + for address in ghidra: + add(address, "ghidra") + + words = len(payload) // 4 + for index in range(words): + word = struct.unpack_from("> 26 + if opcode == 0x03: # jal + target = ((pc + 4) & 0xF0000000) | ((word & 0x03FFFFFF) << 2) + add(target, "jal") + elif opcode == 0x09: # addiu sp,sp,-N followed by sw ...,off(sp) + rs = (word >> 21) & 0x1F + rt = (word >> 16) & 0x1F + immediate = word & 0xFFFF + signed = immediate - 0x10000 if immediate & 0x8000 else immediate + if rs == 29 and rt == 29 and signed < 0 and index + 1 < words: + following = struct.unpack_from("> 26) == 0x2B and ((following >> 21) & 0x1F) == 29: + add(pc, "prologue") + + return grades + + +def format_inventory(grades: dict[int, set[str]]) -> str: + lines = [ + "# Syphon Filter 3 (USA) function-boundary inventory.", + "# Columns: addresscomma-separated evidence grades.", + "# Grades: entry, jal, prologue, ghidra. Addresses only; no bytes.", + "# Library-versus-game-code is unresolved; no grade answers it.", + ] + for address in sorted(grades): + names = [grade for grade in GRADE_ORDER if grade in grades[address]] + lines.append(f"0x{address:08X}\t{','.join(names)}") + return "\n".join(lines) + "\n" + + +def command_scan(args: argparse.Namespace) -> int: + exe_path = require_file(args.exe, "executable") + out = fresh_path(args.out, "output") + data = exe_path.read_bytes() + entry, text_address, text_size = parse_psx_exe(data) + payload = data[PAYLOAD_LMA:PAYLOAD_LMA + text_size] + ghidra = load_ghidra(args.ghidra) + grades = scan(payload, text_address, entry, ghidra) + + counts = {grade: 0 for grade in GRADE_ORDER} + for names in grades.values(): + for grade in names: + counts[grade] += 1 + out.parent.mkdir(parents=True, exist_ok=True) + out.write_text(format_inventory(grades), encoding="ascii") + + print(f"candidates={len(grades)}") + for grade in GRADE_ORDER: + print(f"grade_{grade}={counts[grade]}") + print(f"output={out}") + return 0 + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + subparsers = parser.add_subparsers(dest="command", required=True) + scan_parser = subparsers.add_parser("scan", help="scan an executable") + scan_parser.add_argument("--exe", required=True, type=Path) + scan_parser.add_argument("--ghidra", type=Path, default=None, + help="Ghidra function list, one hex address per line") + scan_parser.add_argument("--out", required=True, type=Path) + scan_parser.set_defaults(handler=command_scan) + return parser + + +def main(argv: Sequence[str] | None = None) -> int: + parser = build_parser() + args = parser.parse_args(argv) + try: + return args.handler(args) + except ToolError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 + except OSError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/tests/test_sf3_boundaries.py b/tools/tests/test_sf3_boundaries.py new file mode 100644 index 0000000..98213ea --- /dev/null +++ b/tools/tests/test_sf3_boundaries.py @@ -0,0 +1,166 @@ +"""Synthetic-only tests for the function-boundary inventory tool. + +Fixtures are self-authored bytes in temporary directories. They never read the +local disc or the extracted game executable. +""" + +from __future__ import annotations + +import importlib.machinery +import importlib.util +from pathlib import Path +import struct +import sys +import tempfile +import unittest + + +TOOL_PATH = Path(__file__).resolve().parents[1] / "sf3_boundaries" + + +def _load_tool() -> object: + loader = importlib.machinery.SourceFileLoader("sf3_boundaries_under_test", str(TOOL_PATH)) + spec = importlib.util.spec_from_loader(loader.name, loader) + if spec is None: + raise RuntimeError("could not create an import specification") + module = importlib.util.module_from_spec(spec) + sys.modules[spec.name] = module + loader.exec_module(module) + return module + + +sf3_boundaries = _load_tool() + +PAYLOAD = 0x80010000 + + +def _r(opcode: int, rs: int, rt: int, immediate: int) -> int: + return (opcode << 26) | (rs << 21) | (rt << 16) | (immediate & 0xFFFF) + + +def _jal(target: int) -> int: + return (0x03 << 26) | ((target >> 2) & 0x03FFFFFF) + + +def _synthetic_exe(payload: bytes, entry: int) -> bytes: + header = bytearray(0x800) + header[:8] = b"PS-X EXE" + struct.pack_into(" bytes: + words = [0] * 16 + words[0] = _jal(PAYLOAD + 0x20) # 0x80010000 calls 0x80010020 + words[4] = 0x03E00008 # 0x80010010: jr ra + words[8] = _r(0x09, 29, 29, 0xFFF0) # 0x80010020: addiu sp,sp,-16 + words[9] = _r(0x2B, 29, 31, 12) # sw ra,12(sp) + return b"".join(struct.pack(" None: + with self.assertRaises(sf3_boundaries.ToolError): + sf3_boundaries.parse_psx_exe(bytes(0x800)) + + def test_rejects_empty_payload(self) -> None: + header = bytearray(0x800) + header[:8] = b"PS-X EXE" + with self.assertRaises(sf3_boundaries.ToolError): + sf3_boundaries.parse_psx_exe(bytes(header)) + + +class GhidraTests(unittest.TestCase): + def test_parses_comments_and_hex(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + path = Path(tmp) / "ghidra.txt" + path.write_text("# comment\n80010010\n\n0x80010020\n", encoding="ascii") + self.assertEqual(sf3_boundaries.load_ghidra(path), + {0x80010010, 0x80010020}) + + def test_rejects_a_bad_address(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + path = Path(tmp) / "ghidra.txt" + path.write_text("nothex\n", encoding="ascii") + with self.assertRaises(sf3_boundaries.ToolError): + sf3_boundaries.load_ghidra(path) + + +class ScanTests(unittest.TestCase): + def setUp(self) -> None: + self.payload = _payload() + self.grades = sf3_boundaries.scan( + self.payload, PAYLOAD, PAYLOAD, {PAYLOAD + 0x10} + ) + + def test_entry_is_graded(self) -> None: + self.assertIn("entry", self.grades[PAYLOAD]) + + def test_jal_target_is_graded(self) -> None: + self.assertIn("jal", self.grades[PAYLOAD + 0x20]) + + def test_prologue_is_graded(self) -> None: + self.assertIn("prologue", self.grades[PAYLOAD + 0x20]) + + def test_ghidra_only_function_is_graded(self) -> None: + self.assertEqual(self.grades[PAYLOAD + 0x10], {"ghidra"}) + + def test_an_address_with_no_evidence_is_absent(self) -> None: + self.assertNotIn(PAYLOAD + 0x04, self.grades) + + def test_a_jal_outside_the_payload_is_not_graded(self) -> None: + payload = bytearray(self.payload) + struct.pack_into(" None: + grades = sf3_boundaries.scan(self.payload, PAYLOAD, PAYLOAD, {0x80020000}) + self.assertNotIn(0x80020000, grades) + + +class FormatTests(unittest.TestCase): + def test_sorted_with_grades_in_fixed_order(self) -> None: + text = sf3_boundaries.format_inventory( + {PAYLOAD + 8: {"ghidra", "jal"}, PAYLOAD: {"entry"}} + ) + body = [line for line in text.splitlines() if not line.startswith("#")] + self.assertEqual(body, [ + f"0x{PAYLOAD:08X}\tentry", + f"0x{PAYLOAD + 8:08X}\tjal,ghidra", + ]) + + def test_contains_no_bytes(self) -> None: + text = sf3_boundaries.format_inventory({PAYLOAD: {"entry"}}) + self.assertNotIn("80010000:", text) + + +class MainTests(unittest.TestCase): + def test_scan_writes_the_inventory(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + exe = root / "synthetic.exe" + exe.write_bytes(_synthetic_exe(_payload(), PAYLOAD)) + ghidra = root / "ghidra.txt" + ghidra.write_text("80010010\n", encoding="ascii") + out = root / "inventory.tsv" + rc = sf3_boundaries.main(["scan", "--exe", str(exe), + "--ghidra", str(ghidra), "--out", str(out)]) + self.assertEqual(rc, 0) + text = out.read_text(encoding="ascii") + self.assertIn(f"0x{PAYLOAD:08X}\tentry", text) + self.assertIn(f"0x{PAYLOAD + 0x20:08X}\tjal,prologue", text) + + def test_refuses_an_existing_output(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + exe = root / "synthetic.exe" + exe.write_bytes(_synthetic_exe(_payload(), PAYLOAD)) + out = root / "inventory.tsv" + out.write_text("", encoding="ascii") + rc = sf3_boundaries.main(["scan", "--exe", str(exe), "--out", str(out)]) + self.assertEqual(rc, 2) + + +if __name__ == "__main__": + unittest.main()