.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global cPlayer_ClearSwapControllerTimer cPlayer_ClearSwapControllerTimer: /* 8003E854 0003A4B4 38 00 00 00 */ li r0, 0 /* 8003E858 0003A4B8 90 03 00 08 */ stw r0, 8(r3) /* 8003E85C 0003A4BC 90 03 00 D4 */ stw r0, 0xd4(r3) /* 8003E860 0003A4C0 90 03 00 00 */ stw r0, 0(r3) /* 8003E864 0003A4C4 90 03 00 04 */ stw r0, 4(r3) /* 8003E868 0003A4C8 4E 80 00 20 */ blr .global func_8003E86C func_8003E86C: /* 8003E86C 0003A4CC 80 C3 00 00 */ lwz r6, 0(r3) /* 8003E870 0003A4D0 28 06 00 32 */ cmplwi r6, 0x32 /* 8003E874 0003A4D4 4C 80 00 20 */ bgelr /* 8003E878 0003A4D8 54 C0 10 3A */ slwi r0, r6, 2 /* 8003E87C 0003A4DC 38 E6 00 01 */ addi r7, r6, 1 /* 8003E880 0003A4E0 7C C3 02 14 */ add r6, r3, r0 /* 8003E884 0003A4E4 2C 05 00 00 */ cmpwi r5, 0 /* 8003E888 0003A4E8 90 86 00 08 */ stw r4, 8(r6) /* 8003E88C 0003A4EC 54 E0 10 3A */ slwi r0, r7, 2 /* 8003E890 0003A4F0 7C A3 02 14 */ add r5, r3, r0 /* 8003E894 0003A4F4 90 E3 00 00 */ stw r7, 0(r3) /* 8003E898 0003A4F8 38 00 00 00 */ li r0, 0 /* 8003E89C 0003A4FC 90 05 00 08 */ stw r0, 8(r5) /* 8003E8A0 0003A500 4D 82 00 20 */ beqlr /* 8003E8A4 0003A504 80 03 00 04 */ lwz r0, 4(r3) /* 8003E8A8 0003A508 7C 65 1B 78 */ mr r5, r3 /* 8003E8AC 0003A50C 7C 09 03 A6 */ mtctr r0 /* 8003E8B0 0003A510 28 00 00 00 */ cmplwi r0, 0 /* 8003E8B4 0003A514 40 81 00 18 */ ble lbl_8003E8CC lbl_8003E8B8: /* 8003E8B8 0003A518 80 05 00 D4 */ lwz r0, 0xd4(r5) /* 8003E8BC 0003A51C 7C 04 00 40 */ cmplw r4, r0 /* 8003E8C0 0003A520 4D 82 00 20 */ beqlr /* 8003E8C4 0003A524 38 A5 00 04 */ addi r5, r5, 4 /* 8003E8C8 0003A528 42 00 FF F0 */ bdnz lbl_8003E8B8 lbl_8003E8CC: /* 8003E8CC 0003A52C 80 C3 00 04 */ lwz r6, 4(r3) /* 8003E8D0 0003A530 38 A0 00 00 */ li r5, 0 /* 8003E8D4 0003A534 54 C0 10 3A */ slwi r0, r6, 2 /* 8003E8D8 0003A538 38 E6 00 01 */ addi r7, r6, 1 /* 8003E8DC 0003A53C 7C C3 02 14 */ add r6, r3, r0 /* 8003E8E0 0003A540 90 86 00 D4 */ stw r4, 0xd4(r6) /* 8003E8E4 0003A544 54 E0 10 3A */ slwi r0, r7, 2 /* 8003E8E8 0003A548 7C 83 02 14 */ add r4, r3, r0 /* 8003E8EC 0003A54C 90 E3 00 04 */ stw r7, 4(r3) /* 8003E8F0 0003A550 90 A4 00 D4 */ stw r5, 0xd4(r4) /* 8003E8F4 0003A554 4E 80 00 20 */ blr .global func_8003E8F8 func_8003E8F8: /* 8003E8F8 0003A558 80 63 00 04 */ lwz r3, 4(r3) /* 8003E8FC 0003A55C 4E 80 00 20 */ blr .global func_8003E900 func_8003E900: /* 8003E900 0003A560 38 63 00 D4 */ addi r3, r3, 0xd4 /* 8003E904 0003A564 4E 80 00 20 */ blr .global func_8003E908 func_8003E908: /* 8003E908 0003A568 38 63 00 08 */ addi r3, r3, 8 /* 8003E90C 0003A56C 4E 80 00 20 */ blr .global func_8003E910 func_8003E910: /* 8003E910 0003A570 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8003E914 0003A574 7C 08 02 A6 */ mflr r0 /* 8003E918 0003A578 90 01 00 14 */ stw r0, 0x14(r1) /* 8003E91C 0003A57C 38 00 00 00 */ li r0, 0 /* 8003E920 0003A580 93 E1 00 0C */ stw r31, 0xc(r1) /* 8003E924 0003A584 7C 7F 1B 78 */ mr r31, r3 /* 8003E928 0003A588 90 03 00 04 */ stw r0, 4(r3) /* 8003E92C 0003A58C 98 03 00 01 */ stb r0, 1(r3) /* 8003E930 0003A590 48 00 00 71 */ bl func_8003E9A0 /* 8003E934 0003A594 7F E3 FB 78 */ mr r3, r31 /* 8003E938 0003A598 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8003E93C 0003A59C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8003E940 0003A5A0 7C 08 03 A6 */ mtlr r0 /* 8003E944 0003A5A4 38 21 00 10 */ addi r1, r1, 0x10 /* 8003E948 0003A5A8 4E 80 00 20 */ blr .global func_8003E94C func_8003E94C: /* 8003E94C 0003A5AC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8003E950 0003A5B0 7C 08 02 A6 */ mflr r0 /* 8003E954 0003A5B4 2C 03 00 00 */ cmpwi r3, 0 /* 8003E958 0003A5B8 90 01 00 14 */ stw r0, 0x14(r1) /* 8003E95C 0003A5BC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8003E960 0003A5C0 7C 9F 23 78 */ mr r31, r4 /* 8003E964 0003A5C4 93 C1 00 08 */ stw r30, 8(r1) /* 8003E968 0003A5C8 7C 7E 1B 78 */ mr r30, r3 /* 8003E96C 0003A5CC 41 82 00 18 */ beq lbl_8003E984 /* 8003E970 0003A5D0 48 00 01 41 */ bl func_8003EAB0 /* 8003E974 0003A5D4 2C 1F 00 00 */ cmpwi r31, 0 /* 8003E978 0003A5D8 40 81 00 0C */ ble lbl_8003E984 /* 8003E97C 0003A5DC 7F C3 F3 78 */ mr r3, r30 /* 8003E980 0003A5E0 48 19 C1 39 */ bl __dl__FPv lbl_8003E984: /* 8003E984 0003A5E4 7F C3 F3 78 */ mr r3, r30 /* 8003E988 0003A5E8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8003E98C 0003A5EC 83 C1 00 08 */ lwz r30, 8(r1) /* 8003E990 0003A5F0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8003E994 0003A5F4 7C 08 03 A6 */ mtlr r0 /* 8003E998 0003A5F8 38 21 00 10 */ addi r1, r1, 0x10 /* 8003E99C 0003A5FC 4E 80 00 20 */ blr .global func_8003E9A0 func_8003E9A0: /* 8003E9A0 0003A600 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8003E9A4 0003A604 7C 08 02 A6 */ mflr r0 /* 8003E9A8 0003A608 38 80 00 00 */ li r4, 0 /* 8003E9AC 0003A60C 38 A0 00 0C */ li r5, 0xc /* 8003E9B0 0003A610 90 01 00 14 */ stw r0, 0x14(r1) /* 8003E9B4 0003A614 93 E1 00 0C */ stw r31, 0xc(r1) /* 8003E9B8 0003A618 3B E0 00 00 */ li r31, 0 /* 8003E9BC 0003A61C 93 C1 00 08 */ stw r30, 8(r1) /* 8003E9C0 0003A620 7C 7E 1B 78 */ mr r30, r3 /* 8003E9C4 0003A624 93 E3 00 04 */ stw r31, 4(r3) /* 8003E9C8 0003A628 93 E3 00 08 */ stw r31, 8(r3) /* 8003E9CC 0003A62C 38 63 00 0C */ addi r3, r3, 0xc /* 8003E9D0 0003A630 4B FC 57 35 */ bl memset /* 8003E9D4 0003A634 38 00 00 0A */ li r0, 0xa /* 8003E9D8 0003A638 38 9E 00 18 */ addi r4, r30, 0x18 /* 8003E9DC 0003A63C 38 60 00 FF */ li r3, 0xff /* 8003E9E0 0003A640 7C 09 03 A6 */ mtctr r0 lbl_8003E9E4: /* 8003E9E4 0003A644 9B E4 00 00 */ stb r31, 0(r4) /* 8003E9E8 0003A648 98 64 00 01 */ stb r3, 1(r4) /* 8003E9EC 0003A64C 93 E4 00 04 */ stw r31, 4(r4) /* 8003E9F0 0003A650 93 E4 00 20 */ stw r31, 0x20(r4) /* 8003E9F4 0003A654 93 E4 00 24 */ stw r31, 0x24(r4) /* 8003E9F8 0003A658 93 E4 00 28 */ stw r31, 0x28(r4) /* 8003E9FC 0003A65C 93 E4 00 0C */ stw r31, 0xc(r4) /* 8003EA00 0003A660 93 E4 00 18 */ stw r31, 0x18(r4) /* 8003EA04 0003A664 93 E4 00 10 */ stw r31, 0x10(r4) /* 8003EA08 0003A668 93 E4 00 1C */ stw r31, 0x1c(r4) /* 8003EA0C 0003A66C 9B E4 00 14 */ stb r31, 0x14(r4) /* 8003EA10 0003A670 93 E4 00 40 */ stw r31, 0x40(r4) /* 8003EA14 0003A674 93 E4 00 44 */ stw r31, 0x44(r4) /* 8003EA18 0003A678 93 E4 00 48 */ stw r31, 0x48(r4) /* 8003EA1C 0003A67C 93 E4 00 2C */ stw r31, 0x2c(r4) /* 8003EA20 0003A680 93 E4 00 38 */ stw r31, 0x38(r4) /* 8003EA24 0003A684 93 E4 00 30 */ stw r31, 0x30(r4) /* 8003EA28 0003A688 93 E4 00 3C */ stw r31, 0x3c(r4) /* 8003EA2C 0003A68C 9B E4 00 34 */ stb r31, 0x34(r4) /* 8003EA30 0003A690 93 E4 00 60 */ stw r31, 0x60(r4) /* 8003EA34 0003A694 93 E4 00 64 */ stw r31, 0x64(r4) /* 8003EA38 0003A698 93 E4 00 68 */ stw r31, 0x68(r4) /* 8003EA3C 0003A69C 93 E4 00 4C */ stw r31, 0x4c(r4) /* 8003EA40 0003A6A0 93 E4 00 58 */ stw r31, 0x58(r4) /* 8003EA44 0003A6A4 93 E4 00 50 */ stw r31, 0x50(r4) /* 8003EA48 0003A6A8 93 E4 00 5C */ stw r31, 0x5c(r4) /* 8003EA4C 0003A6AC 9B E4 00 54 */ stb r31, 0x54(r4) /* 8003EA50 0003A6B0 93 E4 00 80 */ stw r31, 0x80(r4) /* 8003EA54 0003A6B4 93 E4 00 84 */ stw r31, 0x84(r4) /* 8003EA58 0003A6B8 93 E4 00 88 */ stw r31, 0x88(r4) /* 8003EA5C 0003A6BC 93 E4 00 6C */ stw r31, 0x6c(r4) /* 8003EA60 0003A6C0 93 E4 00 78 */ stw r31, 0x78(r4) /* 8003EA64 0003A6C4 93 E4 00 70 */ stw r31, 0x70(r4) /* 8003EA68 0003A6C8 93 E4 00 7C */ stw r31, 0x7c(r4) /* 8003EA6C 0003A6CC 9B E4 00 74 */ stb r31, 0x74(r4) /* 8003EA70 0003A6D0 93 E4 00 A0 */ stw r31, 0xa0(r4) /* 8003EA74 0003A6D4 93 E4 00 A4 */ stw r31, 0xa4(r4) /* 8003EA78 0003A6D8 93 E4 00 A8 */ stw r31, 0xa8(r4) /* 8003EA7C 0003A6DC 93 E4 00 8C */ stw r31, 0x8c(r4) /* 8003EA80 0003A6E0 93 E4 00 98 */ stw r31, 0x98(r4) /* 8003EA84 0003A6E4 93 E4 00 90 */ stw r31, 0x90(r4) /* 8003EA88 0003A6E8 93 E4 00 9C */ stw r31, 0x9c(r4) /* 8003EA8C 0003A6EC 9B E4 00 94 */ stb r31, 0x94(r4) /* 8003EA90 0003A6F0 38 84 00 AC */ addi r4, r4, 0xac /* 8003EA94 0003A6F4 42 00 FF 50 */ bdnz lbl_8003E9E4 /* 8003EA98 0003A6F8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8003EA9C 0003A6FC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8003EAA0 0003A700 83 C1 00 08 */ lwz r30, 8(r1) /* 8003EAA4 0003A704 7C 08 03 A6 */ mtlr r0 /* 8003EAA8 0003A708 38 21 00 10 */ addi r1, r1, 0x10 /* 8003EAAC 0003A70C 4E 80 00 20 */ blr .global func_8003EAB0 func_8003EAB0: /* 8003EAB0 0003A710 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8003EAB4 0003A714 7C 08 02 A6 */ mflr r0 /* 8003EAB8 0003A718 90 01 00 34 */ stw r0, 0x34(r1) /* 8003EABC 0003A71C 39 61 00 30 */ addi r11, r1, 0x30 /* 8003EAC0 0003A720 48 18 86 61 */ bl _savegpr_25 /* 8003EAC4 0003A724 3B C0 00 00 */ li r30, 0 /* 8003EAC8 0003A728 7C 79 1B 78 */ mr r25, r3 /* 8003EACC 0003A72C 93 C3 00 08 */ stw r30, 8(r3) /* 8003EAD0 0003A730 3B A3 00 18 */ addi r29, r3, 0x18 /* 8003EAD4 0003A734 3B 60 00 00 */ li r27, 0 /* 8003EAD8 0003A738 3B E0 00 FF */ li r31, 0xff lbl_8003EADC: /* 8003EADC 0003A73C 9B DD 00 00 */ stb r30, 0(r29) /* 8003EAE0 0003A740 3B 9D 00 0C */ addi r28, r29, 0xc /* 8003EAE4 0003A744 3B 40 00 00 */ li r26, 0 /* 8003EAE8 0003A748 9B FD 00 01 */ stb r31, 1(r29) lbl_8003EAEC: /* 8003EAEC 0003A74C 80 7C 00 14 */ lwz r3, 0x14(r28) /* 8003EAF0 0003A750 2C 03 00 00 */ cmpwi r3, 0 /* 8003EAF4 0003A754 41 82 00 10 */ beq lbl_8003EB04 /* 8003EAF8 0003A758 38 80 00 01 */ li r4, 1 /* 8003EAFC 0003A75C 48 1B 5F F5 */ bl func_801F4AF0 /* 8003EB00 0003A760 93 DC 00 14 */ stw r30, 0x14(r28) lbl_8003EB04: /* 8003EB04 0003A764 80 7C 00 18 */ lwz r3, 0x18(r28) /* 8003EB08 0003A768 2C 83 00 00 */ cmpwi cr1, r3, 0 /* 8003EB0C 0003A76C 41 86 00 28 */ beq cr1, lbl_8003EB34 /* 8003EB10 0003A770 80 1C 00 00 */ lwz r0, 0(r28) /* 8003EB14 0003A774 28 00 00 64 */ cmplwi r0, 0x64 /* 8003EB18 0003A778 41 82 00 1C */ beq lbl_8003EB34 /* 8003EB1C 0003A77C 41 86 00 18 */ beq cr1, lbl_8003EB34 /* 8003EB20 0003A780 81 83 00 34 */ lwz r12, 0x34(r3) /* 8003EB24 0003A784 38 80 00 01 */ li r4, 1 /* 8003EB28 0003A788 81 8C 00 08 */ lwz r12, 8(r12) /* 8003EB2C 0003A78C 7D 89 03 A6 */ mtctr r12 /* 8003EB30 0003A790 4E 80 04 21 */ bctrl lbl_8003EB34: /* 8003EB34 0003A794 93 DC 00 18 */ stw r30, 0x18(r28) /* 8003EB38 0003A798 80 9C 00 00 */ lwz r4, 0(r28) /* 8003EB3C 0003A79C 2C 04 00 00 */ cmpwi r4, 0 /* 8003EB40 0003A7A0 41 82 00 18 */ beq lbl_8003EB58 /* 8003EB44 0003A7A4 28 04 00 64 */ cmplwi r4, 0x64 /* 8003EB48 0003A7A8 41 82 00 10 */ beq lbl_8003EB58 /* 8003EB4C 0003A7AC 80 7D 00 04 */ lwz r3, 4(r29) /* 8003EB50 0003A7B0 48 19 C9 F9 */ bl func_801DB548 /* 8003EB54 0003A7B4 93 DC 00 00 */ stw r30, 0(r28) lbl_8003EB58: /* 8003EB58 0003A7B8 80 9C 00 04 */ lwz r4, 4(r28) /* 8003EB5C 0003A7BC 2C 04 00 00 */ cmpwi r4, 0 /* 8003EB60 0003A7C0 41 82 00 10 */ beq lbl_8003EB70 /* 8003EB64 0003A7C4 80 7D 00 04 */ lwz r3, 4(r29) /* 8003EB68 0003A7C8 48 19 C9 E1 */ bl func_801DB548 /* 8003EB6C 0003A7CC 93 DC 00 04 */ stw r30, 4(r28) lbl_8003EB70: /* 8003EB70 0003A7D0 3B 5A 00 01 */ addi r26, r26, 1 /* 8003EB74 0003A7D4 3B 9C 00 20 */ addi r28, r28, 0x20 /* 8003EB78 0003A7D8 2C 1A 00 05 */ cmpwi r26, 5 /* 8003EB7C 0003A7DC 41 80 FF 70 */ blt lbl_8003EAEC /* 8003EB80 0003A7E0 3B 7B 00 01 */ addi r27, r27, 1 /* 8003EB84 0003A7E4 3B BD 00 AC */ addi r29, r29, 0xac /* 8003EB88 0003A7E8 2C 1B 00 0A */ cmpwi r27, 0xa /* 8003EB8C 0003A7EC 41 80 FF 50 */ blt lbl_8003EADC /* 8003EB90 0003A7F0 80 99 00 14 */ lwz r4, 0x14(r25) /* 8003EB94 0003A7F4 2C 04 00 00 */ cmpwi r4, 0 /* 8003EB98 0003A7F8 41 82 00 0C */ beq lbl_8003EBA4 /* 8003EB9C 0003A7FC 80 79 00 10 */ lwz r3, 0x10(r25) /* 8003EBA0 0003A800 48 19 C9 A9 */ bl func_801DB548 lbl_8003EBA4: /* 8003EBA4 0003A804 38 79 00 0C */ addi r3, r25, 0xc /* 8003EBA8 0003A808 38 80 00 00 */ li r4, 0 /* 8003EBAC 0003A80C 38 A0 00 0C */ li r5, 0xc /* 8003EBB0 0003A810 4B FC 55 55 */ bl memset /* 8003EBB4 0003A814 39 61 00 30 */ addi r11, r1, 0x30 /* 8003EBB8 0003A818 48 18 85 B5 */ bl _restgpr_25 /* 8003EBBC 0003A81C 80 01 00 34 */ lwz r0, 0x34(r1) /* 8003EBC0 0003A820 7C 08 03 A6 */ mtlr r0 /* 8003EBC4 0003A824 38 21 00 30 */ addi r1, r1, 0x30 /* 8003EBC8 0003A828 4E 80 00 20 */ blr .global func_8003EBCC func_8003EBCC: /* 8003EBCC 0003A82C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8003EBD0 0003A830 7C 08 02 A6 */ mflr r0 /* 8003EBD4 0003A834 90 01 00 24 */ stw r0, 0x24(r1) /* 8003EBD8 0003A838 39 61 00 20 */ addi r11, r1, 0x20 /* 8003EBDC 0003A83C 48 18 85 49 */ bl _savegpr_26 /* 8003EBE0 0003A840 2C 04 00 00 */ cmpwi r4, 0 /* 8003EBE4 0003A844 8B A3 00 01 */ lbz r29, 1(r3) /* 8003EBE8 0003A848 7C 7A 1B 78 */ mr r26, r3 /* 8003EBEC 0003A84C 7C 9B 23 78 */ mr r27, r4 /* 8003EBF0 0003A850 41 82 00 10 */ beq lbl_8003EC00 /* 8003EBF4 0003A854 88 03 00 03 */ lbz r0, 3(r3) /* 8003EBF8 0003A858 7C 00 07 75 */ extsb. r0, r0 /* 8003EBFC 0003A85C 40 82 00 0C */ bne lbl_8003EC08 lbl_8003EC00: /* 8003EC00 0003A860 38 60 00 00 */ li r3, 0 /* 8003EC04 0003A864 48 00 00 88 */ b lbl_8003EC8C lbl_8003EC08: /* 8003EC08 0003A868 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8003EC0C 0003A86C 3B C3 CE 34 */ addi r30, r3, lbl_8063CE34@l /* 8003EC10 0003A870 38 7E 00 80 */ addi r3, r30, 0x80 /* 8003EC14 0003A874 48 35 B3 01 */ bl func_80399F14 /* 8003EC18 0003A878 7C 7F 1B 78 */ mr r31, r3 /* 8003EC1C 0003A87C 3B 80 00 00 */ li r28, 0 /* 8003EC20 0003A880 48 00 00 60 */ b lbl_8003EC80 lbl_8003EC24: /* 8003EC24 0003A884 7F 84 E3 78 */ mr r4, r28 /* 8003EC28 0003A888 7F A5 EB 78 */ mr r5, r29 /* 8003EC2C 0003A88C 38 7E 00 80 */ addi r3, r30, 0x80 /* 8003EC30 0003A890 48 35 B3 35 */ bl func_80399F64 /* 8003EC34 0003A894 7C 1B 18 40 */ cmplw r27, r3 /* 8003EC38 0003A898 40 82 00 44 */ bne lbl_8003EC7C /* 8003EC3C 0003A89C 88 1A 00 03 */ lbz r0, 3(r26) /* 8003EC40 0003A8A0 7C 00 07 74 */ extsb r0, r0 /* 8003EC44 0003A8A4 2C 00 00 01 */ cmpwi r0, 1 /* 8003EC48 0003A8A8 40 82 00 18 */ bne lbl_8003EC60 /* 8003EC4C 0003A8AC 7F 84 E3 78 */ mr r4, r28 /* 8003EC50 0003A8B0 7F A5 EB 78 */ mr r5, r29 /* 8003EC54 0003A8B4 38 7E 00 80 */ addi r3, r30, 0x80 /* 8003EC58 0003A8B8 48 35 B3 61 */ bl func_80399FB8 /* 8003EC5C 0003A8BC 48 00 00 30 */ b lbl_8003EC8C lbl_8003EC60: /* 8003EC60 0003A8C0 2C 00 00 02 */ cmpwi r0, 2 /* 8003EC64 0003A8C4 40 82 00 18 */ bne lbl_8003EC7C /* 8003EC68 0003A8C8 7F 84 E3 78 */ mr r4, r28 /* 8003EC6C 0003A8CC 7F A5 EB 78 */ mr r5, r29 /* 8003EC70 0003A8D0 38 7E 00 80 */ addi r3, r30, 0x80 /* 8003EC74 0003A8D4 48 35 B3 9D */ bl func_8039A010 /* 8003EC78 0003A8D8 48 00 00 14 */ b lbl_8003EC8C lbl_8003EC7C: /* 8003EC7C 0003A8DC 3B 9C 00 01 */ addi r28, r28, 1 lbl_8003EC80: /* 8003EC80 0003A8E0 7C 1C F8 00 */ cmpw r28, r31 /* 8003EC84 0003A8E4 41 80 FF A0 */ blt lbl_8003EC24 /* 8003EC88 0003A8E8 38 60 00 00 */ li r3, 0 lbl_8003EC8C: /* 8003EC8C 0003A8EC 39 61 00 20 */ addi r11, r1, 0x20 /* 8003EC90 0003A8F0 48 18 84 E1 */ bl _restgpr_26 /* 8003EC94 0003A8F4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8003EC98 0003A8F8 7C 08 03 A6 */ mtlr r0 /* 8003EC9C 0003A8FC 38 21 00 20 */ addi r1, r1, 0x20 /* 8003ECA0 0003A900 4E 80 00 20 */ blr .global func_8003ECA4 func_8003ECA4: /* 8003ECA4 0003A904 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8003ECA8 0003A908 7C 08 02 A6 */ mflr r0 /* 8003ECAC 0003A90C 90 01 00 34 */ stw r0, 0x34(r1) /* 8003ECB0 0003A910 39 61 00 30 */ addi r11, r1, 0x30 /* 8003ECB4 0003A914 48 18 84 61 */ bl _savegpr_22 /* 8003ECB8 0003A918 88 03 00 03 */ lbz r0, 3(r3) /* 8003ECBC 0003A91C 7C 76 1B 78 */ mr r22, r3 /* 8003ECC0 0003A920 8B 83 00 01 */ lbz r28, 1(r3) /* 8003ECC4 0003A924 7C 97 23 78 */ mr r23, r4 /* 8003ECC8 0003A928 7C 00 07 75 */ extsb. r0, r0 /* 8003ECCC 0003A92C 7C B8 2B 78 */ mr r24, r5 /* 8003ECD0 0003A930 7C D9 33 78 */ mr r25, r6 /* 8003ECD4 0003A934 40 82 00 0C */ bne lbl_8003ECE0 /* 8003ECD8 0003A938 38 60 00 00 */ li r3, 0 /* 8003ECDC 0003A93C 48 00 00 F8 */ b lbl_8003EDD4 lbl_8003ECE0: /* 8003ECE0 0003A940 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8003ECE4 0003A944 3B A3 CE 34 */ addi r29, r3, lbl_8063CE34@l /* 8003ECE8 0003A948 38 7D 00 80 */ addi r3, r29, 0x80 /* 8003ECEC 0003A94C 48 35 B2 29 */ bl func_80399F14 /* 8003ECF0 0003A950 7C 7E 1B 78 */ mr r30, r3 /* 8003ECF4 0003A954 38 76 00 0C */ addi r3, r22, 0xc /* 8003ECF8 0003A958 38 80 00 00 */ li r4, 0 /* 8003ECFC 0003A95C 38 A0 00 0C */ li r5, 0xc /* 8003ED00 0003A960 4B FC 54 05 */ bl memset /* 8003ED04 0003A964 3B 40 00 00 */ li r26, 0 /* 8003ED08 0003A968 48 00 00 C0 */ b lbl_8003EDC8 lbl_8003ED0C: /* 8003ED0C 0003A96C 7F 44 D3 78 */ mr r4, r26 /* 8003ED10 0003A970 38 7D 00 80 */ addi r3, r29, 0x80 /* 8003ED14 0003A974 48 35 B2 1D */ bl func_80399F30 /* 8003ED18 0003A978 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003ED1C 0003A97C 7C 17 00 00 */ cmpw r23, r0 /* 8003ED20 0003A980 40 82 00 A4 */ bne lbl_8003EDC4 /* 8003ED24 0003A984 7F 44 D3 78 */ mr r4, r26 /* 8003ED28 0003A988 7F 85 E3 78 */ mr r5, r28 /* 8003ED2C 0003A98C 38 7D 00 80 */ addi r3, r29, 0x80 /* 8003ED30 0003A990 48 35 B2 35 */ bl func_80399F64 /* 8003ED34 0003A994 28 03 01 00 */ cmplwi r3, 0x100 /* 8003ED38 0003A998 7C 7F 1B 78 */ mr r31, r3 /* 8003ED3C 0003A99C 40 80 00 88 */ bge lbl_8003EDC4 /* 8003ED40 0003A9A0 88 16 00 03 */ lbz r0, 3(r22) /* 8003ED44 0003A9A4 3B 60 00 00 */ li r27, 0 /* 8003ED48 0003A9A8 7C 00 07 74 */ extsb r0, r0 /* 8003ED4C 0003A9AC 2C 00 00 01 */ cmpwi r0, 1 /* 8003ED50 0003A9B0 40 82 00 1C */ bne lbl_8003ED6C /* 8003ED54 0003A9B4 7F 44 D3 78 */ mr r4, r26 /* 8003ED58 0003A9B8 7F 85 E3 78 */ mr r5, r28 /* 8003ED5C 0003A9BC 38 7D 00 80 */ addi r3, r29, 0x80 /* 8003ED60 0003A9C0 48 35 B2 59 */ bl func_80399FB8 /* 8003ED64 0003A9C4 7C 7B 1B 78 */ mr r27, r3 /* 8003ED68 0003A9C8 48 00 00 20 */ b lbl_8003ED88 lbl_8003ED6C: /* 8003ED6C 0003A9CC 2C 00 00 02 */ cmpwi r0, 2 /* 8003ED70 0003A9D0 40 82 00 18 */ bne lbl_8003ED88 /* 8003ED74 0003A9D4 7F 44 D3 78 */ mr r4, r26 /* 8003ED78 0003A9D8 7F 85 E3 78 */ mr r5, r28 /* 8003ED7C 0003A9DC 38 7D 00 80 */ addi r3, r29, 0x80 /* 8003ED80 0003A9E0 48 35 B2 91 */ bl func_8039A010 /* 8003ED84 0003A9E4 7C 7B 1B 78 */ mr r27, r3 lbl_8003ED88: /* 8003ED88 0003A9E8 2C 1B 00 00 */ cmpwi r27, 0 /* 8003ED8C 0003A9EC 41 82 00 38 */ beq lbl_8003EDC4 /* 8003ED90 0003A9F0 7F 03 C3 78 */ mr r3, r24 /* 8003ED94 0003A9F4 7F 64 DB 78 */ mr r4, r27 /* 8003ED98 0003A9F8 48 19 C7 25 */ bl func_801DB4BC /* 8003ED9C 0003A9FC 7C 60 00 34 */ cntlzw r0, r3 /* 8003EDA0 0003AA00 7F 23 CB 78 */ mr r3, r25 /* 8003EDA4 0003AA04 7F 64 DB 78 */ mr r4, r27 /* 8003EDA8 0003AA08 54 05 D9 7E */ srwi r5, r0, 5 /* 8003EDAC 0003AA0C 4B FF FA C1 */ bl func_8003E86C /* 8003EDB0 0003AA10 B3 F6 00 0C */ sth r31, 0xc(r22) /* 8003EDB4 0003AA14 7F 63 DB 78 */ mr r3, r27 /* 8003EDB8 0003AA18 93 16 00 10 */ stw r24, 0x10(r22) /* 8003EDBC 0003AA1C 93 76 00 14 */ stw r27, 0x14(r22) /* 8003EDC0 0003AA20 48 00 00 14 */ b lbl_8003EDD4 lbl_8003EDC4: /* 8003EDC4 0003AA24 3B 5A 00 01 */ addi r26, r26, 1 lbl_8003EDC8: /* 8003EDC8 0003AA28 7C 1A F0 00 */ cmpw r26, r30 /* 8003EDCC 0003AA2C 41 80 FF 40 */ blt lbl_8003ED0C /* 8003EDD0 0003AA30 38 60 00 00 */ li r3, 0 lbl_8003EDD4: /* 8003EDD4 0003AA34 39 61 00 30 */ addi r11, r1, 0x30 /* 8003EDD8 0003AA38 48 18 83 89 */ bl _restgpr_22 /* 8003EDDC 0003AA3C 80 01 00 34 */ lwz r0, 0x34(r1) /* 8003EDE0 0003AA40 7C 08 03 A6 */ mtlr r0 /* 8003EDE4 0003AA44 38 21 00 30 */ addi r1, r1, 0x30 /* 8003EDE8 0003AA48 4E 80 00 20 */ blr .global func_8003EDEC func_8003EDEC: /* 8003EDEC 0003AA4C 94 21 FF B0 */ stwu r1, -0x50(r1) /* 8003EDF0 0003AA50 7C 08 02 A6 */ mflr r0 /* 8003EDF4 0003AA54 90 01 00 54 */ stw r0, 0x54(r1) /* 8003EDF8 0003AA58 39 61 00 50 */ addi r11, r1, 0x50 /* 8003EDFC 0003AA5C 48 18 83 21 */ bl _savegpr_24 /* 8003EE00 0003AA60 3C C0 80 64 */ lis r6, lbl_8063CE34@ha /* 8003EE04 0003AA64 7C 7C 1B 78 */ mr r28, r3 /* 8003EE08 0003AA68 3B E6 CE 34 */ addi r31, r6, lbl_8063CE34@l /* 8003EE0C 0003AA6C 7C 98 23 78 */ mr r24, r4 /* 8003EE10 0003AA70 7C BD 2B 78 */ mr r29, r5 /* 8003EE14 0003AA74 7C FE 3B 78 */ mr r30, r7 /* 8003EE18 0003AA78 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE1C 0003AA7C 48 35 66 75 */ bl func_80395490 /* 8003EE20 0003AA80 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE24 0003AA84 7F 04 C3 78 */ mr r4, r24 /* 8003EE28 0003AA88 90 01 00 18 */ stw r0, 0x18(r1) /* 8003EE2C 0003AA8C 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE30 0003AA90 48 35 67 01 */ bl func_80395530 /* 8003EE34 0003AA94 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE38 0003AA98 7F 04 C3 78 */ mr r4, r24 /* 8003EE3C 0003AA9C 90 01 00 1C */ stw r0, 0x1c(r1) /* 8003EE40 0003AAA0 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE44 0003AAA4 48 35 67 8D */ bl func_803955D0 /* 8003EE48 0003AAA8 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE4C 0003AAAC 7F 04 C3 78 */ mr r4, r24 /* 8003EE50 0003AAB0 90 01 00 20 */ stw r0, 0x20(r1) /* 8003EE54 0003AAB4 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE58 0003AAB8 48 35 68 19 */ bl func_80395670 /* 8003EE5C 0003AABC 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE60 0003AAC0 7F 04 C3 78 */ mr r4, r24 /* 8003EE64 0003AAC4 90 01 00 24 */ stw r0, 0x24(r1) /* 8003EE68 0003AAC8 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE6C 0003AACC 48 35 68 A5 */ bl func_80395710 /* 8003EE70 0003AAD0 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE74 0003AAD4 7F 04 C3 78 */ mr r4, r24 /* 8003EE78 0003AAD8 90 01 00 28 */ stw r0, 0x28(r1) /* 8003EE7C 0003AADC 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE80 0003AAE0 48 35 63 E9 */ bl func_80395268 /* 8003EE84 0003AAE4 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE88 0003AAE8 7F 04 C3 78 */ mr r4, r24 /* 8003EE8C 0003AAEC 90 01 00 08 */ stw r0, 8(r1) /* 8003EE90 0003AAF0 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EE94 0003AAF4 48 35 64 0D */ bl func_803952A0 /* 8003EE98 0003AAF8 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EE9C 0003AAFC 7F 04 C3 78 */ mr r4, r24 /* 8003EEA0 0003AB00 90 01 00 0C */ stw r0, 0xc(r1) /* 8003EEA4 0003AB04 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EEA8 0003AB08 48 35 64 31 */ bl func_803952D8 /* 8003EEAC 0003AB0C 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8003EEB0 0003AB10 7F 04 C3 78 */ mr r4, r24 /* 8003EEB4 0003AB14 90 01 00 10 */ stw r0, 0x10(r1) /* 8003EEB8 0003AB18 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EEBC 0003AB1C 48 35 64 55 */ bl func_80395310 /* 8003EEC0 0003AB20 88 1C 00 01 */ lbz r0, 1(r28) /* 8003EEC4 0003AB24 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8003EEC8 0003AB28 90 61 00 14 */ stw r3, 0x14(r1) /* 8003EECC 0003AB2C 2C 00 00 00 */ cmpwi r0, 0 /* 8003EED0 0003AB30 41 82 01 50 */ beq lbl_8003F020 /* 8003EED4 0003AB34 7F 04 C3 78 */ mr r4, r24 /* 8003EED8 0003AB38 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EEDC 0003AB3C 48 35 65 81 */ bl func_8039545C /* 8003EEE0 0003AB40 90 7D 00 18 */ stw r3, 0x18(r29) /* 8003EEE4 0003AB44 7F 04 C3 78 */ mr r4, r24 /* 8003EEE8 0003AB48 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EEEC 0003AB4C 48 35 66 11 */ bl func_803954FC /* 8003EEF0 0003AB50 90 7D 00 38 */ stw r3, 0x38(r29) /* 8003EEF4 0003AB54 7F 04 C3 78 */ mr r4, r24 /* 8003EEF8 0003AB58 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EEFC 0003AB5C 48 35 66 A1 */ bl func_8039559C /* 8003EF00 0003AB60 90 7D 00 58 */ stw r3, 0x58(r29) /* 8003EF04 0003AB64 7F 04 C3 78 */ mr r4, r24 /* 8003EF08 0003AB68 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EF0C 0003AB6C 48 35 67 31 */ bl func_8039563C /* 8003EF10 0003AB70 90 7D 00 78 */ stw r3, 0x78(r29) /* 8003EF14 0003AB74 7F 04 C3 78 */ mr r4, r24 /* 8003EF18 0003AB78 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003EF1C 0003AB7C 48 35 67 C1 */ bl func_803956DC /* 8003EF20 0003AB80 90 7D 00 98 */ stw r3, 0x98(r29) /* 8003EF24 0003AB84 3B 1D 00 0C */ addi r24, r29, 0xc /* 8003EF28 0003AB88 3B 21 00 18 */ addi r25, r1, 0x18 /* 8003EF2C 0003AB8C 3B 5D 00 AC */ addi r26, r29, 0xac /* 8003EF30 0003AB90 3B 60 00 00 */ li r27, 0 /* 8003EF34 0003AB94 48 00 00 90 */ b lbl_8003EFC4 lbl_8003EF38: /* 8003EF38 0003AB98 80 78 00 0C */ lwz r3, 0xc(r24) /* 8003EF3C 0003AB9C 54 60 BE BE */ rlwinm r0, r3, 0x17, 0x1a, 0x1f /* 8003EF40 0003ABA0 2C 00 00 04 */ cmpwi r0, 4 /* 8003EF44 0003ABA4 41 82 00 2C */ beq lbl_8003EF70 /* 8003EF48 0003ABA8 40 80 00 50 */ bge lbl_8003EF98 /* 8003EF4C 0003ABAC 2C 00 00 03 */ cmpwi r0, 3 /* 8003EF50 0003ABB0 40 80 00 08 */ bge lbl_8003EF58 /* 8003EF54 0003ABB4 48 00 00 44 */ b lbl_8003EF98 lbl_8003EF58: /* 8003EF58 0003ABB8 80 9C 00 04 */ lwz r4, 4(r28) /* 8003EF5C 0003ABBC 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003EF60 0003ABC0 80 B9 00 00 */ lwz r5, 0(r25) /* 8003EF64 0003ABC4 48 35 70 D9 */ bl func_8039603C /* 8003EF68 0003ABC8 98 78 00 08 */ stb r3, 8(r24) /* 8003EF6C 0003ABCC 48 00 00 50 */ b lbl_8003EFBC lbl_8003EF70: /* 8003EF70 0003ABD0 80 9C 00 04 */ lwz r4, 4(r28) /* 8003EF74 0003ABD4 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003EF78 0003ABD8 80 B9 00 00 */ lwz r5, 0(r25) /* 8003EF7C 0003ABDC 48 35 71 69 */ bl func_803960E4 /* 8003EF80 0003ABE0 98 78 00 08 */ stb r3, 8(r24) /* 8003EF84 0003ABE4 7F 83 E3 78 */ mr r3, r28 /* 8003EF88 0003ABE8 80 98 00 0C */ lwz r4, 0xc(r24) /* 8003EF8C 0003ABEC 4B FF FC 41 */ bl func_8003EBCC /* 8003EF90 0003ABF0 90 78 00 10 */ stw r3, 0x10(r24) /* 8003EF94 0003ABF4 48 00 00 28 */ b lbl_8003EFBC lbl_8003EF98: /* 8003EF98 0003ABF8 28 03 00 64 */ cmplwi r3, 0x64 /* 8003EF9C 0003ABFC 40 82 00 1C */ bne lbl_8003EFB8 /* 8003EFA0 0003AC00 80 9C 00 04 */ lwz r4, 4(r28) /* 8003EFA4 0003AC04 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003EFA8 0003AC08 80 B9 00 00 */ lwz r5, 0(r25) /* 8003EFAC 0003AC0C 48 35 71 39 */ bl func_803960E4 /* 8003EFB0 0003AC10 98 78 00 08 */ stb r3, 8(r24) /* 8003EFB4 0003AC14 48 00 00 08 */ b lbl_8003EFBC lbl_8003EFB8: /* 8003EFB8 0003AC18 9B 78 00 08 */ stb r27, 8(r24) lbl_8003EFBC: /* 8003EFBC 0003AC1C 3B 18 00 20 */ addi r24, r24, 0x20 /* 8003EFC0 0003AC20 3B 39 00 04 */ addi r25, r25, 4 lbl_8003EFC4: /* 8003EFC4 0003AC24 7C 18 D0 40 */ cmplw r24, r26 /* 8003EFC8 0003AC28 40 82 FF 70 */ bne lbl_8003EF38 /* 8003EFCC 0003AC2C 3F 40 80 64 */ lis r26, lbl_8063CE34@ha /* 8003EFD0 0003AC30 3B 21 00 08 */ addi r25, r1, 8 /* 8003EFD4 0003AC34 3B 5A CE 34 */ addi r26, r26, lbl_8063CE34@l /* 8003EFD8 0003AC38 3B E0 00 00 */ li r31, 0 /* 8003EFDC 0003AC3C 3B 60 00 FF */ li r27, 0xff lbl_8003EFE0: /* 8003EFE0 0003AC40 80 B9 00 00 */ lwz r5, 0(r25) /* 8003EFE4 0003AC44 28 05 00 07 */ cmplwi r5, 7 /* 8003EFE8 0003AC48 40 82 00 10 */ bne lbl_8003EFF8 /* 8003EFEC 0003AC4C 7C 7D FA 14 */ add r3, r29, r31 /* 8003EFF0 0003AC50 9B 63 00 08 */ stb r27, 8(r3) /* 8003EFF4 0003AC54 48 00 00 18 */ b lbl_8003F00C lbl_8003EFF8: /* 8003EFF8 0003AC58 80 9C 00 04 */ lwz r4, 4(r28) /* 8003EFFC 0003AC5C 38 7A 00 28 */ addi r3, r26, 0x28 /* 8003F000 0003AC60 48 35 70 91 */ bl func_80396090 /* 8003F004 0003AC64 7C 9D FA 14 */ add r4, r29, r31 /* 8003F008 0003AC68 98 64 00 08 */ stb r3, 8(r4) lbl_8003F00C: /* 8003F00C 0003AC6C 3B FF 00 01 */ addi r31, r31, 1 /* 8003F010 0003AC70 3B 39 00 04 */ addi r25, r25, 4 /* 8003F014 0003AC74 2C 1F 00 04 */ cmpwi r31, 4 /* 8003F018 0003AC78 41 80 FF C8 */ blt lbl_8003EFE0 /* 8003F01C 0003AC7C 48 00 01 4C */ b lbl_8003F168 lbl_8003F020: /* 8003F020 0003AC80 7F 04 C3 78 */ mr r4, r24 /* 8003F024 0003AC84 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003F028 0003AC88 48 35 64 01 */ bl func_80395428 /* 8003F02C 0003AC8C 90 7D 00 18 */ stw r3, 0x18(r29) /* 8003F030 0003AC90 7F 04 C3 78 */ mr r4, r24 /* 8003F034 0003AC94 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003F038 0003AC98 48 35 64 91 */ bl func_803954C8 /* 8003F03C 0003AC9C 90 7D 00 38 */ stw r3, 0x38(r29) /* 8003F040 0003ACA0 7F 04 C3 78 */ mr r4, r24 /* 8003F044 0003ACA4 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003F048 0003ACA8 48 35 65 21 */ bl func_80395568 /* 8003F04C 0003ACAC 90 7D 00 58 */ stw r3, 0x58(r29) /* 8003F050 0003ACB0 7F 04 C3 78 */ mr r4, r24 /* 8003F054 0003ACB4 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003F058 0003ACB8 48 35 65 B1 */ bl func_80395608 /* 8003F05C 0003ACBC 90 7D 00 78 */ stw r3, 0x78(r29) /* 8003F060 0003ACC0 7F 04 C3 78 */ mr r4, r24 /* 8003F064 0003ACC4 38 7F 00 2C */ addi r3, r31, 0x2c /* 8003F068 0003ACC8 48 35 66 41 */ bl func_803956A8 /* 8003F06C 0003ACCC 90 7D 00 98 */ stw r3, 0x98(r29) /* 8003F070 0003ACD0 3B 1D 00 0C */ addi r24, r29, 0xc /* 8003F074 0003ACD4 3B 21 00 18 */ addi r25, r1, 0x18 /* 8003F078 0003ACD8 3B 7D 00 AC */ addi r27, r29, 0xac /* 8003F07C 0003ACDC 3B 40 00 00 */ li r26, 0 /* 8003F080 0003ACE0 48 00 00 90 */ b lbl_8003F110 lbl_8003F084: /* 8003F084 0003ACE4 80 78 00 0C */ lwz r3, 0xc(r24) /* 8003F088 0003ACE8 54 60 BE BE */ rlwinm r0, r3, 0x17, 0x1a, 0x1f /* 8003F08C 0003ACEC 2C 00 00 04 */ cmpwi r0, 4 /* 8003F090 0003ACF0 41 82 00 2C */ beq lbl_8003F0BC /* 8003F094 0003ACF4 40 80 00 50 */ bge lbl_8003F0E4 /* 8003F098 0003ACF8 2C 00 00 03 */ cmpwi r0, 3 /* 8003F09C 0003ACFC 40 80 00 08 */ bge lbl_8003F0A4 /* 8003F0A0 0003AD00 48 00 00 44 */ b lbl_8003F0E4 lbl_8003F0A4: /* 8003F0A4 0003AD04 80 9C 00 04 */ lwz r4, 4(r28) /* 8003F0A8 0003AD08 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003F0AC 0003AD0C 80 B9 00 00 */ lwz r5, 0(r25) /* 8003F0B0 0003AD10 48 35 6E 91 */ bl func_80395F40 /* 8003F0B4 0003AD14 98 78 00 08 */ stb r3, 8(r24) /* 8003F0B8 0003AD18 48 00 00 50 */ b lbl_8003F108 lbl_8003F0BC: /* 8003F0BC 0003AD1C 80 9C 00 04 */ lwz r4, 4(r28) /* 8003F0C0 0003AD20 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003F0C4 0003AD24 80 B9 00 00 */ lwz r5, 0(r25) /* 8003F0C8 0003AD28 48 35 6F 21 */ bl func_80395FE8 /* 8003F0CC 0003AD2C 98 78 00 08 */ stb r3, 8(r24) /* 8003F0D0 0003AD30 7F 83 E3 78 */ mr r3, r28 /* 8003F0D4 0003AD34 80 98 00 0C */ lwz r4, 0xc(r24) /* 8003F0D8 0003AD38 4B FF FA F5 */ bl func_8003EBCC /* 8003F0DC 0003AD3C 90 78 00 10 */ stw r3, 0x10(r24) /* 8003F0E0 0003AD40 48 00 00 28 */ b lbl_8003F108 lbl_8003F0E4: /* 8003F0E4 0003AD44 28 03 00 64 */ cmplwi r3, 0x64 /* 8003F0E8 0003AD48 40 82 00 1C */ bne lbl_8003F104 /* 8003F0EC 0003AD4C 80 9C 00 04 */ lwz r4, 4(r28) /* 8003F0F0 0003AD50 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003F0F4 0003AD54 80 B9 00 00 */ lwz r5, 0(r25) /* 8003F0F8 0003AD58 48 35 6E F1 */ bl func_80395FE8 /* 8003F0FC 0003AD5C 98 78 00 08 */ stb r3, 8(r24) /* 8003F100 0003AD60 48 00 00 08 */ b lbl_8003F108 lbl_8003F104: /* 8003F104 0003AD64 9B 58 00 08 */ stb r26, 8(r24) lbl_8003F108: /* 8003F108 0003AD68 3B 18 00 20 */ addi r24, r24, 0x20 /* 8003F10C 0003AD6C 3B 39 00 04 */ addi r25, r25, 4 lbl_8003F110: /* 8003F110 0003AD70 7C 18 D8 40 */ cmplw r24, r27 /* 8003F114 0003AD74 40 82 FF 70 */ bne lbl_8003F084 /* 8003F118 0003AD78 3F E0 80 64 */ lis r31, lbl_8063CE34@ha /* 8003F11C 0003AD7C 3B 41 00 08 */ addi r26, r1, 8 /* 8003F120 0003AD80 3B FF CE 34 */ addi r31, r31, lbl_8063CE34@l /* 8003F124 0003AD84 3B 20 00 00 */ li r25, 0 /* 8003F128 0003AD88 3B 60 00 FF */ li r27, 0xff lbl_8003F12C: /* 8003F12C 0003AD8C 80 BA 00 00 */ lwz r5, 0(r26) /* 8003F130 0003AD90 28 05 00 07 */ cmplwi r5, 7 /* 8003F134 0003AD94 40 82 00 10 */ bne lbl_8003F144 /* 8003F138 0003AD98 7C 7D CA 14 */ add r3, r29, r25 /* 8003F13C 0003AD9C 9B 63 00 08 */ stb r27, 8(r3) /* 8003F140 0003ADA0 48 00 00 18 */ b lbl_8003F158 lbl_8003F144: /* 8003F144 0003ADA4 80 9C 00 04 */ lwz r4, 4(r28) /* 8003F148 0003ADA8 38 7F 00 28 */ addi r3, r31, 0x28 /* 8003F14C 0003ADAC 48 35 6E 49 */ bl func_80395F94 /* 8003F150 0003ADB0 7C 9D CA 14 */ add r4, r29, r25 /* 8003F154 0003ADB4 98 64 00 08 */ stb r3, 8(r4) lbl_8003F158: /* 8003F158 0003ADB8 3B 39 00 01 */ addi r25, r25, 1 /* 8003F15C 0003ADBC 3B 5A 00 04 */ addi r26, r26, 4 /* 8003F160 0003ADC0 2C 19 00 04 */ cmpwi r25, 4 /* 8003F164 0003ADC4 41 80 FF C8 */ blt lbl_8003F12C lbl_8003F168: /* 8003F168 0003ADC8 38 00 00 01 */ li r0, 1 /* 8003F16C 0003ADCC 3B 3D 00 0C */ addi r25, r29, 0xc /* 8003F170 0003ADD0 98 1D 00 00 */ stb r0, 0(r29) /* 8003F174 0003ADD4 3B 9D 00 AC */ addi r28, r29, 0xac /* 8003F178 0003ADD8 48 00 01 04 */ b lbl_8003F27C lbl_8003F17C: /* 8003F17C 0003ADDC 80 99 00 0C */ lwz r4, 0xc(r25) /* 8003F180 0003ADE0 2C 04 00 00 */ cmpwi r4, 0 /* 8003F184 0003ADE4 41 82 00 F4 */ beq lbl_8003F278 /* 8003F188 0003ADE8 28 04 00 64 */ cmplwi r4, 0x64 /* 8003F18C 0003ADEC 41 82 00 EC */ beq lbl_8003F278 /* 8003F190 0003ADF0 80 19 00 00 */ lwz r0, 0(r25) /* 8003F194 0003ADF4 7C 04 00 40 */ cmplw r4, r0 /* 8003F198 0003ADF8 41 82 00 E0 */ beq lbl_8003F278 /* 8003F19C 0003ADFC 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F1A0 0003AE00 48 19 C3 1D */ bl func_801DB4BC /* 8003F1A4 0003AE04 2C 1E 00 00 */ cmpwi r30, 0 /* 8003F1A8 0003AE08 41 82 00 1C */ beq lbl_8003F1C4 /* 8003F1AC 0003AE0C 7C 60 00 34 */ cntlzw r0, r3 /* 8003F1B0 0003AE10 80 99 00 0C */ lwz r4, 0xc(r25) /* 8003F1B4 0003AE14 7F C3 F3 78 */ mr r3, r30 /* 8003F1B8 0003AE18 54 05 D9 7E */ srwi r5, r0, 5 /* 8003F1BC 0003AE1C 4B FF F6 B1 */ bl func_8003E86C /* 8003F1C0 0003AE20 48 00 00 44 */ b lbl_8003F204 lbl_8003F1C4: /* 8003F1C4 0003AE24 2C 03 00 00 */ cmpwi r3, 0 /* 8003F1C8 0003AE28 40 82 00 30 */ bne lbl_8003F1F8 /* 8003F1CC 0003AE2C 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F1D0 0003AE30 80 99 00 0C */ lwz r4, 0xc(r25) /* 8003F1D4 0003AE34 48 20 A6 49 */ bl func_8024981C /* 8003F1D8 0003AE38 48 00 00 0C */ b lbl_8003F1E4 lbl_8003F1DC: /* 8003F1DC 0003AE3C 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13) /* 8003F1E0 0003AE40 48 1E 53 A9 */ bl func_80224588 lbl_8003F1E4: /* 8003F1E4 0003AE44 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F1E8 0003AE48 80 99 00 0C */ lwz r4, 0xc(r25) /* 8003F1EC 0003AE4C 48 19 C2 D1 */ bl func_801DB4BC /* 8003F1F0 0003AE50 2C 03 00 00 */ cmpwi r3, 0 /* 8003F1F4 0003AE54 41 82 FF E8 */ beq lbl_8003F1DC lbl_8003F1F8: /* 8003F1F8 0003AE58 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F1FC 0003AE5C 80 99 00 0C */ lwz r4, 0xc(r25) /* 8003F200 0003AE60 48 19 C2 FD */ bl func_801DB4FC lbl_8003F204: /* 8003F204 0003AE64 80 99 00 10 */ lwz r4, 0x10(r25) /* 8003F208 0003AE68 2C 04 00 00 */ cmpwi r4, 0 /* 8003F20C 0003AE6C 41 82 00 6C */ beq lbl_8003F278 /* 8003F210 0003AE70 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F214 0003AE74 48 19 C2 A9 */ bl func_801DB4BC /* 8003F218 0003AE78 2C 1E 00 00 */ cmpwi r30, 0 /* 8003F21C 0003AE7C 41 82 00 1C */ beq lbl_8003F238 /* 8003F220 0003AE80 7C 60 00 34 */ cntlzw r0, r3 /* 8003F224 0003AE84 80 99 00 10 */ lwz r4, 0x10(r25) /* 8003F228 0003AE88 7F C3 F3 78 */ mr r3, r30 /* 8003F22C 0003AE8C 54 05 D9 7E */ srwi r5, r0, 5 /* 8003F230 0003AE90 4B FF F6 3D */ bl func_8003E86C /* 8003F234 0003AE94 48 00 00 44 */ b lbl_8003F278 lbl_8003F238: /* 8003F238 0003AE98 2C 03 00 00 */ cmpwi r3, 0 /* 8003F23C 0003AE9C 40 82 00 30 */ bne lbl_8003F26C /* 8003F240 0003AEA0 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F244 0003AEA4 80 99 00 10 */ lwz r4, 0x10(r25) /* 8003F248 0003AEA8 48 20 A5 D5 */ bl func_8024981C /* 8003F24C 0003AEAC 48 00 00 0C */ b lbl_8003F258 lbl_8003F250: /* 8003F250 0003AEB0 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13) /* 8003F254 0003AEB4 48 1E 53 35 */ bl func_80224588 lbl_8003F258: /* 8003F258 0003AEB8 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F25C 0003AEBC 80 99 00 10 */ lwz r4, 0x10(r25) /* 8003F260 0003AEC0 48 19 C2 5D */ bl func_801DB4BC /* 8003F264 0003AEC4 2C 03 00 00 */ cmpwi r3, 0 /* 8003F268 0003AEC8 41 82 FF E8 */ beq lbl_8003F250 lbl_8003F26C: /* 8003F26C 0003AECC 80 7D 00 04 */ lwz r3, 4(r29) /* 8003F270 0003AED0 80 99 00 10 */ lwz r4, 0x10(r25) /* 8003F274 0003AED4 48 19 C2 89 */ bl func_801DB4FC lbl_8003F278: /* 8003F278 0003AED8 3B 39 00 20 */ addi r25, r25, 0x20 lbl_8003F27C: /* 8003F27C 0003AEDC 7C 19 E0 40 */ cmplw r25, r28 /* 8003F280 0003AEE0 40 82 FE FC */ bne lbl_8003F17C /* 8003F284 0003AEE4 39 61 00 50 */ addi r11, r1, 0x50 /* 8003F288 0003AEE8 48 18 7E E1 */ bl _restgpr_24 /* 8003F28C 0003AEEC 80 01 00 54 */ lwz r0, 0x54(r1) /* 8003F290 0003AEF0 7C 08 03 A6 */ mtlr r0 /* 8003F294 0003AEF4 38 21 00 50 */ addi r1, r1, 0x50 /* 8003F298 0003AEF8 4E 80 00 20 */ blr .global func_8003F29C func_8003F29C: /* 8003F29C 0003AEFC 94 21 FE 20 */ stwu r1, -0x1e0(r1) /* 8003F2A0 0003AF00 7C 08 02 A6 */ mflr r0 /* 8003F2A4 0003AF04 90 01 01 E4 */ stw r0, 0x1e4(r1) /* 8003F2A8 0003AF08 39 61 01 E0 */ addi r11, r1, 0x1e0 /* 8003F2AC 0003AF0C 48 18 7E 71 */ bl _savegpr_24 /* 8003F2B0 0003AF10 3D 20 80 64 */ lis r9, lbl_8063CE34@ha /* 8003F2B4 0003AF14 7C 7D 1B 78 */ mr r29, r3 /* 8003F2B8 0003AF18 39 29 CE 34 */ addi r9, r9, lbl_8063CE34@l /* 8003F2BC 0003AF1C 7C 9C 23 78 */ mr r28, r4 /* 8003F2C0 0003AF20 7C BA 2B 78 */ mr r26, r5 /* 8003F2C4 0003AF24 7C D9 33 78 */ mr r25, r6 /* 8003F2C8 0003AF28 7C FE 3B 78 */ mr r30, r7 /* 8003F2CC 0003AF2C 7D 18 43 78 */ mr r24, r8 /* 8003F2D0 0003AF30 38 69 00 28 */ addi r3, r9, 0x28 /* 8003F2D4 0003AF34 48 35 6B 11 */ bl func_80395DE4 /* 8003F2D8 0003AF38 7C 1C 18 40 */ cmplw r28, r3 /* 8003F2DC 0003AF3C 41 80 00 0C */ blt lbl_8003F2E8 /* 8003F2E0 0003AF40 38 60 00 00 */ li r3, 0 /* 8003F2E4 0003AF44 48 00 02 20 */ b lbl_8003F504 lbl_8003F2E8: /* 8003F2E8 0003AF48 2C 1E 00 00 */ cmpwi r30, 0 /* 8003F2EC 0003AF4C 40 82 00 18 */ bne lbl_8003F304 /* 8003F2F0 0003AF50 38 61 00 08 */ addi r3, r1, 8 /* 8003F2F4 0003AF54 38 80 00 00 */ li r4, 0 /* 8003F2F8 0003AF58 38 A0 00 0A */ li r5, 0xa /* 8003F2FC 0003AF5C 4B FC 4E 09 */ bl memset /* 8003F300 0003AF60 3B C1 00 08 */ addi r30, r1, 8 lbl_8003F304: /* 8003F304 0003AF64 7F 20 07 75 */ extsb. r0, r25 /* 8003F308 0003AF68 93 9D 00 04 */ stw r28, 4(r29) /* 8003F30C 0003AF6C 9B 5D 00 01 */ stb r26, 1(r29) /* 8003F310 0003AF70 41 80 00 08 */ blt lbl_8003F318 /* 8003F314 0003AF74 9B 3D 00 03 */ stb r25, 3(r29) lbl_8003F318: /* 8003F318 0003AF78 2C 1A 00 00 */ cmpwi r26, 0 /* 8003F31C 0003AF7C 41 82 00 30 */ beq lbl_8003F34C /* 8003F320 0003AF80 3F 60 80 64 */ lis r27, lbl_8063CE34@ha /* 8003F324 0003AF84 7F 84 E3 78 */ mr r4, r28 /* 8003F328 0003AF88 3B 7B CE 34 */ addi r27, r27, lbl_8063CE34@l /* 8003F32C 0003AF8C 38 7B 00 28 */ addi r3, r27, 0x28 /* 8003F330 0003AF90 48 35 6B A9 */ bl func_80395ED8 /* 8003F334 0003AF94 7C 7F 1B 78 */ mr r31, r3 /* 8003F338 0003AF98 7F 84 E3 78 */ mr r4, r28 /* 8003F33C 0003AF9C 38 7B 00 28 */ addi r3, r27, 0x28 /* 8003F340 0003AFA0 48 35 6B CD */ bl func_80395F0C /* 8003F344 0003AFA4 7C 79 1B 78 */ mr r25, r3 /* 8003F348 0003AFA8 48 00 00 2C */ b lbl_8003F374 lbl_8003F34C: /* 8003F34C 0003AFAC 3F 60 80 64 */ lis r27, lbl_8063CE34@ha /* 8003F350 0003AFB0 7F 84 E3 78 */ mr r4, r28 /* 8003F354 0003AFB4 3B 7B CE 34 */ addi r27, r27, lbl_8063CE34@l /* 8003F358 0003AFB8 38 7B 00 28 */ addi r3, r27, 0x28 /* 8003F35C 0003AFBC 48 35 6B 15 */ bl func_80395E70 /* 8003F360 0003AFC0 7C 7F 1B 78 */ mr r31, r3 /* 8003F364 0003AFC4 7F 84 E3 78 */ mr r4, r28 /* 8003F368 0003AFC8 38 7B 00 28 */ addi r3, r27, 0x28 /* 8003F36C 0003AFCC 48 35 6B 39 */ bl func_80395EA4 /* 8003F370 0003AFD0 7C 79 1B 78 */ mr r25, r3 lbl_8003F374: /* 8003F374 0003AFD4 2C 1F 00 00 */ cmpwi r31, 0 /* 8003F378 0003AFD8 41 82 00 0C */ beq lbl_8003F384 /* 8003F37C 0003AFDC 2C 19 00 00 */ cmpwi r25, 0 /* 8003F380 0003AFE0 40 82 00 0C */ bne lbl_8003F38C lbl_8003F384: /* 8003F384 0003AFE4 38 60 00 00 */ li r3, 0 /* 8003F388 0003AFE8 48 00 01 7C */ b lbl_8003F504 lbl_8003F38C: /* 8003F38C 0003AFEC 38 61 00 18 */ addi r3, r1, 0x18 /* 8003F390 0003AFF0 4B FF F4 C5 */ bl cPlayer_ClearSwapControllerTimer /* 8003F394 0003AFF4 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8003F398 0003AFF8 7F 84 E3 78 */ mr r4, r28 /* 8003F39C 0003AFFC 38 63 CE 34 */ addi r3, r3, lbl_8063CE34@l /* 8003F3A0 0003B000 38 63 00 28 */ addi r3, r3, 0x28 /* 8003F3A4 0003B004 48 35 6A 5D */ bl func_80395E00 /* 8003F3A8 0003B008 2C 03 00 00 */ cmpwi r3, 0 /* 8003F3AC 0003B00C 41 82 00 D8 */ beq lbl_8003F484 /* 8003F3B0 0003B010 2C 18 00 00 */ cmpwi r24, 0 /* 8003F3B4 0003B014 41 82 00 38 */ beq lbl_8003F3EC /* 8003F3B8 0003B018 7F E3 FB 78 */ mr r3, r31 /* 8003F3BC 0003B01C 7F 24 CB 78 */ mr r4, r25 /* 8003F3C0 0003B020 48 19 C0 FD */ bl func_801DB4BC /* 8003F3C4 0003B024 7C 60 00 34 */ cntlzw r0, r3 /* 8003F3C8 0003B028 7F 24 CB 78 */ mr r4, r25 /* 8003F3CC 0003B02C 54 05 D9 7E */ srwi r5, r0, 5 /* 8003F3D0 0003B030 38 61 00 18 */ addi r3, r1, 0x18 /* 8003F3D4 0003B034 4B FF F4 99 */ bl func_8003E86C /* 8003F3D8 0003B038 7F A3 EB 78 */ mr r3, r29 /* 8003F3DC 0003B03C 7F 84 E3 78 */ mr r4, r28 /* 8003F3E0 0003B040 7F E5 FB 78 */ mr r5, r31 /* 8003F3E4 0003B044 38 C1 00 18 */ addi r6, r1, 0x18 /* 8003F3E8 0003B048 4B FF F8 BD */ bl func_8003ECA4 lbl_8003F3EC: /* 8003F3EC 0003B04C 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8003F3F0 0003B050 7F 84 E3 78 */ mr r4, r28 /* 8003F3F4 0003B054 3B 63 CE 34 */ addi r27, r3, lbl_8063CE34@l /* 8003F3F8 0003B058 38 7B 00 28 */ addi r3, r27, 0x28 /* 8003F3FC 0003B05C 48 35 6A 3D */ bl func_80395E38 /* 8003F400 0003B060 1F 23 00 0A */ mulli r25, r3, 0xa /* 8003F404 0003B064 3B 5D 00 18 */ addi r26, r29, 0x18 /* 8003F408 0003B068 3B 00 00 00 */ li r24, 0 lbl_8003F40C: /* 8003F40C 0003B06C 88 7E 00 00 */ lbz r3, 0(r30) /* 8003F410 0003B070 88 1A 00 01 */ lbz r0, 1(r26) /* 8003F414 0003B074 7C 00 18 40 */ cmplw r0, r3 /* 8003F418 0003B078 41 82 00 54 */ beq lbl_8003F46C /* 8003F41C 0003B07C 98 7A 00 01 */ stb r3, 1(r26) /* 8003F420 0003B080 7F 24 CB 78 */ mr r4, r25 /* 8003F424 0003B084 38 7B 00 30 */ addi r3, r27, 0x30 /* 8003F428 0003B088 48 35 66 E5 */ bl func_80395B0C /* 8003F42C 0003B08C 7C 7C 1B 78 */ mr r28, r3 /* 8003F430 0003B090 7F 24 CB 78 */ mr r4, r25 /* 8003F434 0003B094 38 7B 00 30 */ addi r3, r27, 0x30 /* 8003F438 0003B098 48 35 66 6D */ bl func_80395AA4 /* 8003F43C 0003B09C 88 9A 00 01 */ lbz r4, 1(r26) /* 8003F440 0003B0A0 57 80 04 3E */ clrlwi r0, r28, 0x10 /* 8003F444 0003B0A4 7C 00 20 00 */ cmpw r0, r4 /* 8003F448 0003B0A8 40 81 00 24 */ ble lbl_8003F46C /* 8003F44C 0003B0AC 54 60 04 3E */ clrlwi r0, r3, 0x10 /* 8003F450 0003B0B0 93 FA 00 04 */ stw r31, 4(r26) /* 8003F454 0003B0B4 7F A3 EB 78 */ mr r3, r29 /* 8003F458 0003B0B8 7F 45 D3 78 */ mr r5, r26 /* 8003F45C 0003B0BC 7C 80 22 14 */ add r4, r0, r4 /* 8003F460 0003B0C0 38 E1 00 18 */ addi r7, r1, 0x18 /* 8003F464 0003B0C4 38 C0 00 00 */ li r6, 0 /* 8003F468 0003B0C8 4B FF F9 85 */ bl func_8003EDEC lbl_8003F46C: /* 8003F46C 0003B0CC 3B 18 00 01 */ addi r24, r24, 1 /* 8003F470 0003B0D0 3B 39 00 01 */ addi r25, r25, 1 /* 8003F474 0003B0D4 2C 18 00 0A */ cmpwi r24, 0xa /* 8003F478 0003B0D8 3B DE 00 01 */ addi r30, r30, 1 /* 8003F47C 0003B0DC 3B 5A 00 AC */ addi r26, r26, 0xac /* 8003F480 0003B0E0 41 80 FF 8C */ blt lbl_8003F40C lbl_8003F484: /* 8003F484 0003B0E4 38 61 00 18 */ addi r3, r1, 0x18 /* 8003F488 0003B0E8 4B FF F4 71 */ bl func_8003E8F8 /* 8003F48C 0003B0EC 2C 03 00 00 */ cmpwi r3, 0 /* 8003F490 0003B0F0 41 82 00 48 */ beq lbl_8003F4D8 /* 8003F494 0003B0F4 38 00 00 01 */ li r0, 1 /* 8003F498 0003B0F8 38 61 00 18 */ addi r3, r1, 0x18 /* 8003F49C 0003B0FC 98 1D 00 02 */ stb r0, 2(r29) /* 8003F4A0 0003B100 4B FF F4 61 */ bl func_8003E900 /* 8003F4A4 0003B104 3C A0 80 04 */ lis r5, lbl_8003F51C@ha /* 8003F4A8 0003B108 7C 64 1B 78 */ mr r4, r3 /* 8003F4AC 0003B10C 7F E3 FB 78 */ mr r3, r31 /* 8003F4B0 0003B110 7F A6 EB 78 */ mr r6, r29 /* 8003F4B4 0003B114 38 A5 F5 1C */ addi r5, r5, lbl_8003F51C@l /* 8003F4B8 0003B118 38 E0 00 00 */ li r7, 0 /* 8003F4BC 0003B11C 48 20 A3 01 */ bl func_802497BC /* 8003F4C0 0003B120 48 00 00 0C */ b lbl_8003F4CC lbl_8003F4C4: /* 8003F4C4 0003B124 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13) /* 8003F4C8 0003B128 48 1E 50 C1 */ bl func_80224588 lbl_8003F4CC: /* 8003F4CC 0003B12C 88 1D 00 02 */ lbz r0, 2(r29) /* 8003F4D0 0003B130 2C 00 00 00 */ cmpwi r0, 0 /* 8003F4D4 0003B134 40 82 FF F0 */ bne lbl_8003F4C4 lbl_8003F4D8: /* 8003F4D8 0003B138 38 61 00 18 */ addi r3, r1, 0x18 /* 8003F4DC 0003B13C 4B FF F4 2D */ bl func_8003E908 /* 8003F4E0 0003B140 7C 78 1B 78 */ mr r24, r3 /* 8003F4E4 0003B144 48 00 00 10 */ b lbl_8003F4F4 lbl_8003F4E8: /* 8003F4E8 0003B148 7F E3 FB 78 */ mr r3, r31 /* 8003F4EC 0003B14C 48 19 C0 11 */ bl func_801DB4FC /* 8003F4F0 0003B150 3B 18 00 04 */ addi r24, r24, 4 lbl_8003F4F4: /* 8003F4F4 0003B154 80 98 00 00 */ lwz r4, 0(r24) /* 8003F4F8 0003B158 2C 04 00 00 */ cmpwi r4, 0 /* 8003F4FC 0003B15C 40 82 FF EC */ bne lbl_8003F4E8 /* 8003F500 0003B160 38 60 00 01 */ li r3, 1 lbl_8003F504: /* 8003F504 0003B164 39 61 01 E0 */ addi r11, r1, 0x1e0 /* 8003F508 0003B168 48 18 7C 61 */ bl _restgpr_24 /* 8003F50C 0003B16C 80 01 01 E4 */ lwz r0, 0x1e4(r1) /* 8003F510 0003B170 7C 08 03 A6 */ mtlr r0 /* 8003F514 0003B174 38 21 01 E0 */ addi r1, r1, 0x1e0 /* 8003F518 0003B178 4E 80 00 20 */ blr lbl_8003F51C: /* 8003F51C 0003B17C 38 00 00 00 */ li r0, 0 /* 8003F520 0003B180 98 04 00 02 */ stb r0, 2(r4) /* 8003F524 0003B184 4E 80 00 20 */ blr .global func_8003F528 func_8003F528: /* 8003F528 0003B188 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8003F52C 0003B18C 7C 08 02 A6 */ mflr r0 /* 8003F530 0003B190 90 01 00 24 */ stw r0, 0x24(r1) /* 8003F534 0003B194 39 61 00 20 */ addi r11, r1, 0x20 /* 8003F538 0003B198 48 18 7B ED */ bl _savegpr_26 /* 8003F53C 0003B19C 3F C0 80 64 */ lis r30, lbl_8063CE34@ha /* 8003F540 0003B1A0 7C 9D 23 78 */ mr r29, r4 /* 8003F544 0003B1A4 80 83 00 04 */ lwz r4, 4(r3) /* 8003F548 0003B1A8 3B DE CE 34 */ addi r30, r30, lbl_8063CE34@l /* 8003F54C 0003B1AC 7C 7A 1B 78 */ mr r26, r3 /* 8003F550 0003B1B0 7C BB 2B 78 */ mr r27, r5 /* 8003F554 0003B1B4 38 7E 00 28 */ addi r3, r30, 0x28 /* 8003F558 0003B1B8 48 35 68 A9 */ bl func_80395E00 /* 8003F55C 0003B1BC 2C 03 00 00 */ cmpwi r3, 0 /* 8003F560 0003B1C0 40 82 00 0C */ bne lbl_8003F56C /* 8003F564 0003B1C4 38 60 00 00 */ li r3, 0 /* 8003F568 0003B1C8 48 00 00 84 */ b lbl_8003F5EC lbl_8003F56C: /* 8003F56C 0003B1CC 80 9A 00 04 */ lwz r4, 4(r26) /* 8003F570 0003B1D0 38 7E 00 28 */ addi r3, r30, 0x28 /* 8003F574 0003B1D4 48 35 68 C5 */ bl func_80395E38 /* 8003F578 0003B1D8 1C 1D 00 AC */ mulli r0, r29, 0xac /* 8003F57C 0003B1DC 7C 9A 02 14 */ add r4, r26, r0 /* 8003F580 0003B1E0 88 04 00 19 */ lbz r0, 0x19(r4) /* 8003F584 0003B1E4 3B 84 00 18 */ addi r28, r4, 0x18 /* 8003F588 0003B1E8 7C 00 D8 40 */ cmplw r0, r27 /* 8003F58C 0003B1EC 41 82 00 5C */ beq lbl_8003F5E8 /* 8003F590 0003B1F0 1C 03 00 0A */ mulli r0, r3, 0xa /* 8003F594 0003B1F4 38 7E 00 30 */ addi r3, r30, 0x30 /* 8003F598 0003B1F8 7F BD 02 14 */ add r29, r29, r0 /* 8003F59C 0003B1FC 7F A4 EB 78 */ mr r4, r29 /* 8003F5A0 0003B200 48 35 65 6D */ bl func_80395B0C /* 8003F5A4 0003B204 7C 7F 1B 78 */ mr r31, r3 /* 8003F5A8 0003B208 7F A4 EB 78 */ mr r4, r29 /* 8003F5AC 0003B20C 38 7E 00 30 */ addi r3, r30, 0x30 /* 8003F5B0 0003B210 48 35 64 F5 */ bl func_80395AA4 /* 8003F5B4 0003B214 57 E0 04 3E */ clrlwi r0, r31, 0x10 /* 8003F5B8 0003B218 7C 00 D8 00 */ cmpw r0, r27 /* 8003F5BC 0003B21C 40 81 00 2C */ ble lbl_8003F5E8 /* 8003F5C0 0003B220 54 60 04 3E */ clrlwi r0, r3, 0x10 /* 8003F5C4 0003B224 9B 7C 00 01 */ stb r27, 1(r28) /* 8003F5C8 0003B228 7F 43 D3 78 */ mr r3, r26 /* 8003F5CC 0003B22C 7F 85 E3 78 */ mr r5, r28 /* 8003F5D0 0003B230 7C 80 DA 14 */ add r4, r0, r27 /* 8003F5D4 0003B234 38 C0 00 01 */ li r6, 1 /* 8003F5D8 0003B238 38 E0 00 00 */ li r7, 0 /* 8003F5DC 0003B23C 4B FF F8 11 */ bl func_8003EDEC /* 8003F5E0 0003B240 38 60 00 01 */ li r3, 1 /* 8003F5E4 0003B244 48 00 00 08 */ b lbl_8003F5EC lbl_8003F5E8: /* 8003F5E8 0003B248 38 60 00 00 */ li r3, 0 lbl_8003F5EC: /* 8003F5EC 0003B24C 39 61 00 20 */ addi r11, r1, 0x20 /* 8003F5F0 0003B250 48 18 7B 81 */ bl _restgpr_26 /* 8003F5F4 0003B254 80 01 00 24 */ lwz r0, 0x24(r1) /* 8003F5F8 0003B258 7C 08 03 A6 */ mtlr r0 /* 8003F5FC 0003B25C 38 21 00 20 */ addi r1, r1, 0x20 /* 8003F600 0003B260 4E 80 00 20 */ blr .global func_8003F604 func_8003F604: /* 8003F604 0003B264 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8003F608 0003B268 7C 08 02 A6 */ mflr r0 /* 8003F60C 0003B26C 90 01 00 34 */ stw r0, 0x34(r1) /* 8003F610 0003B270 39 61 00 30 */ addi r11, r1, 0x30 /* 8003F614 0003B274 48 18 7B 09 */ bl _savegpr_24 /* 8003F618 0003B278 3C A0 80 64 */ lis r5, lbl_8063CE34@ha /* 8003F61C 0003B27C 7C 99 23 78 */ mr r25, r4 /* 8003F620 0003B280 80 83 00 04 */ lwz r4, 4(r3) /* 8003F624 0003B284 3B C5 CE 34 */ addi r30, r5, lbl_8063CE34@l /* 8003F628 0003B288 7C 78 1B 78 */ mr r24, r3 /* 8003F62C 0003B28C 3B 60 00 00 */ li r27, 0 /* 8003F630 0003B290 38 7E 00 28 */ addi r3, r30, 0x28 /* 8003F634 0003B294 48 35 67 CD */ bl func_80395E00 /* 8003F638 0003B298 2C 03 00 00 */ cmpwi r3, 0 /* 8003F63C 0003B29C 40 82 00 0C */ bne lbl_8003F648 /* 8003F640 0003B2A0 38 60 00 00 */ li r3, 0 /* 8003F644 0003B2A4 48 00 00 98 */ b lbl_8003F6DC lbl_8003F648: /* 8003F648 0003B2A8 80 98 00 04 */ lwz r4, 4(r24) /* 8003F64C 0003B2AC 38 7E 00 28 */ addi r3, r30, 0x28 /* 8003F650 0003B2B0 48 35 67 E9 */ bl func_80395E38 /* 8003F654 0003B2B4 1F 83 00 0A */ mulli r28, r3, 0xa /* 8003F658 0003B2B8 3B B8 00 18 */ addi r29, r24, 0x18 /* 8003F65C 0003B2BC 3B 40 00 00 */ li r26, 0 lbl_8003F660: /* 8003F660 0003B2C0 88 7D 00 01 */ lbz r3, 1(r29) /* 8003F664 0003B2C4 88 19 00 00 */ lbz r0, 0(r25) /* 8003F668 0003B2C8 7C 03 00 40 */ cmplw r3, r0 /* 8003F66C 0003B2CC 41 82 00 54 */ beq lbl_8003F6C0 /* 8003F670 0003B2D0 7F 84 E3 78 */ mr r4, r28 /* 8003F674 0003B2D4 38 7E 00 30 */ addi r3, r30, 0x30 /* 8003F678 0003B2D8 48 35 64 95 */ bl func_80395B0C /* 8003F67C 0003B2DC 7C 7F 1B 78 */ mr r31, r3 /* 8003F680 0003B2E0 7F 84 E3 78 */ mr r4, r28 /* 8003F684 0003B2E4 38 7E 00 30 */ addi r3, r30, 0x30 /* 8003F688 0003B2E8 48 35 64 1D */ bl func_80395AA4 /* 8003F68C 0003B2EC 88 99 00 00 */ lbz r4, 0(r25) /* 8003F690 0003B2F0 57 E0 04 3E */ clrlwi r0, r31, 0x10 /* 8003F694 0003B2F4 7C 00 20 00 */ cmpw r0, r4 /* 8003F698 0003B2F8 40 81 00 28 */ ble lbl_8003F6C0 /* 8003F69C 0003B2FC 54 60 04 3E */ clrlwi r0, r3, 0x10 /* 8003F6A0 0003B300 98 9D 00 01 */ stb r4, 1(r29) /* 8003F6A4 0003B304 7F 03 C3 78 */ mr r3, r24 /* 8003F6A8 0003B308 7F A5 EB 78 */ mr r5, r29 /* 8003F6AC 0003B30C 7C 80 22 14 */ add r4, r0, r4 /* 8003F6B0 0003B310 38 C0 00 01 */ li r6, 1 /* 8003F6B4 0003B314 38 E0 00 00 */ li r7, 0 /* 8003F6B8 0003B318 4B FF F7 35 */ bl func_8003EDEC /* 8003F6BC 0003B31C 3B 60 00 01 */ li r27, 1 lbl_8003F6C0: /* 8003F6C0 0003B320 3B 5A 00 01 */ addi r26, r26, 1 /* 8003F6C4 0003B324 3B 9C 00 01 */ addi r28, r28, 1 /* 8003F6C8 0003B328 2C 1A 00 0A */ cmpwi r26, 0xa /* 8003F6CC 0003B32C 3B 39 00 01 */ addi r25, r25, 1 /* 8003F6D0 0003B330 3B BD 00 AC */ addi r29, r29, 0xac /* 8003F6D4 0003B334 41 80 FF 8C */ blt lbl_8003F660 /* 8003F6D8 0003B338 7F 63 DB 78 */ mr r3, r27 lbl_8003F6DC: /* 8003F6DC 0003B33C 39 61 00 30 */ addi r11, r1, 0x30 /* 8003F6E0 0003B340 48 18 7A 89 */ bl _restgpr_24 /* 8003F6E4 0003B344 80 01 00 34 */ lwz r0, 0x34(r1) /* 8003F6E8 0003B348 7C 08 03 A6 */ mtlr r0 /* 8003F6EC 0003B34C 38 21 00 30 */ addi r1, r1, 0x30 /* 8003F6F0 0003B350 4E 80 00 20 */ blr .global func_8003F6F4 func_8003F6F4: /* 8003F6F4 0003B354 94 21 FF B0 */ stwu r1, -0x50(r1) /* 8003F6F8 0003B358 7C 08 02 A6 */ mflr r0 /* 8003F6FC 0003B35C 90 01 00 54 */ stw r0, 0x54(r1) /* 8003F700 0003B360 39 61 00 50 */ addi r11, r1, 0x50 /* 8003F704 0003B364 48 18 79 F9 */ bl _savegpr_16 /* 8003F708 0003B368 2C 04 00 00 */ cmpwi r4, 0 /* 8003F70C 0003B36C 98 A3 00 00 */ stb r5, 0(r3) /* 8003F710 0003B370 7C 71 1B 78 */ mr r17, r3 /* 8003F714 0003B374 7C 92 23 78 */ mr r18, r4 /* 8003F718 0003B378 40 82 00 0C */ bne lbl_8003F724 /* 8003F71C 0003B37C 38 60 00 00 */ li r3, 0 /* 8003F720 0003B380 48 00 06 40 */ b lbl_8003FD60 lbl_8003F724: /* 8003F724 0003B384 80 83 00 14 */ lwz r4, 0x14(r3) /* 8003F728 0003B388 2C 04 00 00 */ cmpwi r4, 0 /* 8003F72C 0003B38C 41 82 00 C0 */ beq lbl_8003F7EC /* 8003F730 0003B390 80 63 00 10 */ lwz r3, 0x10(r3) /* 8003F734 0003B394 48 19 BD 89 */ bl func_801DB4BC /* 8003F738 0003B398 2C 03 00 00 */ cmpwi r3, 0 /* 8003F73C 0003B39C 7C 73 1B 78 */ mr r19, r3 /* 8003F740 0003B3A0 41 82 00 AC */ beq lbl_8003F7EC /* 8003F744 0003B3A4 80 A3 00 1C */ lwz r5, 0x1c(r3) /* 8003F748 0003B3A8 2C 05 00 02 */ cmpwi r5, 2 /* 8003F74C 0003B3AC 40 80 00 08 */ bge lbl_8003F754 /* 8003F750 0003B3B0 38 A0 00 02 */ li r5, 2 lbl_8003F754: /* 8003F754 0003B3B4 80 93 00 18 */ lwz r4, 0x18(r19) /* 8003F758 0003B3B8 7E 63 9B 78 */ mr r3, r19 /* 8003F75C 0003B3BC 2C 04 00 02 */ cmpwi r4, 2 /* 8003F760 0003B3C0 40 80 00 08 */ bge lbl_8003F768 /* 8003F764 0003B3C4 38 80 00 02 */ li r4, 2 lbl_8003F768: /* 8003F768 0003B3C8 80 D3 00 20 */ lwz r6, 0x20(r19) /* 8003F76C 0003B3CC 48 1F EC 5D */ bl func_8023E3C8 /* 8003F770 0003B3D0 80 92 00 1C */ lwz r4, 0x1c(r18) /* 8003F774 0003B3D4 A0 71 00 0C */ lhz r3, 0xc(r17) /* 8003F778 0003B3D8 2C 04 00 00 */ cmpwi r4, 0 /* 8003F77C 0003B3DC 40 82 00 0C */ bne lbl_8003F788 /* 8003F780 0003B3E0 3A 00 00 00 */ li r16, 0 /* 8003F784 0003B3E4 48 00 00 24 */ b lbl_8003F7A8 lbl_8003F788: /* 8003F788 0003B3E8 A0 12 00 E6 */ lhz r0, 0xe6(r18) /* 8003F78C 0003B3EC 7C 03 00 40 */ cmplw r3, r0 /* 8003F790 0003B3F0 41 80 00 0C */ blt lbl_8003F79C /* 8003F794 0003B3F4 3A 00 00 00 */ li r16, 0 /* 8003F798 0003B3F8 48 00 00 10 */ b lbl_8003F7A8 lbl_8003F79C: /* 8003F79C 0003B3FC 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 8003F7A0 0003B400 7C 64 00 2E */ lwzx r3, r4, r0 /* 8003F7A4 0003B404 82 03 00 14 */ lwz r16, 0x14(r3) lbl_8003F7A8: /* 8003F7A8 0003B408 2C 10 00 00 */ cmpwi r16, 0 /* 8003F7AC 0003B40C 41 82 00 40 */ beq lbl_8003F7EC /* 8003F7B0 0003B410 80 70 00 08 */ lwz r3, 8(r16) /* 8003F7B4 0003B414 80 03 00 50 */ lwz r0, 0x50(r3) /* 8003F7B8 0003B418 2C 00 00 00 */ cmpwi r0, 0 /* 8003F7BC 0003B41C 41 82 00 30 */ beq lbl_8003F7EC /* 8003F7C0 0003B420 80 70 00 14 */ lwz r3, 0x14(r16) /* 8003F7C4 0003B424 2C 03 00 00 */ cmpwi r3, 0 /* 8003F7C8 0003B428 41 82 00 20 */ beq lbl_8003F7E8 /* 8003F7CC 0003B42C 80 10 00 28 */ lwz r0, 0x28(r16) /* 8003F7D0 0003B430 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8003F7D4 0003B434 41 82 00 14 */ beq lbl_8003F7E8 /* 8003F7D8 0003B438 48 1F EA F9 */ bl func_8023E2D0 /* 8003F7DC 0003B43C 80 10 00 28 */ lwz r0, 0x28(r16) /* 8003F7E0 0003B440 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 8003F7E4 0003B444 90 10 00 28 */ stw r0, 0x28(r16) lbl_8003F7E8: /* 8003F7E8 0003B448 92 70 00 14 */ stw r19, 0x14(r16) lbl_8003F7EC: /* 8003F7EC 0003B44C 3B 51 00 18 */ addi r26, r17, 0x18 /* 8003F7F0 0003B450 3B 20 00 00 */ li r25, 0 /* 8003F7F4 0003B454 7F 5D D3 78 */ mr r29, r26 /* 8003F7F8 0003B458 3B E0 00 00 */ li r31, 0 lbl_8003F7FC: /* 8003F7FC 0003B45C 88 1D 00 00 */ lbz r0, 0(r29) /* 8003F800 0003B460 2C 00 00 00 */ cmpwi r0, 0 /* 8003F804 0003B464 41 82 03 D8 */ beq lbl_8003FBDC /* 8003F808 0003B468 9B FD 00 00 */ stb r31, 0(r29) /* 8003F80C 0003B46C 3A DD 00 0C */ addi r22, r29, 0xc /* 8003F810 0003B470 3A 1D 00 AC */ addi r16, r29, 0xac /* 8003F814 0003B474 3A A0 00 00 */ li r21, 0 /* 8003F818 0003B478 48 00 03 BC */ b lbl_8003FBD4 lbl_8003F81C: /* 8003F81C 0003B47C 83 96 00 00 */ lwz r28, 0(r22) /* 8003F820 0003B480 83 1D 00 04 */ lwz r24, 4(r29) /* 8003F824 0003B484 28 1C 00 64 */ cmplwi r28, 0x64 /* 8003F828 0003B488 82 F6 00 04 */ lwz r23, 4(r22) /* 8003F82C 0003B48C 41 82 00 10 */ beq lbl_8003F83C /* 8003F830 0003B490 80 16 00 0C */ lwz r0, 0xc(r22) /* 8003F834 0003B494 7C 1C 00 40 */ cmplw r28, r0 /* 8003F838 0003B498 41 82 03 94 */ beq lbl_8003FBCC lbl_8003F83C: /* 8003F83C 0003B49C 28 1C 00 64 */ cmplwi r28, 0x64 /* 8003F840 0003B4A0 83 76 00 14 */ lwz r27, 0x14(r22) /* 8003F844 0003B4A4 82 96 00 18 */ lwz r20, 0x18(r22) /* 8003F848 0003B4A8 40 82 00 08 */ bne lbl_8003F850 /* 8003F84C 0003B4AC 3A 80 00 00 */ li r20, 0 lbl_8003F850: /* 8003F850 0003B4B0 2C 1B 00 00 */ cmpwi r27, 0 /* 8003F854 0003B4B4 41 82 00 48 */ beq lbl_8003F89C /* 8003F858 0003B4B8 80 7B 00 08 */ lwz r3, 8(r27) /* 8003F85C 0003B4BC 2C 03 00 00 */ cmpwi r3, 0 /* 8003F860 0003B4C0 40 82 00 0C */ bne lbl_8003F86C /* 8003F864 0003B4C4 38 80 00 00 */ li r4, 0 /* 8003F868 0003B4C8 48 00 00 1C */ b lbl_8003F884 lbl_8003F86C: /* 8003F86C 0003B4CC A0 1B 00 DE */ lhz r0, 0xde(r27) /* 8003F870 0003B4D0 2C 00 00 00 */ cmpwi r0, 0 /* 8003F874 0003B4D4 40 82 00 0C */ bne lbl_8003F880 /* 8003F878 0003B4D8 38 80 00 00 */ li r4, 0 /* 8003F87C 0003B4DC 48 00 00 08 */ b lbl_8003F884 lbl_8003F880: /* 8003F880 0003B4E0 80 83 00 00 */ lwz r4, 0(r3) lbl_8003F884: /* 8003F884 0003B4E4 2C 04 00 00 */ cmpwi r4, 0 /* 8003F888 0003B4E8 41 82 00 14 */ beq lbl_8003F89C /* 8003F88C 0003B4EC 80 64 00 C0 */ lwz r3, 0xc0(r4) /* 8003F890 0003B4F0 2C 03 00 00 */ cmpwi r3, 0 /* 8003F894 0003B4F4 41 82 00 08 */ beq lbl_8003F89C /* 8003F898 0003B4F8 48 1B 29 91 */ bl func_801F2228 lbl_8003F89C: /* 8003F89C 0003B4FC 80 16 00 18 */ lwz r0, 0x18(r22) /* 8003F8A0 0003B500 2C 00 00 00 */ cmpwi r0, 0 /* 8003F8A4 0003B504 41 82 00 18 */ beq lbl_8003F8BC /* 8003F8A8 0003B508 80 96 00 1C */ lwz r4, 0x1c(r22) /* 8003F8AC 0003B50C 2C 04 00 00 */ cmpwi r4, 0 /* 8003F8B0 0003B510 41 82 00 0C */ beq lbl_8003F8BC /* 8003F8B4 0003B514 7E 43 93 78 */ mr r3, r18 /* 8003F8B8 0003B518 48 1B 6A 4D */ bl func_801F6304 lbl_8003F8BC: /* 8003F8BC 0003B51C 93 F6 00 14 */ stw r31, 0x14(r22) /* 8003F8C0 0003B520 93 F6 00 18 */ stw r31, 0x18(r22) /* 8003F8C4 0003B524 80 16 00 0C */ lwz r0, 0xc(r22) /* 8003F8C8 0003B528 90 16 00 00 */ stw r0, 0(r22) /* 8003F8CC 0003B52C 80 96 00 0C */ lwz r4, 0xc(r22) /* 8003F8D0 0003B530 80 16 00 10 */ lwz r0, 0x10(r22) /* 8003F8D4 0003B534 2C 04 00 00 */ cmpwi r4, 0 /* 8003F8D8 0003B538 90 16 00 04 */ stw r0, 4(r22) /* 8003F8DC 0003B53C 41 82 02 A0 */ beq lbl_8003FB7C /* 8003F8E0 0003B540 54 80 BE BE */ rlwinm r0, r4, 0x17, 0x1a, 0x1f /* 8003F8E4 0003B544 28 00 00 03 */ cmplwi r0, 3 /* 8003F8E8 0003B548 40 82 00 EC */ bne lbl_8003F9D4 /* 8003F8EC 0003B54C 7F 03 C3 78 */ mr r3, r24 /* 8003F8F0 0003B550 48 19 BB CD */ bl func_801DB4BC /* 8003F8F4 0003B554 7C 73 1B 78 */ mr r19, r3 /* 8003F8F8 0003B558 48 19 B2 31 */ bl func_801DAB28 /* 8003F8FC 0003B55C 2C 03 00 00 */ cmpwi r3, 0 /* 8003F900 0003B560 41 82 00 14 */ beq lbl_8003F914 /* 8003F904 0003B564 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8003F908 0003B568 38 80 01 54 */ li r4, 0x154 /* 8003F90C 0003B56C 48 19 B3 89 */ bl func_801DAC94 /* 8003F910 0003B570 48 00 00 08 */ b lbl_8003F918 lbl_8003F914: /* 8003F914 0003B574 38 60 00 00 */ li r3, 0 lbl_8003F918: /* 8003F918 0003B578 2C 03 00 00 */ cmpwi r3, 0 /* 8003F91C 0003B57C 41 82 00 10 */ beq lbl_8003F92C /* 8003F920 0003B580 80 B3 00 08 */ lwz r5, 8(r19) /* 8003F924 0003B584 38 80 00 00 */ li r4, 0 /* 8003F928 0003B588 48 1B 4C F5 */ bl func_801F461C lbl_8003F92C: /* 8003F92C 0003B58C 90 76 00 14 */ stw r3, 0x14(r22) /* 8003F930 0003B590 88 11 00 00 */ lbz r0, 0(r17) /* 8003F934 0003B594 2C 00 00 00 */ cmpwi r0, 0 /* 8003F938 0003B598 41 82 00 14 */ beq lbl_8003F94C /* 8003F93C 0003B59C 80 76 00 14 */ lwz r3, 0x14(r22) /* 8003F940 0003B5A0 48 1C 3E D1 */ bl func_80203810 /* 8003F944 0003B5A4 80 76 00 14 */ lwz r3, 0x14(r22) /* 8003F948 0003B5A8 48 1C 0F 11 */ bl func_80200858 lbl_8003F94C: /* 8003F94C 0003B5AC 80 92 00 08 */ lwz r4, 8(r18) /* 8003F950 0003B5B0 88 76 00 08 */ lbz r3, 8(r22) /* 8003F954 0003B5B4 2C 04 00 00 */ cmpwi r4, 0 /* 8003F958 0003B5B8 40 82 00 0C */ bne lbl_8003F964 /* 8003F95C 0003B5BC 38 60 00 00 */ li r3, 0 /* 8003F960 0003B5C0 48 00 00 20 */ b lbl_8003F980 lbl_8003F964: /* 8003F964 0003B5C4 A0 12 00 DE */ lhz r0, 0xde(r18) /* 8003F968 0003B5C8 7C 03 00 40 */ cmplw r3, r0 /* 8003F96C 0003B5CC 41 80 00 0C */ blt lbl_8003F978 /* 8003F970 0003B5D0 38 60 00 00 */ li r3, 0 /* 8003F974 0003B5D4 48 00 00 0C */ b lbl_8003F980 lbl_8003F978: /* 8003F978 0003B5D8 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 8003F97C 0003B5DC 7C 64 00 2E */ lwzx r3, r4, r0 lbl_8003F980: /* 8003F980 0003B5E0 80 96 00 14 */ lwz r4, 0x14(r22) /* 8003F984 0003B5E4 80 A4 00 08 */ lwz r5, 8(r4) /* 8003F988 0003B5E8 2C 05 00 00 */ cmpwi r5, 0 /* 8003F98C 0003B5EC 40 82 00 0C */ bne lbl_8003F998 /* 8003F990 0003B5F0 38 A0 00 00 */ li r5, 0 /* 8003F994 0003B5F4 48 00 00 1C */ b lbl_8003F9B0 lbl_8003F998: /* 8003F998 0003B5F8 A0 04 00 DE */ lhz r0, 0xde(r4) /* 8003F99C 0003B5FC 2C 00 00 00 */ cmpwi r0, 0 /* 8003F9A0 0003B600 40 82 00 0C */ bne lbl_8003F9AC /* 8003F9A4 0003B604 38 A0 00 00 */ li r5, 0 /* 8003F9A8 0003B608 48 00 00 08 */ b lbl_8003F9B0 lbl_8003F9AC: /* 8003F9AC 0003B60C 80 A5 00 00 */ lwz r5, 0(r5) lbl_8003F9B0: /* 8003F9B0 0003B610 2C 03 00 00 */ cmpwi r3, 0 /* 8003F9B4 0003B614 41 82 01 C8 */ beq lbl_8003FB7C /* 8003F9B8 0003B618 2C 05 00 00 */ cmpwi r5, 0 /* 8003F9BC 0003B61C 41 82 01 C0 */ beq lbl_8003FB7C /* 8003F9C0 0003B620 38 80 00 07 */ li r4, 7 /* 8003F9C4 0003B624 38 C0 00 00 */ li r6, 0 /* 8003F9C8 0003B628 38 E0 00 03 */ li r7, 3 /* 8003F9CC 0003B62C 48 1B 27 C1 */ bl func_801F218C /* 8003F9D0 0003B630 48 00 01 AC */ b lbl_8003FB7C lbl_8003F9D4: /* 8003F9D4 0003B634 28 00 00 04 */ cmplwi r0, 4 /* 8003F9D8 0003B638 41 82 00 0C */ beq lbl_8003F9E4 /* 8003F9DC 0003B63C 28 04 00 64 */ cmplwi r4, 0x64 /* 8003F9E0 0003B640 40 82 01 9C */ bne lbl_8003FB7C lbl_8003F9E4: /* 8003F9E4 0003B644 28 04 00 64 */ cmplwi r4, 0x64 /* 8003F9E8 0003B648 40 82 00 54 */ bne lbl_8003FA3C /* 8003F9EC 0003B64C 38 15 FF FF */ addi r0, r21, -1 /* 8003F9F0 0003B650 54 00 28 34 */ slwi r0, r0, 5 /* 8003F9F4 0003B654 7C 7D 02 14 */ add r3, r29, r0 /* 8003F9F8 0003B658 80 63 00 20 */ lwz r3, 0x20(r3) /* 8003F9FC 0003B65C 2C 03 00 00 */ cmpwi r3, 0 /* 8003FA00 0003B660 41 82 01 04 */ beq lbl_8003FB04 /* 8003FA04 0003B664 80 83 00 1C */ lwz r4, 0x1c(r3) /* 8003FA08 0003B668 2C 04 00 00 */ cmpwi r4, 0 /* 8003FA0C 0003B66C 40 82 00 0C */ bne lbl_8003FA18 /* 8003FA10 0003B670 38 00 00 00 */ li r0, 0 /* 8003FA14 0003B674 48 00 00 20 */ b lbl_8003FA34 lbl_8003FA18: /* 8003FA18 0003B678 A0 03 00 E6 */ lhz r0, 0xe6(r3) /* 8003FA1C 0003B67C 2C 00 00 00 */ cmpwi r0, 0 /* 8003FA20 0003B680 40 82 00 0C */ bne lbl_8003FA2C /* 8003FA24 0003B684 38 00 00 00 */ li r0, 0 /* 8003FA28 0003B688 48 00 00 0C */ b lbl_8003FA34 lbl_8003FA2C: /* 8003FA2C 0003B68C 80 64 00 00 */ lwz r3, 0(r4) /* 8003FA30 0003B690 80 03 00 14 */ lwz r0, 0x14(r3) lbl_8003FA34: /* 8003FA34 0003B694 90 16 00 18 */ stw r0, 0x18(r22) /* 8003FA38 0003B698 48 00 00 CC */ b lbl_8003FB04 lbl_8003FA3C: /* 8003FA3C 0003B69C 7F 03 C3 78 */ mr r3, r24 /* 8003FA40 0003B6A0 48 19 BA 7D */ bl func_801DB4BC /* 8003FA44 0003B6A4 7C 73 1B 78 */ mr r19, r3 /* 8003FA48 0003B6A8 48 19 B0 E1 */ bl func_801DAB28 /* 8003FA4C 0003B6AC 2C 03 00 00 */ cmpwi r3, 0 /* 8003FA50 0003B6B0 41 82 00 14 */ beq lbl_8003FA64 /* 8003FA54 0003B6B4 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8003FA58 0003B6B8 38 80 00 38 */ li r4, 0x38 /* 8003FA5C 0003B6BC 48 19 B2 39 */ bl func_801DAC94 /* 8003FA60 0003B6C0 48 00 00 08 */ b lbl_8003FA68 lbl_8003FA64: /* 8003FA64 0003B6C4 38 60 00 00 */ li r3, 0 lbl_8003FA68: /* 8003FA68 0003B6C8 2C 03 00 00 */ cmpwi r3, 0 /* 8003FA6C 0003B6CC 41 82 00 10 */ beq lbl_8003FA7C /* 8003FA70 0003B6D0 80 93 00 18 */ lwz r4, 0x18(r19) /* 8003FA74 0003B6D4 80 B3 00 14 */ lwz r5, 0x14(r19) /* 8003FA78 0003B6D8 48 1A 71 81 */ bl func_801E6BF8 lbl_8003FA7C: /* 8003FA7C 0003B6DC 90 76 00 18 */ stw r3, 0x18(r22) /* 8003FA80 0003B6E0 80 96 00 10 */ lwz r4, 0x10(r22) /* 8003FA84 0003B6E4 2C 04 00 00 */ cmpwi r4, 0 /* 8003FA88 0003B6E8 41 82 00 7C */ beq lbl_8003FB04 /* 8003FA8C 0003B6EC 7F 03 C3 78 */ mr r3, r24 /* 8003FA90 0003B6F0 48 19 BA 2D */ bl func_801DB4BC /* 8003FA94 0003B6F4 80 A3 00 1C */ lwz r5, 0x1c(r3) /* 8003FA98 0003B6F8 7C 73 1B 78 */ mr r19, r3 /* 8003FA9C 0003B6FC 2C 05 00 02 */ cmpwi r5, 2 /* 8003FAA0 0003B700 40 80 00 08 */ bge lbl_8003FAA8 /* 8003FAA4 0003B704 38 A0 00 02 */ li r5, 2 lbl_8003FAA8: /* 8003FAA8 0003B708 80 93 00 18 */ lwz r4, 0x18(r19) /* 8003FAAC 0003B70C 7E 63 9B 78 */ mr r3, r19 /* 8003FAB0 0003B710 2C 04 00 02 */ cmpwi r4, 2 /* 8003FAB4 0003B714 40 80 00 08 */ bge lbl_8003FABC /* 8003FAB8 0003B718 38 80 00 02 */ li r4, 2 lbl_8003FABC: /* 8003FABC 0003B71C 80 D3 00 20 */ lwz r6, 0x20(r19) /* 8003FAC0 0003B720 48 1F E9 09 */ bl func_8023E3C8 /* 8003FAC4 0003B724 83 D6 00 18 */ lwz r30, 0x18(r22) /* 8003FAC8 0003B728 80 7E 00 08 */ lwz r3, 8(r30) /* 8003FACC 0003B72C 80 03 00 50 */ lwz r0, 0x50(r3) /* 8003FAD0 0003B730 2C 00 00 00 */ cmpwi r0, 0 /* 8003FAD4 0003B734 41 82 00 30 */ beq lbl_8003FB04 /* 8003FAD8 0003B738 80 7E 00 14 */ lwz r3, 0x14(r30) /* 8003FADC 0003B73C 2C 03 00 00 */ cmpwi r3, 0 /* 8003FAE0 0003B740 41 82 00 20 */ beq lbl_8003FB00 /* 8003FAE4 0003B744 80 1E 00 28 */ lwz r0, 0x28(r30) /* 8003FAE8 0003B748 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 8003FAEC 0003B74C 41 82 00 14 */ beq lbl_8003FB00 /* 8003FAF0 0003B750 48 1F E7 E1 */ bl func_8023E2D0 /* 8003FAF4 0003B754 80 1E 00 28 */ lwz r0, 0x28(r30) /* 8003FAF8 0003B758 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e /* 8003FAFC 0003B75C 90 1E 00 28 */ stw r0, 0x28(r30) lbl_8003FB00: /* 8003FB00 0003B760 92 7E 00 14 */ stw r19, 0x14(r30) lbl_8003FB04: /* 8003FB04 0003B764 80 92 00 1C */ lwz r4, 0x1c(r18) /* 8003FB08 0003B768 88 76 00 08 */ lbz r3, 8(r22) /* 8003FB0C 0003B76C 2C 04 00 00 */ cmpwi r4, 0 /* 8003FB10 0003B770 40 82 00 0C */ bne lbl_8003FB1C /* 8003FB14 0003B774 38 60 00 00 */ li r3, 0 /* 8003FB18 0003B778 48 00 00 24 */ b lbl_8003FB3C lbl_8003FB1C: /* 8003FB1C 0003B77C A0 12 00 E6 */ lhz r0, 0xe6(r18) /* 8003FB20 0003B780 7C 03 00 40 */ cmplw r3, r0 /* 8003FB24 0003B784 41 80 00 0C */ blt lbl_8003FB30 /* 8003FB28 0003B788 38 60 00 00 */ li r3, 0 /* 8003FB2C 0003B78C 48 00 00 10 */ b lbl_8003FB3C lbl_8003FB30: /* 8003FB30 0003B790 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 8003FB34 0003B794 7C 64 00 2E */ lwzx r3, r4, r0 /* 8003FB38 0003B798 80 63 00 14 */ lwz r3, 0x14(r3) lbl_8003FB3C: /* 8003FB3C 0003B79C 2C 03 00 00 */ cmpwi r3, 0 /* 8003FB40 0003B7A0 41 82 00 3C */ beq lbl_8003FB7C /* 8003FB44 0003B7A4 80 16 00 18 */ lwz r0, 0x18(r22) /* 8003FB48 0003B7A8 2C 00 00 00 */ cmpwi r0, 0 /* 8003FB4C 0003B7AC 41 82 00 30 */ beq lbl_8003FB7C /* 8003FB50 0003B7B0 80 83 00 0C */ lwz r4, 0xc(r3) /* 8003FB54 0003B7B4 2C 04 00 00 */ cmpwi r4, 0 /* 8003FB58 0003B7B8 41 82 00 24 */ beq lbl_8003FB7C /* 8003FB5C 0003B7BC 80 04 00 00 */ lwz r0, 0(r4) /* 8003FB60 0003B7C0 2C 00 00 00 */ cmpwi r0, 0 /* 8003FB64 0003B7C4 41 82 00 18 */ beq lbl_8003FB7C /* 8003FB68 0003B7C8 90 16 00 1C */ stw r0, 0x1c(r22) /* 8003FB6C 0003B7CC 7E 43 93 78 */ mr r3, r18 /* 8003FB70 0003B7D0 80 84 00 00 */ lwz r4, 0(r4) /* 8003FB74 0003B7D4 80 B6 00 18 */ lwz r5, 0x18(r22) /* 8003FB78 0003B7D8 48 1B 66 ED */ bl func_801F6264 lbl_8003FB7C: /* 8003FB7C 0003B7DC 2C 1B 00 00 */ cmpwi r27, 0 /* 8003FB80 0003B7E0 41 82 00 10 */ beq lbl_8003FB90 /* 8003FB84 0003B7E4 7F 63 DB 78 */ mr r3, r27 /* 8003FB88 0003B7E8 38 80 00 01 */ li r4, 1 /* 8003FB8C 0003B7EC 48 1B 4F 65 */ bl func_801F4AF0 lbl_8003FB90: /* 8003FB90 0003B7F0 2C 14 00 00 */ cmpwi r20, 0 /* 8003FB94 0003B7F4 41 82 00 20 */ beq lbl_8003FBB4 /* 8003FB98 0003B7F8 41 82 00 1C */ beq lbl_8003FBB4 /* 8003FB9C 0003B7FC 81 94 00 34 */ lwz r12, 0x34(r20) /* 8003FBA0 0003B800 7E 83 A3 78 */ mr r3, r20 /* 8003FBA4 0003B804 38 80 00 01 */ li r4, 1 /* 8003FBA8 0003B808 81 8C 00 08 */ lwz r12, 8(r12) /* 8003FBAC 0003B80C 7D 89 03 A6 */ mtctr r12 /* 8003FBB0 0003B810 4E 80 04 21 */ bctrl lbl_8003FBB4: /* 8003FBB4 0003B814 7F 03 C3 78 */ mr r3, r24 /* 8003FBB8 0003B818 7F 84 E3 78 */ mr r4, r28 /* 8003FBBC 0003B81C 48 19 B9 8D */ bl func_801DB548 /* 8003FBC0 0003B820 7F 03 C3 78 */ mr r3, r24 /* 8003FBC4 0003B824 7E E4 BB 78 */ mr r4, r23 /* 8003FBC8 0003B828 48 19 B9 81 */ bl func_801DB548 lbl_8003FBCC: /* 8003FBCC 0003B82C 3A D6 00 20 */ addi r22, r22, 0x20 /* 8003FBD0 0003B830 3A B5 00 01 */ addi r21, r21, 1 lbl_8003FBD4: /* 8003FBD4 0003B834 7C 16 80 40 */ cmplw r22, r16 /* 8003FBD8 0003B838 40 82 FC 44 */ bne lbl_8003F81C lbl_8003FBDC: /* 8003FBDC 0003B83C 3B 39 00 01 */ addi r25, r25, 1 /* 8003FBE0 0003B840 3B BD 00 AC */ addi r29, r29, 0xac /* 8003FBE4 0003B844 2C 19 00 0A */ cmpwi r25, 0xa /* 8003FBE8 0003B848 41 80 FC 14 */ blt lbl_8003F7FC /* 8003FBEC 0003B84C 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8003FBF0 0003B850 3A 00 00 00 */ li r16, 0 /* 8003FBF4 0003B854 3A 63 CE 34 */ addi r19, r3, lbl_8063CE34@l lbl_8003FBF8: /* 8003FBF8 0003B858 88 11 00 01 */ lbz r0, 1(r17) /* 8003FBFC 0003B85C 2C 00 00 00 */ cmpwi r0, 0 /* 8003FC00 0003B860 41 82 00 1C */ beq lbl_8003FC1C /* 8003FC04 0003B864 80 91 00 04 */ lwz r4, 4(r17) /* 8003FC08 0003B868 7E 05 83 78 */ mr r5, r16 /* 8003FC0C 0003B86C 38 73 00 28 */ addi r3, r19, 0x28 /* 8003FC10 0003B870 48 35 64 81 */ bl func_80396090 /* 8003FC14 0003B874 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 8003FC18 0003B878 48 00 00 18 */ b lbl_8003FC30 lbl_8003FC1C: /* 8003FC1C 0003B87C 80 91 00 04 */ lwz r4, 4(r17) /* 8003FC20 0003B880 7E 05 83 78 */ mr r5, r16 /* 8003FC24 0003B884 38 73 00 28 */ addi r3, r19, 0x28 /* 8003FC28 0003B888 48 35 63 6D */ bl func_80395F94 /* 8003FC2C 0003B88C 54 63 06 3E */ clrlwi r3, r3, 0x18 lbl_8003FC30: /* 8003FC30 0003B890 2C 03 00 00 */ cmpwi r3, 0 /* 8003FC34 0003B894 41 82 00 48 */ beq lbl_8003FC7C /* 8003FC38 0003B898 80 92 00 08 */ lwz r4, 8(r18) /* 8003FC3C 0003B89C 2C 04 00 00 */ cmpwi r4, 0 /* 8003FC40 0003B8A0 40 82 00 0C */ bne lbl_8003FC4C /* 8003FC44 0003B8A4 38 60 00 00 */ li r3, 0 /* 8003FC48 0003B8A8 48 00 00 20 */ b lbl_8003FC68 lbl_8003FC4C: /* 8003FC4C 0003B8AC A0 12 00 DE */ lhz r0, 0xde(r18) /* 8003FC50 0003B8B0 7C 03 00 40 */ cmplw r3, r0 /* 8003FC54 0003B8B4 41 80 00 0C */ blt lbl_8003FC60 /* 8003FC58 0003B8B8 38 60 00 00 */ li r3, 0 /* 8003FC5C 0003B8BC 48 00 00 0C */ b lbl_8003FC68 lbl_8003FC60: /* 8003FC60 0003B8C0 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d /* 8003FC64 0003B8C4 7C 64 00 2E */ lwzx r3, r4, r0 lbl_8003FC68: /* 8003FC68 0003B8C8 2C 03 00 00 */ cmpwi r3, 0 /* 8003FC6C 0003B8CC 41 82 00 10 */ beq lbl_8003FC7C /* 8003FC70 0003B8D0 A0 03 00 10 */ lhz r0, 0x10(r3) /* 8003FC74 0003B8D4 60 00 00 02 */ ori r0, r0, 2 /* 8003FC78 0003B8D8 B0 03 00 10 */ sth r0, 0x10(r3) lbl_8003FC7C: /* 8003FC7C 0003B8DC 3A 10 00 01 */ addi r16, r16, 1 /* 8003FC80 0003B8E0 2C 10 00 04 */ cmpwi r16, 4 /* 8003FC84 0003B8E4 41 80 FF 74 */ blt lbl_8003FBF8 /* 8003FC88 0003B8E8 38 C0 00 00 */ li r6, 0 /* 8003FC8C 0003B8EC 38 00 00 02 */ li r0, 2 lbl_8003FC90: /* 8003FC90 0003B8F0 38 E0 00 00 */ li r7, 0 /* 8003FC94 0003B8F4 7C 09 03 A6 */ mtctr r0 lbl_8003FC98: /* 8003FC98 0003B8F8 7C 7A 3A 14 */ add r3, r26, r7 /* 8003FC9C 0003B8FC 88 83 00 08 */ lbz r4, 8(r3) /* 8003FCA0 0003B900 28 04 00 FF */ cmplwi r4, 0xff /* 8003FCA4 0003B904 41 82 00 48 */ beq lbl_8003FCEC /* 8003FCA8 0003B908 80 B2 00 08 */ lwz r5, 8(r18) /* 8003FCAC 0003B90C 2C 05 00 00 */ cmpwi r5, 0 /* 8003FCB0 0003B910 40 82 00 0C */ bne lbl_8003FCBC /* 8003FCB4 0003B914 38 80 00 00 */ li r4, 0 /* 8003FCB8 0003B918 48 00 00 20 */ b lbl_8003FCD8 lbl_8003FCBC: /* 8003FCBC 0003B91C A0 72 00 DE */ lhz r3, 0xde(r18) /* 8003FCC0 0003B920 7C 04 18 40 */ cmplw r4, r3 /* 8003FCC4 0003B924 41 80 00 0C */ blt lbl_8003FCD0 /* 8003FCC8 0003B928 38 80 00 00 */ li r4, 0 /* 8003FCCC 0003B92C 48 00 00 0C */ b lbl_8003FCD8 lbl_8003FCD0: /* 8003FCD0 0003B930 54 83 13 BA */ rlwinm r3, r4, 2, 0xe, 0x1d /* 8003FCD4 0003B934 7C 85 18 2E */ lwzx r4, r5, r3 lbl_8003FCD8: /* 8003FCD8 0003B938 2C 04 00 00 */ cmpwi r4, 0 /* 8003FCDC 0003B93C 41 82 00 10 */ beq lbl_8003FCEC /* 8003FCE0 0003B940 A0 64 00 10 */ lhz r3, 0x10(r4) /* 8003FCE4 0003B944 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d /* 8003FCE8 0003B948 B0 64 00 10 */ sth r3, 0x10(r4) lbl_8003FCEC: /* 8003FCEC 0003B94C 38 E7 00 01 */ addi r7, r7, 1 /* 8003FCF0 0003B950 7C 7A 3A 14 */ add r3, r26, r7 /* 8003FCF4 0003B954 88 83 00 08 */ lbz r4, 8(r3) /* 8003FCF8 0003B958 28 04 00 FF */ cmplwi r4, 0xff /* 8003FCFC 0003B95C 41 82 00 48 */ beq lbl_8003FD44 /* 8003FD00 0003B960 80 B2 00 08 */ lwz r5, 8(r18) /* 8003FD04 0003B964 2C 05 00 00 */ cmpwi r5, 0 /* 8003FD08 0003B968 40 82 00 0C */ bne lbl_8003FD14 /* 8003FD0C 0003B96C 38 80 00 00 */ li r4, 0 /* 8003FD10 0003B970 48 00 00 20 */ b lbl_8003FD30 lbl_8003FD14: /* 8003FD14 0003B974 A0 72 00 DE */ lhz r3, 0xde(r18) /* 8003FD18 0003B978 7C 04 18 40 */ cmplw r4, r3 /* 8003FD1C 0003B97C 41 80 00 0C */ blt lbl_8003FD28 /* 8003FD20 0003B980 38 80 00 00 */ li r4, 0 /* 8003FD24 0003B984 48 00 00 0C */ b lbl_8003FD30 lbl_8003FD28: /* 8003FD28 0003B988 54 83 13 BA */ rlwinm r3, r4, 2, 0xe, 0x1d /* 8003FD2C 0003B98C 7C 85 18 2E */ lwzx r4, r5, r3 lbl_8003FD30: /* 8003FD30 0003B990 2C 04 00 00 */ cmpwi r4, 0 /* 8003FD34 0003B994 41 82 00 10 */ beq lbl_8003FD44 /* 8003FD38 0003B998 A0 64 00 10 */ lhz r3, 0x10(r4) /* 8003FD3C 0003B99C 54 63 07 FA */ rlwinm r3, r3, 0, 0x1f, 0x1d /* 8003FD40 0003B9A0 B0 64 00 10 */ sth r3, 0x10(r4) lbl_8003FD44: /* 8003FD44 0003B9A4 38 E7 00 01 */ addi r7, r7, 1 /* 8003FD48 0003B9A8 42 00 FF 50 */ bdnz lbl_8003FC98 /* 8003FD4C 0003B9AC 38 C6 00 01 */ addi r6, r6, 1 /* 8003FD50 0003B9B0 3B 5A 00 AC */ addi r26, r26, 0xac /* 8003FD54 0003B9B4 2C 06 00 0A */ cmpwi r6, 0xa /* 8003FD58 0003B9B8 41 80 FF 38 */ blt lbl_8003FC90 /* 8003FD5C 0003B9BC 38 60 00 01 */ li r3, 1 lbl_8003FD60: /* 8003FD60 0003B9C0 39 61 00 50 */ addi r11, r1, 0x50 /* 8003FD64 0003B9C4 48 18 73 E5 */ bl _restgpr_16 /* 8003FD68 0003B9C8 80 01 00 54 */ lwz r0, 0x54(r1) /* 8003FD6C 0003B9CC 7C 08 03 A6 */ mtlr r0 /* 8003FD70 0003B9D0 38 21 00 50 */ addi r1, r1, 0x50 /* 8003FD74 0003B9D4 4E 80 00 20 */ blr .global func_8003FD78 func_8003FD78: /* 8003FD78 0003B9D8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8003FD7C 0003B9DC 7C 08 02 A6 */ mflr r0 /* 8003FD80 0003B9E0 90 01 00 24 */ stw r0, 0x24(r1) /* 8003FD84 0003B9E4 39 61 00 20 */ addi r11, r1, 0x20 /* 8003FD88 0003B9E8 48 18 73 9D */ bl _savegpr_26 /* 8003FD8C 0003B9EC 7C 7F 1B 78 */ mr r31, r3 /* 8003FD90 0003B9F0 7C 9A 23 78 */ mr r26, r4 /* 8003FD94 0003B9F4 7C BB 2B 78 */ mr r27, r5 /* 8003FD98 0003B9F8 3B A0 00 00 */ li r29, 0 lbl_8003FD9C: /* 8003FD9C 0003B9FC 7F FE FB 78 */ mr r30, r31 /* 8003FDA0 0003BA00 3B 80 00 00 */ li r28, 0 lbl_8003FDA4: /* 8003FDA4 0003BA04 80 9E 00 38 */ lwz r4, 0x38(r30) /* 8003FDA8 0003BA08 2C 04 00 00 */ cmpwi r4, 0 /* 8003FDAC 0003BA0C 41 82 00 20 */ beq lbl_8003FDCC /* 8003FDB0 0003BA10 2C 1B 00 00 */ cmpwi r27, 0 /* 8003FDB4 0003BA14 41 82 00 10 */ beq lbl_8003FDC4 /* 8003FDB8 0003BA18 7F 43 D3 78 */ mr r3, r26 /* 8003FDBC 0003BA1C 48 1C 0E 99 */ bl func_80200C54 /* 8003FDC0 0003BA20 48 00 00 0C */ b lbl_8003FDCC lbl_8003FDC4: /* 8003FDC4 0003BA24 7F 43 D3 78 */ mr r3, r26 /* 8003FDC8 0003BA28 48 1C 0F 41 */ bl func_80200D08 lbl_8003FDCC: /* 8003FDCC 0003BA2C 3B 9C 00 01 */ addi r28, r28, 1 /* 8003FDD0 0003BA30 3B DE 00 20 */ addi r30, r30, 0x20 /* 8003FDD4 0003BA34 2C 1C 00 05 */ cmpwi r28, 5 /* 8003FDD8 0003BA38 41 80 FF CC */ blt lbl_8003FDA4 /* 8003FDDC 0003BA3C 3B BD 00 01 */ addi r29, r29, 1 /* 8003FDE0 0003BA40 3B FF 00 AC */ addi r31, r31, 0xac /* 8003FDE4 0003BA44 2C 1D 00 0A */ cmpwi r29, 0xa /* 8003FDE8 0003BA48 41 80 FF B4 */ blt lbl_8003FD9C /* 8003FDEC 0003BA4C 39 61 00 20 */ addi r11, r1, 0x20 /* 8003FDF0 0003BA50 48 18 73 81 */ bl _restgpr_26 /* 8003FDF4 0003BA54 80 01 00 24 */ lwz r0, 0x24(r1) /* 8003FDF8 0003BA58 7C 08 03 A6 */ mtlr r0 /* 8003FDFC 0003BA5C 38 21 00 20 */ addi r1, r1, 0x20 /* 8003FE00 0003BA60 4E 80 00 20 */ blr .global func_8003FE04 func_8003FE04: /* 8003FE04 0003BA64 38 00 00 0A */ li r0, 0xa /* 8003FE08 0003BA68 39 20 00 00 */ li r9, 0 /* 8003FE0C 0003BA6C 7C 09 03 A6 */ mtctr r0 lbl_8003FE10: /* 8003FE10 0003BA70 55 20 04 3E */ clrlwi r0, r9, 0x10 /* 8003FE14 0003BA74 1C 00 00 AC */ mulli r0, r0, 0xac /* 8003FE18 0003BA78 7D 03 02 14 */ add r8, r3, r0 /* 8003FE1C 0003BA7C 81 48 00 38 */ lwz r10, 0x38(r8) /* 8003FE20 0003BA80 2C 0A 00 00 */ cmpwi r10, 0 /* 8003FE24 0003BA84 41 82 00 20 */ beq lbl_8003FE44 /* 8003FE28 0003BA88 B0 8A 01 4C */ sth r4, 0x14c(r10) /* 8003FE2C 0003BA8C B0 AA 01 4E */ sth r5, 0x14e(r10) /* 8003FE30 0003BA90 B0 CA 01 50 */ sth r6, 0x150(r10) /* 8003FE34 0003BA94 B0 EA 01 52 */ sth r7, 0x152(r10) /* 8003FE38 0003BA98 A0 0A 00 DC */ lhz r0, 0xdc(r10) /* 8003FE3C 0003BA9C 60 00 01 00 */ ori r0, r0, 0x100 /* 8003FE40 0003BAA0 B0 0A 00 DC */ sth r0, 0xdc(r10) lbl_8003FE44: /* 8003FE44 0003BAA4 81 48 00 58 */ lwz r10, 0x58(r8) /* 8003FE48 0003BAA8 2C 0A 00 00 */ cmpwi r10, 0 /* 8003FE4C 0003BAAC 41 82 00 20 */ beq lbl_8003FE6C /* 8003FE50 0003BAB0 B0 8A 01 4C */ sth r4, 0x14c(r10) /* 8003FE54 0003BAB4 B0 AA 01 4E */ sth r5, 0x14e(r10) /* 8003FE58 0003BAB8 B0 CA 01 50 */ sth r6, 0x150(r10) /* 8003FE5C 0003BABC B0 EA 01 52 */ sth r7, 0x152(r10) /* 8003FE60 0003BAC0 A0 0A 00 DC */ lhz r0, 0xdc(r10) /* 8003FE64 0003BAC4 60 00 01 00 */ ori r0, r0, 0x100 /* 8003FE68 0003BAC8 B0 0A 00 DC */ sth r0, 0xdc(r10) lbl_8003FE6C: /* 8003FE6C 0003BACC 81 48 00 78 */ lwz r10, 0x78(r8) /* 8003FE70 0003BAD0 2C 0A 00 00 */ cmpwi r10, 0 /* 8003FE74 0003BAD4 41 82 00 20 */ beq lbl_8003FE94 /* 8003FE78 0003BAD8 B0 8A 01 4C */ sth r4, 0x14c(r10) /* 8003FE7C 0003BADC B0 AA 01 4E */ sth r5, 0x14e(r10) /* 8003FE80 0003BAE0 B0 CA 01 50 */ sth r6, 0x150(r10) /* 8003FE84 0003BAE4 B0 EA 01 52 */ sth r7, 0x152(r10) /* 8003FE88 0003BAE8 A0 0A 00 DC */ lhz r0, 0xdc(r10) /* 8003FE8C 0003BAEC 60 00 01 00 */ ori r0, r0, 0x100 /* 8003FE90 0003BAF0 B0 0A 00 DC */ sth r0, 0xdc(r10) lbl_8003FE94: /* 8003FE94 0003BAF4 81 48 00 98 */ lwz r10, 0x98(r8) /* 8003FE98 0003BAF8 2C 0A 00 00 */ cmpwi r10, 0 /* 8003FE9C 0003BAFC 41 82 00 20 */ beq lbl_8003FEBC /* 8003FEA0 0003BB00 B0 8A 01 4C */ sth r4, 0x14c(r10) /* 8003FEA4 0003BB04 B0 AA 01 4E */ sth r5, 0x14e(r10) /* 8003FEA8 0003BB08 B0 CA 01 50 */ sth r6, 0x150(r10) /* 8003FEAC 0003BB0C B0 EA 01 52 */ sth r7, 0x152(r10) /* 8003FEB0 0003BB10 A0 0A 00 DC */ lhz r0, 0xdc(r10) /* 8003FEB4 0003BB14 60 00 01 00 */ ori r0, r0, 0x100 /* 8003FEB8 0003BB18 B0 0A 00 DC */ sth r0, 0xdc(r10) lbl_8003FEBC: /* 8003FEBC 0003BB1C 81 48 00 B8 */ lwz r10, 0xb8(r8) /* 8003FEC0 0003BB20 2C 0A 00 00 */ cmpwi r10, 0 /* 8003FEC4 0003BB24 41 82 00 20 */ beq lbl_8003FEE4 /* 8003FEC8 0003BB28 B0 8A 01 4C */ sth r4, 0x14c(r10) /* 8003FECC 0003BB2C B0 AA 01 4E */ sth r5, 0x14e(r10) /* 8003FED0 0003BB30 B0 CA 01 50 */ sth r6, 0x150(r10) /* 8003FED4 0003BB34 B0 EA 01 52 */ sth r7, 0x152(r10) /* 8003FED8 0003BB38 A0 0A 00 DC */ lhz r0, 0xdc(r10) /* 8003FEDC 0003BB3C 60 00 01 00 */ ori r0, r0, 0x100 /* 8003FEE0 0003BB40 B0 0A 00 DC */ sth r0, 0xdc(r10) lbl_8003FEE4: /* 8003FEE4 0003BB44 39 29 00 01 */ addi r9, r9, 1 /* 8003FEE8 0003BB48 42 00 FF 28 */ bdnz lbl_8003FE10 /* 8003FEEC 0003BB4C 4E 80 00 20 */ blr .global func_8003FEF0 func_8003FEF0: /* 8003FEF0 0003BB50 38 E0 00 00 */ li r7, 0 /* 8003FEF4 0003BB54 38 00 00 05 */ li r0, 5 lbl_8003FEF8: /* 8003FEF8 0003BB58 54 E5 04 3E */ clrlwi r5, r7, 0x10 /* 8003FEFC 0003BB5C 39 00 00 00 */ li r8, 0 /* 8003FF00 0003BB60 1C A5 00 AC */ mulli r5, r5, 0xac /* 8003FF04 0003BB64 7C C3 2A 14 */ add r6, r3, r5 /* 8003FF08 0003BB68 7C 09 03 A6 */ mtctr r0 lbl_8003FF0C: /* 8003FF0C 0003BB6C 55 05 2A F4 */ rlwinm r5, r8, 5, 0xb, 0x1a /* 8003FF10 0003BB70 7C A6 2A 14 */ add r5, r6, r5 /* 8003FF14 0003BB74 81 25 00 38 */ lwz r9, 0x38(r5) /* 8003FF18 0003BB78 2C 09 00 00 */ cmpwi r9, 0 /* 8003FF1C 0003BB7C 41 82 00 28 */ beq lbl_8003FF44 /* 8003FF20 0003BB80 2C 04 00 00 */ cmpwi r4, 0 /* 8003FF24 0003BB84 41 82 00 14 */ beq lbl_8003FF38 /* 8003FF28 0003BB88 A0 A9 00 DC */ lhz r5, 0xdc(r9) /* 8003FF2C 0003BB8C 60 A5 00 01 */ ori r5, r5, 1 /* 8003FF30 0003BB90 B0 A9 00 DC */ sth r5, 0xdc(r9) /* 8003FF34 0003BB94 48 00 00 10 */ b lbl_8003FF44 lbl_8003FF38: /* 8003FF38 0003BB98 A0 A9 00 DC */ lhz r5, 0xdc(r9) /* 8003FF3C 0003BB9C 54 A5 04 3C */ rlwinm r5, r5, 0, 0x10, 0x1e /* 8003FF40 0003BBA0 B0 A9 00 DC */ sth r5, 0xdc(r9) lbl_8003FF44: /* 8003FF44 0003BBA4 39 08 00 01 */ addi r8, r8, 1 /* 8003FF48 0003BBA8 42 00 FF C4 */ bdnz lbl_8003FF0C /* 8003FF4C 0003BBAC 38 E7 00 01 */ addi r7, r7, 1 /* 8003FF50 0003BBB0 28 07 00 0A */ cmplwi r7, 0xa /* 8003FF54 0003BBB4 41 80 FF A4 */ blt lbl_8003FEF8 /* 8003FF58 0003BBB8 4E 80 00 20 */ blr .global func_8003FF5C func_8003FF5C: /* 8003FF5C 0003BBBC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8003FF60 0003BBC0 7C 08 02 A6 */ mflr r0 /* 8003FF64 0003BBC4 90 01 00 24 */ stw r0, 0x24(r1) /* 8003FF68 0003BBC8 39 61 00 20 */ addi r11, r1, 0x20 /* 8003FF6C 0003BBCC 48 18 71 BD */ bl _savegpr_27 /* 8003FF70 0003BBD0 7C 7B 1B 78 */ mr r27, r3 /* 8003FF74 0003BBD4 7C 9C 23 78 */ mr r28, r4 /* 8003FF78 0003BBD8 3B C0 00 00 */ li r30, 0 lbl_8003FF7C: /* 8003FF7C 0003BBDC 57 C0 04 3E */ clrlwi r0, r30, 0x10 /* 8003FF80 0003BBE0 3B A0 00 00 */ li r29, 0 /* 8003FF84 0003BBE4 1C 00 00 AC */ mulli r0, r0, 0xac /* 8003FF88 0003BBE8 7F FB 02 14 */ add r31, r27, r0 lbl_8003FF8C: /* 8003FF8C 0003BBEC 57 A0 2A F4 */ rlwinm r0, r29, 5, 0xb, 0x1a /* 8003FF90 0003BBF0 7C 7F 02 14 */ add r3, r31, r0 /* 8003FF94 0003BBF4 80 63 00 38 */ lwz r3, 0x38(r3) /* 8003FF98 0003BBF8 2C 03 00 00 */ cmpwi r3, 0 /* 8003FF9C 0003BBFC 41 82 00 0C */ beq lbl_8003FFA8 /* 8003FFA0 0003BC00 7F 84 E3 78 */ mr r4, r28 /* 8003FFA4 0003BC04 48 1B 62 69 */ bl func_801F620C lbl_8003FFA8: /* 8003FFA8 0003BC08 3B BD 00 01 */ addi r29, r29, 1 /* 8003FFAC 0003BC0C 28 1D 00 05 */ cmplwi r29, 5 /* 8003FFB0 0003BC10 41 80 FF DC */ blt lbl_8003FF8C /* 8003FFB4 0003BC14 3B DE 00 01 */ addi r30, r30, 1 /* 8003FFB8 0003BC18 28 1E 00 0A */ cmplwi r30, 0xa /* 8003FFBC 0003BC1C 41 80 FF C0 */ blt lbl_8003FF7C /* 8003FFC0 0003BC20 39 61 00 20 */ addi r11, r1, 0x20 /* 8003FFC4 0003BC24 48 18 71 B1 */ bl _restgpr_27 /* 8003FFC8 0003BC28 80 01 00 24 */ lwz r0, 0x24(r1) /* 8003FFCC 0003BC2C 7C 08 03 A6 */ mtlr r0 /* 8003FFD0 0003BC30 38 21 00 20 */ addi r1, r1, 0x20 /* 8003FFD4 0003BC34 4E 80 00 20 */ blr .global func_8003FFD8 func_8003FFD8: /* 8003FFD8 0003BC38 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8003FFDC 0003BC3C 7C 08 02 A6 */ mflr r0 /* 8003FFE0 0003BC40 90 01 00 24 */ stw r0, 0x24(r1) /* 8003FFE4 0003BC44 39 61 00 20 */ addi r11, r1, 0x20 /* 8003FFE8 0003BC48 48 18 71 41 */ bl _savegpr_27 /* 8003FFEC 0003BC4C 7C 7B 1B 78 */ mr r27, r3 /* 8003FFF0 0003BC50 7C 9C 23 78 */ mr r28, r4 /* 8003FFF4 0003BC54 3B C0 00 00 */ li r30, 0 lbl_8003FFF8: /* 8003FFF8 0003BC58 57 C0 04 3E */ clrlwi r0, r30, 0x10 /* 8003FFFC 0003BC5C 3B A0 00 00 */ li r29, 0 /* 80040000 0003BC60 1C 00 00 AC */ mulli r0, r0, 0xac /* 80040004 0003BC64 7F FB 02 14 */ add r31, r27, r0 lbl_80040008: /* 80040008 0003BC68 57 A0 2A F4 */ rlwinm r0, r29, 5, 0xb, 0x1a /* 8004000C 0003BC6C 7C 7F 02 14 */ add r3, r31, r0 /* 80040010 0003BC70 80 63 00 38 */ lwz r3, 0x38(r3) /* 80040014 0003BC74 2C 03 00 00 */ cmpwi r3, 0 /* 80040018 0003BC78 41 82 00 0C */ beq lbl_80040024 /* 8004001C 0003BC7C 7F 84 E3 78 */ mr r4, r28 /* 80040020 0003BC80 48 1B 61 75 */ bl func_801F6194 lbl_80040024: /* 80040024 0003BC84 3B BD 00 01 */ addi r29, r29, 1 /* 80040028 0003BC88 28 1D 00 05 */ cmplwi r29, 5 /* 8004002C 0003BC8C 41 80 FF DC */ blt lbl_80040008 /* 80040030 0003BC90 3B DE 00 01 */ addi r30, r30, 1 /* 80040034 0003BC94 28 1E 00 0A */ cmplwi r30, 0xa /* 80040038 0003BC98 41 80 FF C0 */ blt lbl_8003FFF8 /* 8004003C 0003BC9C 39 61 00 20 */ addi r11, r1, 0x20 /* 80040040 0003BCA0 48 18 71 35 */ bl _restgpr_27 /* 80040044 0003BCA4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80040048 0003BCA8 7C 08 03 A6 */ mtlr r0 /* 8004004C 0003BCAC 38 21 00 20 */ addi r1, r1, 0x20 /* 80040050 0003BCB0 4E 80 00 20 */ blr .global func_80040054 func_80040054: /* 80040054 0003BCB4 38 00 00 0A */ li r0, 0xa /* 80040058 0003BCB8 38 C0 00 00 */ li r6, 0 /* 8004005C 0003BCBC 7C 09 03 A6 */ mtctr r0 lbl_80040060: /* 80040060 0003BCC0 54 C0 04 3E */ clrlwi r0, r6, 0x10 /* 80040064 0003BCC4 1C 00 00 AC */ mulli r0, r0, 0xac /* 80040068 0003BCC8 7C A3 02 14 */ add r5, r3, r0 /* 8004006C 0003BCCC 80 E5 00 38 */ lwz r7, 0x38(r5) /* 80040070 0003BCD0 2C 07 00 00 */ cmpwi r7, 0 /* 80040074 0003BCD4 41 82 00 08 */ beq lbl_8004007C /* 80040078 0003BCD8 90 87 00 3C */ stw r4, 0x3c(r7) lbl_8004007C: /* 8004007C 0003BCDC 80 E5 00 58 */ lwz r7, 0x58(r5) /* 80040080 0003BCE0 2C 07 00 00 */ cmpwi r7, 0 /* 80040084 0003BCE4 41 82 00 08 */ beq lbl_8004008C /* 80040088 0003BCE8 90 87 00 3C */ stw r4, 0x3c(r7) lbl_8004008C: /* 8004008C 0003BCEC 80 E5 00 78 */ lwz r7, 0x78(r5) /* 80040090 0003BCF0 2C 07 00 00 */ cmpwi r7, 0 /* 80040094 0003BCF4 41 82 00 08 */ beq lbl_8004009C /* 80040098 0003BCF8 90 87 00 3C */ stw r4, 0x3c(r7) lbl_8004009C: /* 8004009C 0003BCFC 80 E5 00 98 */ lwz r7, 0x98(r5) /* 800400A0 0003BD00 2C 07 00 00 */ cmpwi r7, 0 /* 800400A4 0003BD04 41 82 00 08 */ beq lbl_800400AC /* 800400A8 0003BD08 90 87 00 3C */ stw r4, 0x3c(r7) lbl_800400AC: /* 800400AC 0003BD0C 80 E5 00 B8 */ lwz r7, 0xb8(r5) /* 800400B0 0003BD10 2C 07 00 00 */ cmpwi r7, 0 /* 800400B4 0003BD14 41 82 00 08 */ beq lbl_800400BC /* 800400B8 0003BD18 90 87 00 3C */ stw r4, 0x3c(r7) lbl_800400BC: /* 800400BC 0003BD1C 38 C6 00 01 */ addi r6, r6, 1 /* 800400C0 0003BD20 42 00 FF A0 */ bdnz lbl_80040060 /* 800400C4 0003BD24 4E 80 00 20 */ blr .global func_800400C8 func_800400C8: /* 800400C8 0003BD28 38 A0 00 01 */ li r5, 1 /* 800400CC 0003BD2C 38 6D 97 C8 */ addi r3, r13, lbl_8063EA88-_SDA_BASE_ /* 800400D0 0003BD30 38 80 00 04 */ li r4, 4 /* 800400D4 0003BD34 38 00 00 00 */ li r0, 0 /* 800400D8 0003BD38 98 AD 97 C8 */ stb r5, lbl_8063EA88-_SDA_BASE_(r13) /* 800400DC 0003BD3C B0 83 00 02 */ sth r4, 2(r3) /* 800400E0 0003BD40 98 03 00 04 */ stb r0, 4(r3) /* 800400E4 0003BD44 4E 80 00 20 */ blr