.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global GetButtonIndex GetButtonIndex: /* 80162784 0015E3E4 7C 60 00 34 */ cntlzw r0, r3 /* 80162788 0015E3E8 20 60 00 20 */ subfic r3, r0, 0x20 /* 8016278C 0015E3EC 4E 80 00 20 */ blr .global func_80162790 func_80162790: /* 80162790 0015E3F0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80162794 0015E3F4 7C 08 02 A6 */ mflr r0 /* 80162798 0015E3F8 3C 60 80 64 */ lis r3, lbl_8063CE34@ha /* 8016279C 0015E3FC 90 01 00 24 */ stw r0, 0x24(r1) /* 801627A0 0015E400 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801627A4 0015E404 93 C1 00 18 */ stw r30, 0x18(r1) /* 801627A8 0015E408 3B C3 CE 34 */ addi r30, r3, lbl_8063CE34@l /* 801627AC 0015E40C 38 7E 00 44 */ addi r3, r30, 0x44 /* 801627B0 0015E410 93 A1 00 14 */ stw r29, 0x14(r1) /* 801627B4 0015E414 93 81 00 10 */ stw r28, 0x10(r1) /* 801627B8 0015E418 48 23 3E E5 */ bl func_8039669C /* 801627BC 0015E41C 7C 7F 1B 78 */ mr r31, r3 /* 801627C0 0015E420 3B A0 00 00 */ li r29, 0 /* 801627C4 0015E424 3B 80 00 00 */ li r28, 0 /* 801627C8 0015E428 48 00 00 2C */ b lbl_801627F4 lbl_801627CC: /* 801627CC 0015E42C 7F 84 E3 78 */ mr r4, r28 /* 801627D0 0015E430 7F A5 EB 78 */ mr r5, r29 /* 801627D4 0015E434 38 7E 00 44 */ addi r3, r30, 0x44 /* 801627D8 0015E438 48 23 3F 7D */ bl func_80396754 /* 801627DC 0015E43C 7F 84 E3 78 */ mr r4, r28 /* 801627E0 0015E440 38 7E 00 44 */ addi r3, r30, 0x44 /* 801627E4 0015E444 48 23 3E D5 */ bl func_803966B8 /* 801627E8 0015E448 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 801627EC 0015E44C 3B 9C 00 01 */ addi r28, r28, 1 /* 801627F0 0015E450 7F BD 02 14 */ add r29, r29, r0 lbl_801627F4: /* 801627F4 0015E454 7C 1C F8 40 */ cmplw r28, r31 /* 801627F8 0015E458 41 80 FF D4 */ blt lbl_801627CC /* 801627FC 0015E45C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80162800 0015E460 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80162804 0015E464 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80162808 0015E468 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8016280C 0015E46C 83 81 00 10 */ lwz r28, 0x10(r1) /* 80162810 0015E470 7C 08 03 A6 */ mtlr r0 /* 80162814 0015E474 38 21 00 20 */ addi r1, r1, 0x20 /* 80162818 0015E478 4E 80 00 20 */ blr .global func_8016281C func_8016281C: /* 8016281C 0015E47C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80162820 0015E480 7C 08 02 A6 */ mflr r0 /* 80162824 0015E484 3C 80 80 64 */ lis r4, lbl_8063CE34@ha /* 80162828 0015E488 90 01 00 24 */ stw r0, 0x24(r1) /* 8016282C 0015E48C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80162830 0015E490 93 C1 00 18 */ stw r30, 0x18(r1) /* 80162834 0015E494 3B C4 CE 34 */ addi r30, r4, lbl_8063CE34@l /* 80162838 0015E498 93 A1 00 14 */ stw r29, 0x14(r1) /* 8016283C 0015E49C 7C 7D 1B 78 */ mr r29, r3 /* 80162840 0015E4A0 38 7E 00 44 */ addi r3, r30, 0x44 /* 80162844 0015E4A4 48 23 3E 59 */ bl func_8039669C /* 80162848 0015E4A8 9B AD 9D 7E */ stb r29, lbl_8063F03E-_SDA_BASE_(r13) /* 8016284C 0015E4AC 7C 7F 1B 78 */ mr r31, r3 /* 80162850 0015E4B0 3B A0 00 00 */ li r29, 0 /* 80162854 0015E4B4 48 00 00 24 */ b lbl_80162878 lbl_80162858: /* 80162858 0015E4B8 7F A4 EB 78 */ mr r4, r29 /* 8016285C 0015E4BC 38 7E 00 44 */ addi r3, r30, 0x44 /* 80162860 0015E4C0 48 23 3E 8D */ bl func_803966EC /* 80162864 0015E4C4 7C 64 1B 78 */ mr r4, r3 /* 80162868 0015E4C8 7F A3 EB 78 */ mr r3, r29 /* 8016286C 0015E4CC 38 A0 00 00 */ li r5, 0 /* 80162870 0015E4D0 48 00 00 D1 */ bl func_80162940 /* 80162874 0015E4D4 3B BD 00 01 */ addi r29, r29, 1 lbl_80162878: /* 80162878 0015E4D8 7C 1D F8 40 */ cmplw r29, r31 /* 8016287C 0015E4DC 41 80 FF DC */ blt lbl_80162858 /* 80162880 0015E4E0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80162884 0015E4E4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80162888 0015E4E8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8016288C 0015E4EC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80162890 0015E4F0 7C 08 03 A6 */ mtlr r0 /* 80162894 0015E4F4 38 21 00 20 */ addi r1, r1, 0x20 /* 80162898 0015E4F8 4E 80 00 20 */ blr .global func_8016289C func_8016289C: /* 8016289C 0015E4FC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801628A0 0015E500 7C 08 02 A6 */ mflr r0 /* 801628A4 0015E504 3C 80 80 64 */ lis r4, lbl_8063CE34@ha /* 801628A8 0015E508 90 01 00 24 */ stw r0, 0x24(r1) /* 801628AC 0015E50C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801628B0 0015E510 93 C1 00 18 */ stw r30, 0x18(r1) /* 801628B4 0015E514 3B C4 CE 34 */ addi r30, r4, lbl_8063CE34@l /* 801628B8 0015E518 93 A1 00 14 */ stw r29, 0x14(r1) /* 801628BC 0015E51C 7C 7D 1B 78 */ mr r29, r3 /* 801628C0 0015E520 38 7E 00 44 */ addi r3, r30, 0x44 /* 801628C4 0015E524 48 23 3D D9 */ bl func_8039669C /* 801628C8 0015E528 9B AD 9D 7E */ stb r29, lbl_8063F03E-_SDA_BASE_(r13) /* 801628CC 0015E52C 7C 7F 1B 78 */ mr r31, r3 /* 801628D0 0015E530 3B A0 00 00 */ li r29, 0 /* 801628D4 0015E534 48 00 00 3C */ b lbl_80162910 lbl_801628D8: /* 801628D8 0015E538 7F A4 EB 78 */ mr r4, r29 /* 801628DC 0015E53C 38 7E 00 44 */ addi r3, r30, 0x44 /* 801628E0 0015E540 48 23 3E AD */ bl func_8039678C /* 801628E4 0015E544 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 801628E8 0015E548 28 00 00 01 */ cmplwi r0, 1 /* 801628EC 0015E54C 40 82 00 20 */ bne lbl_8016290C /* 801628F0 0015E550 7F A4 EB 78 */ mr r4, r29 /* 801628F4 0015E554 38 7E 00 44 */ addi r3, r30, 0x44 /* 801628F8 0015E558 48 23 3D F5 */ bl func_803966EC /* 801628FC 0015E55C 7C 64 1B 78 */ mr r4, r3 /* 80162900 0015E560 7F A3 EB 78 */ mr r3, r29 /* 80162904 0015E564 38 A0 00 00 */ li r5, 0 /* 80162908 0015E568 48 00 00 39 */ bl func_80162940 lbl_8016290C: /* 8016290C 0015E56C 3B BD 00 01 */ addi r29, r29, 1 lbl_80162910: /* 80162910 0015E570 7C 1D F8 40 */ cmplw r29, r31 /* 80162914 0015E574 41 80 FF C4 */ blt lbl_801628D8 /* 80162918 0015E578 80 01 00 24 */ lwz r0, 0x24(r1) /* 8016291C 0015E57C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80162920 0015E580 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80162924 0015E584 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80162928 0015E588 7C 08 03 A6 */ mtlr r0 /* 8016292C 0015E58C 38 21 00 20 */ addi r1, r1, 0x20 /* 80162930 0015E590 4E 80 00 20 */ blr .global func_80162934 func_80162934: /* 80162934 0015E594 38 80 00 01 */ li r4, 1 /* 80162938 0015E598 38 A0 00 01 */ li r5, 1 /* 8016293C 0015E59C 48 00 00 04 */ b func_80162940 .global func_80162940 func_80162940: /* 80162940 0015E5A0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80162944 0015E5A4 7C 08 02 A6 */ mflr r0 /* 80162948 0015E5A8 90 01 00 24 */ stw r0, 0x24(r1) /* 8016294C 0015E5AC 39 61 00 20 */ addi r11, r1, 0x20 /* 80162950 0015E5B0 48 06 47 D9 */ bl _savegpr_27 /* 80162954 0015E5B4 3F A0 80 64 */ lis r29, lbl_8063CE34@ha /* 80162958 0015E5B8 7C 7E 1B 78 */ mr r30, r3 /* 8016295C 0015E5BC 3B BD CE 34 */ addi r29, r29, lbl_8063CE34@l /* 80162960 0015E5C0 7C 9C 23 78 */ mr r28, r4 /* 80162964 0015E5C4 7C BB 2B 78 */ mr r27, r5 /* 80162968 0015E5C8 7F C4 F3 78 */ mr r4, r30 /* 8016296C 0015E5CC 38 7D 00 44 */ addi r3, r29, 0x44 /* 80162970 0015E5D0 48 23 3D 49 */ bl func_803966B8 /* 80162974 0015E5D4 54 7F 06 3E */ clrlwi r31, r3, 0x18 /* 80162978 0015E5D8 7F C4 F3 78 */ mr r4, r30 /* 8016297C 0015E5DC 38 7D 00 44 */ addi r3, r29, 0x44 /* 80162980 0015E5E0 48 23 3D A1 */ bl func_80396720 /* 80162984 0015E5E4 2C 1B 00 00 */ cmpwi r27, 0 /* 80162988 0015E5E8 54 7B D9 7E */ srwi r27, r3, 5 /* 8016298C 0015E5EC 54 7E 06 FE */ clrlwi r30, r3, 0x1b /* 80162990 0015E5F0 41 82 00 0C */ beq lbl_8016299C /* 80162994 0015E5F4 4B FF CD 4D */ bl func_8015F6E0 /* 80162998 0015E5F8 48 00 00 0C */ b lbl_801629A4 lbl_8016299C: /* 8016299C 0015E5FC 88 6D 9D 7E */ lbz r3, lbl_8063F03E-_SDA_BASE_(r13) /* 801629A0 0015E600 4B FF CD 11 */ bl func_8015F6B0 lbl_801629A4: /* 801629A4 0015E604 3F A3 00 01 */ addis r29, r3, 1 /* 801629A8 0015E608 7F 83 E3 78 */ mr r3, r28 /* 801629AC 0015E60C 3B BD 24 D8 */ addi r29, r29, 0x24d8 /* 801629B0 0015E610 4B FF FD D5 */ bl GetButtonIndex /* 801629B4 0015E614 7C 03 F8 40 */ cmplw r3, r31 /* 801629B8 0015E618 40 81 00 18 */ ble lbl_801629D0 /* 801629BC 0015E61C 3C 60 80 42 */ lis r3, lbl_8041F078@ha /* 801629C0 0015E620 57 E0 10 3A */ slwi r0, r31, 2 /* 801629C4 0015E624 38 63 F0 78 */ addi r3, r3, lbl_8041F078@l /* 801629C8 0015E628 7C 03 00 2E */ lwzx r0, r3, r0 /* 801629CC 0015E62C 7F 9C 00 38 */ and r28, r28, r0 lbl_801629D0: /* 801629D0 0015E630 28 1F 00 01 */ cmplwi r31, 1 /* 801629D4 0015E634 40 81 00 68 */ ble lbl_80162A3C /* 801629D8 0015E638 3C 80 80 42 */ lis r4, lbl_8041F078@ha /* 801629DC 0015E63C 57 63 10 3A */ slwi r3, r27, 2 /* 801629E0 0015E640 57 E0 10 3A */ slwi r0, r31, 2 /* 801629E4 0015E644 7C DF F2 14 */ add r6, r31, r30 /* 801629E8 0015E648 7C BD 1A 14 */ add r5, r29, r3 /* 801629EC 0015E64C 38 84 F0 78 */ addi r4, r4, lbl_8041F078@l /* 801629F0 0015E650 7C 64 00 2E */ lwzx r3, r4, r0 /* 801629F4 0015E654 7F 80 F0 30 */ slw r0, r28, r30 /* 801629F8 0015E658 80 E5 00 00 */ lwz r7, 0(r5) /* 801629FC 0015E65C 28 06 00 20 */ cmplwi r6, 0x20 /* 80162A00 0015E660 7C 63 F0 30 */ slw r3, r3, r30 /* 80162A04 0015E664 7C E7 18 78 */ andc r7, r7, r3 /* 80162A08 0015E668 7C 00 3B 78 */ or r0, r0, r7 /* 80162A0C 0015E66C 90 05 00 00 */ stw r0, 0(r5) /* 80162A10 0015E670 41 80 00 68 */ blt lbl_80162A78 /* 80162A14 0015E674 38 E6 FF E0 */ addi r7, r6, -32 /* 80162A18 0015E678 80 C5 00 04 */ lwz r6, 4(r5) /* 80162A1C 0015E67C 54 E0 10 3A */ slwi r0, r7, 2 /* 80162A20 0015E680 7C 64 00 2E */ lwzx r3, r4, r0 /* 80162A24 0015E684 7C 07 F8 50 */ subf r0, r7, r31 /* 80162A28 0015E688 7F 80 04 30 */ srw r0, r28, r0 /* 80162A2C 0015E68C 7C C6 18 78 */ andc r6, r6, r3 /* 80162A30 0015E690 7C 00 33 78 */ or r0, r0, r6 /* 80162A34 0015E694 90 05 00 04 */ stw r0, 4(r5) /* 80162A38 0015E698 48 00 00 40 */ b lbl_80162A78 lbl_80162A3C: /* 80162A3C 0015E69C 2C 1C 00 00 */ cmpwi r28, 0 /* 80162A40 0015E6A0 40 82 00 20 */ bne lbl_80162A60 /* 80162A44 0015E6A4 57 64 10 3A */ slwi r4, r27, 2 /* 80162A48 0015E6A8 38 00 00 01 */ li r0, 1 /* 80162A4C 0015E6AC 7C 7D 20 2E */ lwzx r3, r29, r4 /* 80162A50 0015E6B0 7C 00 F0 30 */ slw r0, r0, r30 /* 80162A54 0015E6B4 7C 60 00 78 */ andc r0, r3, r0 /* 80162A58 0015E6B8 7C 1D 21 2E */ stwx r0, r29, r4 /* 80162A5C 0015E6BC 48 00 00 1C */ b lbl_80162A78 lbl_80162A60: /* 80162A60 0015E6C0 57 64 10 3A */ slwi r4, r27, 2 /* 80162A64 0015E6C4 38 00 00 01 */ li r0, 1 /* 80162A68 0015E6C8 7C 7D 20 2E */ lwzx r3, r29, r4 /* 80162A6C 0015E6CC 7C 00 F0 30 */ slw r0, r0, r30 /* 80162A70 0015E6D0 7C 60 03 78 */ or r0, r3, r0 /* 80162A74 0015E6D4 7C 1D 21 2E */ stwx r0, r29, r4 lbl_80162A78: /* 80162A78 0015E6D8 39 61 00 20 */ addi r11, r1, 0x20 /* 80162A7C 0015E6DC 48 06 46 F9 */ bl _restgpr_27 /* 80162A80 0015E6E0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80162A84 0015E6E4 7C 08 03 A6 */ mtlr r0 /* 80162A88 0015E6E8 38 21 00 20 */ addi r1, r1, 0x20 /* 80162A8C 0015E6EC 4E 80 00 20 */ blr .global func_80162A90 func_80162A90: /* 80162A90 0015E6F0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80162A94 0015E6F4 7C 08 02 A6 */ mflr r0 /* 80162A98 0015E6F8 90 01 00 24 */ stw r0, 0x24(r1) /* 80162A9C 0015E6FC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80162AA0 0015E700 3F E0 80 64 */ lis r31, lbl_8063CE34@ha /* 80162AA4 0015E704 3B FF CE 34 */ addi r31, r31, lbl_8063CE34@l /* 80162AA8 0015E708 93 C1 00 18 */ stw r30, 0x18(r1) /* 80162AAC 0015E70C 93 A1 00 14 */ stw r29, 0x14(r1) /* 80162AB0 0015E710 7C 7D 1B 78 */ mr r29, r3 /* 80162AB4 0015E714 7F A4 EB 78 */ mr r4, r29 /* 80162AB8 0015E718 38 7F 00 44 */ addi r3, r31, 0x44 /* 80162ABC 0015E71C 48 23 3B FD */ bl func_803966B8 /* 80162AC0 0015E720 54 7E 06 3E */ clrlwi r30, r3, 0x18 /* 80162AC4 0015E724 7F A4 EB 78 */ mr r4, r29 /* 80162AC8 0015E728 38 7F 00 44 */ addi r3, r31, 0x44 /* 80162ACC 0015E72C 48 23 3C 55 */ bl func_80396720 /* 80162AD0 0015E730 54 7F D9 7E */ srwi r31, r3, 5 /* 80162AD4 0015E734 54 7D 06 FE */ clrlwi r29, r3, 0x1b /* 80162AD8 0015E738 4B FF CC 09 */ bl func_8015F6E0 /* 80162ADC 0015E73C 28 1E 00 01 */ cmplwi r30, 1 /* 80162AE0 0015E740 3C A3 00 01 */ addis r5, r3, 1 /* 80162AE4 0015E744 38 A5 24 D8 */ addi r5, r5, 0x24d8 /* 80162AE8 0015E748 40 81 00 3C */ ble lbl_80162B24 /* 80162AEC 0015E74C 57 E0 10 3A */ slwi r0, r31, 2 /* 80162AF0 0015E750 3C 60 80 42 */ lis r3, lbl_8041F078@ha /* 80162AF4 0015E754 7C 85 02 14 */ add r4, r5, r0 /* 80162AF8 0015E758 7C A5 00 2E */ lwzx r5, r5, r0 /* 80162AFC 0015E75C 80 C4 00 04 */ lwz r6, 4(r4) /* 80162B00 0015E760 20 9D 00 20 */ subfic r4, r29, 0x20 /* 80162B04 0015E764 57 C0 10 3A */ slwi r0, r30, 2 /* 80162B08 0015E768 38 63 F0 78 */ addi r3, r3, lbl_8041F078@l /* 80162B0C 0015E76C 7C A5 EC 30 */ srw r5, r5, r29 /* 80162B10 0015E770 7C C6 20 30 */ slw r6, r6, r4 /* 80162B14 0015E774 7C 03 00 2E */ lwzx r0, r3, r0 /* 80162B18 0015E778 7C C3 2B 78 */ or r3, r6, r5 /* 80162B1C 0015E77C 7C 63 00 38 */ and r3, r3, r0 /* 80162B20 0015E780 48 00 00 14 */ b lbl_80162B34 lbl_80162B24: /* 80162B24 0015E784 57 E0 10 3A */ slwi r0, r31, 2 /* 80162B28 0015E788 7C 05 00 2E */ lwzx r0, r5, r0 /* 80162B2C 0015E78C 7C 00 EC 30 */ srw r0, r0, r29 /* 80162B30 0015E790 54 03 07 FE */ clrlwi r3, r0, 0x1f lbl_80162B34: /* 80162B34 0015E794 80 01 00 24 */ lwz r0, 0x24(r1) /* 80162B38 0015E798 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80162B3C 0015E79C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80162B40 0015E7A0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80162B44 0015E7A4 7C 08 03 A6 */ mtlr r0 /* 80162B48 0015E7A8 38 21 00 20 */ addi r1, r1, 0x20 /* 80162B4C 0015E7AC 4E 80 00 20 */ blr .global func_80162B50 func_80162B50: /* 80162B50 0015E7B0 38 A0 00 01 */ li r5, 1 /* 80162B54 0015E7B4 38 6D 9D 78 */ addi r3, r13, lbl_8063F038-_SDA_BASE_ /* 80162B58 0015E7B8 38 80 00 04 */ li r4, 4 /* 80162B5C 0015E7BC 38 00 00 00 */ li r0, 0 /* 80162B60 0015E7C0 98 AD 9D 78 */ stb r5, lbl_8063F038-_SDA_BASE_(r13) /* 80162B64 0015E7C4 B0 83 00 02 */ sth r4, 2(r3) /* 80162B68 0015E7C8 98 03 00 04 */ stb r0, 4(r3) /* 80162B6C 0015E7CC 4E 80 00 20 */ blr