.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8004E9F0 func_8004E9F0: /* 8004E9F0 0004A650 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004E9F4 0004A654 7C 08 02 A6 */ mflr r0 /* 8004E9F8 0004A658 90 01 00 14 */ stw r0, 0x14(r1) /* 8004E9FC 0004A65C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004EA00 0004A660 7C 7F 1B 78 */ mr r31, r3 /* 8004EA04 0004A664 38 63 00 14 */ addi r3, r3, 0x14 /* 8004EA08 0004A668 48 00 21 2D */ bl func_80050B34 /* 8004EA0C 0004A66C C0 02 84 48 */ lfs f0, lbl_80640A48-_SDA2_BASE_(r2) /* 8004EA10 0004A670 38 00 00 00 */ li r0, 0 /* 8004EA14 0004A674 90 1F 00 00 */ stw r0, 0(r31) /* 8004EA18 0004A678 7F E3 FB 78 */ mr r3, r31 /* 8004EA1C 0004A67C D0 1F 00 04 */ stfs f0, 4(r31) /* 8004EA20 0004A680 D0 1F 00 08 */ stfs f0, 8(r31) /* 8004EA24 0004A684 D0 1F 00 0C */ stfs f0, 0xc(r31) /* 8004EA28 0004A688 D0 1F 00 10 */ stfs f0, 0x10(r31) /* 8004EA2C 0004A68C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004EA30 0004A690 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004EA34 0004A694 7C 08 03 A6 */ mtlr r0 /* 8004EA38 0004A698 38 21 00 10 */ addi r1, r1, 0x10 /* 8004EA3C 0004A69C 4E 80 00 20 */ blr .global func_8004EA40 func_8004EA40: /* 8004EA40 0004A6A0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004EA44 0004A6A4 7C 08 02 A6 */ mflr r0 /* 8004EA48 0004A6A8 2C 03 00 00 */ cmpwi r3, 0 /* 8004EA4C 0004A6AC 90 01 00 14 */ stw r0, 0x14(r1) /* 8004EA50 0004A6B0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004EA54 0004A6B4 7C 9F 23 78 */ mr r31, r4 /* 8004EA58 0004A6B8 93 C1 00 08 */ stw r30, 8(r1) /* 8004EA5C 0004A6BC 7C 7E 1B 78 */ mr r30, r3 /* 8004EA60 0004A6C0 41 82 00 18 */ beq lbl_8004EA78 /* 8004EA64 0004A6C4 48 00 00 31 */ bl func_8004EA94 /* 8004EA68 0004A6C8 2C 1F 00 00 */ cmpwi r31, 0 /* 8004EA6C 0004A6CC 40 81 00 0C */ ble lbl_8004EA78 /* 8004EA70 0004A6D0 7F C3 F3 78 */ mr r3, r30 /* 8004EA74 0004A6D4 48 18 C0 45 */ bl __dl__FPv lbl_8004EA78: /* 8004EA78 0004A6D8 7F C3 F3 78 */ mr r3, r30 /* 8004EA7C 0004A6DC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004EA80 0004A6E0 83 C1 00 08 */ lwz r30, 8(r1) /* 8004EA84 0004A6E4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004EA88 0004A6E8 7C 08 03 A6 */ mtlr r0 /* 8004EA8C 0004A6EC 38 21 00 10 */ addi r1, r1, 0x10 /* 8004EA90 0004A6F0 4E 80 00 20 */ blr .global func_8004EA94 func_8004EA94: /* 8004EA94 0004A6F4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004EA98 0004A6F8 7C 08 02 A6 */ mflr r0 /* 8004EA9C 0004A6FC 90 01 00 14 */ stw r0, 0x14(r1) /* 8004EAA0 0004A700 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004EAA4 0004A704 7C 7F 1B 78 */ mr r31, r3 /* 8004EAA8 0004A708 80 03 00 00 */ lwz r0, 0(r3) /* 8004EAAC 0004A70C 2C 00 00 00 */ cmpwi r0, 0 /* 8004EAB0 0004A710 41 82 00 14 */ beq lbl_8004EAC4 /* 8004EAB4 0004A714 7C 03 03 78 */ mr r3, r0 /* 8004EAB8 0004A718 48 19 1E 4D */ bl func_801E0904__11gUnkClass20Fv /* 8004EABC 0004A71C 38 00 00 00 */ li r0, 0 /* 8004EAC0 0004A720 90 1F 00 00 */ stw r0, 0(r31) lbl_8004EAC4: /* 8004EAC4 0004A724 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004EAC8 0004A728 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004EACC 0004A72C 7C 08 03 A6 */ mtlr r0 /* 8004EAD0 0004A730 38 21 00 10 */ addi r1, r1, 0x10 /* 8004EAD4 0004A734 4E 80 00 20 */ blr .global func_8004EAD8 func_8004EAD8: /* 8004EAD8 0004A738 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004EADC 0004A73C 3C E0 43 30 */ lis r7, 0x4330 /* 8004EAE0 0004A740 88 04 00 00 */ lbz r0, 0(r4) /* 8004EAE4 0004A744 88 C4 00 01 */ lbz r6, 1(r4) /* 8004EAE8 0004A748 90 01 00 0C */ stw r0, 0xc(r1) /* 8004EAEC 0004A74C C8 82 84 50 */ lfd f4, lbl_80640A50-_SDA2_BASE_(r2) /* 8004EAF0 0004A750 90 E1 00 08 */ stw r7, 8(r1) /* 8004EAF4 0004A754 88 64 00 02 */ lbz r3, 2(r4) /* 8004EAF8 0004A758 C8 01 00 08 */ lfd f0, 8(r1) /* 8004EAFC 0004A75C 90 E1 00 10 */ stw r7, 0x10(r1) /* 8004EB00 0004A760 EC 60 20 28 */ fsubs f3, f0, f4 /* 8004EB04 0004A764 88 04 00 03 */ lbz r0, 3(r4) /* 8004EB08 0004A768 90 C1 00 14 */ stw r6, 0x14(r1) /* 8004EB0C 0004A76C C8 01 00 10 */ lfd f0, 0x10(r1) /* 8004EB10 0004A770 90 61 00 0C */ stw r3, 0xc(r1) /* 8004EB14 0004A774 EC 40 20 28 */ fsubs f2, f0, f4 /* 8004EB18 0004A778 90 01 00 14 */ stw r0, 0x14(r1) /* 8004EB1C 0004A77C C8 21 00 08 */ lfd f1, 8(r1) /* 8004EB20 0004A780 C8 01 00 10 */ lfd f0, 0x10(r1) /* 8004EB24 0004A784 EC 21 20 28 */ fsubs f1, f1, f4 /* 8004EB28 0004A788 D0 65 00 00 */ stfs f3, 0(r5) /* 8004EB2C 0004A78C EC 00 20 28 */ fsubs f0, f0, f4 /* 8004EB30 0004A790 D0 45 00 04 */ stfs f2, 4(r5) /* 8004EB34 0004A794 D0 25 00 08 */ stfs f1, 8(r5) /* 8004EB38 0004A798 D0 05 00 0C */ stfs f0, 0xc(r5) /* 8004EB3C 0004A79C 38 21 00 20 */ addi r1, r1, 0x20 /* 8004EB40 0004A7A0 4E 80 00 20 */ blr .global func_8004EB44 func_8004EB44: /* 8004EB44 0004A7A4 C0 04 00 00 */ lfs f0, 0(r4) /* 8004EB48 0004A7A8 C0 44 00 04 */ lfs f2, 4(r4) /* 8004EB4C 0004A7AC C0 24 00 08 */ lfs f1, 8(r4) /* 8004EB50 0004A7B0 FC 60 00 1E */ fctiwz f3, f0 /* 8004EB54 0004A7B4 C0 04 00 0C */ lfs f0, 0xc(r4) /* 8004EB58 0004A7B8 FC 40 10 1E */ fctiwz f2, f2 /* 8004EB5C 0004A7BC FC 20 08 1E */ fctiwz f1, f1 /* 8004EB60 0004A7C0 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8004EB64 0004A7C4 FC 00 00 1E */ fctiwz f0, f0 /* 8004EB68 0004A7C8 D8 61 00 08 */ stfd f3, 8(r1) /* 8004EB6C 0004A7CC D8 41 00 10 */ stfd f2, 0x10(r1) /* 8004EB70 0004A7D0 80 C1 00 0C */ lwz r6, 0xc(r1) /* 8004EB74 0004A7D4 D8 21 00 18 */ stfd f1, 0x18(r1) /* 8004EB78 0004A7D8 80 81 00 14 */ lwz r4, 0x14(r1) /* 8004EB7C 0004A7DC D8 01 00 20 */ stfd f0, 0x20(r1) /* 8004EB80 0004A7E0 80 61 00 1C */ lwz r3, 0x1c(r1) /* 8004EB84 0004A7E4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004EB88 0004A7E8 98 C5 00 00 */ stb r6, 0(r5) /* 8004EB8C 0004A7EC 98 85 00 01 */ stb r4, 1(r5) /* 8004EB90 0004A7F0 98 65 00 02 */ stb r3, 2(r5) /* 8004EB94 0004A7F4 98 05 00 03 */ stb r0, 3(r5) /* 8004EB98 0004A7F8 38 21 00 30 */ addi r1, r1, 0x30 /* 8004EB9C 0004A7FC 4E 80 00 20 */ blr .global func_8004EBA0 func_8004EBA0: /* 8004EBA0 0004A800 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004EBA4 0004A804 7C 08 02 A6 */ mflr r0 /* 8004EBA8 0004A808 38 A3 00 04 */ addi r5, r3, 4 /* 8004EBAC 0004A80C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004EBB0 0004A810 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004EBB4 0004A814 7C 9F 23 78 */ mr r31, r4 /* 8004EBB8 0004A818 93 C1 00 08 */ stw r30, 8(r1) /* 8004EBBC 0004A81C 7C 7E 1B 78 */ mr r30, r3 /* 8004EBC0 0004A820 4B FF FF 19 */ bl func_8004EAD8 /* 8004EBC4 0004A824 80 7E 00 00 */ lwz r3, 0(r30) /* 8004EBC8 0004A828 2C 03 00 00 */ cmpwi r3, 0 /* 8004EBCC 0004A82C 40 82 00 20 */ bne lbl_8004EBEC /* 8004EBD0 0004A830 7F E3 FB 78 */ mr r3, r31 /* 8004EBD4 0004A834 38 80 00 00 */ li r4, 0 /* 8004EBD8 0004A838 38 A0 00 00 */ li r5, 0 /* 8004EBDC 0004A83C 38 C0 00 00 */ li r6, 0 /* 8004EBE0 0004A840 48 19 1C 31 */ bl func_801E0810__11gUnkClass20FUlUcUc /* 8004EBE4 0004A844 90 7E 00 00 */ stw r3, 0(r30) /* 8004EBE8 0004A848 48 00 00 0C */ b lbl_8004EBF4 lbl_8004EBEC: /* 8004EBEC 0004A84C 7F E4 FB 78 */ mr r4, r31 /* 8004EBF0 0004A850 48 19 1D ED */ bl func_801E09DC__11gUnkClass20CFP11gUnkClass21 lbl_8004EBF4: /* 8004EBF4 0004A854 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004EBF8 0004A858 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004EBFC 0004A85C 83 C1 00 08 */ lwz r30, 8(r1) /* 8004EC00 0004A860 7C 08 03 A6 */ mtlr r0 /* 8004EC04 0004A864 38 21 00 10 */ addi r1, r1, 0x10 /* 8004EC08 0004A868 4E 80 00 20 */ blr .global func_8004EC0C func_8004EC0C: /* 8004EC0C 0004A86C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8004EC10 0004A870 7C 08 02 A6 */ mflr r0 /* 8004EC14 0004A874 90 01 00 44 */ stw r0, 0x44(r1) /* 8004EC18 0004A878 DB E1 00 38 */ stfd f31, 0x38(r1) /* 8004EC1C 0004A87C FF E0 08 90 */ fmr f31, f1 /* 8004EC20 0004A880 93 E1 00 34 */ stw r31, 0x34(r1) /* 8004EC24 0004A884 7C BF 2B 78 */ mr r31, r5 /* 8004EC28 0004A888 93 C1 00 30 */ stw r30, 0x30(r1) /* 8004EC2C 0004A88C 7C 9E 23 78 */ mr r30, r4 /* 8004EC30 0004A890 93 A1 00 2C */ stw r29, 0x2c(r1) /* 8004EC34 0004A894 7C 7D 1B 78 */ mr r29, r3 /* 8004EC38 0004A898 80 03 00 00 */ lwz r0, 0(r3) /* 8004EC3C 0004A89C 2C 00 00 00 */ cmpwi r0, 0 /* 8004EC40 0004A8A0 40 82 00 30 */ bne lbl_8004EC70 /* 8004EC44 0004A8A4 38 00 00 00 */ li r0, 0 /* 8004EC48 0004A8A8 38 61 00 08 */ addi r3, r1, 8 /* 8004EC4C 0004A8AC 98 01 00 08 */ stb r0, 8(r1) /* 8004EC50 0004A8B0 38 80 00 00 */ li r4, 0 /* 8004EC54 0004A8B4 38 A0 00 00 */ li r5, 0 /* 8004EC58 0004A8B8 38 C0 00 00 */ li r6, 0 /* 8004EC5C 0004A8BC 98 01 00 09 */ stb r0, 9(r1) /* 8004EC60 0004A8C0 98 01 00 0A */ stb r0, 0xa(r1) /* 8004EC64 0004A8C4 98 01 00 0B */ stb r0, 0xb(r1) /* 8004EC68 0004A8C8 48 19 1B A9 */ bl func_801E0810__11gUnkClass20FUlUcUc /* 8004EC6C 0004A8CC 90 7D 00 00 */ stw r3, 0(r29) lbl_8004EC70: /* 8004EC70 0004A8D0 80 7D 00 00 */ lwz r3, 0(r29) /* 8004EC74 0004A8D4 38 81 00 08 */ addi r4, r1, 8 /* 8004EC78 0004A8D8 48 19 1D 01 */ bl func_801E0978__11gUnkClass20CFP11gUnkClass21 /* 8004EC7C 0004A8DC 7F A3 EB 78 */ mr r3, r29 /* 8004EC80 0004A8E0 7F C4 F3 78 */ mr r4, r30 /* 8004EC84 0004A8E4 38 A1 00 10 */ addi r5, r1, 0x10 /* 8004EC88 0004A8E8 4B FF FE 51 */ bl func_8004EAD8 /* 8004EC8C 0004A8EC 7F A3 EB 78 */ mr r3, r29 /* 8004EC90 0004A8F0 38 81 00 08 */ addi r4, r1, 8 /* 8004EC94 0004A8F4 38 BD 00 04 */ addi r5, r29, 4 /* 8004EC98 0004A8F8 4B FF FE 41 */ bl func_8004EAD8 /* 8004EC9C 0004A8FC FC 20 F8 90 */ fmr f1, f31 /* 8004ECA0 0004A900 38 9D 00 04 */ addi r4, r29, 4 /* 8004ECA4 0004A904 7C 86 23 78 */ mr r6, r4 /* 8004ECA8 0004A908 7F E7 FB 78 */ mr r7, r31 /* 8004ECAC 0004A90C 38 7D 00 14 */ addi r3, r29, 0x14 /* 8004ECB0 0004A910 38 A1 00 10 */ addi r5, r1, 0x10 /* 8004ECB4 0004A914 48 00 1E 99 */ bl func_80050B4C /* 8004ECB8 0004A918 80 01 00 44 */ lwz r0, 0x44(r1) /* 8004ECBC 0004A91C CB E1 00 38 */ lfd f31, 0x38(r1) /* 8004ECC0 0004A920 83 E1 00 34 */ lwz r31, 0x34(r1) /* 8004ECC4 0004A924 83 C1 00 30 */ lwz r30, 0x30(r1) /* 8004ECC8 0004A928 83 A1 00 2C */ lwz r29, 0x2c(r1) /* 8004ECCC 0004A92C 7C 08 03 A6 */ mtlr r0 /* 8004ECD0 0004A930 38 21 00 40 */ addi r1, r1, 0x40 /* 8004ECD4 0004A934 4E 80 00 20 */ blr .global func_8004ECD8 func_8004ECD8: /* 8004ECD8 0004A938 38 63 00 14 */ addi r3, r3, 0x14 /* 8004ECDC 0004A93C 48 00 1F 04 */ b func_80050BE0 .global func_8004ECE0 func_8004ECE0: /* 8004ECE0 0004A940 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004ECE4 0004A944 7C 08 02 A6 */ mflr r0 /* 8004ECE8 0004A948 90 01 00 24 */ stw r0, 0x24(r1) /* 8004ECEC 0004A94C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004ECF0 0004A950 7C 7F 1B 78 */ mr r31, r3 /* 8004ECF4 0004A954 80 03 00 00 */ lwz r0, 0(r3) /* 8004ECF8 0004A958 2C 00 00 00 */ cmpwi r0, 0 /* 8004ECFC 0004A95C 41 82 00 3C */ beq lbl_8004ED38 /* 8004ED00 0004A960 81 83 00 4C */ lwz r12, 0x4c(r3) /* 8004ED04 0004A964 81 8C 00 08 */ lwz r12, 8(r12) /* 8004ED08 0004A968 7D 89 03 A6 */ mtctr r12 /* 8004ED0C 0004A96C 38 63 00 14 */ addi r3, r3, 0x14 /* 8004ED10 0004A970 4E 80 04 21 */ bctrl /* 8004ED14 0004A974 2C 03 00 00 */ cmpwi r3, 0 /* 8004ED18 0004A978 41 82 00 20 */ beq lbl_8004ED38 /* 8004ED1C 0004A97C 7F E3 FB 78 */ mr r3, r31 /* 8004ED20 0004A980 38 9F 00 04 */ addi r4, r31, 4 /* 8004ED24 0004A984 38 A1 00 08 */ addi r5, r1, 8 /* 8004ED28 0004A988 4B FF FE 1D */ bl func_8004EB44 /* 8004ED2C 0004A98C 80 7F 00 00 */ lwz r3, 0(r31) /* 8004ED30 0004A990 38 81 00 08 */ addi r4, r1, 8 /* 8004ED34 0004A994 48 19 1C A9 */ bl func_801E09DC__11gUnkClass20CFP11gUnkClass21 lbl_8004ED38: /* 8004ED38 0004A998 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004ED3C 0004A99C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004ED40 0004A9A0 7C 08 03 A6 */ mtlr r0 /* 8004ED44 0004A9A4 38 21 00 20 */ addi r1, r1, 0x20 /* 8004ED48 0004A9A8 4E 80 00 20 */ blr lbl_8004ED4C: /* 8004ED4C 0004A9AC 38 00 00 00 */ li r0, 0 /* 8004ED50 0004A9B0 90 03 00 04 */ stw r0, 4(r3) /* 8004ED54 0004A9B4 98 03 00 00 */ stb r0, 0(r3) /* 8004ED58 0004A9B8 4E 80 00 20 */ blr .global lbl_8004ED5C lbl_8004ED5C: /* 8004ED5C 0004A9BC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004ED60 0004A9C0 7C 08 02 A6 */ mflr r0 /* 8004ED64 0004A9C4 2C 03 00 00 */ cmpwi r3, 0 /* 8004ED68 0004A9C8 90 01 00 14 */ stw r0, 0x14(r1) /* 8004ED6C 0004A9CC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004ED70 0004A9D0 7C 9F 23 78 */ mr r31, r4 /* 8004ED74 0004A9D4 93 C1 00 08 */ stw r30, 8(r1) /* 8004ED78 0004A9D8 7C 7E 1B 78 */ mr r30, r3 /* 8004ED7C 0004A9DC 41 82 00 18 */ beq lbl_8004ED94 /* 8004ED80 0004A9E0 48 00 00 31 */ bl func_8004EDB0 /* 8004ED84 0004A9E4 2C 1F 00 00 */ cmpwi r31, 0 /* 8004ED88 0004A9E8 40 81 00 0C */ ble lbl_8004ED94 /* 8004ED8C 0004A9EC 7F C3 F3 78 */ mr r3, r30 /* 8004ED90 0004A9F0 48 18 BD 29 */ bl __dl__FPv lbl_8004ED94: /* 8004ED94 0004A9F4 7F C3 F3 78 */ mr r3, r30 /* 8004ED98 0004A9F8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004ED9C 0004A9FC 83 C1 00 08 */ lwz r30, 8(r1) /* 8004EDA0 0004AA00 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004EDA4 0004AA04 7C 08 03 A6 */ mtlr r0 /* 8004EDA8 0004AA08 38 21 00 10 */ addi r1, r1, 0x10 /* 8004EDAC 0004AA0C 4E 80 00 20 */ blr .global func_8004EDB0 func_8004EDB0: /* 8004EDB0 0004AA10 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004EDB4 0004AA14 7C 08 02 A6 */ mflr r0 /* 8004EDB8 0004AA18 90 01 00 24 */ stw r0, 0x24(r1) /* 8004EDBC 0004AA1C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004EDC0 0004AA20 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004EDC4 0004AA24 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004EDC8 0004AA28 7C 7D 1B 78 */ mr r29, r3 /* 8004EDCC 0004AA2C 83 C3 00 04 */ lwz r30, 4(r3) /* 8004EDD0 0004AA30 2C 1E 00 00 */ cmpwi r30, 0 /* 8004EDD4 0004AA34 41 82 00 70 */ beq lbl_8004EE44 /* 8004EDD8 0004AA38 88 1E 00 08 */ lbz r0, 8(r30) /* 8004EDDC 0004AA3C 2C 00 00 00 */ cmpwi r0, 0 /* 8004EDE0 0004AA40 41 82 00 3C */ beq lbl_8004EE1C /* 8004EDE4 0004AA44 83 FE 00 04 */ lwz r31, 4(r30) /* 8004EDE8 0004AA48 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004EDEC 0004AA4C 48 1E C2 6D */ bl func_8023B058 /* 8004EDF0 0004AA50 2C 03 00 00 */ cmpwi r3, 0 /* 8004EDF4 0004AA54 41 82 00 0C */ beq lbl_8004EE00 /* 8004EDF8 0004AA58 7F E4 FB 78 */ mr r4, r31 /* 8004EDFC 0004AA5C 48 1E C6 25 */ bl func_8023B420 lbl_8004EE00: /* 8004EE00 0004AA60 81 9E 00 0C */ lwz r12, 0xc(r30) /* 8004EE04 0004AA64 7F C3 F3 78 */ mr r3, r30 /* 8004EE08 0004AA68 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004EE0C 0004AA6C 7D 89 03 A6 */ mtctr r12 /* 8004EE10 0004AA70 4E 80 04 21 */ bctrl /* 8004EE14 0004AA74 38 00 00 00 */ li r0, 0 /* 8004EE18 0004AA78 98 1E 00 08 */ stb r0, 8(r30) lbl_8004EE1C: /* 8004EE1C 0004AA7C 80 7D 00 04 */ lwz r3, 4(r29) /* 8004EE20 0004AA80 2C 03 00 00 */ cmpwi r3, 0 /* 8004EE24 0004AA84 41 82 00 18 */ beq lbl_8004EE3C /* 8004EE28 0004AA88 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004EE2C 0004AA8C 38 80 00 01 */ li r4, 1 /* 8004EE30 0004AA90 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004EE34 0004AA94 7D 89 03 A6 */ mtctr r12 /* 8004EE38 0004AA98 4E 80 04 21 */ bctrl lbl_8004EE3C: /* 8004EE3C 0004AA9C 38 00 00 00 */ li r0, 0 /* 8004EE40 0004AAA0 90 1D 00 04 */ stw r0, 4(r29) lbl_8004EE44: /* 8004EE44 0004AAA4 38 00 00 00 */ li r0, 0 /* 8004EE48 0004AAA8 98 1D 00 00 */ stb r0, 0(r29) /* 8004EE4C 0004AAAC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004EE50 0004AAB0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004EE54 0004AAB4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004EE58 0004AAB8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004EE5C 0004AABC 7C 08 03 A6 */ mtlr r0 /* 8004EE60 0004AAC0 38 21 00 20 */ addi r1, r1, 0x20 /* 8004EE64 0004AAC4 4E 80 00 20 */ blr .global func_8004EE68 func_8004EE68: /* 8004EE68 0004AAC8 88 63 00 00 */ lbz r3, 0(r3) /* 8004EE6C 0004AACC 4E 80 00 20 */ blr .global func_8004EE70 func_8004EE70: /* 8004EE70 0004AAD0 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8004EE74 0004AAD4 7C 08 02 A6 */ mflr r0 /* 8004EE78 0004AAD8 90 01 00 44 */ stw r0, 0x44(r1) /* 8004EE7C 0004AADC DB E1 00 30 */ stfd f31, 0x30(r1) /* 8004EE80 0004AAE0 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 /* 8004EE84 0004AAE4 FF E0 08 90 */ fmr f31, f1 /* 8004EE88 0004AAE8 93 E1 00 2C */ stw r31, 0x2c(r1) /* 8004EE8C 0004AAEC 93 C1 00 28 */ stw r30, 0x28(r1) /* 8004EE90 0004AAF0 7C FE 3B 78 */ mr r30, r7 /* 8004EE94 0004AAF4 93 A1 00 24 */ stw r29, 0x24(r1) /* 8004EE98 0004AAF8 7C DD 33 78 */ mr r29, r6 /* 8004EE9C 0004AAFC 93 81 00 20 */ stw r28, 0x20(r1) /* 8004EEA0 0004AB00 7C 7C 1B 78 */ mr r28, r3 /* 8004EEA4 0004AB04 7C 83 23 78 */ mr r3, r4 /* 8004EEA8 0004AB08 7C A4 2B 78 */ mr r4, r5 /* 8004EEAC 0004AB0C 48 18 C6 11 */ bl func_801DB4BC /* 8004EEB0 0004AB10 2C 03 00 00 */ cmpwi r3, 0 /* 8004EEB4 0004AB14 7C 7F 1B 78 */ mr r31, r3 /* 8004EEB8 0004AB18 40 82 00 0C */ bne lbl_8004EEC4 /* 8004EEBC 0004AB1C 38 60 00 00 */ li r3, 0 /* 8004EEC0 0004AB20 48 00 00 FC */ b lbl_8004EFBC lbl_8004EEC4: /* 8004EEC4 0004AB24 7F 83 E3 78 */ mr r3, r28 /* 8004EEC8 0004AB28 4B FF FE E9 */ bl func_8004EDB0 /* 8004EECC 0004AB2C 48 18 BC 5D */ bl func_801DAB28 /* 8004EED0 0004AB30 2C 03 00 00 */ cmpwi r3, 0 /* 8004EED4 0004AB34 41 82 00 14 */ beq lbl_8004EEE8 /* 8004EED8 0004AB38 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8004EEDC 0004AB3C 38 80 00 78 */ li r4, 0x78 /* 8004EEE0 0004AB40 48 18 BD B5 */ bl func_801DAC94 /* 8004EEE4 0004AB44 48 00 00 08 */ b lbl_8004EEEC lbl_8004EEE8: /* 8004EEE8 0004AB48 38 60 00 00 */ li r3, 0 lbl_8004EEEC: /* 8004EEEC 0004AB4C 2C 03 00 00 */ cmpwi r3, 0 /* 8004EEF0 0004AB50 41 82 00 0C */ beq lbl_8004EEFC /* 8004EEF4 0004AB54 7F E4 FB 78 */ mr r4, r31 /* 8004EEF8 0004AB58 48 1D 0C 4D */ bl func_8021FB44 lbl_8004EEFC: /* 8004EEFC 0004AB5C 2C 03 00 00 */ cmpwi r3, 0 /* 8004EF00 0004AB60 90 7C 00 04 */ stw r3, 4(r28) /* 8004EF04 0004AB64 40 82 00 0C */ bne lbl_8004EF10 /* 8004EF08 0004AB68 38 60 00 00 */ li r3, 0 /* 8004EF0C 0004AB6C 48 00 00 B0 */ b lbl_8004EFBC lbl_8004EF10: /* 8004EF10 0004AB70 C0 1D 00 00 */ lfs f0, 0(r29) /* 8004EF14 0004AB74 38 81 00 08 */ addi r4, r1, 8 /* 8004EF18 0004AB78 C0 3D 00 04 */ lfs f1, 4(r29) /* 8004EF1C 0004AB7C D0 03 00 14 */ stfs f0, 0x14(r3) /* 8004EF20 0004AB80 C0 1D 00 08 */ lfs f0, 8(r29) /* 8004EF24 0004AB84 D0 23 00 18 */ stfs f1, 0x18(r3) /* 8004EF28 0004AB88 C0 22 84 58 */ lfs f1, lbl_80640A58-_SDA2_BASE_(r2) /* 8004EF2C 0004AB8C D0 03 00 1C */ stfs f0, 0x1c(r3) /* 8004EF30 0004AB90 C0 02 84 5C */ lfs f0, lbl_80640A5C-_SDA2_BASE_(r2) /* 8004EF34 0004AB94 D0 21 00 08 */ stfs f1, 8(r1) /* 8004EF38 0004AB98 D0 01 00 0C */ stfs f0, 0xc(r1) /* 8004EF3C 0004AB9C D0 21 00 10 */ stfs f1, 0x10(r1) /* 8004EF40 0004ABA0 80 7C 00 04 */ lwz r3, 4(r28) /* 8004EF44 0004ABA4 48 1D 15 C1 */ bl func_80220504 /* 8004EF48 0004ABA8 C0 02 84 58 */ lfs f0, lbl_80640A58-_SDA2_BASE_(r2) /* 8004EF4C 0004ABAC 80 7C 00 04 */ lwz r3, 4(r28) /* 8004EF50 0004ABB0 C0 3E 00 00 */ lfs f1, 0(r30) /* 8004EF54 0004ABB4 D0 03 00 44 */ stfs f0, 0x44(r3) /* 8004EF58 0004ABB8 C0 1E 00 04 */ lfs f0, 4(r30) /* 8004EF5C 0004ABBC 80 7C 00 04 */ lwz r3, 4(r28) /* 8004EF60 0004ABC0 D0 23 00 48 */ stfs f1, 0x48(r3) /* 8004EF64 0004ABC4 D0 03 00 4C */ stfs f0, 0x4c(r3) /* 8004EF68 0004ABC8 80 7C 00 04 */ lwz r3, 4(r28) /* 8004EF6C 0004ABCC D3 E3 00 74 */ stfs f31, 0x74(r3) /* 8004EF70 0004ABD0 83 FC 00 04 */ lwz r31, 4(r28) /* 8004EF74 0004ABD4 81 9F 00 0C */ lwz r12, 0xc(r31) /* 8004EF78 0004ABD8 7F E3 FB 78 */ mr r3, r31 /* 8004EF7C 0004ABDC 81 8C 00 08 */ lwz r12, 8(r12) /* 8004EF80 0004ABE0 7D 89 03 A6 */ mtctr r12 /* 8004EF84 0004ABE4 4E 80 04 21 */ bctrl /* 8004EF88 0004ABE8 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8004EF8C 0004ABEC 98 7F 00 08 */ stb r3, 8(r31) /* 8004EF90 0004ABF0 41 82 00 20 */ beq lbl_8004EFB0 /* 8004EF94 0004ABF4 83 FF 00 04 */ lwz r31, 4(r31) /* 8004EF98 0004ABF8 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004EF9C 0004ABFC 48 1E C0 BD */ bl func_8023B058 /* 8004EFA0 0004AC00 2C 03 00 00 */ cmpwi r3, 0 /* 8004EFA4 0004AC04 41 82 00 0C */ beq lbl_8004EFB0 /* 8004EFA8 0004AC08 7F E4 FB 78 */ mr r4, r31 /* 8004EFAC 0004AC0C 48 1E C4 0D */ bl func_8023B3B8 lbl_8004EFB0: /* 8004EFB0 0004AC10 38 00 00 01 */ li r0, 1 /* 8004EFB4 0004AC14 38 60 00 01 */ li r3, 1 /* 8004EFB8 0004AC18 98 1C 00 00 */ stb r0, 0(r28) lbl_8004EFBC: /* 8004EFBC 0004AC1C E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 /* 8004EFC0 0004AC20 80 01 00 44 */ lwz r0, 0x44(r1) /* 8004EFC4 0004AC24 CB E1 00 30 */ lfd f31, 0x30(r1) /* 8004EFC8 0004AC28 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 8004EFCC 0004AC2C 83 C1 00 28 */ lwz r30, 0x28(r1) /* 8004EFD0 0004AC30 83 A1 00 24 */ lwz r29, 0x24(r1) /* 8004EFD4 0004AC34 83 81 00 20 */ lwz r28, 0x20(r1) /* 8004EFD8 0004AC38 7C 08 03 A6 */ mtlr r0 /* 8004EFDC 0004AC3C 38 21 00 40 */ addi r1, r1, 0x40 /* 8004EFE0 0004AC40 4E 80 00 20 */ blr .global func_8004EFE4 func_8004EFE4: /* 8004EFE4 0004AC44 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004EFE8 0004AC48 7C 08 02 A6 */ mflr r0 /* 8004EFEC 0004AC4C 90 01 00 24 */ stw r0, 0x24(r1) /* 8004EFF0 0004AC50 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8004EFF4 0004AC54 93 C1 00 18 */ stw r30, 0x18(r1) /* 8004EFF8 0004AC58 93 A1 00 14 */ stw r29, 0x14(r1) /* 8004EFFC 0004AC5C 7C 7D 1B 78 */ mr r29, r3 /* 8004F000 0004AC60 4B FF FE 69 */ bl func_8004EE68 /* 8004F004 0004AC64 2C 03 00 00 */ cmpwi r3, 0 /* 8004F008 0004AC68 41 82 00 98 */ beq lbl_8004F0A0 /* 8004F00C 0004AC6C 83 DD 00 04 */ lwz r30, 4(r29) /* 8004F010 0004AC70 C0 02 84 58 */ lfs f0, lbl_80640A58-_SDA2_BASE_(r2) /* 8004F014 0004AC74 C0 3E 00 70 */ lfs f1, 0x70(r30) /* 8004F018 0004AC78 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 8004F01C 0004AC7C 4C 40 13 82 */ cror 2, 0, 2 /* 8004F020 0004AC80 40 82 00 80 */ bne lbl_8004F0A0 /* 8004F024 0004AC84 38 00 00 00 */ li r0, 0 /* 8004F028 0004AC88 2C 1E 00 00 */ cmpwi r30, 0 /* 8004F02C 0004AC8C 98 1D 00 00 */ stb r0, 0(r29) /* 8004F030 0004AC90 41 82 00 70 */ beq lbl_8004F0A0 /* 8004F034 0004AC94 88 1E 00 08 */ lbz r0, 8(r30) /* 8004F038 0004AC98 2C 00 00 00 */ cmpwi r0, 0 /* 8004F03C 0004AC9C 41 82 00 3C */ beq lbl_8004F078 /* 8004F040 0004ACA0 83 FE 00 04 */ lwz r31, 4(r30) /* 8004F044 0004ACA4 57 E3 86 3E */ rlwinm r3, r31, 0x10, 0x18, 0x1f /* 8004F048 0004ACA8 48 1E C0 11 */ bl func_8023B058 /* 8004F04C 0004ACAC 2C 03 00 00 */ cmpwi r3, 0 /* 8004F050 0004ACB0 41 82 00 0C */ beq lbl_8004F05C /* 8004F054 0004ACB4 7F E4 FB 78 */ mr r4, r31 /* 8004F058 0004ACB8 48 1E C3 C9 */ bl func_8023B420 lbl_8004F05C: /* 8004F05C 0004ACBC 81 9E 00 0C */ lwz r12, 0xc(r30) /* 8004F060 0004ACC0 7F C3 F3 78 */ mr r3, r30 /* 8004F064 0004ACC4 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8004F068 0004ACC8 7D 89 03 A6 */ mtctr r12 /* 8004F06C 0004ACCC 4E 80 04 21 */ bctrl /* 8004F070 0004ACD0 38 00 00 00 */ li r0, 0 /* 8004F074 0004ACD4 98 1E 00 08 */ stb r0, 8(r30) lbl_8004F078: /* 8004F078 0004ACD8 80 7D 00 04 */ lwz r3, 4(r29) /* 8004F07C 0004ACDC 2C 03 00 00 */ cmpwi r3, 0 /* 8004F080 0004ACE0 41 82 00 18 */ beq lbl_8004F098 /* 8004F084 0004ACE4 81 83 00 0C */ lwz r12, 0xc(r3) /* 8004F088 0004ACE8 38 80 00 01 */ li r4, 1 /* 8004F08C 0004ACEC 81 8C 00 18 */ lwz r12, 0x18(r12) /* 8004F090 0004ACF0 7D 89 03 A6 */ mtctr r12 /* 8004F094 0004ACF4 4E 80 04 21 */ bctrl lbl_8004F098: /* 8004F098 0004ACF8 38 00 00 00 */ li r0, 0 /* 8004F09C 0004ACFC 90 1D 00 04 */ stw r0, 4(r29) lbl_8004F0A0: /* 8004F0A0 0004AD00 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004F0A4 0004AD04 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8004F0A8 0004AD08 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8004F0AC 0004AD0C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8004F0B0 0004AD10 7C 08 03 A6 */ mtlr r0 /* 8004F0B4 0004AD14 38 21 00 20 */ addi r1, r1, 0x20 /* 8004F0B8 0004AD18 4E 80 00 20 */ blr .global func_8004F0BC func_8004F0BC: /* 8004F0BC 0004AD1C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004F0C0 0004AD20 7C 08 02 A6 */ mflr r0 /* 8004F0C4 0004AD24 3C 80 80 05 */ lis r4, lbl_8004ED4C@ha /* 8004F0C8 0004AD28 3C A0 80 05 */ lis r5, lbl_8004ED5C@ha /* 8004F0CC 0004AD2C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004F0D0 0004AD30 38 C0 00 08 */ li r6, 8 /* 8004F0D4 0004AD34 38 84 ED 4C */ addi r4, r4, lbl_8004ED4C@l /* 8004F0D8 0004AD38 38 A5 ED 5C */ addi r5, r5, lbl_8004ED5C@l /* 8004F0DC 0004AD3C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004F0E0 0004AD40 7C 7F 1B 78 */ mr r31, r3 /* 8004F0E4 0004AD44 38 E0 00 20 */ li r7, 0x20 /* 8004F0E8 0004AD48 48 17 7D 81 */ bl __construct_array /* 8004F0EC 0004AD4C 38 7F 01 00 */ addi r3, r31, 0x100 /* 8004F0F0 0004AD50 38 80 00 00 */ li r4, 0 /* 8004F0F4 0004AD54 38 A0 00 80 */ li r5, 0x80 /* 8004F0F8 0004AD58 4B FB 50 0D */ bl memset /* 8004F0FC 0004AD5C 7F E3 FB 78 */ mr r3, r31 /* 8004F100 0004AD60 38 80 00 00 */ li r4, 0 /* 8004F104 0004AD64 38 A0 01 00 */ li r5, 0x100 /* 8004F108 0004AD68 4B FB 4F FD */ bl memset /* 8004F10C 0004AD6C C0 02 84 60 */ lfs f0, lbl_80640A60-_SDA2_BASE_(r2) /* 8004F110 0004AD70 7F E3 FB 78 */ mr r3, r31 /* 8004F114 0004AD74 D0 1F 01 80 */ stfs f0, 0x180(r31) /* 8004F118 0004AD78 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004F11C 0004AD7C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004F120 0004AD80 7C 08 03 A6 */ mtlr r0 /* 8004F124 0004AD84 38 21 00 10 */ addi r1, r1, 0x10 /* 8004F128 0004AD88 4E 80 00 20 */ blr .global func_8004F12C func_8004F12C: /* 8004F12C 0004AD8C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004F130 0004AD90 7C 08 02 A6 */ mflr r0 /* 8004F134 0004AD94 38 80 00 00 */ li r4, 0 /* 8004F138 0004AD98 38 A0 00 80 */ li r5, 0x80 /* 8004F13C 0004AD9C 90 01 00 14 */ stw r0, 0x14(r1) /* 8004F140 0004ADA0 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004F144 0004ADA4 7C 7F 1B 78 */ mr r31, r3 /* 8004F148 0004ADA8 38 63 01 00 */ addi r3, r3, 0x100 /* 8004F14C 0004ADAC 4B FB 4F B9 */ bl memset /* 8004F150 0004ADB0 7F E3 FB 78 */ mr r3, r31 /* 8004F154 0004ADB4 38 80 00 00 */ li r4, 0 /* 8004F158 0004ADB8 38 A0 01 00 */ li r5, 0x100 /* 8004F15C 0004ADBC 4B FB 4F A9 */ bl memset /* 8004F160 0004ADC0 C0 02 84 60 */ lfs f0, lbl_80640A60-_SDA2_BASE_(r2) /* 8004F164 0004ADC4 3C A0 11 9C */ lis r5, 0x119C0C00@ha /* 8004F168 0004ADC8 7F E3 FB 78 */ mr r3, r31 /* 8004F16C 0004ADCC 38 80 00 0C */ li r4, 0xc /* 8004F170 0004ADD0 D0 1F 01 80 */ stfs f0, 0x180(r31) /* 8004F174 0004ADD4 38 A5 0C 00 */ addi r5, r5, 0x119C0C00@l /* 8004F178 0004ADD8 48 00 00 19 */ bl func_8004F190 /* 8004F17C 0004ADDC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004F180 0004ADE0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004F184 0004ADE4 7C 08 03 A6 */ mtlr r0 /* 8004F188 0004ADE8 38 21 00 10 */ addi r1, r1, 0x10 /* 8004F18C 0004ADEC 4E 80 00 20 */ blr .global func_8004F190 func_8004F190: /* 8004F190 0004ADF0 38 00 00 10 */ li r0, 0x10 /* 8004F194 0004ADF4 7C 66 1B 78 */ mr r6, r3 /* 8004F198 0004ADF8 38 E0 00 00 */ li r7, 0 /* 8004F19C 0004ADFC 7C 09 03 A6 */ mtctr r0 lbl_8004F1A0: /* 8004F1A0 0004AE00 80 06 01 00 */ lwz r0, 0x100(r6) /* 8004F1A4 0004AE04 2C 00 00 00 */ cmpwi r0, 0 /* 8004F1A8 0004AE08 40 82 00 1C */ bne lbl_8004F1C4 /* 8004F1AC 0004AE0C 54 E0 18 38 */ slwi r0, r7, 3 /* 8004F1B0 0004AE10 7C C3 02 14 */ add r6, r3, r0 /* 8004F1B4 0004AE14 38 67 00 01 */ addi r3, r7, 1 /* 8004F1B8 0004AE18 90 86 01 00 */ stw r4, 0x100(r6) /* 8004F1BC 0004AE1C 90 A6 01 04 */ stw r5, 0x104(r6) /* 8004F1C0 0004AE20 4E 80 00 20 */ blr lbl_8004F1C4: /* 8004F1C4 0004AE24 38 C6 00 08 */ addi r6, r6, 8 /* 8004F1C8 0004AE28 38 E7 00 01 */ addi r7, r7, 1 /* 8004F1CC 0004AE2C 42 00 FF D4 */ bdnz lbl_8004F1A0 /* 8004F1D0 0004AE30 38 60 00 00 */ li r3, 0 /* 8004F1D4 0004AE34 4E 80 00 20 */ blr .global func_8004F1D8 func_8004F1D8: /* 8004F1D8 0004AE38 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004F1DC 0004AE3C 7C 08 02 A6 */ mflr r0 /* 8004F1E0 0004AE40 90 01 00 24 */ stw r0, 0x24(r1) /* 8004F1E4 0004AE44 39 61 00 20 */ addi r11, r1, 0x20 /* 8004F1E8 0004AE48 48 17 7F 3D */ bl _savegpr_26 /* 8004F1EC 0004AE4C 2C 04 00 00 */ cmpwi r4, 0 /* 8004F1F0 0004AE50 7C 7A 1B 78 */ mr r26, r3 /* 8004F1F4 0004AE54 7C BB 2B 78 */ mr r27, r5 /* 8004F1F8 0004AE58 7C DC 33 78 */ mr r28, r6 /* 8004F1FC 0004AE5C 41 82 00 14 */ beq lbl_8004F210 /* 8004F200 0004AE60 28 04 00 0F */ cmplwi r4, 0xf /* 8004F204 0004AE64 41 80 00 0C */ blt lbl_8004F210 /* 8004F208 0004AE68 38 60 00 00 */ li r3, 0 /* 8004F20C 0004AE6C 48 00 00 80 */ b lbl_8004F28C lbl_8004F210: /* 8004F210 0004AE70 38 04 FF FF */ addi r0, r4, -1 /* 8004F214 0004AE74 54 00 18 38 */ slwi r0, r0, 3 /* 8004F218 0004AE78 7F E3 02 14 */ add r31, r3, r0 /* 8004F21C 0004AE7C 80 7F 01 00 */ lwz r3, 0x100(r31) /* 8004F220 0004AE80 80 9F 01 04 */ lwz r4, 0x104(r31) /* 8004F224 0004AE84 48 18 C2 99 */ bl func_801DB4BC /* 8004F228 0004AE88 2C 03 00 00 */ cmpwi r3, 0 /* 8004F22C 0004AE8C 40 82 00 0C */ bne lbl_8004F238 /* 8004F230 0004AE90 38 60 00 00 */ li r3, 0 /* 8004F234 0004AE94 48 00 00 58 */ b lbl_8004F28C lbl_8004F238: /* 8004F238 0004AE98 7F 5E D3 78 */ mr r30, r26 /* 8004F23C 0004AE9C 3B A0 00 00 */ li r29, 0 lbl_8004F240: /* 8004F240 0004AEA0 7F C3 F3 78 */ mr r3, r30 /* 8004F244 0004AEA4 4B FF FC 25 */ bl func_8004EE68 /* 8004F248 0004AEA8 2C 03 00 00 */ cmpwi r3, 0 /* 8004F24C 0004AEAC 40 82 00 2C */ bne lbl_8004F278 /* 8004F250 0004AEB0 57 A0 18 38 */ slwi r0, r29, 3 /* 8004F254 0004AEB4 80 9F 01 00 */ lwz r4, 0x100(r31) /* 8004F258 0004AEB8 80 BF 01 04 */ lwz r5, 0x104(r31) /* 8004F25C 0004AEBC 7F 66 DB 78 */ mr r6, r27 /* 8004F260 0004AEC0 C0 3A 01 80 */ lfs f1, 0x180(r26) /* 8004F264 0004AEC4 7F 87 E3 78 */ mr r7, r28 /* 8004F268 0004AEC8 7C 7A 02 14 */ add r3, r26, r0 /* 8004F26C 0004AECC 4B FF FC 05 */ bl func_8004EE70 /* 8004F270 0004AED0 38 7D 00 01 */ addi r3, r29, 1 /* 8004F274 0004AED4 48 00 00 18 */ b lbl_8004F28C lbl_8004F278: /* 8004F278 0004AED8 3B BD 00 01 */ addi r29, r29, 1 /* 8004F27C 0004AEDC 3B DE 00 08 */ addi r30, r30, 8 /* 8004F280 0004AEE0 28 1D 00 20 */ cmplwi r29, 0x20 /* 8004F284 0004AEE4 41 80 FF BC */ blt lbl_8004F240 /* 8004F288 0004AEE8 38 60 00 00 */ li r3, 0 lbl_8004F28C: /* 8004F28C 0004AEEC 39 61 00 20 */ addi r11, r1, 0x20 /* 8004F290 0004AEF0 48 17 7E E1 */ bl _restgpr_26 /* 8004F294 0004AEF4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004F298 0004AEF8 7C 08 03 A6 */ mtlr r0 /* 8004F29C 0004AEFC 38 21 00 20 */ addi r1, r1, 0x20 /* 8004F2A0 0004AF00 4E 80 00 20 */ blr .global func_8004F2A4 func_8004F2A4: /* 8004F2A4 0004AF04 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8004F2A8 0004AF08 7C 08 02 A6 */ mflr r0 /* 8004F2AC 0004AF0C 90 01 00 24 */ stw r0, 0x24(r1) /* 8004F2B0 0004AF10 DB E1 00 18 */ stfd f31, 0x18(r1) /* 8004F2B4 0004AF14 FF E0 08 90 */ fmr f31, f1 /* 8004F2B8 0004AF18 93 E1 00 14 */ stw r31, 0x14(r1) /* 8004F2BC 0004AF1C 7C 7F 1B 78 */ mr r31, r3 /* 8004F2C0 0004AF20 93 C1 00 10 */ stw r30, 0x10(r1) /* 8004F2C4 0004AF24 3B C0 00 00 */ li r30, 0 lbl_8004F2C8: /* 8004F2C8 0004AF28 FC 20 F8 90 */ fmr f1, f31 /* 8004F2CC 0004AF2C 7F E3 FB 78 */ mr r3, r31 /* 8004F2D0 0004AF30 4B FF FD 15 */ bl func_8004EFE4 /* 8004F2D4 0004AF34 3B DE 00 01 */ addi r30, r30, 1 /* 8004F2D8 0004AF38 3B FF 00 08 */ addi r31, r31, 8 /* 8004F2DC 0004AF3C 28 1E 00 20 */ cmplwi r30, 0x20 /* 8004F2E0 0004AF40 41 80 FF E8 */ blt lbl_8004F2C8 /* 8004F2E4 0004AF44 80 01 00 24 */ lwz r0, 0x24(r1) /* 8004F2E8 0004AF48 CB E1 00 18 */ lfd f31, 0x18(r1) /* 8004F2EC 0004AF4C 83 E1 00 14 */ lwz r31, 0x14(r1) /* 8004F2F0 0004AF50 83 C1 00 10 */ lwz r30, 0x10(r1) /* 8004F2F4 0004AF54 7C 08 03 A6 */ mtlr r0 /* 8004F2F8 0004AF58 38 21 00 20 */ addi r1, r1, 0x20 /* 8004F2FC 0004AF5C 4E 80 00 20 */ blr .global func_8004F300 func_8004F300: /* 8004F300 0004AF60 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8004F304 0004AF64 7C 08 02 A6 */ mflr r0 /* 8004F308 0004AF68 90 01 00 14 */ stw r0, 0x14(r1) /* 8004F30C 0004AF6C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8004F310 0004AF70 7C 7F 1B 78 */ mr r31, r3 /* 8004F314 0004AF74 93 C1 00 08 */ stw r30, 8(r1) /* 8004F318 0004AF78 3B C0 00 00 */ li r30, 0 lbl_8004F31C: /* 8004F31C 0004AF7C 7F E3 FB 78 */ mr r3, r31 /* 8004F320 0004AF80 4B FF FB 49 */ bl func_8004EE68 /* 8004F324 0004AF84 2C 03 00 00 */ cmpwi r3, 0 /* 8004F328 0004AF88 41 82 00 0C */ beq lbl_8004F334 /* 8004F32C 0004AF8C 7F E3 FB 78 */ mr r3, r31 /* 8004F330 0004AF90 4B FF FA 81 */ bl func_8004EDB0 lbl_8004F334: /* 8004F334 0004AF94 3B DE 00 01 */ addi r30, r30, 1 /* 8004F338 0004AF98 3B FF 00 08 */ addi r31, r31, 8 /* 8004F33C 0004AF9C 28 1E 00 20 */ cmplwi r30, 0x20 /* 8004F340 0004AFA0 41 80 FF DC */ blt lbl_8004F31C /* 8004F344 0004AFA4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8004F348 0004AFA8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8004F34C 0004AFAC 83 C1 00 08 */ lwz r30, 8(r1) /* 8004F350 0004AFB0 7C 08 03 A6 */ mtlr r0 /* 8004F354 0004AFB4 38 21 00 10 */ addi r1, r1, 0x10 /* 8004F358 0004AFB8 4E 80 00 20 */ blr .global func_8004F35C func_8004F35C: /* 8004F35C 0004AFBC 38 A0 00 01 */ li r5, 1 /* 8004F360 0004AFC0 38 6D 98 40 */ addi r3, r13, lbl_8063EB00-_SDA_BASE_ /* 8004F364 0004AFC4 38 80 00 04 */ li r4, 4 /* 8004F368 0004AFC8 38 00 00 00 */ li r0, 0 /* 8004F36C 0004AFCC 98 AD 98 40 */ stb r5, lbl_8063EB00-_SDA_BASE_(r13) /* 8004F370 0004AFD0 B0 83 00 02 */ sth r4, 2(r3) /* 8004F374 0004AFD4 98 03 00 04 */ stb r0, 4(r3) /* 8004F378 0004AFD8 4E 80 00 20 */ blr