summaryrefslogtreecommitdiff
path: root/asm/code_800310D8.s
blob: cc93939874824f474657497e9f20c9e0b58486fb (plain)
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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global lbl_800310D8
lbl_800310D8:
/* 800310D8 0002CD38  94 21 FF 50 */	stwu r1, -0xb0(r1)
/* 800310DC 0002CD3C  7C 08 02 A6 */	mflr r0
/* 800310E0 0002CD40  90 01 00 B4 */	stw r0, 0xb4(r1)
/* 800310E4 0002CD44  39 61 00 B0 */	addi r11, r1, 0xb0
/* 800310E8 0002CD48  48 19 60 41 */	bl _savegpr_27
/* 800310EC 0002CD4C  7C 7B 1B 78 */	mr r27, r3
/* 800310F0 0002CD50  7C 9C 23 78 */	mr r28, r4
/* 800310F4 0002CD54  7C BD 2B 78 */	mr r29, r5
/* 800310F8 0002CD58  7C DE 33 78 */	mr r30, r6
/* 800310FC 0002CD5C  3B E0 00 00 */	li r31, 0
/* 80031100 0002CD60  48 01 C7 0D */	bl func_8004D80C
/* 80031104 0002CD64  2C 03 00 00 */	cmpwi r3, 0
/* 80031108 0002CD68  40 82 00 0C */	bne lbl_80031114
/* 8003110C 0002CD6C  38 60 00 01 */	li r3, 1
/* 80031110 0002CD70  48 00 03 FC */	b lbl_8003150C
lbl_80031114:
/* 80031114 0002CD74  2C 1C 00 01 */	cmpwi r28, 1
/* 80031118 0002CD78  41 82 00 24 */	beq lbl_8003113C
/* 8003111C 0002CD7C  A8 1D 00 00 */	lha r0, 0(r29)
/* 80031120 0002CD80  2C 00 00 2C */	cmpwi r0, 0x2c
/* 80031124 0002CD84  40 82 00 18 */	bne lbl_8003113C
/* 80031128 0002CD88  83 FD 00 04 */	lwz r31, 4(r29)
/* 8003112C 0002CD8C  2C 1F 00 00 */	cmpwi r31, 0
/* 80031130 0002CD90  40 82 00 0C */	bne lbl_8003113C
/* 80031134 0002CD94  38 60 00 01 */	li r3, 1
/* 80031138 0002CD98  48 00 03 D4 */	b lbl_8003150C
lbl_8003113C:
/* 8003113C 0002CD9C  28 1C 00 25 */	cmplwi r28, 0x25
/* 80031140 0002CDA0  41 81 03 C8 */	bgt lbl_80031508
/* 80031144 0002CDA4  3C 80 80 41 */	lis r4, lbl_8040A058@ha
/* 80031148 0002CDA8  57 80 10 3A */	slwi r0, r28, 2
/* 8003114C 0002CDAC  38 84 A0 58 */	addi r4, r4, lbl_8040A058@l
/* 80031150 0002CDB0  7C 84 00 2E */	lwzx r4, r4, r0
/* 80031154 0002CDB4  7C 89 03 A6 */	mtctr r4
/* 80031158 0002CDB8  4E 80 04 20 */	bctr
/* 8003115C 0002CDBC  48 01 CC 3D */	bl func_8004DD98
/* 80031160 0002CDC0  2C 03 00 00 */	cmpwi r3, 0
/* 80031164 0002CDC4  41 82 03 A4 */	beq lbl_80031508
/* 80031168 0002CDC8  38 80 00 2C */	li r4, 0x2c
/* 8003116C 0002CDCC  38 00 00 01 */	li r0, 1
/* 80031170 0002CDD0  B0 9E 00 00 */	sth r4, 0(r30)
/* 80031174 0002CDD4  B0 1E 00 02 */	sth r0, 2(r30)
/* 80031178 0002CDD8  90 7E 00 04 */	stw r3, 4(r30)
/* 8003117C 0002CDDC  48 00 03 8C */	b lbl_80031508
/* 80031180 0002CDE0  2C 1F 00 00 */	cmpwi r31, 0
/* 80031184 0002CDE4  41 82 03 84 */	beq lbl_80031508
/* 80031188 0002CDE8  7F E4 FB 78 */	mr r4, r31
/* 8003118C 0002CDEC  48 01 CC 41 */	bl func_8004DDCC
/* 80031190 0002CDF0  38 00 00 00 */	li r0, 0
/* 80031194 0002CDF4  38 60 00 01 */	li r3, 1
/* 80031198 0002CDF8  B0 7D 00 00 */	sth r3, 0(r29)
/* 8003119C 0002CDFC  B0 1D 00 02 */	sth r0, 2(r29)
/* 800311A0 0002CE00  90 1D 00 04 */	stw r0, 4(r29)
/* 800311A4 0002CE04  48 00 03 64 */	b lbl_80031508
/* 800311A8 0002CE08  A8 1D 00 08 */	lha r0, 8(r29)
/* 800311AC 0002CE0C  2C 00 00 03 */	cmpwi r0, 3
/* 800311B0 0002CE10  40 82 00 0C */	bne lbl_800311BC
/* 800311B4 0002CE14  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 800311B8 0002CE18  48 00 00 10 */	b lbl_800311C8
lbl_800311BC:
/* 800311BC 0002CE1C  38 7D 00 08 */	addi r3, r29, 8
/* 800311C0 0002CE20  38 9B 09 A0 */	addi r4, r27, 0x9a0
/* 800311C4 0002CE24  4B FF 71 ED */	bl func_800283B0
lbl_800311C8:
/* 800311C8 0002CE28  3C 80 80 41 */	lis r4, lbl_8040A048@ha
/* 800311CC 0002CE2C  7C 65 1B 78 */	mr r5, r3
/* 800311D0 0002CE30  38 61 00 08 */	addi r3, r1, 8
/* 800311D4 0002CE34  38 84 A0 48 */	addi r4, r4, lbl_8040A048@l
/* 800311D8 0002CE38  4C C6 31 82 */	crclr 6
/* 800311DC 0002CE3C  48 19 B9 21 */	bl sprintf
/* 800311E0 0002CE40  7F E3 FB 78 */	mr r3, r31
/* 800311E4 0002CE44  38 81 00 08 */	addi r4, r1, 8
/* 800311E8 0002CE48  48 01 69 95 */	bl func_80047B7C
/* 800311EC 0002CE4C  2C 03 00 00 */	cmpwi r3, 0
/* 800311F0 0002CE50  41 82 00 14 */	beq lbl_80031204
/* 800311F4 0002CE54  38 00 00 01 */	li r0, 1
/* 800311F8 0002CE58  B0 1E 00 00 */	sth r0, 0(r30)
/* 800311FC 0002CE5C  90 1E 00 04 */	stw r0, 4(r30)
/* 80031200 0002CE60  48 00 03 08 */	b lbl_80031508
lbl_80031204:
/* 80031204 0002CE64  38 60 00 01 */	li r3, 1
/* 80031208 0002CE68  38 00 00 00 */	li r0, 0
/* 8003120C 0002CE6C  B0 7E 00 00 */	sth r3, 0(r30)
/* 80031210 0002CE70  90 1E 00 04 */	stw r0, 4(r30)
/* 80031214 0002CE74  48 00 02 F4 */	b lbl_80031508
/* 80031218 0002CE78  A8 1D 00 08 */	lha r0, 8(r29)
/* 8003121C 0002CE7C  2C 00 00 21 */	cmpwi r0, 0x21
/* 80031220 0002CE80  40 82 00 1C */	bne lbl_8003123C
/* 80031224 0002CE84  80 9D 00 0C */	lwz r4, 0xc(r29)
/* 80031228 0002CE88  2C 04 00 00 */	cmpwi r4, 0
/* 8003122C 0002CE8C  41 82 00 10 */	beq lbl_8003123C
/* 80031230 0002CE90  7F E3 FB 78 */	mr r3, r31
/* 80031234 0002CE94  48 01 6C B1 */	bl func_80047EE4
/* 80031238 0002CE98  48 00 02 D0 */	b lbl_80031508
lbl_8003123C:
/* 8003123C 0002CE9C  7F E3 FB 78 */	mr r3, r31
/* 80031240 0002CEA0  38 80 00 00 */	li r4, 0
/* 80031244 0002CEA4  48 01 6C A1 */	bl func_80047EE4
/* 80031248 0002CEA8  48 00 02 C0 */	b lbl_80031508
/* 8003124C 0002CEAC  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031250 0002CEB0  2C 00 00 01 */	cmpwi r0, 1
/* 80031254 0002CEB4  40 82 00 28 */	bne lbl_8003127C
/* 80031258 0002CEB8  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 8003125C 0002CEBC  3C 00 43 30 */	lis r0, 0x4330
/* 80031260 0002CEC0  90 01 00 88 */	stw r0, 0x88(r1)
/* 80031264 0002CEC4  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80031268 0002CEC8  C8 22 81 80 */	lfd f1, lbl_80640780-_SDA2_BASE_(r2)
/* 8003126C 0002CECC  90 01 00 8C */	stw r0, 0x8c(r1)
/* 80031270 0002CED0  C8 01 00 88 */	lfd f0, 0x88(r1)
/* 80031274 0002CED4  EC 20 08 28 */	fsubs f1, f0, f1
/* 80031278 0002CED8  48 00 00 1C */	b lbl_80031294
lbl_8003127C:
/* 8003127C 0002CEDC  2C 00 00 02 */	cmpwi r0, 2
/* 80031280 0002CEE0  40 82 00 0C */	bne lbl_8003128C
/* 80031284 0002CEE4  C0 3D 00 0C */	lfs f1, 0xc(r29)
/* 80031288 0002CEE8  48 00 00 0C */	b lbl_80031294
lbl_8003128C:
/* 8003128C 0002CEEC  38 7D 00 08 */	addi r3, r29, 8
/* 80031290 0002CEF0  48 1F CA E9 */	bl func_8022DD78
lbl_80031294:
/* 80031294 0002CEF4  7F E3 FB 78 */	mr r3, r31
/* 80031298 0002CEF8  48 01 6F 71 */	bl func_80048208
/* 8003129C 0002CEFC  48 00 02 6C */	b lbl_80031508
/* 800312A0 0002CF00  7F E3 FB 78 */	mr r3, r31
/* 800312A4 0002CF04  48 01 6F 49 */	bl func_800481EC
/* 800312A8 0002CF08  48 00 02 60 */	b lbl_80031508
/* 800312AC 0002CF0C  7F E3 FB 78 */	mr r3, r31
/* 800312B0 0002CF10  48 01 6F FD */	bl func_800482AC
/* 800312B4 0002CF14  48 00 02 54 */	b lbl_80031508
/* 800312B8 0002CF18  A8 1D 00 08 */	lha r0, 8(r29)
/* 800312BC 0002CF1C  2C 00 00 01 */	cmpwi r0, 1
/* 800312C0 0002CF20  40 82 00 0C */	bne lbl_800312CC
/* 800312C4 0002CF24  80 9D 00 0C */	lwz r4, 0xc(r29)
/* 800312C8 0002CF28  48 00 00 2C */	b lbl_800312F4
lbl_800312CC:
/* 800312CC 0002CF2C  2C 00 00 02 */	cmpwi r0, 2
/* 800312D0 0002CF30  40 82 00 18 */	bne lbl_800312E8
/* 800312D4 0002CF34  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 800312D8 0002CF38  FC 00 00 1E */	fctiwz f0, f0
/* 800312DC 0002CF3C  D8 01 00 88 */	stfd f0, 0x88(r1)
/* 800312E0 0002CF40  80 61 00 8C */	lwz r3, 0x8c(r1)
/* 800312E4 0002CF44  48 00 00 0C */	b lbl_800312F0
lbl_800312E8:
/* 800312E8 0002CF48  38 7D 00 08 */	addi r3, r29, 8
/* 800312EC 0002CF4C  48 1F CA 49 */	bl func_8022DD34
lbl_800312F0:
/* 800312F0 0002CF50  7C 64 1B 78 */	mr r4, r3
lbl_800312F4:
/* 800312F4 0002CF54  7F E3 FB 78 */	mr r3, r31
/* 800312F8 0002CF58  48 01 6F 95 */	bl func_8004828C
/* 800312FC 0002CF5C  38 00 00 01 */	li r0, 1
/* 80031300 0002CF60  90 7E 00 04 */	stw r3, 4(r30)
/* 80031304 0002CF64  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031308 0002CF68  48 00 02 00 */	b lbl_80031508
/* 8003130C 0002CF6C  7F E3 FB 78 */	mr r3, r31
/* 80031310 0002CF70  38 80 00 00 */	li r4, 0
/* 80031314 0002CF74  48 01 6F 79 */	bl func_8004828C
/* 80031318 0002CF78  38 00 00 01 */	li r0, 1
/* 8003131C 0002CF7C  90 7E 00 04 */	stw r3, 4(r30)
/* 80031320 0002CF80  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031324 0002CF84  48 00 01 E4 */	b lbl_80031508
/* 80031328 0002CF88  C0 1F 00 10 */	lfs f0, 0x10(r31)
/* 8003132C 0002CF8C  38 00 00 02 */	li r0, 2
/* 80031330 0002CF90  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031334 0002CF94  D0 1E 00 04 */	stfs f0, 4(r30)
/* 80031338 0002CF98  48 00 01 D0 */	b lbl_80031508
/* 8003133C 0002CF9C  C0 1F 00 0C */	lfs f0, 0xc(r31)
/* 80031340 0002CFA0  38 00 00 02 */	li r0, 2
/* 80031344 0002CFA4  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031348 0002CFA8  D0 1E 00 04 */	stfs f0, 4(r30)
/* 8003134C 0002CFAC  48 00 01 BC */	b lbl_80031508
/* 80031350 0002CFB0  38 60 00 01 */	li r3, 1
/* 80031354 0002CFB4  38 00 00 00 */	li r0, 0
/* 80031358 0002CFB8  B0 7E 00 00 */	sth r3, 0(r30)
/* 8003135C 0002CFBC  90 1E 00 04 */	stw r0, 4(r30)
/* 80031360 0002CFC0  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031364 0002CFC4  2C 80 00 01 */	cmpwi cr1, r0, 1
/* 80031368 0002CFC8  40 86 01 A0 */	bne cr1, lbl_80031508
/* 8003136C 0002CFCC  83 8D 96 F0 */	lwz r28, lbl_8063E9B0-_SDA_BASE_(r13)
/* 80031370 0002CFD0  2C 1C 00 00 */	cmpwi r28, 0
/* 80031374 0002CFD4  41 82 01 94 */	beq lbl_80031508
/* 80031378 0002CFD8  40 86 00 0C */	bne cr1, lbl_80031384
/* 8003137C 0002CFDC  83 BD 00 0C */	lwz r29, 0xc(r29)
/* 80031380 0002CFE0  48 00 00 2C */	b lbl_800313AC
lbl_80031384:
/* 80031384 0002CFE4  2C 00 00 02 */	cmpwi r0, 2
/* 80031388 0002CFE8  40 82 00 18 */	bne lbl_800313A0
/* 8003138C 0002CFEC  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80031390 0002CFF0  FC 00 00 1E */	fctiwz f0, f0
/* 80031394 0002CFF4  D8 01 00 88 */	stfd f0, 0x88(r1)
/* 80031398 0002CFF8  80 61 00 8C */	lwz r3, 0x8c(r1)
/* 8003139C 0002CFFC  48 00 00 0C */	b lbl_800313A8
lbl_800313A0:
/* 800313A0 0002D000  38 7D 00 08 */	addi r3, r29, 8
/* 800313A4 0002D004  48 1F C9 91 */	bl func_8022DD34
lbl_800313A8:
/* 800313A8 0002D008  7C 7D 1B 78 */	mr r29, r3
lbl_800313AC:
/* 800313AC 0002D00C  7F 83 E3 78 */	mr r3, r28
/* 800313B0 0002D010  4B FF 3F B9 */	bl func_80025368
/* 800313B4 0002D014  7C 64 1B 78 */	mr r4, r3
/* 800313B8 0002D018  7F E3 FB 78 */	mr r3, r31
/* 800313BC 0002D01C  7F A5 EB 78 */	mr r5, r29
/* 800313C0 0002D020  48 01 68 1D */	bl func_80047BDC
/* 800313C4 0002D024  2C 03 00 00 */	cmpwi r3, 0
/* 800313C8 0002D028  41 82 01 40 */	beq lbl_80031508
/* 800313CC 0002D02C  38 00 00 01 */	li r0, 1
/* 800313D0 0002D030  B0 1E 00 00 */	sth r0, 0(r30)
/* 800313D4 0002D034  90 1E 00 04 */	stw r0, 4(r30)
/* 800313D8 0002D038  48 00 01 30 */	b lbl_80031508
/* 800313DC 0002D03C  38 60 00 01 */	li r3, 1
/* 800313E0 0002D040  38 00 00 00 */	li r0, 0
/* 800313E4 0002D044  B0 7E 00 00 */	sth r3, 0(r30)
/* 800313E8 0002D048  90 1E 00 04 */	stw r0, 4(r30)
/* 800313EC 0002D04C  A8 1D 00 08 */	lha r0, 8(r29)
/* 800313F0 0002D050  2C 00 00 01 */	cmpwi r0, 1
/* 800313F4 0002D054  40 82 01 14 */	bne lbl_80031508
/* 800313F8 0002D058  40 82 00 0C */	bne lbl_80031404
/* 800313FC 0002D05C  83 9D 00 0C */	lwz r28, 0xc(r29)
/* 80031400 0002D060  48 00 00 2C */	b lbl_8003142C
lbl_80031404:
/* 80031404 0002D064  2C 00 00 02 */	cmpwi r0, 2
/* 80031408 0002D068  40 82 00 18 */	bne lbl_80031420
/* 8003140C 0002D06C  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80031410 0002D070  FC 00 00 1E */	fctiwz f0, f0
/* 80031414 0002D074  D8 01 00 88 */	stfd f0, 0x88(r1)
/* 80031418 0002D078  80 61 00 8C */	lwz r3, 0x8c(r1)
/* 8003141C 0002D07C  48 00 00 0C */	b lbl_80031428
lbl_80031420:
/* 80031420 0002D080  38 7D 00 08 */	addi r3, r29, 8
/* 80031424 0002D084  48 1F C9 11 */	bl func_8022DD34
lbl_80031428:
/* 80031428 0002D088  7C 7C 1B 78 */	mr r28, r3
lbl_8003142C:
/* 8003142C 0002D08C  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031430 0002D090  2C 00 00 01 */	cmpwi r0, 1
/* 80031434 0002D094  40 82 00 0C */	bne lbl_80031440
/* 80031438 0002D098  80 BD 00 14 */	lwz r5, 0x14(r29)
/* 8003143C 0002D09C  48 00 00 2C */	b lbl_80031468
lbl_80031440:
/* 80031440 0002D0A0  2C 00 00 02 */	cmpwi r0, 2
/* 80031444 0002D0A4  40 82 00 18 */	bne lbl_8003145C
/* 80031448 0002D0A8  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 8003144C 0002D0AC  FC 00 00 1E */	fctiwz f0, f0
/* 80031450 0002D0B0  D8 01 00 88 */	stfd f0, 0x88(r1)
/* 80031454 0002D0B4  80 61 00 8C */	lwz r3, 0x8c(r1)
/* 80031458 0002D0B8  48 00 00 0C */	b lbl_80031464
lbl_8003145C:
/* 8003145C 0002D0BC  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031460 0002D0C0  48 1F C8 D5 */	bl func_8022DD34
lbl_80031464:
/* 80031464 0002D0C4  7C 65 1B 78 */	mr r5, r3
lbl_80031468:
/* 80031468 0002D0C8  7F E3 FB 78 */	mr r3, r31
/* 8003146C 0002D0CC  7F 84 E3 78 */	mr r4, r28
/* 80031470 0002D0D0  48 01 67 6D */	bl func_80047BDC
/* 80031474 0002D0D4  2C 03 00 00 */	cmpwi r3, 0
/* 80031478 0002D0D8  41 82 00 90 */	beq lbl_80031508
/* 8003147C 0002D0DC  38 00 00 01 */	li r0, 1
/* 80031480 0002D0E0  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031484 0002D0E4  90 1E 00 04 */	stw r0, 4(r30)
/* 80031488 0002D0E8  48 00 00 80 */	b lbl_80031508
/* 8003148C 0002D0EC  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031490 0002D0F0  2C 00 00 01 */	cmpwi r0, 1
/* 80031494 0002D0F4  40 82 00 0C */	bne lbl_800314A0
/* 80031498 0002D0F8  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 8003149C 0002D0FC  48 00 00 28 */	b lbl_800314C4
lbl_800314A0:
/* 800314A0 0002D100  2C 00 00 02 */	cmpwi r0, 2
/* 800314A4 0002D104  40 82 00 18 */	bne lbl_800314BC
/* 800314A8 0002D108  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 800314AC 0002D10C  FC 00 00 1E */	fctiwz f0, f0
/* 800314B0 0002D110  D8 01 00 88 */	stfd f0, 0x88(r1)
/* 800314B4 0002D114  80 61 00 8C */	lwz r3, 0x8c(r1)
/* 800314B8 0002D118  48 00 00 0C */	b lbl_800314C4
lbl_800314BC:
/* 800314BC 0002D11C  38 7D 00 08 */	addi r3, r29, 8
/* 800314C0 0002D120  48 1F C8 75 */	bl func_8022DD34
lbl_800314C4:
/* 800314C4 0002D124  90 7F 00 20 */	stw r3, 0x20(r31)
/* 800314C8 0002D128  48 00 00 40 */	b lbl_80031508
/* 800314CC 0002D12C  38 00 00 00 */	li r0, 0
/* 800314D0 0002D130  B0 1E 00 02 */	sth r0, 2(r30)
/* 800314D4 0002D134  80 1F 00 34 */	lwz r0, 0x34(r31)
/* 800314D8 0002D138  2C 00 00 00 */	cmpwi r0, 0
/* 800314DC 0002D13C  90 1E 00 04 */	stw r0, 4(r30)
/* 800314E0 0002D140  41 82 00 10 */	beq lbl_800314F0
/* 800314E4 0002D144  38 00 00 21 */	li r0, 0x21
/* 800314E8 0002D148  B0 1E 00 00 */	sth r0, 0(r30)
/* 800314EC 0002D14C  48 00 00 1C */	b lbl_80031508
lbl_800314F0:
/* 800314F0 0002D150  38 00 00 01 */	li r0, 1
/* 800314F4 0002D154  B0 1E 00 00 */	sth r0, 0(r30)
/* 800314F8 0002D158  48 00 00 10 */	b lbl_80031508
/* 800314FC 0002D15C  80 1F 00 00 */	lwz r0, 0(r31)
/* 80031500 0002D160  60 00 00 20 */	ori r0, r0, 0x20
/* 80031504 0002D164  90 1F 00 00 */	stw r0, 0(r31)
lbl_80031508:
/* 80031508 0002D168  38 60 00 01 */	li r3, 1
lbl_8003150C:
/* 8003150C 0002D16C  39 61 00 B0 */	addi r11, r1, 0xb0
/* 80031510 0002D170  48 19 5C 65 */	bl _restgpr_27
/* 80031514 0002D174  80 01 00 B4 */	lwz r0, 0xb4(r1)
/* 80031518 0002D178  7C 08 03 A6 */	mtlr r0
/* 8003151C 0002D17C  38 21 00 B0 */	addi r1, r1, 0xb0
/* 80031520 0002D180  4E 80 00 20 */	blr

.global func_80031524
func_80031524:
/* 80031524 0002D184  38 A0 00 01 */	li r5, 1
/* 80031528 0002D188  38 6D 97 60 */	addi r3, r13, lbl_8063EA20-_SDA_BASE_
/* 8003152C 0002D18C  38 80 00 04 */	li r4, 4
/* 80031530 0002D190  38 00 00 00 */	li r0, 0
/* 80031534 0002D194  98 AD 97 60 */	stb r5, lbl_8063EA20-_SDA_BASE_(r13)
/* 80031538 0002D198  B0 83 00 02 */	sth r4, 2(r3)
/* 8003153C 0002D19C  98 03 00 04 */	stb r0, 4(r3)
/* 80031540 0002D1A0  4E 80 00 20 */	blr