1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
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
|