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
294
295
296
297
298
299
300
301
302
303
304
305
306
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global func_8017C588
func_8017C588:
/* 8017C588 001781E8 80 6D 9F 78 */ lwz r3, lbl_8063F238-_SDA_BASE_(r13)
/* 8017C58C 001781EC 4E 80 00 20 */ blr
.global func_8017C590
func_8017C590:
/* 8017C590 001781F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8017C594 001781F4 7C 08 02 A6 */ mflr r0
/* 8017C598 001781F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017C59C 001781FC 80 0D 9F 78 */ lwz r0, lbl_8063F238-_SDA_BASE_(r13)
/* 8017C5A0 00178200 2C 00 00 00 */ cmpwi r0, 0
/* 8017C5A4 00178204 40 82 00 1C */ bne lbl_8017C5C0
/* 8017C5A8 00178208 38 60 00 BC */ li r3, 0xbc
/* 8017C5AC 0017820C 48 05 E4 85 */ bl __nw__FUl
/* 8017C5B0 00178210 2C 03 00 00 */ cmpwi r3, 0
/* 8017C5B4 00178214 41 82 00 08 */ beq lbl_8017C5BC
/* 8017C5B8 00178218 48 00 00 4D */ bl func_8017C604
lbl_8017C5BC:
/* 8017C5BC 0017821C 90 6D 9F 78 */ stw r3, lbl_8063F238-_SDA_BASE_(r13)
lbl_8017C5C0:
/* 8017C5C0 00178220 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017C5C4 00178224 7C 08 03 A6 */ mtlr r0
/* 8017C5C8 00178228 38 21 00 10 */ addi r1, r1, 0x10
/* 8017C5CC 0017822C 4E 80 00 20 */ blr
.global func_8017C5D0
func_8017C5D0:
/* 8017C5D0 00178230 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8017C5D4 00178234 7C 08 02 A6 */ mflr r0
/* 8017C5D8 00178238 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017C5DC 0017823C 80 6D 9F 78 */ lwz r3, lbl_8063F238-_SDA_BASE_(r13)
/* 8017C5E0 00178240 2C 03 00 00 */ cmpwi r3, 0
/* 8017C5E4 00178244 41 82 00 10 */ beq lbl_8017C5F4
/* 8017C5E8 00178248 48 05 E4 D1 */ bl __dl__FPv
/* 8017C5EC 0017824C 38 00 00 00 */ li r0, 0
/* 8017C5F0 00178250 90 0D 9F 78 */ stw r0, lbl_8063F238-_SDA_BASE_(r13)
lbl_8017C5F4:
/* 8017C5F4 00178254 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017C5F8 00178258 7C 08 03 A6 */ mtlr r0
/* 8017C5FC 0017825C 38 21 00 10 */ addi r1, r1, 0x10
/* 8017C600 00178260 4E 80 00 20 */ blr
.global func_8017C604
func_8017C604:
/* 8017C604 00178264 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8017C608 00178268 7C 08 02 A6 */ mflr r0
/* 8017C60C 0017826C 38 80 00 00 */ li r4, 0
/* 8017C610 00178270 38 A0 00 90 */ li r5, 0x90
/* 8017C614 00178274 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017C618 00178278 38 00 00 00 */ li r0, 0
/* 8017C61C 0017827C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8017C620 00178280 7C 7F 1B 78 */ mr r31, r3
/* 8017C624 00178284 98 03 00 00 */ stb r0, 0(r3)
/* 8017C628 00178288 38 63 00 02 */ addi r3, r3, 2
/* 8017C62C 0017828C 4B E8 7A D9 */ bl memset
/* 8017C630 00178290 7F E3 FB 78 */ mr r3, r31
/* 8017C634 00178294 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8017C638 00178298 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017C63C 0017829C 7C 08 03 A6 */ mtlr r0
/* 8017C640 001782A0 38 21 00 10 */ addi r1, r1, 0x10
/* 8017C644 001782A4 4E 80 00 20 */ blr
.global func_8017C648
func_8017C648:
/* 8017C648 001782A8 88 63 00 00 */ lbz r3, 0(r3)
/* 8017C64C 001782AC 4E 80 00 20 */ blr
.global func_8017C650
func_8017C650:
/* 8017C650 001782B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8017C654 001782B4 7C 08 02 A6 */ mflr r0
/* 8017C658 001782B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8017C65C 001782BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8017C660 001782C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8017C664 001782C4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8017C668 001782C8 7C BD 2B 78 */ mr r29, r5
/* 8017C66C 001782CC 93 81 00 10 */ stw r28, 0x10(r1)
/* 8017C670 001782D0 7C 7C 1B 78 */ mr r28, r3
/* 8017C674 001782D4 88 03 00 00 */ lbz r0, 0(r3)
/* 8017C678 001782D8 2C 00 00 00 */ cmpwi r0, 0
/* 8017C67C 001782DC 41 82 00 3C */ beq lbl_8017C6B8
/* 8017C680 001782E0 7C 9F 23 78 */ mr r31, r4
/* 8017C684 001782E4 3B C0 00 00 */ li r30, 0
/* 8017C688 001782E8 48 00 00 28 */ b lbl_8017C6B0
lbl_8017C68C:
/* 8017C68C 001782EC A0 9F 00 04 */ lhz r4, 4(r31)
/* 8017C690 001782F0 7F 83 E3 78 */ mr r3, r28
/* 8017C694 001782F4 48 00 02 69 */ bl func_8017C8FC
/* 8017C698 001782F8 7C 64 1B 78 */ mr r4, r3
/* 8017C69C 001782FC 38 7F 00 1C */ addi r3, r31, 0x1c
/* 8017C6A0 00178300 38 A0 00 20 */ li r5, 0x20
/* 8017C6A4 00178304 4B E8 79 5D */ bl memcpy
/* 8017C6A8 00178308 3B DE 00 01 */ addi r30, r30, 1
/* 8017C6AC 0017830C 3B FF 00 3C */ addi r31, r31, 0x3c
lbl_8017C6B0:
/* 8017C6B0 00178310 7C 1E E8 00 */ cmpw r30, r29
/* 8017C6B4 00178314 41 80 FF D8 */ blt lbl_8017C68C
lbl_8017C6B8:
/* 8017C6B8 00178318 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8017C6BC 0017831C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8017C6C0 00178320 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8017C6C4 00178324 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8017C6C8 00178328 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8017C6CC 0017832C 7C 08 03 A6 */ mtlr r0
/* 8017C6D0 00178330 38 21 00 20 */ addi r1, r1, 0x20
/* 8017C6D4 00178334 4E 80 00 20 */ blr
.global func_8017C6D8
func_8017C6D8:
/* 8017C6D8 00178338 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8017C6DC 0017833C 7C 08 02 A6 */ mflr r0
/* 8017C6E0 00178340 90 01 00 84 */ stw r0, 0x84(r1)
/* 8017C6E4 00178344 39 61 00 80 */ addi r11, r1, 0x80
/* 8017C6E8 00178348 48 04 AA 41 */ bl _savegpr_27
/* 8017C6EC 0017834C 7C 7C 1B 78 */ mr r28, r3
/* 8017C6F0 00178350 7C 9B 23 78 */ mr r27, r4
/* 8017C6F4 00178354 38 60 00 00 */ li r3, 0
/* 8017C6F8 00178358 4B FE 85 75 */ bl func_80164C6C
/* 8017C6FC 0017835C 80 1B 00 0C */ lwz r0, 0xc(r27)
/* 8017C700 00178360 2C 00 00 03 */ cmpwi r0, 3
/* 8017C704 00178364 40 82 00 34 */ bne lbl_8017C738
/* 8017C708 00178368 2C 03 00 00 */ cmpwi r3, 0
/* 8017C70C 0017836C 41 82 00 2C */ beq lbl_8017C738
/* 8017C710 00178370 4B FE A3 AD */ bl func_80166ABC
/* 8017C714 00178374 2C 03 00 00 */ cmpwi r3, 0
/* 8017C718 00178378 40 82 00 20 */ bne lbl_8017C738
/* 8017C71C 0017837C 38 60 02 68 */ li r3, 0x268
/* 8017C720 00178380 4B FE 63 71 */ bl func_80162A90
/* 8017C724 00178384 2C 03 00 00 */ cmpwi r3, 0
/* 8017C728 00178388 40 82 00 10 */ bne lbl_8017C738
/* 8017C72C 0017838C 38 00 00 01 */ li r0, 1
/* 8017C730 00178390 98 1C 00 00 */ stb r0, 0(r28)
/* 8017C734 00178394 48 00 00 10 */ b lbl_8017C744
lbl_8017C738:
/* 8017C738 00178398 38 00 00 00 */ li r0, 0
/* 8017C73C 0017839C 98 1C 00 00 */ stb r0, 0(r28)
/* 8017C740 001783A0 48 00 00 98 */ b lbl_8017C7D8
lbl_8017C744:
/* 8017C744 001783A4 3B BC 00 02 */ addi r29, r28, 2
/* 8017C748 001783A8 3F E0 80 64 */ lis r31, lbl_8063CE34@ha
/* 8017C74C 001783AC 3B DB 14 20 */ addi r30, r27, 0x1420
/* 8017C750 001783B0 3B 60 00 00 */ li r27, 0
/* 8017C754 001783B4 7F BC EB 78 */ mr r28, r29
/* 8017C758 001783B8 3B FF CE 34 */ addi r31, r31, lbl_8063CE34@l
lbl_8017C75C:
/* 8017C75C 001783BC 7F C3 F3 78 */ mr r3, r30
/* 8017C760 001783C0 7F A5 EB 78 */ mr r5, r29
/* 8017C764 001783C4 38 80 00 74 */ li r4, 0x74
/* 8017C768 001783C8 48 25 E7 95 */ bl func_803DAEFC
/* 8017C76C 001783CC 7F 84 E3 78 */ mr r4, r28
/* 8017C770 001783D0 38 61 00 08 */ addi r3, r1, 8
/* 8017C774 001783D4 38 A0 00 20 */ li r5, 0x20
/* 8017C778 001783D8 4B FF AA B5 */ bl func_8017722C
/* 8017C77C 001783DC 7F C3 F3 78 */ mr r3, r30
/* 8017C780 001783E0 38 80 00 05 */ li r4, 5
/* 8017C784 001783E4 38 A0 00 00 */ li r5, 0
/* 8017C788 001783E8 48 25 E7 75 */ bl func_803DAEFC
/* 8017C78C 001783EC 7C 64 1B 78 */ mr r4, r3
/* 8017C790 001783F0 38 7F 00 10 */ addi r3, r31, 0x10
/* 8017C794 001783F4 48 21 58 01 */ bl func_80391F94
/* 8017C798 001783F8 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 8017C79C 001783FC 48 0D 3B 59 */ bl func_802502F4
/* 8017C7A0 00178400 7C 64 1B 78 */ mr r4, r3
/* 8017C7A4 00178404 38 61 00 28 */ addi r3, r1, 0x28
/* 8017C7A8 00178408 38 A0 00 10 */ li r5, 0x10
/* 8017C7AC 0017840C 4B FF A7 09 */ bl func_80176EB4
/* 8017C7B0 00178410 7F C3 F3 78 */ mr r3, r30
/* 8017C7B4 00178414 38 A1 00 28 */ addi r5, r1, 0x28
/* 8017C7B8 00178418 38 80 00 74 */ li r4, 0x74
/* 8017C7BC 0017841C 48 25 EE BD */ bl func_803DB678
/* 8017C7C0 00178420 3B 7B 00 01 */ addi r27, r27, 1
/* 8017C7C4 00178424 3B BD 00 18 */ addi r29, r29, 0x18
/* 8017C7C8 00178428 2C 1B 00 06 */ cmpwi r27, 6
/* 8017C7CC 0017842C 3B 9C 00 18 */ addi r28, r28, 0x18
/* 8017C7D0 00178430 3B DE 00 8C */ addi r30, r30, 0x8c
/* 8017C7D4 00178434 41 80 FF 88 */ blt lbl_8017C75C
lbl_8017C7D8:
/* 8017C7D8 00178438 39 61 00 80 */ addi r11, r1, 0x80
/* 8017C7DC 0017843C 48 04 A9 99 */ bl _restgpr_27
/* 8017C7E0 00178440 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8017C7E4 00178444 7C 08 03 A6 */ mtlr r0
/* 8017C7E8 00178448 38 21 00 80 */ addi r1, r1, 0x80
/* 8017C7EC 0017844C 4E 80 00 20 */ blr
.global func_8017C7F0
func_8017C7F0:
/* 8017C7F0 00178450 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8017C7F4 00178454 7C 08 02 A6 */ mflr r0
/* 8017C7F8 00178458 90 01 00 24 */ stw r0, 0x24(r1)
/* 8017C7FC 0017845C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8017C800 00178460 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8017C804 00178464 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8017C808 00178468 7C BD 2B 78 */ mr r29, r5
/* 8017C80C 0017846C 93 81 00 10 */ stw r28, 0x10(r1)
/* 8017C810 00178470 7C 7C 1B 78 */ mr r28, r3
/* 8017C814 00178474 88 03 00 00 */ lbz r0, 0(r3)
/* 8017C818 00178478 2C 00 00 00 */ cmpwi r0, 0
/* 8017C81C 0017847C 41 82 00 60 */ beq lbl_8017C87C
/* 8017C820 00178480 54 80 10 3A */ slwi r0, r4, 2
/* 8017C824 00178484 3B E0 00 00 */ li r31, 0
/* 8017C828 00178488 7C 63 02 14 */ add r3, r3, r0
/* 8017C82C 0017848C 90 A3 00 B4 */ stw r5, 0xb4(r3)
lbl_8017C830:
/* 8017C830 00178490 7F A3 EB 78 */ mr r3, r29
/* 8017C834 00178494 7F E4 FB 78 */ mr r4, r31
/* 8017C838 00178498 48 26 21 15 */ bl func_803DE94C
/* 8017C83C 0017849C 7C 7E 1B 78 */ mr r30, r3
/* 8017C840 001784A0 38 80 00 05 */ li r4, 5
/* 8017C844 001784A4 38 A0 00 00 */ li r5, 0
/* 8017C848 001784A8 48 26 11 95 */ bl func_803DD9DC
/* 8017C84C 001784AC 7C 64 1B 78 */ mr r4, r3
/* 8017C850 001784B0 7F 83 E3 78 */ mr r3, r28
/* 8017C854 001784B4 48 00 00 A9 */ bl func_8017C8FC
/* 8017C858 001784B8 2C 03 00 00 */ cmpwi r3, 0
/* 8017C85C 001784BC 7C 65 1B 78 */ mr r5, r3
/* 8017C860 001784C0 41 82 00 10 */ beq lbl_8017C870
/* 8017C864 001784C4 7F C3 F3 78 */ mr r3, r30
/* 8017C868 001784C8 38 80 00 74 */ li r4, 0x74
/* 8017C86C 001784CC 48 25 EC B9 */ bl func_803DB524
lbl_8017C870:
/* 8017C870 001784D0 3B FF 00 01 */ addi r31, r31, 1
/* 8017C874 001784D4 2C 1F 00 06 */ cmpwi r31, 6
/* 8017C878 001784D8 41 80 FF B8 */ blt lbl_8017C830
lbl_8017C87C:
/* 8017C87C 001784DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8017C880 001784E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8017C884 001784E4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8017C888 001784E8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8017C88C 001784EC 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8017C890 001784F0 7C 08 03 A6 */ mtlr r0
/* 8017C894 001784F4 38 21 00 20 */ addi r1, r1, 0x20
/* 8017C898 001784F8 4E 80 00 20 */ blr
.global func_8017C89C
func_8017C89C:
/* 8017C89C 001784FC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8017C8A0 00178500 7C 08 02 A6 */ mflr r0
/* 8017C8A4 00178504 90 01 00 34 */ stw r0, 0x34(r1)
/* 8017C8A8 00178508 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8017C8AC 0017850C 7C BF 2B 78 */ mr r31, r5
/* 8017C8B0 00178510 88 03 00 00 */ lbz r0, 0(r3)
/* 8017C8B4 00178514 2C 00 00 00 */ cmpwi r0, 0
/* 8017C8B8 00178518 41 82 00 30 */ beq lbl_8017C8E8
/* 8017C8BC 0017851C 54 80 10 3A */ slwi r0, r4, 2
/* 8017C8C0 00178520 7C C4 33 78 */ mr r4, r6
/* 8017C8C4 00178524 7C 63 02 14 */ add r3, r3, r0
/* 8017C8C8 00178528 80 63 00 B4 */ lwz r3, 0xb4(r3)
/* 8017C8CC 0017852C 48 26 20 81 */ bl func_803DE94C
/* 8017C8D0 00178530 38 A1 00 08 */ addi r5, r1, 8
/* 8017C8D4 00178534 38 80 00 74 */ li r4, 0x74
/* 8017C8D8 00178538 48 26 11 05 */ bl func_803DD9DC
/* 8017C8DC 0017853C 7F E3 FB 78 */ mr r3, r31
/* 8017C8E0 00178540 38 81 00 08 */ addi r4, r1, 8
/* 8017C8E4 00178544 48 24 CB AD */ bl func_803C9490
lbl_8017C8E8:
/* 8017C8E8 00178548 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8017C8EC 0017854C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8017C8F0 00178550 7C 08 03 A6 */ mtlr r0
/* 8017C8F4 00178554 38 21 00 30 */ addi r1, r1, 0x30
/* 8017C8F8 00178558 4E 80 00 20 */ blr
.global func_8017C8FC
func_8017C8FC:
/* 8017C8FC 0017855C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8017C900 00178560 7C 08 02 A6 */ mflr r0
/* 8017C904 00178564 3C A0 80 64 */ lis r5, lbl_8063CE34@ha
/* 8017C908 00178568 90 01 00 14 */ stw r0, 0x14(r1)
/* 8017C90C 0017856C 38 A5 CE 34 */ addi r5, r5, lbl_8063CE34@l
/* 8017C910 00178570 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8017C914 00178574 7C 7F 1B 78 */ mr r31, r3
/* 8017C918 00178578 38 65 00 10 */ addi r3, r5, 0x10
/* 8017C91C 0017857C 48 21 56 AD */ bl func_80391FC8
/* 8017C920 00178580 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 8017C924 00178584 48 0D 39 D1 */ bl func_802502F4
/* 8017C928 00178588 2C 03 00 00 */ cmpwi r3, 0
/* 8017C92C 0017858C 41 82 00 1C */ beq lbl_8017C948
/* 8017C930 00178590 7C 64 1B 78 */ mr r4, r3
/* 8017C934 00178594 38 7F 00 92 */ addi r3, r31, 0x92
/* 8017C938 00178598 38 A0 00 10 */ li r5, 0x10
/* 8017C93C 0017859C 4B FF A5 79 */ bl func_80176EB4
/* 8017C940 001785A0 38 7F 00 92 */ addi r3, r31, 0x92
/* 8017C944 001785A4 48 00 00 08 */ b lbl_8017C94C
lbl_8017C948:
/* 8017C948 001785A8 38 60 00 00 */ li r3, 0
lbl_8017C94C:
/* 8017C94C 001785AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8017C950 001785B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8017C954 001785B4 7C 08 03 A6 */ mtlr r0
/* 8017C958 001785B8 38 21 00 10 */ addi r1, r1, 0x10
/* 8017C95C 001785BC 4E 80 00 20 */ blr
.global func_8017C960
func_8017C960:
/* 8017C960 001785C0 38 A0 00 01 */ li r5, 1
/* 8017C964 001785C4 38 6D 9F 70 */ addi r3, r13, lbl_8063F230-_SDA_BASE_
/* 8017C968 001785C8 38 80 00 04 */ li r4, 4
/* 8017C96C 001785CC 38 00 00 00 */ li r0, 0
/* 8017C970 001785D0 98 AD 9F 70 */ stb r5, lbl_8063F230-_SDA_BASE_(r13)
/* 8017C974 001785D4 B0 83 00 02 */ sth r4, 2(r3)
/* 8017C978 001785D8 98 03 00 04 */ stb r0, 4(r3)
/* 8017C97C 001785DC 4E 80 00 20 */ blr
|