From 14e927fca61df86a178c3cf85eca250a71004297 Mon Sep 17 00:00:00 2001 From: Christopher Williams Date: Thu, 24 Sep 2026 10:13:18 -0400 Subject: [PATCH] =?UTF-8?q?phase11:=20merge=2025=20=E2=80=94=20543=20bodie?= =?UTF-8?q?s=20/=20552=20regions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Worker A's 0x800914E4 (400 B), closed on the row assigned under the revised picking order (adjacency first, then redundancy, preferring the smaller of similar-scored rows). --- config/match_worklist.tsv | 719 +++++++++++++++++++------------------- config/regions.tsv | 1 + src/func_800307FC.c | 59 ++++ src/func_8006B7C0.c | 106 ++++++ src/func_800914E4.c | 96 +++++ 5 files changed, 621 insertions(+), 360 deletions(-) create mode 100644 src/func_800307FC.c create mode 100644 src/func_8006B7C0.c create mode 100644 src/func_800914E4.c diff --git a/config/match_worklist.tsv b/config/match_worklist.tsv index f0e7163..afa80e6 100644 --- a/config/match_worklist.tsv +++ b/config/match_worklist.tsv @@ -707,367 +707,366 @@ 700 0x8008D6E0 0x8008D86C 396 exact 2 frame 8 - 1 701 0x800BF5A8 0x800BF734 396 exact 2 frame 1 - 1 702 0x80026A9C 0x80026C2C 400 exact 2 frame 7 - 1 -703 0x800914E4 0x80091674 400 exact 2 frame 10 - 1 -704 0x80026C7C 0x80026E10 404 exact 2 frame 7 - 1 -705 0x80029118 0x800292AC 404 exact 2 frame 0 - 1 -706 0x80046884 0x80046A18 404 exact 2 frame 3 - 1 -707 0x80073B74 0x80073D08 404 exact 2 frame 10 - 1 -708 0x80079EEC 0x8007A080 404 exact 2 frame 2 - 1 -709 0x80096364 0x800964F8 404 exact 2 frame 8 - 1 -710 0x80109338 0x801094CC 404 exact 2 frame 5 - 1 -711 0x800162B4 0x8001644C 408 exact 2 frame 4 - 1 -712 0x800309CC 0x80030B64 408 exact 2 frame 3 - 1 -713 0x8004AAF0 0x8004AC88 408 exact 2 frame 3 - 1 -714 0x800A5D24 0x800A5EBC 408 exact 2 frame 2 - 1 -715 0x800C5AEC 0x800C5C84 408 exact 2 frame 1 - 1 -716 0x800199D0 0x80019B6C 412 exact 2 frame 4 - 1 -717 0x80025FE4 0x80026180 412 exact 2 frame 1 - 1 -718 0x8006606C 0x80066208 412 exact 2 frame 7 - 1 -719 0x800FA338 0x800FA4D4 412 exact 2 frame 10 - 1 -720 0x80109010 0x801091AC 412 exact 2 frame 3 - 1 -721 0x80051F50 0x800520F0 416 exact 2 frame 0 - 1 -722 0x8007F774 0x8007F914 416 exact 2 frame 1 - 1 -723 0x800A8700 0x800A88A0 416 exact 2 frame 2 - 1 -724 0x800BE828 0x800BE9C8 416 exact 2 frame 4 - 1 -725 0x80044610 0x800447B4 420 exact 2 frame 3 - 1 -726 0x8006B7C0 0x8006B964 420 exact 2 frame 16 - 1 -727 0x80041A58 0x80041C00 424 exact 2 frame 8 - 1 -728 0x800AA10C 0x800AA2B4 424 exact 2 frame 1 - 1 -729 0x801027F8 0x801029A0 424 exact 2 frame 1 - 1 -730 0x8002497C 0x80024B28 428 exact 2 frame 5 - 1 -731 0x8002AAD8 0x8002AC84 428 exact 2 frame 9 - 1 -732 0x800489D8 0x80048B84 428 exact 2 frame 3 - 1 -733 0x800FFDB4 0x800FFF60 428 exact 2 frame 4 - 1 -734 0x8004E24C 0x8004E3FC 432 exact 2 frame 2 - 1 -735 0x800B0ECC 0x800B107C 432 exact 2 frame 0 - 1 -736 0x80108284 0x80108434 432 exact 2 frame 3 - 1 -737 0x8001AC10 0x8001ADC4 436 exact 2 frame 4 - 1 -738 0x800AA2F8 0x800AA4AC 436 exact 2 frame 2 - 1 -739 0x800231BC 0x80023374 440 exact 2 frame 6 - 1 -740 0x8002D828 0x8002D9E0 440 exact 2 frame 1 - 1 -741 0x80081174 0x8008132C 440 exact 2 frame 8 - 1 -742 0x8009D8E0 0x8009DA98 440 exact 2 frame 1 - 1 -743 0x80025B64 0x80025D20 444 exact 2 frame 7 - 1 -744 0x800559C4 0x80055B84 448 exact 2 frame 0 - 1 -745 0x800AD7E8 0x800AD9A8 448 exact 2 frame 3 - 1 -746 0x800AE9E0 0x800AEBA0 448 exact 2 frame 7 - 1 -747 0x8010A1C8 0x8010A388 448 exact 2 frame 6 - 1 -748 0x8002ACBC 0x8002AE80 452 exact 2 frame 12 - 1 -749 0x8002FE3C 0x80030000 452 exact 2 frame 3 - 1 -750 0x800839E8 0x80083BAC 452 exact 2 frame 2 - 1 -751 0x800BBE90 0x800BC054 452 exact 2 frame 0 - 1 -752 0x80018560 0x80018728 456 exact 2 frame 1 - 1 -753 0x80068D78 0x80068F40 456 exact 2 frame 10 - 1 -754 0x8006E1B0 0x8006E378 456 exact 2 frame 3 - 1 -755 0x80077088 0x80077250 456 exact 2 frame 7 - 1 -756 0x80030630 0x800307FC 460 exact 2 frame 2 - 1 -757 0x80036F70 0x8003713C 460 exact 2 frame 3 - 1 -758 0x800590D8 0x800592A4 460 exact 2 frame 6 - 1 -759 0x800695D8 0x800697A4 460 exact 2 frame 4 - 1 -760 0x8008F114 0x8008F2E0 460 exact 2 frame 6 - 1 -761 0x80099E84 0x8009A050 460 exact 2 frame 1 - 1 -762 0x801095A8 0x80109774 460 exact 2 frame 4 - 1 -763 0x8002BA50 0x8002BC20 464 exact 2 frame 14 - 1 -764 0x8002E9F4 0x8002EBC4 464 exact 2 frame 6 - 1 -765 0x8003A7F8 0x8003A9C8 464 exact 2 frame 10 - 1 -766 0x800BBC1C 0x800BBDEC 464 exact 2 frame 0 - 1 -767 0x800C022C 0x800C03FC 464 exact 2 frame 3 - 1 -768 0x800F7B84 0x800F7D54 464 exact 2 frame 5 - 1 -769 0x8002D3F4 0x8002D5C8 468 exact 2 frame 11 - 1 -770 0x80047F4C 0x80048128 476 exact 2 frame 3 - 1 -771 0x80052ABC 0x80052C98 476 exact 2 frame 0 - 1 -772 0x80074394 0x80074570 476 exact 2 frame 12 - 1 -773 0x80078FD0 0x800791AC 476 exact 2 frame 7 - 1 -774 0x80101878 0x80101A54 476 exact 2 frame 4 - 1 -775 0x80044D78 0x80044F58 480 exact 2 frame 11 - 1 -776 0x8006496C 0x80064B4C 480 exact 2 frame 6 - 1 -777 0x80064B4C 0x80064D2C 480 exact 2 frame 4 - 1 -778 0x8006AB7C 0x8006AD5C 480 exact 2 frame 12 - 1 -779 0x800FBBA0 0x800FBD80 480 exact 2 frame 14 - 1 -780 0x80106CF4 0x80106ED4 480 exact 2 frame 9 - 1 -781 0x80059DF8 0x80059FDC 484 exact 2 frame 1 - 1 -782 0x80070270 0x80070454 484 exact 2 frame 2 - 1 -783 0x80052424 0x8005260C 488 exact 2 frame 7 - 1 -784 0x80069398 0x80069580 488 exact 2 frame 3 - 1 -785 0x800FA150 0x800FA338 488 exact 2 frame 21 - 1 -786 0x8003F7CC 0x8003F9B8 492 exact 2 frame 2 - 1 -787 0x80065980 0x80065B6C 492 exact 2 frame 1 - 1 -788 0x801078A4 0x80107A94 496 exact 2 frame 11 - 1 -789 0x80024C34 0x80024E28 500 exact 2 frame 3 - 1 -790 0x80064664 0x80064858 500 exact 2 frame 3 - 1 -791 0x800652A0 0x80065494 500 exact 2 frame 6 - 1 -792 0x800A4F8C 0x800A5180 500 exact 2 frame 0 - 1 -793 0x80016BD4 0x80016DCC 504 exact 2 frame 1 - 1 -794 0x8007ED8C 0x8007EF84 504 exact 2 frame 6 - 1 -795 0x80030000 0x800301FC 508 exact 2 frame 10 - 1 -796 0x80031CC0 0x80031EBC 508 exact 2 frame 7 - 1 -797 0x80014054 0x80014258 516 exact 2 frame 6 - 1 -798 0x800254EC 0x800256F0 516 exact 2 frame 5 - 1 -799 0x8007BA60 0x8007BC64 516 exact 2 frame 4 - 1 -800 0x8009AC28 0x8009AE2C 516 exact 2 frame 3 - 1 -801 0x800B0BE0 0x800B0DE4 516 exact 2 frame 8 - 1 -802 0x80067E70 0x80068078 520 exact 2 frame 5 - 1 -803 0x800150A0 0x800152AC 524 exact 2 frame 13 - 1 -804 0x80015DBC 0x80015FC8 524 exact 2 frame 5 - 1 -805 0x80043B80 0x80043D8C 524 exact 2 frame 5 - 1 -806 0x80098E18 0x80099024 524 exact 2 frame 13 - 1 -807 0x80038F58 0x80039168 528 exact 2 frame 3 - 1 -808 0x8007CFFC 0x8007D20C 528 exact 2 frame 3 - 1 -809 0x800A6C8C 0x800A6E9C 528 exact 2 frame 11 - 1 -810 0x80104720 0x80104930 528 exact 2 frame 2 - 1 -811 0x8004B438 0x8004B64C 532 exact 2 frame 3 - 1 -812 0x800697FC 0x80069A10 532 exact 2 frame 3 - 1 -813 0x800AD484 0x800AD698 532 exact 2 frame 5 - 1 -814 0x800295D4 0x800297F4 544 exact 2 frame 6 - 1 -815 0x8002D608 0x8002D828 544 exact 2 frame 2 - 1 -816 0x8009D47C 0x8009D69C 544 exact 2 frame 0 - 1 -817 0x8001778C 0x800179B8 556 exact 2 frame 4 - 1 -818 0x80059504 0x80059730 556 exact 2 frame 4 - 1 -819 0x80063900 0x80063B2C 556 exact 2 frame 10 - 1 -820 0x8003C590 0x8003C7C0 560 exact 2 frame 11 - 1 -821 0x8008A1D0 0x8008A400 560 exact 2 frame 3 - 1 -822 0x800BF734 0x800BF968 564 exact 2 frame 5 - 1 -823 0x800FB8EC 0x800FBB20 564 exact 2 frame 11 - 1 -824 0x8009D244 0x8009D47C 568 exact 2 frame 3 - 1 -825 0x800B6090 0x800B62C8 568 exact 2 frame 13 - 1 -826 0x80029A48 0x80029C84 572 exact 2 frame 2 - 1 -827 0x8007F07C 0x8007F2B8 572 exact 2 frame 9 - 1 -828 0x80018728 0x8001896C 580 exact 2 frame 3 - 1 -829 0x80041DA0 0x80041FE4 580 exact 2 frame 6 - 1 -830 0x800BF968 0x800BFBAC 580 exact 2 frame 5 - 1 -831 0x8009AE2C 0x8009B074 584 exact 2 frame 0 - 1 -832 0x800B0940 0x800B0B88 584 exact 2 frame 7 - 1 -833 0x800B6894 0x800B6AE0 588 exact 2 frame 7 - 1 -834 0x80016704 0x80016954 592 exact 2 frame 4 - 1 -835 0x800A7E68 0x800A80B8 592 exact 2 frame 3 - 1 -836 0x800AFB6C 0x800AFDBC 592 exact 2 frame 2 - 1 -837 0x8002C930 0x8002CB84 596 exact 2 frame 23 - 1 -838 0x8006AE54 0x8006B0A8 596 exact 2 frame 0 - 1 -839 0x800283F4 0x8002864C 600 exact 2 frame 5 - 1 -840 0x8009736C 0x800975C4 600 exact 2 frame 10 - 1 -841 0x80050998 0x80050BF4 604 exact 2 frame 2 - 1 -842 0x80065E10 0x8006606C 604 exact 2 frame 4 - 1 -843 0x800C29D4 0x800C2C30 604 exact 2 frame 6 - 1 -844 0x800F5E44 0x800F60A4 608 exact 2 frame 5 - 1 -845 0x800B5CF8 0x800B5F5C 612 exact 2 frame 2 - 1 -846 0x8002BE6C 0x8002C0D4 616 exact 2 frame 13 - 1 -847 0x800571AC 0x80057418 620 exact 2 frame 2 - 1 -848 0x800B7264 0x800B74D0 620 exact 2 frame 10 - 1 -849 0x800FD834 0x800FDAA0 620 exact 2 frame 6 - 1 -850 0x8003F9B8 0x8003FC28 624 exact 2 frame 3 - 1 -851 0x80069128 0x80069398 624 exact 2 frame 2 - 1 -852 0x80073D08 0x80073F78 624 exact 2 frame 9 - 1 -853 0x800F4E40 0x800F50B0 624 exact 2 frame 5 - 1 -854 0x801051CC 0x8010543C 624 exact 2 frame 3 - 1 -855 0x80043554 0x800437CC 632 exact 2 frame 9 - 1 -856 0x80104930 0x80104BA8 632 exact 2 frame 3 - 1 -857 0x8009CFC8 0x8009D244 636 exact 2 frame 12 - 1 -858 0x80069A10 0x80069C90 640 exact 2 frame 4 - 1 -859 0x8008FA58 0x8008FCD8 640 exact 2 frame 5 - 1 -860 0x800A5EBC 0x800A613C 640 exact 2 frame 4 - 1 -861 0x80106154 0x801063D4 640 exact 2 frame 9 - 1 -862 0x80109F48 0x8010A1C8 640 exact 2 frame 11 - 1 -863 0x8010A444 0x8010A6C4 640 exact 2 frame 2 - 1 -864 0x800A30D4 0x800A3358 644 exact 2 frame 5 - 1 -865 0x8002AEAC 0x8002B138 652 exact 2 frame 30 - 1 -866 0x800943E0 0x80094670 656 exact 2 frame 1 - 1 -867 0x80072680 0x80072914 660 exact 2 frame 0 - 1 -868 0x8002E528 0x8002E7C4 668 exact 2 frame 9 - 1 -869 0x8006A6F0 0x8006A98C 668 exact 2 frame 0 - 1 -870 0x800FACE8 0x800FAF84 668 exact 2 frame 7 - 1 -871 0x80093768 0x80093A08 672 exact 2 frame 7 - 1 -872 0x800519A8 0x80051C4C 676 exact 2 frame 1 - 1 -873 0x800313D8 0x80031684 684 exact 2 frame 10 - 1 -874 0x800526F0 0x800529A0 688 exact 2 frame 0 - 1 -875 0x800F5B94 0x800F5E44 688 exact 2 frame 9 - 1 -876 0x8007DC4C 0x8007DF00 692 exact 2 frame 3 - 1 -877 0x800501DC 0x80050494 696 exact 2 frame 5 - 1 -878 0x800A3600 0x800A38B8 696 exact 2 frame 2 - 1 -879 0x800FF184 0x800FF43C 696 exact 2 frame 3 - 1 -880 0x80103544 0x801037FC 696 exact 2 frame 1 - 1 -881 0x800FA980 0x800FAC44 708 exact 2 frame 10 - 1 -882 0x801063D4 0x8010669C 712 exact 2 frame 9 - 1 -883 0x80074F1C 0x800751E8 716 exact 2 frame 8 - 1 -884 0x8006EFBC 0x8006F28C 720 exact 2 frame 2 - 1 -885 0x80084770 0x80084A48 728 exact 2 frame 7 - 1 -886 0x800FA688 0x800FA960 728 exact 2 frame 9 - 1 -887 0x8008A47C 0x8008A758 732 exact 2 frame 7 - 1 -888 0x8006C044 0x8006C324 736 exact 2 frame 1 - 1 -889 0x800916DC 0x800919BC 736 exact 2 frame 9 - 1 -890 0x80091D88 0x80092068 736 exact 2 frame 7 - 1 -891 0x800AB0EC 0x800AB3CC 736 exact 2 frame 1 - 1 -892 0x8007AD28 0x8007B00C 740 exact 2 frame 5 - 1 -893 0x80033ADC 0x80033DC8 748 exact 2 frame 5 - 1 -894 0x800BAED4 0x800BB1C4 752 exact 2 frame 4 - 1 -895 0x80093A84 0x80093D80 764 exact 2 frame 1 - 1 -896 0x80078B94 0x80078E94 768 exact 2 frame 6 - 1 -897 0x80051C4C 0x80051F50 772 exact 2 frame 2 - 1 -898 0x8009A904 0x8009AC08 772 exact 2 frame 2 - 1 -899 0x8004C400 0x8004C708 776 exact 2 frame 0 - 1 -900 0x80059AF0 0x80059DF8 776 exact 2 frame 9 - 1 -901 0x8009829C 0x800985A4 776 exact 2 frame 9 - 1 -902 0x8006D884 0x8006DB90 780 exact 2 frame 1 - 1 -903 0x80091A7C 0x80091D88 780 exact 2 frame 12 - 1 -904 0x800BFF20 0x800C022C 780 exact 2 frame 1 - 1 -905 0x80013D44 0x80014054 784 exact 2 frame 10 - 1 -906 0x8005D1B0 0x8005D4C4 788 exact 2 frame 2 - 1 -907 0x800748EC 0x80074C00 788 exact 2 frame 21 - 1 -908 0x80025198 0x800254B0 792 exact 2 frame 5 - 1 -909 0x80072048 0x80072360 792 exact 2 frame 12 - 1 -910 0x800830B4 0x800833CC 792 exact 2 frame 2 - 1 -911 0x80094670 0x80094988 792 exact 2 frame 8 - 1 -912 0x800FCC48 0x800FCF60 792 exact 2 frame 12 - 1 -913 0x8002B608 0x8002B924 796 exact 2 frame 3 - 1 -914 0x8007061C 0x80070938 796 exact 2 frame 10 - 1 -915 0x8008355C 0x80083878 796 exact 2 frame 7 - 1 -916 0x8006DB90 0x8006DEB4 804 exact 2 frame 3 - 1 -917 0x800292AC 0x800295D4 808 exact 2 frame 2 - 1 -918 0x8009CB28 0x8009CE58 816 exact 2 frame 6 - 1 -919 0x801042FC 0x80104630 820 exact 2 frame 18 - 1 -920 0x80052CAC 0x80052FF4 840 exact 2 frame 14 - 1 -921 0x80077250 0x8007759C 844 exact 2 frame 5 - 1 -922 0x800C54EC 0x800C583C 848 exact 2 frame 3 - 1 -923 0x80048684 0x800489D8 852 exact 2 frame 6 - 1 -924 0x800A98CC 0x800A9C24 856 exact 2 frame 14 - 1 -925 0x8006CC54 0x8006CFB0 860 exact 2 frame 4 - 1 -926 0x80059FDC 0x8005A33C 864 exact 2 frame 4 - 1 -927 0x80031684 0x800319F0 876 exact 2 frame 14 - 1 -928 0x80040884 0x80040BFC 888 exact 2 frame 4 - 1 -929 0x800897B8 0x80089B30 888 exact 2 frame 17 - 1 -930 0x8003C7C0 0x8003CB3C 892 exact 2 frame 9 - 1 -931 0x80089434 0x800897B8 900 exact 2 frame 20 - 1 -932 0x800AC2C4 0x800AC648 900 exact 2 frame 0 - 1 -933 0x800ABB88 0x800ABF10 904 exact 2 frame 1 - 1 -934 0x80017200 0x8001758C 908 exact 2 frame 6 - 1 -935 0x80048E70 0x800491FC 908 exact 2 frame 10 - 1 -936 0x8002EBC4 0x8002EF54 912 exact 2 frame 5 - 1 -937 0x80034ABC 0x80034E50 916 exact 2 frame 11 - 1 -938 0x80064230 0x800645CC 924 exact 2 frame 13 - 1 -939 0x80072DF4 0x80073190 924 exact 2 frame 10 - 1 -940 0x80090408 0x800907A4 924 exact 2 frame 12 - 1 -941 0x800564AC 0x80056854 936 exact 2 frame 11 - 1 -942 0x800ABF10 0x800AC2C4 948 exact 2 frame 4 - 1 -943 0x8006F2F4 0x8006F6BC 968 exact 2 frame 1 - 1 -944 0x8008EBFC 0x8008EFC4 968 exact 2 frame 9 - 1 -945 0x800B7524 0x800B78EC 968 exact 2 frame 4 - 1 -946 0x80047A14 0x80047DE0 972 exact 2 frame 9 - 1 -947 0x80033700 0x80033ADC 988 exact 2 frame 3 - 1 -948 0x800447B4 0x80044B90 988 exact 2 frame 12 - 1 -949 0x80088F38 0x80089314 988 exact 2 frame 11 - 1 -950 0x800AAC9C 0x800AB078 988 exact 2 frame 11 - 1 -951 0x80058608 0x800589E8 992 exact 2 frame 2 - 1 -952 0x80071C64 0x80072048 996 exact 2 frame 15 - 1 -953 0x8010128C 0x80101678 1004 exact 2 frame 6 - 1 -954 0x8009B074 0x8009B464 1008 exact 2 frame 0 - 1 -955 0x800B0550 0x800B0940 1008 exact 2 frame 11 - 1 -956 0x80037B98 0x80037F94 1020 exact 2 frame 9 - 1 -957 0x8007BD0C 0x8007C108 1020 exact 2 frame 10 - 1 -958 0x800C1A58 0x800C1E54 1020 exact 2 frame 8 - 1 -959 0x8010669C 0x80106AA8 1036 exact 2 frame 12 - 1 -960 0x8005CDA0 0x8005D1B0 1040 exact 2 frame 17 - 1 -961 0x80094F54 0x80095364 1040 exact 2 frame 9 - 1 -962 0x800331D4 0x800335E8 1044 exact 2 frame 7 - 1 -963 0x80055240 0x80055654 1044 exact 2 frame 6 - 1 -964 0x800868E8 0x80086CFC 1044 exact 2 frame 3 - 1 -965 0x800A2B04 0x800A2F20 1052 exact 2 frame 7 - 1 -966 0x800B6330 0x800B6754 1060 exact 2 frame 13 - 1 -967 0x8003F190 0x8003F5BC 1068 exact 2 frame 2 - 1 -968 0x80056854 0x80056C88 1076 exact 2 frame 20 - 1 -969 0x8003879C 0x80038BD4 1080 exact 2 frame 10 - 1 -970 0x80092460 0x80092898 1080 exact 2 frame 13 - 1 -971 0x800B2048 0x800B2488 1088 exact 2 frame 4 - 1 -972 0x80034638 0x80034A80 1096 exact 2 frame 7 - 1 -973 0x8009A4AC 0x8009A904 1112 exact 2 frame 6 - 1 -974 0x8005A8E8 0x8005AD44 1116 exact 2 frame 15 - 1 -975 0x8003EBAC 0x8003F010 1124 exact 2 frame 10 - 1 -976 0x800BCE20 0x800BD298 1144 exact 2 frame 13 - 1 -977 0x800C03FC 0x800C0874 1144 exact 2 frame 3 - 1 -978 0x800A38B8 0x800A3D34 1148 exact 2 frame 15 - 1 -979 0x800B8958 0x800B8DE4 1164 exact 2 frame 10 - 1 -980 0x800BAA48 0x800BAED4 1164 exact 2 frame 1 - 1 -981 0x800668F0 0x80066DA0 1200 exact 2 frame 15 - 1 -982 0x800A6FAC 0x800A745C 1200 exact 2 frame 20 - 1 -983 0x800B9C64 0x800BA114 1200 exact 2 frame 0 - 1 -984 0x8005E8B8 0x8005ED6C 1204 exact 2 frame 26 - 1 -985 0x80095364 0x80095820 1212 exact 2 frame 3 - 1 -986 0x800BC194 0x800BC658 1220 exact 2 frame 6 - 1 -987 0x8002B138 0x8002B608 1232 exact 2 frame 36 - 1 -988 0x8004D8A4 0x8004DD74 1232 exact 2 frame 6 - 1 -989 0x8004DD74 0x8004E24C 1240 exact 2 frame 7 - 1 -990 0x800F465C 0x800F4B54 1272 exact 2 frame 8 - 1 -991 0x800F70D0 0x800F75C8 1272 exact 2 frame 8 - 1 -992 0x80093E54 0x80094370 1308 exact 2 frame 15 - 1 -993 0x80056C88 0x800571AC 1316 exact 2 frame 4 - 1 -994 0x8007D718 0x8007DC40 1320 exact 2 frame 5 - 1 -995 0x800B78EC 0x800B7E14 1320 exact 2 frame 0 - 1 -996 0x80034FCC 0x800354F8 1324 exact 2 frame 13 - 1 -997 0x80066208 0x80066738 1328 exact 2 frame 7 - 1 -998 0x800C3C4C 0x800C417C 1328 exact 2 frame 10 - 1 -999 0x80054BC4 0x80055108 1348 exact 2 frame 4 - 1 -1000 0x80086388 0x800868E8 1376 exact 2 frame 15 - 1 -1001 0x8004ED90 0x8004F2F8 1384 exact 2 frame 11 - 1 -1002 0x800855D4 0x80085B44 1392 exact 2 frame 2 - 1 -1003 0x80064D2C 0x800652A0 1396 exact 2 frame 4 - 1 -1004 0x8007E228 0x8007E7C0 1432 exact 2 frame 3 - 1 -1005 0x8007B2A0 0x8007B83C 1436 exact 2 frame 5 - 1 -1006 0x80095D74 0x80096324 1456 exact 2 frame 11 - 1 -1007 0x800AEC48 0x800AF1FC 1460 exact 2 frame 14 - 1 -1008 0x80094988 0x80094F54 1484 exact 2 frame 22 - 1 -1009 0x800152AC 0x8001587C 1488 exact 2 frame 19 - 1 -1010 0x8003CBE4 0x8003D224 1600 exact 2 frame 15 - 1 -1011 0x8009B7A4 0x8009BDEC 1608 exact 2 frame 11 - 1 -1012 0x80075228 0x8007587C 1620 exact 2 frame 15 - 1 -1013 0x80099420 0x80099A94 1652 exact 2 frame 11 - 1 -1014 0x80036390 0x80036A0C 1660 exact 2 frame 9 - 1 -1015 0x8007A4FC 0x8007AB7C 1664 exact 2 frame 9 - 1 -1016 0x80085CDC 0x80086388 1708 exact 2 frame 15 - 1 -1017 0x8004CF0C 0x8004D5CC 1728 exact 2 frame 11 - 1 -1018 0x800C356C 0x800C3C4C 1760 exact 2 frame 18 - 1 -1019 0x80030B64 0x8003126C 1800 exact 2 frame 7 - 1 -1020 0x80033F30 0x80034638 1800 exact 2 frame 0 - 1 -1021 0x800BB2AC 0x800BB9FC 1872 exact 2 frame 5 - 1 -1022 0x80043E98 0x80044610 1912 exact 2 frame 12 - 1 -1023 0x8009E95C 0x8009F0E8 1932 exact 2 frame 10 - 1 -1024 0x800A3D34 0x800A44CC 1944 exact 2 frame 10 - 1 -1025 0x8004AC88 0x8004B438 1968 exact 2 frame 18 - 1 -1026 0x800A8F18 0x800A96CC 1972 exact 2 frame 8 - 1 -1027 0x800809B8 0x80081174 1980 exact 2 frame 17 - 1 -1028 0x800BA114 0x800BA8D4 1984 exact 2 frame 1 - 1 -1029 0x800B129C 0x800B1A64 1992 exact 2 frame 4 - 1 -1030 0x8005AE54 0x8005B638 2020 exact 2 frame 15 - 1 -1031 0x80092B2C 0x80093330 2052 exact 2 frame 16 - 1 -1032 0x8007C7CC 0x8007CFFC 2096 exact 2 frame 10 - 1 -1033 0x80083C78 0x800844B8 2112 exact 2 frame 15 - 1 -1034 0x800C417C 0x800C49BC 2112 exact 2 frame 6 - 1 -1035 0x800985A4 0x80098E18 2164 exact 2 frame 49 - 1 -1036 0x8004A278 0x8004AAF0 2168 exact 2 frame 12 - 1 -1037 0x8002203C 0x800228D8 2204 exact 2 frame 4 - 1 -1038 0x80050D48 0x80051628 2272 exact 2 frame 15 - 1 -1039 0x80053064 0x80053954 2288 exact 2 frame 12 - 1 -1040 0x80101EB0 0x801027CC 2332 exact 2 frame 12 - 1 -1041 0x80055B84 0x800564AC 2344 exact 2 frame 17 - 1 -1042 0x8001CE70 0x8001D7A0 2352 exact 2 frame 14 - 1 -1043 0x8006C324 0x8006CC54 2352 exact 2 frame 19 - 1 -1044 0x8008CCC0 0x8008D5F8 2360 exact 2 frame 11 - 1 -1045 0x800C2054 0x800C29D4 2432 exact 2 frame 17 - 1 -1046 0x80069C90 0x8006A654 2500 exact 2 frame 13 - 1 -1047 0x800A5228 0x800A5C1C 2548 exact 2 frame 23 - 1 -1048 0x8004F2F8 0x8004FE38 2880 exact 2 frame 21 - 1 -1049 0x8003FD00 0x80040884 2948 exact 2 frame 26 - 1 -1050 0x800975C4 0x8009829C 3288 exact 2 frame 71 - 1 -1051 0x800142F4 0x80014FE8 3316 exact 2 frame 38 - 1 -1052 0x800B8E60 0x800B9C64 3588 exact 2 frame 8 - 1 -1053 0x800964F8 0x8009736C 3700 exact 2 frame 32 - 1 -1054 0x80066E58 0x80067D34 3804 exact 2 frame 39 - 1 -1055 0x80053954 0x80054AF8 4516 exact 2 frame 32 - 1 -1056 0x8008132C 0x80082750 5156 exact 2 frame 34 - 1 -1057 0x80086DFC 0x80088F38 8508 exact 2 frame 38 - 1 -1058 0x8009F988 0x800A2684 11516 exact 2 frame 102 - 1 -1059 0x80180808 0x8018080C 4 fallthrough 3 leaf 0 - 1 -1060 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1 +703 0x80026C7C 0x80026E10 404 exact 2 frame 7 - 1 +704 0x80029118 0x800292AC 404 exact 2 frame 0 - 1 +705 0x80046884 0x80046A18 404 exact 2 frame 3 - 1 +706 0x80073B74 0x80073D08 404 exact 2 frame 10 - 1 +707 0x80079EEC 0x8007A080 404 exact 2 frame 2 - 1 +708 0x80096364 0x800964F8 404 exact 2 frame 8 - 1 +709 0x80109338 0x801094CC 404 exact 2 frame 5 - 1 +710 0x800162B4 0x8001644C 408 exact 2 frame 4 - 1 +711 0x800309CC 0x80030B64 408 exact 2 frame 3 - 1 +712 0x8004AAF0 0x8004AC88 408 exact 2 frame 3 - 1 +713 0x800A5D24 0x800A5EBC 408 exact 2 frame 2 - 1 +714 0x800C5AEC 0x800C5C84 408 exact 2 frame 1 - 1 +715 0x800199D0 0x80019B6C 412 exact 2 frame 4 - 1 +716 0x80025FE4 0x80026180 412 exact 2 frame 1 - 1 +717 0x8006606C 0x80066208 412 exact 2 frame 7 - 1 +718 0x800FA338 0x800FA4D4 412 exact 2 frame 10 - 1 +719 0x80109010 0x801091AC 412 exact 2 frame 3 - 1 +720 0x80051F50 0x800520F0 416 exact 2 frame 0 - 1 +721 0x8007F774 0x8007F914 416 exact 2 frame 1 - 1 +722 0x800A8700 0x800A88A0 416 exact 2 frame 2 - 1 +723 0x800BE828 0x800BE9C8 416 exact 2 frame 4 - 1 +724 0x80044610 0x800447B4 420 exact 2 frame 3 - 1 +725 0x8006B7C0 0x8006B964 420 exact 2 frame 16 - 1 +726 0x80041A58 0x80041C00 424 exact 2 frame 8 - 1 +727 0x800AA10C 0x800AA2B4 424 exact 2 frame 1 - 1 +728 0x801027F8 0x801029A0 424 exact 2 frame 1 - 1 +729 0x8002497C 0x80024B28 428 exact 2 frame 5 - 1 +730 0x8002AAD8 0x8002AC84 428 exact 2 frame 9 - 1 +731 0x800489D8 0x80048B84 428 exact 2 frame 3 - 1 +732 0x800FFDB4 0x800FFF60 428 exact 2 frame 4 - 1 +733 0x8004E24C 0x8004E3FC 432 exact 2 frame 2 - 1 +734 0x800B0ECC 0x800B107C 432 exact 2 frame 0 - 1 +735 0x80108284 0x80108434 432 exact 2 frame 3 - 1 +736 0x8001AC10 0x8001ADC4 436 exact 2 frame 4 - 1 +737 0x800AA2F8 0x800AA4AC 436 exact 2 frame 2 - 1 +738 0x800231BC 0x80023374 440 exact 2 frame 6 - 1 +739 0x8002D828 0x8002D9E0 440 exact 2 frame 1 - 1 +740 0x80081174 0x8008132C 440 exact 2 frame 8 - 1 +741 0x8009D8E0 0x8009DA98 440 exact 2 frame 1 - 1 +742 0x80025B64 0x80025D20 444 exact 2 frame 7 - 1 +743 0x800559C4 0x80055B84 448 exact 2 frame 0 - 1 +744 0x800AD7E8 0x800AD9A8 448 exact 2 frame 3 - 1 +745 0x800AE9E0 0x800AEBA0 448 exact 2 frame 7 - 1 +746 0x8010A1C8 0x8010A388 448 exact 2 frame 6 - 1 +747 0x8002ACBC 0x8002AE80 452 exact 2 frame 12 - 1 +748 0x8002FE3C 0x80030000 452 exact 2 frame 3 - 1 +749 0x800839E8 0x80083BAC 452 exact 2 frame 2 - 1 +750 0x800BBE90 0x800BC054 452 exact 2 frame 0 - 1 +751 0x80018560 0x80018728 456 exact 2 frame 1 - 1 +752 0x80068D78 0x80068F40 456 exact 2 frame 10 - 1 +753 0x8006E1B0 0x8006E378 456 exact 2 frame 3 - 1 +754 0x80077088 0x80077250 456 exact 2 frame 7 - 1 +755 0x80030630 0x800307FC 460 exact 2 frame 2 - 1 +756 0x80036F70 0x8003713C 460 exact 2 frame 3 - 1 +757 0x800590D8 0x800592A4 460 exact 2 frame 6 - 1 +758 0x800695D8 0x800697A4 460 exact 2 frame 4 - 1 +759 0x8008F114 0x8008F2E0 460 exact 2 frame 6 - 1 +760 0x80099E84 0x8009A050 460 exact 2 frame 1 - 1 +761 0x801095A8 0x80109774 460 exact 2 frame 4 - 1 +762 0x8002BA50 0x8002BC20 464 exact 2 frame 14 - 1 +763 0x8002E9F4 0x8002EBC4 464 exact 2 frame 6 - 1 +764 0x8003A7F8 0x8003A9C8 464 exact 2 frame 10 - 1 +765 0x800BBC1C 0x800BBDEC 464 exact 2 frame 0 - 1 +766 0x800C022C 0x800C03FC 464 exact 2 frame 3 - 1 +767 0x800F7B84 0x800F7D54 464 exact 2 frame 5 - 1 +768 0x8002D3F4 0x8002D5C8 468 exact 2 frame 11 - 1 +769 0x80047F4C 0x80048128 476 exact 2 frame 3 - 1 +770 0x80052ABC 0x80052C98 476 exact 2 frame 0 - 1 +771 0x80074394 0x80074570 476 exact 2 frame 12 - 1 +772 0x80078FD0 0x800791AC 476 exact 2 frame 7 - 1 +773 0x80101878 0x80101A54 476 exact 2 frame 4 - 1 +774 0x80044D78 0x80044F58 480 exact 2 frame 11 - 1 +775 0x8006496C 0x80064B4C 480 exact 2 frame 6 - 1 +776 0x80064B4C 0x80064D2C 480 exact 2 frame 4 - 1 +777 0x8006AB7C 0x8006AD5C 480 exact 2 frame 12 - 1 +778 0x800FBBA0 0x800FBD80 480 exact 2 frame 14 - 1 +779 0x80106CF4 0x80106ED4 480 exact 2 frame 9 - 1 +780 0x80059DF8 0x80059FDC 484 exact 2 frame 1 - 1 +781 0x80070270 0x80070454 484 exact 2 frame 2 - 1 +782 0x80052424 0x8005260C 488 exact 2 frame 7 - 1 +783 0x80069398 0x80069580 488 exact 2 frame 3 - 1 +784 0x800FA150 0x800FA338 488 exact 2 frame 21 - 1 +785 0x8003F7CC 0x8003F9B8 492 exact 2 frame 2 - 1 +786 0x80065980 0x80065B6C 492 exact 2 frame 1 - 1 +787 0x801078A4 0x80107A94 496 exact 2 frame 11 - 1 +788 0x80024C34 0x80024E28 500 exact 2 frame 3 - 1 +789 0x80064664 0x80064858 500 exact 2 frame 3 - 1 +790 0x800652A0 0x80065494 500 exact 2 frame 6 - 1 +791 0x800A4F8C 0x800A5180 500 exact 2 frame 0 - 1 +792 0x80016BD4 0x80016DCC 504 exact 2 frame 1 - 1 +793 0x8007ED8C 0x8007EF84 504 exact 2 frame 6 - 1 +794 0x80030000 0x800301FC 508 exact 2 frame 10 - 1 +795 0x80031CC0 0x80031EBC 508 exact 2 frame 7 - 1 +796 0x80014054 0x80014258 516 exact 2 frame 6 - 1 +797 0x800254EC 0x800256F0 516 exact 2 frame 5 - 1 +798 0x8007BA60 0x8007BC64 516 exact 2 frame 4 - 1 +799 0x8009AC28 0x8009AE2C 516 exact 2 frame 3 - 1 +800 0x800B0BE0 0x800B0DE4 516 exact 2 frame 8 - 1 +801 0x80067E70 0x80068078 520 exact 2 frame 5 - 1 +802 0x800150A0 0x800152AC 524 exact 2 frame 13 - 1 +803 0x80015DBC 0x80015FC8 524 exact 2 frame 5 - 1 +804 0x80043B80 0x80043D8C 524 exact 2 frame 5 - 1 +805 0x80098E18 0x80099024 524 exact 2 frame 13 - 1 +806 0x80038F58 0x80039168 528 exact 2 frame 3 - 1 +807 0x8007CFFC 0x8007D20C 528 exact 2 frame 3 - 1 +808 0x800A6C8C 0x800A6E9C 528 exact 2 frame 11 - 1 +809 0x80104720 0x80104930 528 exact 2 frame 2 - 1 +810 0x8004B438 0x8004B64C 532 exact 2 frame 3 - 1 +811 0x800697FC 0x80069A10 532 exact 2 frame 3 - 1 +812 0x800AD484 0x800AD698 532 exact 2 frame 5 - 1 +813 0x800295D4 0x800297F4 544 exact 2 frame 6 - 1 +814 0x8002D608 0x8002D828 544 exact 2 frame 2 - 1 +815 0x8009D47C 0x8009D69C 544 exact 2 frame 0 - 1 +816 0x8001778C 0x800179B8 556 exact 2 frame 4 - 1 +817 0x80059504 0x80059730 556 exact 2 frame 4 - 1 +818 0x80063900 0x80063B2C 556 exact 2 frame 10 - 1 +819 0x8003C590 0x8003C7C0 560 exact 2 frame 11 - 1 +820 0x8008A1D0 0x8008A400 560 exact 2 frame 3 - 1 +821 0x800BF734 0x800BF968 564 exact 2 frame 5 - 1 +822 0x800FB8EC 0x800FBB20 564 exact 2 frame 11 - 1 +823 0x8009D244 0x8009D47C 568 exact 2 frame 3 - 1 +824 0x800B6090 0x800B62C8 568 exact 2 frame 13 - 1 +825 0x80029A48 0x80029C84 572 exact 2 frame 2 - 1 +826 0x8007F07C 0x8007F2B8 572 exact 2 frame 9 - 1 +827 0x80018728 0x8001896C 580 exact 2 frame 3 - 1 +828 0x80041DA0 0x80041FE4 580 exact 2 frame 6 - 1 +829 0x800BF968 0x800BFBAC 580 exact 2 frame 5 - 1 +830 0x8009AE2C 0x8009B074 584 exact 2 frame 0 - 1 +831 0x800B0940 0x800B0B88 584 exact 2 frame 7 - 1 +832 0x800B6894 0x800B6AE0 588 exact 2 frame 7 - 1 +833 0x80016704 0x80016954 592 exact 2 frame 4 - 1 +834 0x800A7E68 0x800A80B8 592 exact 2 frame 3 - 1 +835 0x800AFB6C 0x800AFDBC 592 exact 2 frame 2 - 1 +836 0x8002C930 0x8002CB84 596 exact 2 frame 23 - 1 +837 0x8006AE54 0x8006B0A8 596 exact 2 frame 0 - 1 +838 0x800283F4 0x8002864C 600 exact 2 frame 5 - 1 +839 0x8009736C 0x800975C4 600 exact 2 frame 10 - 1 +840 0x80050998 0x80050BF4 604 exact 2 frame 2 - 1 +841 0x80065E10 0x8006606C 604 exact 2 frame 4 - 1 +842 0x800C29D4 0x800C2C30 604 exact 2 frame 6 - 1 +843 0x800F5E44 0x800F60A4 608 exact 2 frame 5 - 1 +844 0x800B5CF8 0x800B5F5C 612 exact 2 frame 2 - 1 +845 0x8002BE6C 0x8002C0D4 616 exact 2 frame 13 - 1 +846 0x800571AC 0x80057418 620 exact 2 frame 2 - 1 +847 0x800B7264 0x800B74D0 620 exact 2 frame 10 - 1 +848 0x800FD834 0x800FDAA0 620 exact 2 frame 6 - 1 +849 0x8003F9B8 0x8003FC28 624 exact 2 frame 3 - 1 +850 0x80069128 0x80069398 624 exact 2 frame 2 - 1 +851 0x80073D08 0x80073F78 624 exact 2 frame 9 - 1 +852 0x800F4E40 0x800F50B0 624 exact 2 frame 5 - 1 +853 0x801051CC 0x8010543C 624 exact 2 frame 3 - 1 +854 0x80043554 0x800437CC 632 exact 2 frame 9 - 1 +855 0x80104930 0x80104BA8 632 exact 2 frame 3 - 1 +856 0x8009CFC8 0x8009D244 636 exact 2 frame 12 - 1 +857 0x80069A10 0x80069C90 640 exact 2 frame 4 - 1 +858 0x8008FA58 0x8008FCD8 640 exact 2 frame 5 - 1 +859 0x800A5EBC 0x800A613C 640 exact 2 frame 4 - 1 +860 0x80106154 0x801063D4 640 exact 2 frame 9 - 1 +861 0x80109F48 0x8010A1C8 640 exact 2 frame 11 - 1 +862 0x8010A444 0x8010A6C4 640 exact 2 frame 2 - 1 +863 0x800A30D4 0x800A3358 644 exact 2 frame 5 - 1 +864 0x8002AEAC 0x8002B138 652 exact 2 frame 30 - 1 +865 0x800943E0 0x80094670 656 exact 2 frame 1 - 1 +866 0x80072680 0x80072914 660 exact 2 frame 0 - 1 +867 0x8002E528 0x8002E7C4 668 exact 2 frame 9 - 1 +868 0x8006A6F0 0x8006A98C 668 exact 2 frame 0 - 1 +869 0x800FACE8 0x800FAF84 668 exact 2 frame 7 - 1 +870 0x80093768 0x80093A08 672 exact 2 frame 7 - 1 +871 0x800519A8 0x80051C4C 676 exact 2 frame 1 - 1 +872 0x800313D8 0x80031684 684 exact 2 frame 10 - 1 +873 0x800526F0 0x800529A0 688 exact 2 frame 0 - 1 +874 0x800F5B94 0x800F5E44 688 exact 2 frame 9 - 1 +875 0x8007DC4C 0x8007DF00 692 exact 2 frame 3 - 1 +876 0x800501DC 0x80050494 696 exact 2 frame 5 - 1 +877 0x800A3600 0x800A38B8 696 exact 2 frame 2 - 1 +878 0x800FF184 0x800FF43C 696 exact 2 frame 3 - 1 +879 0x80103544 0x801037FC 696 exact 2 frame 1 - 1 +880 0x800FA980 0x800FAC44 708 exact 2 frame 10 - 1 +881 0x801063D4 0x8010669C 712 exact 2 frame 9 - 1 +882 0x80074F1C 0x800751E8 716 exact 2 frame 8 - 1 +883 0x8006EFBC 0x8006F28C 720 exact 2 frame 2 - 1 +884 0x80084770 0x80084A48 728 exact 2 frame 7 - 1 +885 0x800FA688 0x800FA960 728 exact 2 frame 9 - 1 +886 0x8008A47C 0x8008A758 732 exact 2 frame 7 - 1 +887 0x8006C044 0x8006C324 736 exact 2 frame 1 - 1 +888 0x800916DC 0x800919BC 736 exact 2 frame 9 - 1 +889 0x80091D88 0x80092068 736 exact 2 frame 7 - 1 +890 0x800AB0EC 0x800AB3CC 736 exact 2 frame 1 - 1 +891 0x8007AD28 0x8007B00C 740 exact 2 frame 5 - 1 +892 0x80033ADC 0x80033DC8 748 exact 2 frame 5 - 1 +893 0x800BAED4 0x800BB1C4 752 exact 2 frame 4 - 1 +894 0x80093A84 0x80093D80 764 exact 2 frame 1 - 1 +895 0x80078B94 0x80078E94 768 exact 2 frame 6 - 1 +896 0x80051C4C 0x80051F50 772 exact 2 frame 2 - 1 +897 0x8009A904 0x8009AC08 772 exact 2 frame 2 - 1 +898 0x8004C400 0x8004C708 776 exact 2 frame 0 - 1 +899 0x80059AF0 0x80059DF8 776 exact 2 frame 9 - 1 +900 0x8009829C 0x800985A4 776 exact 2 frame 9 - 1 +901 0x8006D884 0x8006DB90 780 exact 2 frame 1 - 1 +902 0x80091A7C 0x80091D88 780 exact 2 frame 12 - 1 +903 0x800BFF20 0x800C022C 780 exact 2 frame 1 - 1 +904 0x80013D44 0x80014054 784 exact 2 frame 10 - 1 +905 0x8005D1B0 0x8005D4C4 788 exact 2 frame 2 - 1 +906 0x800748EC 0x80074C00 788 exact 2 frame 21 - 1 +907 0x80025198 0x800254B0 792 exact 2 frame 5 - 1 +908 0x80072048 0x80072360 792 exact 2 frame 12 - 1 +909 0x800830B4 0x800833CC 792 exact 2 frame 2 - 1 +910 0x80094670 0x80094988 792 exact 2 frame 8 - 1 +911 0x800FCC48 0x800FCF60 792 exact 2 frame 12 - 1 +912 0x8002B608 0x8002B924 796 exact 2 frame 3 - 1 +913 0x8007061C 0x80070938 796 exact 2 frame 10 - 1 +914 0x8008355C 0x80083878 796 exact 2 frame 7 - 1 +915 0x8006DB90 0x8006DEB4 804 exact 2 frame 3 - 1 +916 0x800292AC 0x800295D4 808 exact 2 frame 2 - 1 +917 0x8009CB28 0x8009CE58 816 exact 2 frame 6 - 1 +918 0x801042FC 0x80104630 820 exact 2 frame 18 - 1 +919 0x80052CAC 0x80052FF4 840 exact 2 frame 14 - 1 +920 0x80077250 0x8007759C 844 exact 2 frame 5 - 1 +921 0x800C54EC 0x800C583C 848 exact 2 frame 3 - 1 +922 0x80048684 0x800489D8 852 exact 2 frame 6 - 1 +923 0x800A98CC 0x800A9C24 856 exact 2 frame 14 - 1 +924 0x8006CC54 0x8006CFB0 860 exact 2 frame 4 - 1 +925 0x80059FDC 0x8005A33C 864 exact 2 frame 4 - 1 +926 0x80031684 0x800319F0 876 exact 2 frame 14 - 1 +927 0x80040884 0x80040BFC 888 exact 2 frame 4 - 1 +928 0x800897B8 0x80089B30 888 exact 2 frame 17 - 1 +929 0x8003C7C0 0x8003CB3C 892 exact 2 frame 9 - 1 +930 0x80089434 0x800897B8 900 exact 2 frame 20 - 1 +931 0x800AC2C4 0x800AC648 900 exact 2 frame 0 - 1 +932 0x800ABB88 0x800ABF10 904 exact 2 frame 1 - 1 +933 0x80017200 0x8001758C 908 exact 2 frame 6 - 1 +934 0x80048E70 0x800491FC 908 exact 2 frame 10 - 1 +935 0x8002EBC4 0x8002EF54 912 exact 2 frame 5 - 1 +936 0x80034ABC 0x80034E50 916 exact 2 frame 11 - 1 +937 0x80064230 0x800645CC 924 exact 2 frame 13 - 1 +938 0x80072DF4 0x80073190 924 exact 2 frame 10 - 1 +939 0x80090408 0x800907A4 924 exact 2 frame 12 - 1 +940 0x800564AC 0x80056854 936 exact 2 frame 11 - 1 +941 0x800ABF10 0x800AC2C4 948 exact 2 frame 4 - 1 +942 0x8006F2F4 0x8006F6BC 968 exact 2 frame 1 - 1 +943 0x8008EBFC 0x8008EFC4 968 exact 2 frame 9 - 1 +944 0x800B7524 0x800B78EC 968 exact 2 frame 4 - 1 +945 0x80047A14 0x80047DE0 972 exact 2 frame 9 - 1 +946 0x80033700 0x80033ADC 988 exact 2 frame 3 - 1 +947 0x800447B4 0x80044B90 988 exact 2 frame 12 - 1 +948 0x80088F38 0x80089314 988 exact 2 frame 11 - 1 +949 0x800AAC9C 0x800AB078 988 exact 2 frame 11 - 1 +950 0x80058608 0x800589E8 992 exact 2 frame 2 - 1 +951 0x80071C64 0x80072048 996 exact 2 frame 15 - 1 +952 0x8010128C 0x80101678 1004 exact 2 frame 6 - 1 +953 0x8009B074 0x8009B464 1008 exact 2 frame 0 - 1 +954 0x800B0550 0x800B0940 1008 exact 2 frame 11 - 1 +955 0x80037B98 0x80037F94 1020 exact 2 frame 9 - 1 +956 0x8007BD0C 0x8007C108 1020 exact 2 frame 10 - 1 +957 0x800C1A58 0x800C1E54 1020 exact 2 frame 8 - 1 +958 0x8010669C 0x80106AA8 1036 exact 2 frame 12 - 1 +959 0x8005CDA0 0x8005D1B0 1040 exact 2 frame 17 - 1 +960 0x80094F54 0x80095364 1040 exact 2 frame 9 - 1 +961 0x800331D4 0x800335E8 1044 exact 2 frame 7 - 1 +962 0x80055240 0x80055654 1044 exact 2 frame 6 - 1 +963 0x800868E8 0x80086CFC 1044 exact 2 frame 3 - 1 +964 0x800A2B04 0x800A2F20 1052 exact 2 frame 7 - 1 +965 0x800B6330 0x800B6754 1060 exact 2 frame 13 - 1 +966 0x8003F190 0x8003F5BC 1068 exact 2 frame 2 - 1 +967 0x80056854 0x80056C88 1076 exact 2 frame 20 - 1 +968 0x8003879C 0x80038BD4 1080 exact 2 frame 10 - 1 +969 0x80092460 0x80092898 1080 exact 2 frame 13 - 1 +970 0x800B2048 0x800B2488 1088 exact 2 frame 4 - 1 +971 0x80034638 0x80034A80 1096 exact 2 frame 7 - 1 +972 0x8009A4AC 0x8009A904 1112 exact 2 frame 6 - 1 +973 0x8005A8E8 0x8005AD44 1116 exact 2 frame 15 - 1 +974 0x8003EBAC 0x8003F010 1124 exact 2 frame 10 - 1 +975 0x800BCE20 0x800BD298 1144 exact 2 frame 13 - 1 +976 0x800C03FC 0x800C0874 1144 exact 2 frame 3 - 1 +977 0x800A38B8 0x800A3D34 1148 exact 2 frame 15 - 1 +978 0x800B8958 0x800B8DE4 1164 exact 2 frame 10 - 1 +979 0x800BAA48 0x800BAED4 1164 exact 2 frame 1 - 1 +980 0x800668F0 0x80066DA0 1200 exact 2 frame 15 - 1 +981 0x800A6FAC 0x800A745C 1200 exact 2 frame 20 - 1 +982 0x800B9C64 0x800BA114 1200 exact 2 frame 0 - 1 +983 0x8005E8B8 0x8005ED6C 1204 exact 2 frame 26 - 1 +984 0x80095364 0x80095820 1212 exact 2 frame 3 - 1 +985 0x800BC194 0x800BC658 1220 exact 2 frame 6 - 1 +986 0x8002B138 0x8002B608 1232 exact 2 frame 36 - 1 +987 0x8004D8A4 0x8004DD74 1232 exact 2 frame 6 - 1 +988 0x8004DD74 0x8004E24C 1240 exact 2 frame 7 - 1 +989 0x800F465C 0x800F4B54 1272 exact 2 frame 8 - 1 +990 0x800F70D0 0x800F75C8 1272 exact 2 frame 8 - 1 +991 0x80093E54 0x80094370 1308 exact 2 frame 15 - 1 +992 0x80056C88 0x800571AC 1316 exact 2 frame 4 - 1 +993 0x8007D718 0x8007DC40 1320 exact 2 frame 5 - 1 +994 0x800B78EC 0x800B7E14 1320 exact 2 frame 0 - 1 +995 0x80034FCC 0x800354F8 1324 exact 2 frame 13 - 1 +996 0x80066208 0x80066738 1328 exact 2 frame 7 - 1 +997 0x800C3C4C 0x800C417C 1328 exact 2 frame 10 - 1 +998 0x80054BC4 0x80055108 1348 exact 2 frame 4 - 1 +999 0x80086388 0x800868E8 1376 exact 2 frame 15 - 1 +1000 0x8004ED90 0x8004F2F8 1384 exact 2 frame 11 - 1 +1001 0x800855D4 0x80085B44 1392 exact 2 frame 2 - 1 +1002 0x80064D2C 0x800652A0 1396 exact 2 frame 4 - 1 +1003 0x8007E228 0x8007E7C0 1432 exact 2 frame 3 - 1 +1004 0x8007B2A0 0x8007B83C 1436 exact 2 frame 5 - 1 +1005 0x80095D74 0x80096324 1456 exact 2 frame 11 - 1 +1006 0x800AEC48 0x800AF1FC 1460 exact 2 frame 14 - 1 +1007 0x80094988 0x80094F54 1484 exact 2 frame 22 - 1 +1008 0x800152AC 0x8001587C 1488 exact 2 frame 19 - 1 +1009 0x8003CBE4 0x8003D224 1600 exact 2 frame 15 - 1 +1010 0x8009B7A4 0x8009BDEC 1608 exact 2 frame 11 - 1 +1011 0x80075228 0x8007587C 1620 exact 2 frame 15 - 1 +1012 0x80099420 0x80099A94 1652 exact 2 frame 11 - 1 +1013 0x80036390 0x80036A0C 1660 exact 2 frame 9 - 1 +1014 0x8007A4FC 0x8007AB7C 1664 exact 2 frame 9 - 1 +1015 0x80085CDC 0x80086388 1708 exact 2 frame 15 - 1 +1016 0x8004CF0C 0x8004D5CC 1728 exact 2 frame 11 - 1 +1017 0x800C356C 0x800C3C4C 1760 exact 2 frame 18 - 1 +1018 0x80030B64 0x8003126C 1800 exact 2 frame 7 - 1 +1019 0x80033F30 0x80034638 1800 exact 2 frame 0 - 1 +1020 0x800BB2AC 0x800BB9FC 1872 exact 2 frame 5 - 1 +1021 0x80043E98 0x80044610 1912 exact 2 frame 12 - 1 +1022 0x8009E95C 0x8009F0E8 1932 exact 2 frame 10 - 1 +1023 0x800A3D34 0x800A44CC 1944 exact 2 frame 10 - 1 +1024 0x8004AC88 0x8004B438 1968 exact 2 frame 18 - 1 +1025 0x800A8F18 0x800A96CC 1972 exact 2 frame 8 - 1 +1026 0x800809B8 0x80081174 1980 exact 2 frame 17 - 1 +1027 0x800BA114 0x800BA8D4 1984 exact 2 frame 1 - 1 +1028 0x800B129C 0x800B1A64 1992 exact 2 frame 4 - 1 +1029 0x8005AE54 0x8005B638 2020 exact 2 frame 15 - 1 +1030 0x80092B2C 0x80093330 2052 exact 2 frame 16 - 1 +1031 0x8007C7CC 0x8007CFFC 2096 exact 2 frame 10 - 1 +1032 0x80083C78 0x800844B8 2112 exact 2 frame 15 - 1 +1033 0x800C417C 0x800C49BC 2112 exact 2 frame 6 - 1 +1034 0x800985A4 0x80098E18 2164 exact 2 frame 49 - 1 +1035 0x8004A278 0x8004AAF0 2168 exact 2 frame 12 - 1 +1036 0x8002203C 0x800228D8 2204 exact 2 frame 4 - 1 +1037 0x80050D48 0x80051628 2272 exact 2 frame 15 - 1 +1038 0x80053064 0x80053954 2288 exact 2 frame 12 - 1 +1039 0x80101EB0 0x801027CC 2332 exact 2 frame 12 - 1 +1040 0x80055B84 0x800564AC 2344 exact 2 frame 17 - 1 +1041 0x8001CE70 0x8001D7A0 2352 exact 2 frame 14 - 1 +1042 0x8006C324 0x8006CC54 2352 exact 2 frame 19 - 1 +1043 0x8008CCC0 0x8008D5F8 2360 exact 2 frame 11 - 1 +1044 0x800C2054 0x800C29D4 2432 exact 2 frame 17 - 1 +1045 0x80069C90 0x8006A654 2500 exact 2 frame 13 - 1 +1046 0x800A5228 0x800A5C1C 2548 exact 2 frame 23 - 1 +1047 0x8004F2F8 0x8004FE38 2880 exact 2 frame 21 - 1 +1048 0x8003FD00 0x80040884 2948 exact 2 frame 26 - 1 +1049 0x800975C4 0x8009829C 3288 exact 2 frame 71 - 1 +1050 0x800142F4 0x80014FE8 3316 exact 2 frame 38 - 1 +1051 0x800B8E60 0x800B9C64 3588 exact 2 frame 8 - 1 +1052 0x800964F8 0x8009736C 3700 exact 2 frame 32 - 1 +1053 0x80066E58 0x80067D34 3804 exact 2 frame 39 - 1 +1054 0x80053954 0x80054AF8 4516 exact 2 frame 32 - 1 +1055 0x8008132C 0x80082750 5156 exact 2 frame 34 - 1 +1056 0x80086DFC 0x80088F38 8508 exact 2 frame 38 - 1 +1057 0x8009F988 0x800A2684 11516 exact 2 frame 102 - 1 +1058 0x80180808 0x8018080C 4 fallthrough 3 leaf 0 - 1 +1059 0x801007E0 0x80100808 40 fallthrough 3 frame 1 - 1 # -# listed=1060 -# excluded_already_registered=551 +# listed=1059 +# excluded_already_registered=552 # excluded_bad_extent_start=8 # excluded_degenerate_body=252 # excluded_delay_slot_start=5 diff --git a/config/regions.tsv b/config/regions.tsv index 6f7ffbd..fe1dae1 100644 --- a/config/regions.tsv +++ b/config/regions.tsv @@ -350,6 +350,7 @@ 0x800912FC 0x8009132C src/func_800912FC.c 0x8009132C 0x80091370 src/func_8009132C.c 0x80091370 0x8009141C src/func_80091370.c +0x800914E4 0x80091674 src/func_800914E4.c 0x80092068 0x80092088 src/func_80092068.c 0x80092088 0x800920BC src/func_80092088.c 0x800920BC 0x800920DC src/func_800920BC.c diff --git a/src/func_800307FC.c b/src/func_800307FC.c new file mode 100644 index 0000000..a25a483 --- /dev/null +++ b/src/func_800307FC.c @@ -0,0 +1,59 @@ +/* + * func_800307FC — 92 bytes at 0x800307FC..0x80030858 + * + * Goal B, Phase 11. **First attempt.** Taken by ADJACENCY (cookbook 99): it sits 72 bytes before + * this worker's 0x800308C4 match, and it shares that row's callee set — func_800304D8 appears in + * both, and the 116/100 offsets bracket the 112 that 0x800308C4 passes to func_80030630. + * + * A guarded three-call teardown: + * + * if (*(int *)a0 != 0) { + * func_80030630((int *)(a0 + 116), *(int *)a0, t); <- t is a 4-int local at sp+0x10 + * func_800304D8((int *)(a0 + 4), t, 1); + * func_80025758(*(int *)a0, 0, a0 + 100); + * } + * + * The observed instructions are: + * addiu sp,sp,-0x28 frame, 40 bytes + * sw s0,0x20(sp) save s0 + * move s0,a0 + * sw ra,0x24(sp) save ra + * lw a1,0x0(s0) a1 = *(int *)a0 + * nop + * beqz a1,epilogue if (a1 == 0) skip the whole body + * addiu a0,s0,0x74 a0 = a0 + 116 (delay slot) + * jal 0x80030630 + * addiu a2,sp,0x10 a2 = &t (delay slot) + * addiu a0,s0,0x4 + * addiu a1,sp,0x10 + * jal 0x800304D8 + * li a2,1 (delay slot) + * lw a0,0x0(s0) a0 = *(int *)a0 + * move a1,zero + * jal 0x80025758 + * addiu a2,s0,0x64 a2 = a0 + 100 (delay slot) + * lw ra / lw s0 / addiu sp,sp,0x28 / jr ra / nop + * + * The guard's value is loaded ONCE into `a1` and reused as the second call's first argument, and + * `*(int *)a0` is re-read for the third call — so the source dereferences at two sites, not three. + * + * LIMITS: the function name, the three callees, the meaning of the 4/100/116 offsets and the claim + * that the local is a 4-int scratch are hypotheses reconstructed from the disassembly; only the + * compiled bytes are evidence. Whether a0 is a struct pointer or an integer address is not + * recoverable — it is declared `int` and cast, which is what the offsets require. + */ + +extern void func_80030630(int *a0, int a1, int *a2); +extern void func_800304D8(int *a0, int *a1, int a2); +extern void func_80025758(int a0, int a1, int a2); + +void func_800307FC(int a0) +{ + int t[4]; + + if (*(int *)a0 != 0) { + func_80030630((int *)(a0 + 116), *(int *)a0, t); + func_800304D8((int *)(a0 + 4), t, 1); + func_80025758(*(int *)a0, 0, a0 + 100); + } +} diff --git a/src/func_8006B7C0.c b/src/func_8006B7C0.c new file mode 100644 index 0000000..48bdb66 --- /dev/null +++ b/src/func_8006B7C0.c @@ -0,0 +1,106 @@ +/* + * func_8006B7C0 — 420 bytes at 0x8006B7C0..0x8006B964 + * + * Hypothesis, not a claim about meaning: an init sequence that runs sixteen setup routines + * in a fixed order, eleven of them with the stack temporarily switched to the PSX + * scratchpad. It matched on the FIRST spelling because the body is one macro expanded + * eleven times plus five plain calls. + * + * Original words: + * 27BDFFE8 addiu sp,sp,-24 + * AFBF0010 sw ra,16(sp) + * 0C01AC2A jal 0x8006B0A8 ; plain: func_8006B0A8() + * 00000000 nop + * 3C011F80 lui at,0x1f80 ; --- SCR() begins: save sp to 0x1F8003FC + * AC3F03FC sw sp,1020(at) + * 3C1D1F80 lui sp,0x1f80 + * 37BD03DC ori sp,sp,0x3dc ; sp = 0x1F8003DC + * 0C01AC61 jal 0x8006B184 ; the wrapped call + * 00000000 nop + * 3C1D1F80 lui sp,0x1f80 ; restore sp + * 8FBF03FC lw sp,1020(sp) + * ... ; --- SCR() again for 0x8006B1CC + * 0C02AC03 jal 0x800A2B04 ; plain, with an argument + * 24040001 li a0,1 ; (delay) + * ... ; five more SCR() calls + * 0C01AD7C jal 0x8006B5F0 ; plain + * 00000000 nop + * 0C01ACE6 jal 0x8006B398 ; plain + * 00000000 nop + * ... ; SCR() for 0x8006B4C4 and 0x8006B66C + * 0C02AC03 jal 0x800A2B04 ; plain, argument 0 + * 00000022 move a0,zero ; (delay) + * ... ; SCR() for 0x8006B6BC and 0x8006B778 + * 8FBF0010 lw ra,16(sp) ; (END) + * 27BD0018 addiu sp,sp,24 + * 03E00008 jr ra + * 00000000 nop + * + * **THE STACK SWITCH IS INLINE ASM, AND `$sp` CANNOT BE MOVED FROM C.** The macro is + * seven `__asm__ volatile` statements with the wrapped call in the middle: + * `lui $at,0x1f80` / `sw $sp,1020($at)` / `lui $sp,0x1f80` / `ori $sp,$sp,0x3dc` + * / call / `lui $sp,0x1f80` / `lw $sp,1020($sp)` + * The `nop` in each `jal`'s delay slot falls out of the following asm statement being a + * compiler barrier — cc1 cannot fill the slot, so it emits `nop`. Writing the sequence as a + * single asm block, or as C with a `register int sp`, does not reproduce it. + * + * **ELEVEN OF THE SIXTEEN CALLS ARE WRAPPED, FIVE ARE NOT.** The wrapped set is + * 0x8006B184, 0x8006B1CC, 0x8006B214, 0x8006B270, 0x8006B2D4, 0x8006B328, 0x8006B470, + * 0x8006B4C4, 0x8006B66C, 0x8006B6BC, 0x8006B778; the plain ones are 0x8006B0A8 (first), + * 0x800A2B04 with argument 1 (fourth), 0x8006B5F0, 0x8006B398, and 0x800A2B04 with + * argument 0 (fourteenth). **The call ORDER is not the address order** (0x8006B470 precedes + * 0x8006B5F0 which precedes 0x8006B398), so the sequence is a literal source order. + * + * LIMITS: the function name, all sixteen callees and the scratchpad address are read from + * the instruction shape; only the bytes are evidence. The macro name and its exact + * statement split are a byte-required spelling — any expansion that yields the same seven + * asm statements in the same order with the call between them matches. All sixteen callees + * are referenced by their address-named spellings; 0x8006B214 is one of my own claimed + * rows. + */ + +void func_8006B0A8(void); +void func_8006B184(void); +void func_8006B1CC(void); +void func_800A2B04(int); +void func_8006B214(void); +void func_8006B270(void); +void func_8006B2D4(void); +void func_8006B328(void); +void func_8006B470(void); +void func_8006B5F0(void); +void func_8006B398(void); +void func_8006B4C4(void); +void func_8006B66C(void); +void func_8006B6BC(void); +void func_8006B778(void); + +#define SCR(f) do { \ + __asm__ volatile ("lui $at,0x1f80"); \ + __asm__ volatile ("sw $sp,1020($at)"); \ + __asm__ volatile ("lui $sp,0x1f80"); \ + __asm__ volatile ("ori $sp,$sp,0x3dc"); \ + f(); \ + __asm__ volatile ("lui $sp,0x1f80"); \ + __asm__ volatile ("lw $sp,1020($sp)"); \ +} while (0) + +void func_8006B7C0(void) +{ + func_8006B0A8(); + SCR(func_8006B184); + SCR(func_8006B1CC); + func_800A2B04(1); + SCR(func_8006B214); + SCR(func_8006B270); + SCR(func_8006B2D4); + SCR(func_8006B328); + SCR(func_8006B470); + func_8006B5F0(); + func_8006B398(); + SCR(func_8006B4C4); + SCR(func_8006B66C); + func_800A2B04(0); + SCR(func_8006B6BC); + SCR(func_8006B778); +} diff --git a/src/func_800914E4.c b/src/func_800914E4.c new file mode 100644 index 0000000..6a36f1d --- /dev/null +++ b/src/func_800914E4.c @@ -0,0 +1,96 @@ +/* + * func_800914E4 — 400 bytes at 0x800914E4..0x80091674 + * + * Hypothesis, not a claim about meaning: reads nine signed halfwords into a 3x3 scratch + * matrix, applies a helper to each cell against a per-row difference of three words of the + * first argument, stores the nine results into a 3x3 area of the third argument, then calls + * a second helper with all three arguments. Nine identical blocks — which is why it matched + * on the FIRST spelling. + * + * Original words (s0 = a0, s1 = a1, s2 = a2; the scratch is `int m[3][4]` at sp+16): + * 27BDFFB0 addiu sp,sp,-80 + * AFB00040 sw s0,64(sp) + * 00808021 move s0,a0 + * AFB10044 sw s1,68(sp) + * 00A08821 move s1,a1 + * AFBF004C sw ra,76(sp) + * AFB20048 sw s2,72(sp) + * 86240000 lh a0,0(s1) ; m[0][0] = a1[0] + * AFA40010 sw a0,16(sp) + * 86220006 lh v0,6(s1) ; m[0][1] = a1[3] + * AFA20014 sw v0,20(sp) + * 8622000C lh v0,12(s1) ; m[0][2] = a1[6] + * AFA20018 sw v0,24(sp) + * 86220002 lh v0,2(s1) ; m[1][0] = a1[1] + * AFA20020 sw v0,32(sp) + * ... ; a1[4] -> m[1][1], a1[7] -> m[1][2] + * ... ; a1[2] -> m[2][0], a1[5] -> m[2][1], a1[8] -> m[2][2] + * 8E020010 lw v0,16(s0) ; a0[4] + * 8E050000 lw a1,0(s0) ; a0[0] + * 00C09021 move s2,a2 + * 0C004195 jal 0x80010654 ; a2[4] = func_80010654(m[0][0], a0[4] - a0[0]) + * 00450823 subu a1,v0,a1 ; (delay) + * AE020010 sw v0,16(s2) + * ... ; the SAME block twice more with m[0][1], m[0][2] + * ... ; then three times with a0[5]-a0[1] (out 32/36/40) + * ... ; then three times with a0[6]-a0[2] (out 48/52/56) + * 02002021 move a0,s0 ; func_80029054(a0, a1, a2) + * 02202821 move a1,s1 + * 02403021 move a2,s2 + * 0C00A415 jal 0x80029054 + * AE020038 sw v0,56(s2) ; (delay) the NINTH store + * 00001021 move v0,zero ; return 0 + * 8FBF004C lw ra,76(sp) ; (END) + * + * BYTE-REQUIRED SHAPES: + * + * 1. **The scratch matrix is `int m[3][4]`** — the 16-byte row stride again (the project's + * 4-int vector layout), with only three of the four columns used. Declaring it as + * `short m[3][3]` (which is what the halfword loads might suggest) gives the wrong frame + * and the wrong offsets; the elements are loaded with `lh` but STORED as words. + * 2. **The loads are in ROW order while the source indices are transposed** — the emitted + * sequence is a1[0], a1[3], a1[6], a1[1], a1[4], a1[7], a1[2], a1[5], a1[8], i.e. the + * source assigns `m[r][c] = a1[3*c + r]`. + * 3. **The helper's second argument is recomputed per block** (`lw v0,16(s0); lw a1,0(s0)` + * before every one of the nine calls) — hoisting the difference into a local changes the + * bytes. + * 4. **The ninth store is in the tail call's delay slot** (`sw v0,56(s2)`), which falls out + * of writing the nine assignments as nine statements followed by the call. + * + * LIMITS: the function name, both callees, the meaning of the nine halfwords, the + * difference and the 3x3 destination are hypotheses read from the instruction shape; only + * the bytes are evidence. The `int m[3][4]` form is a byte-required spelling for the frame + * layout, not a claim about the original declaration. Neither callee is registered and both + * are referenced by their address-named spellings. + */ + +int func_80010654(int, int); +void func_80029054(int *, short *, int *); + +int func_800914E4(int *a0, short *a1, int *a2) +{ + int m[3][4]; + + m[0][0] = a1[0]; + m[0][1] = a1[3]; + m[0][2] = a1[6]; + m[1][0] = a1[1]; + m[1][1] = a1[4]; + m[1][2] = a1[7]; + m[2][0] = a1[2]; + m[2][1] = a1[5]; + m[2][2] = a1[8]; + + a2[4] = func_80010654(m[0][0], a0[4] - a0[0]); + a2[5] = func_80010654(m[0][1], a0[4] - a0[0]); + a2[6] = func_80010654(m[0][2], a0[4] - a0[0]); + a2[8] = func_80010654(m[1][0], a0[5] - a0[1]); + a2[9] = func_80010654(m[1][1], a0[5] - a0[1]); + a2[10] = func_80010654(m[1][2], a0[5] - a0[1]); + a2[12] = func_80010654(m[2][0], a0[6] - a0[2]); + a2[13] = func_80010654(m[2][1], a0[6] - a0[2]); + a2[14] = func_80010654(m[2][2], a0[6] - a0[2]); + + func_80029054(a0, a1, a2); + return 0; +}