summaryrefslogtreecommitdiff
path: root/asm/code_80162784.s
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-15 12:40:00 -0400
committerMax <mparisi@stevens.edu>2020-10-15 12:40:00 -0400
commit2e8cc28cb1295d67beef38ec46b5f56ae5c15aaf (patch)
tree3e499ee3bddebeeb78dc01ad03228e3a7e524f86 /asm/code_80162784.s
parentdec85bbe62409ebef073caa70474050768784429 (diff)
split text_3 and most of text_4, with linker errors
Diffstat (limited to 'asm/code_80162784.s')
-rw-r--r--asm/code_80162784.s293
1 files changed, 293 insertions, 0 deletions
diff --git a/asm/code_80162784.s b/asm/code_80162784.s
new file mode 100644
index 0000000..b9ab039
--- /dev/null
+++ b/asm/code_80162784.s
@@ -0,0 +1,293 @@
+.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