summaryrefslogtreecommitdiff
path: root/asm/code_80168C1C.s
blob: a18053750dd840a36f08b63899c9a849b475e8e4 (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
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
.include "macros.inc"

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

.global func_80168C1C
func_80168C1C:
/* 80168C1C 0016487C  80 AD 9E 6C */	lwz r5, lbl_8063F12C-_SDA_BASE_(r13)
/* 80168C20 00164880  7C 85 1A 14 */	add r4, r5, r3
/* 80168C24 00164884  28 04 80 00 */	cmplwi r4, 0x8000
/* 80168C28 00164888  40 80 00 14 */	bge lbl_80168C3C
/* 80168C2C 0016488C  80 0D 9E 70 */	lwz r0, lbl_8063F130-_SDA_BASE_(r13)
/* 80168C30 00164890  90 8D 9E 6C */	stw r4, lbl_8063F12C-_SDA_BASE_(r13)
/* 80168C34 00164894  7C 60 2A 14 */	add r3, r0, r5
/* 80168C38 00164898  4E 80 00 20 */	blr
lbl_80168C3C:
/* 80168C3C 0016489C  90 6D 9E 6C */	stw r3, lbl_8063F12C-_SDA_BASE_(r13)
/* 80168C40 001648A0  80 6D 9E 70 */	lwz r3, lbl_8063F130-_SDA_BASE_(r13)
/* 80168C44 001648A4  4E 80 00 20 */	blr

.global func_80168C48
func_80168C48:
/* 80168C48 001648A8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80168C4C 001648AC  7C 08 02 A6 */	mflr r0
/* 80168C50 001648B0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80168C54 001648B4  80 0D 9E 70 */	lwz r0, lbl_8063F130-_SDA_BASE_(r13)
/* 80168C58 001648B8  2C 00 00 00 */	cmpwi r0, 0
/* 80168C5C 001648BC  40 82 00 18 */	bne lbl_80168C74
/* 80168C60 001648C0  48 0F 53 71 */	bl func_8025DFD0
/* 80168C64 001648C4  3C 80 00 01 */	lis r4, 0x00008000@ha
/* 80168C68 001648C8  38 84 80 00 */	addi r4, r4, 0x00008000@l
/* 80168C6C 001648CC  48 0F 53 55 */	bl func_8025DFC0
/* 80168C70 001648D0  90 6D 9E 70 */	stw r3, lbl_8063F130-_SDA_BASE_(r13)
lbl_80168C74:
/* 80168C74 001648D4  80 0D 9E 74 */	lwz r0, lbl_8063F134-_SDA_BASE_(r13)
/* 80168C78 001648D8  2C 00 00 00 */	cmpwi r0, 0
/* 80168C7C 001648DC  40 82 00 18 */	bne lbl_80168C94
/* 80168C80 001648E0  48 0F 53 51 */	bl func_8025DFD0
/* 80168C84 001648E4  3C 80 00 01 */	lis r4, 0x0000C000@ha
/* 80168C88 001648E8  38 84 C0 00 */	addi r4, r4, 0x0000C000@l
/* 80168C8C 001648EC  48 0F 53 35 */	bl func_8025DFC0
/* 80168C90 001648F0  90 6D 9E 74 */	stw r3, lbl_8063F134-_SDA_BASE_(r13)
lbl_80168C94:
/* 80168C94 001648F4  3C 60 80 49 */	lis r3, lbl_8048CB48@ha
/* 80168C98 001648F8  3C A0 00 01 */	lis r5, 0x0000C000@ha
/* 80168C9C 001648FC  80 8D 9E 74 */	lwz r4, lbl_8063F134-_SDA_BASE_(r13)
/* 80168CA0 00164900  38 63 CB 48 */	addi r3, r3, lbl_8048CB48@l
/* 80168CA4 00164904  38 A5 C0 00 */	addi r5, r5, 0x0000C000@l
/* 80168CA8 00164908  48 0F 4B 25 */	bl func_8025D7CC
/* 80168CAC 0016490C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80168CB0 00164910  7C 08 03 A6 */	mtlr r0
/* 80168CB4 00164914  38 21 00 10 */	addi r1, r1, 0x10
/* 80168CB8 00164918  4E 80 00 20 */	blr

.global func_80168CBC
func_80168CBC:
/* 80168CBC 0016491C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80168CC0 00164920  7C 08 02 A6 */	mflr r0
/* 80168CC4 00164924  90 01 00 14 */	stw r0, 0x14(r1)
/* 80168CC8 00164928  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80168CCC 0016492C  7C 9F 23 78 */	mr r31, r4
/* 80168CD0 00164930  93 C1 00 08 */	stw r30, 8(r1)
/* 80168CD4 00164934  7C 7E 1B 78 */	mr r30, r3
/* 80168CD8 00164938  48 10 5A 85 */	bl OSDisableInterrupts
/* 80168CDC 0016493C  38 1E 00 03 */	addi r0, r30, 3
/* 80168CE0 00164940  3C 80 80 49 */	lis r4, lbl_8048CB48@ha
/* 80168CE4 00164944  7C 7E 1B 78 */	mr r30, r3
/* 80168CE8 00164948  7F E5 FB 78 */	mr r5, r31
/* 80168CEC 0016494C  38 64 CB 48 */	addi r3, r4, lbl_8048CB48@l
/* 80168CF0 00164950  54 04 04 3A */	rlwinm r4, r0, 0, 0x10, 0x1d
/* 80168CF4 00164954  48 0F 4B 15 */	bl func_8025D808
/* 80168CF8 00164958  7C 7F 1B 78 */	mr r31, r3
/* 80168CFC 0016495C  7F C3 F3 78 */	mr r3, r30
/* 80168D00 00164960  48 10 5A 85 */	bl OSRestoreInterrupts
/* 80168D04 00164964  2C 1F 00 00 */	cmpwi r31, 0
/* 80168D08 00164968  40 82 00 0C */	bne lbl_80168D14
/* 80168D0C 0016496C  38 60 00 00 */	li r3, 0
/* 80168D10 00164970  48 00 00 0C */	b lbl_80168D1C
lbl_80168D14:
/* 80168D14 00164974  38 1F 00 03 */	addi r0, r31, 3
/* 80168D18 00164978  54 03 00 3A */	rlwinm r3, r0, 0, 0, 0x1d
lbl_80168D1C:
/* 80168D1C 0016497C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80168D20 00164980  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80168D24 00164984  83 C1 00 08 */	lwz r30, 8(r1)
/* 80168D28 00164988  7C 08 03 A6 */	mtlr r0
/* 80168D2C 0016498C  38 21 00 10 */	addi r1, r1, 0x10
/* 80168D30 00164990  4E 80 00 20 */	blr

.global func_80168D34
func_80168D34:
/* 80168D34 00164994  3C 60 80 49 */	lis r3, 0x8049
/* 80168D38 00164998  84 03 CB 68 */	lwzu r0, -0x3498(r3)
/* 80168D3C 0016499C  2C 00 00 00 */	cmpwi r0, 0
/* 80168D40 001649A0  41 82 00 0C */	beq lbl_80168D4C
/* 80168D44 001649A4  38 60 00 01 */	li r3, 1
/* 80168D48 001649A8  4E 80 00 20 */	blr
lbl_80168D4C:
/* 80168D4C 001649AC  80 03 00 04 */	lwz r0, 4(r3)
/* 80168D50 001649B0  2C 00 00 00 */	cmpwi r0, 0
/* 80168D54 001649B4  41 82 00 0C */	beq lbl_80168D60
/* 80168D58 001649B8  38 60 00 01 */	li r3, 1
/* 80168D5C 001649BC  4E 80 00 20 */	blr
lbl_80168D60:
/* 80168D60 001649C0  80 03 00 08 */	lwz r0, 8(r3)
/* 80168D64 001649C4  2C 00 00 00 */	cmpwi r0, 0
/* 80168D68 001649C8  41 82 00 0C */	beq lbl_80168D74
/* 80168D6C 001649CC  38 60 00 01 */	li r3, 1
/* 80168D70 001649D0  4E 80 00 20 */	blr
lbl_80168D74:
/* 80168D74 001649D4  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80168D78 001649D8  2C 00 00 00 */	cmpwi r0, 0
/* 80168D7C 001649DC  41 82 00 0C */	beq lbl_80168D88
/* 80168D80 001649E0  38 60 00 01 */	li r3, 1
/* 80168D84 001649E4  4E 80 00 20 */	blr
lbl_80168D88:
/* 80168D88 001649E8  80 03 00 10 */	lwz r0, 0x10(r3)
/* 80168D8C 001649EC  2C 00 00 00 */	cmpwi r0, 0
/* 80168D90 001649F0  41 82 00 0C */	beq lbl_80168D9C
/* 80168D94 001649F4  38 60 00 01 */	li r3, 1
/* 80168D98 001649F8  4E 80 00 20 */	blr
lbl_80168D9C:
/* 80168D9C 001649FC  80 03 00 14 */	lwz r0, 0x14(r3)
/* 80168DA0 00164A00  2C 00 00 00 */	cmpwi r0, 0
/* 80168DA4 00164A04  41 82 00 0C */	beq lbl_80168DB0
/* 80168DA8 00164A08  38 60 00 01 */	li r3, 1
/* 80168DAC 00164A0C  4E 80 00 20 */	blr
lbl_80168DB0:
/* 80168DB0 00164A10  80 03 00 18 */	lwz r0, 0x18(r3)
/* 80168DB4 00164A14  2C 00 00 00 */	cmpwi r0, 0
/* 80168DB8 00164A18  41 82 00 0C */	beq lbl_80168DC4
/* 80168DBC 00164A1C  38 60 00 01 */	li r3, 1
/* 80168DC0 00164A20  4E 80 00 20 */	blr
lbl_80168DC4:
/* 80168DC4 00164A24  80 03 00 1C */	lwz r0, 0x1c(r3)
/* 80168DC8 00164A28  2C 00 00 00 */	cmpwi r0, 0
/* 80168DCC 00164A2C  41 82 00 0C */	beq lbl_80168DD8
/* 80168DD0 00164A30  38 60 00 01 */	li r3, 1
/* 80168DD4 00164A34  4E 80 00 20 */	blr
lbl_80168DD8:
/* 80168DD8 00164A38  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80168DDC 00164A3C  2C 00 00 00 */	cmpwi r0, 0
/* 80168DE0 00164A40  41 82 00 0C */	beq lbl_80168DEC
/* 80168DE4 00164A44  38 60 00 01 */	li r3, 1
/* 80168DE8 00164A48  4E 80 00 20 */	blr
lbl_80168DEC:
/* 80168DEC 00164A4C  38 60 00 00 */	li r3, 0
/* 80168DF0 00164A50  4E 80 00 20 */	blr
/* 80168DF4 00164A54  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80168DF8 00164A58  7C 08 02 A6 */	mflr r0
/* 80168DFC 00164A5C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80168E00 00164A60  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80168E04 00164A64  7C BF 2B 78 */	mr r31, r5
/* 80168E08 00164A68  93 C1 00 08 */	stw r30, 8(r1)
/* 80168E0C 00164A6C  7C 7E 1B 78 */	mr r30, r3
/* 80168E10 00164A70  7F E3 FB 78 */	mr r3, r31
/* 80168E14 00164A74  57 C4 06 3E */	clrlwi r4, r30, 0x18
/* 80168E18 00164A78  4B FF FE A5 */	bl func_80168CBC
/* 80168E1C 00164A7C  2C 03 00 00 */	cmpwi r3, 0
/* 80168E20 00164A80  40 82 00 0C */	bne lbl_80168E2C
/* 80168E24 00164A84  38 60 FF FF */	li r3, -1
/* 80168E28 00164A88  48 00 00 18 */	b lbl_80168E40
lbl_80168E2C:
/* 80168E2C 00164A8C  3C 80 80 49 */	lis r4, lbl_8048CB68@ha
/* 80168E30 00164A90  57 C0 13 BA */	rlwinm r0, r30, 2, 0xe, 0x1d
/* 80168E34 00164A94  38 84 CB 68 */	addi r4, r4, lbl_8048CB68@l
/* 80168E38 00164A98  7C 64 01 2E */	stwx r3, r4, r0
/* 80168E3C 00164A9C  7F E3 FB 78 */	mr r3, r31
lbl_80168E40:
/* 80168E40 00164AA0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80168E44 00164AA4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80168E48 00164AA8  83 C1 00 08 */	lwz r30, 8(r1)
/* 80168E4C 00164AAC  7C 08 03 A6 */	mtlr r0
/* 80168E50 00164AB0  38 21 00 10 */	addi r1, r1, 0x10
/* 80168E54 00164AB4  4E 80 00 20 */	blr
/* 80168E58 00164AB8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80168E5C 00164ABC  7C 08 02 A6 */	mflr r0
/* 80168E60 00164AC0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80168E64 00164AC4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80168E68 00164AC8  3F E0 80 49 */	lis r31, lbl_8048CB68@ha
/* 80168E6C 00164ACC  3B FF CB 68 */	addi r31, r31, lbl_8048CB68@l
/* 80168E70 00164AD0  93 C1 00 08 */	stw r30, 8(r1)
/* 80168E74 00164AD4  54 7E 13 BA */	rlwinm r30, r3, 2, 0xe, 0x1d
/* 80168E78 00164AD8  7C 7F F0 2E */	lwzx r3, r31, r30
/* 80168E7C 00164ADC  2C 03 00 00 */	cmpwi r3, 0
/* 80168E80 00164AE0  40 82 00 0C */	bne lbl_80168E8C
/* 80168E84 00164AE4  38 60 FF FF */	li r3, -1
/* 80168E88 00164AE8  48 00 00 1C */	b lbl_80168EA4
lbl_80168E8C:
/* 80168E8C 00164AEC  7C A4 2B 78 */	mr r4, r5
/* 80168E90 00164AF0  7C C5 33 78 */	mr r5, r6
/* 80168E94 00164AF4  4B E9 B1 6D */	bl memcpy
/* 80168E98 00164AF8  38 00 00 00 */	li r0, 0
/* 80168E9C 00164AFC  38 60 00 00 */	li r3, 0
/* 80168EA0 00164B00  7C 1F F1 2E */	stwx r0, r31, r30
lbl_80168EA4:
/* 80168EA4 00164B04  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80168EA8 00164B08  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80168EAC 00164B0C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80168EB0 00164B10  7C 08 03 A6 */	mtlr r0
/* 80168EB4 00164B14  38 21 00 10 */	addi r1, r1, 0x10
/* 80168EB8 00164B18  4E 80 00 20 */	blr

.global func_80168EBC
func_80168EBC:
/* 80168EBC 00164B1C  80 83 00 08 */	lwz r4, 8(r3)
/* 80168EC0 00164B20  80 03 00 14 */	lwz r0, 0x14(r3)
/* 80168EC4 00164B24  7C 84 1A 14 */	add r4, r4, r3
/* 80168EC8 00164B28  2C 00 00 00 */	cmpwi r0, 0
/* 80168ECC 00164B2C  90 83 00 08 */	stw r4, 8(r3)
/* 80168ED0 00164B30  40 82 00 10 */	bne lbl_80168EE0
/* 80168ED4 00164B34  38 00 00 00 */	li r0, 0
/* 80168ED8 00164B38  90 03 00 10 */	stw r0, 0x10(r3)
/* 80168EDC 00164B3C  48 00 00 10 */	b lbl_80168EEC
lbl_80168EE0:
/* 80168EE0 00164B40  80 03 00 10 */	lwz r0, 0x10(r3)
/* 80168EE4 00164B44  7C 00 1A 14 */	add r0, r0, r3
/* 80168EE8 00164B48  90 03 00 10 */	stw r0, 0x10(r3)
lbl_80168EEC:
/* 80168EEC 00164B4C  80 03 00 1C */	lwz r0, 0x1c(r3)
/* 80168EF0 00164B50  2C 00 00 00 */	cmpwi r0, 0
/* 80168EF4 00164B54  40 82 00 10 */	bne lbl_80168F04
/* 80168EF8 00164B58  38 00 00 00 */	li r0, 0
/* 80168EFC 00164B5C  90 03 00 18 */	stw r0, 0x18(r3)
/* 80168F00 00164B60  48 00 00 10 */	b lbl_80168F10
lbl_80168F04:
/* 80168F04 00164B64  80 03 00 18 */	lwz r0, 0x18(r3)
/* 80168F08 00164B68  7C 00 1A 14 */	add r0, r0, r3
/* 80168F0C 00164B6C  90 03 00 18 */	stw r0, 0x18(r3)
lbl_80168F10:
/* 80168F10 00164B70  80 03 00 24 */	lwz r0, 0x24(r3)
/* 80168F14 00164B74  2C 00 00 00 */	cmpwi r0, 0
/* 80168F18 00164B78  40 82 00 10 */	bne lbl_80168F28
/* 80168F1C 00164B7C  38 00 00 00 */	li r0, 0
/* 80168F20 00164B80  90 03 00 20 */	stw r0, 0x20(r3)
/* 80168F24 00164B84  48 00 00 10 */	b lbl_80168F34
lbl_80168F28:
/* 80168F28 00164B88  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80168F2C 00164B8C  7C 00 1A 14 */	add r0, r0, r3
/* 80168F30 00164B90  90 03 00 20 */	stw r0, 0x20(r3)
lbl_80168F34:
/* 80168F34 00164B94  80 03 00 2C */	lwz r0, 0x2c(r3)
/* 80168F38 00164B98  2C 00 00 00 */	cmpwi r0, 0
/* 80168F3C 00164B9C  40 82 00 10 */	bne lbl_80168F4C
/* 80168F40 00164BA0  38 00 00 00 */	li r0, 0
/* 80168F44 00164BA4  90 03 00 28 */	stw r0, 0x28(r3)
/* 80168F48 00164BA8  4E 80 00 20 */	blr
lbl_80168F4C:
/* 80168F4C 00164BAC  80 03 00 28 */	lwz r0, 0x28(r3)
/* 80168F50 00164BB0  7C 00 1A 14 */	add r0, r0, r3
/* 80168F54 00164BB4  90 03 00 28 */	stw r0, 0x28(r3)
/* 80168F58 00164BB8  4E 80 00 20 */	blr

.global func_80168F5C
func_80168F5C:
/* 80168F5C 00164BBC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80168F60 00164BC0  7C 08 02 A6 */	mflr r0
/* 80168F64 00164BC4  90 01 00 34 */	stw r0, 0x34(r1)
/* 80168F68 00164BC8  39 61 00 30 */	addi r11, r1, 0x30
/* 80168F6C 00164BCC  48 05 E1 B9 */	bl _savegpr_26
/* 80168F70 00164BD0  7C 7E 1B 78 */	mr r30, r3
/* 80168F74 00164BD4  7C 9F 23 78 */	mr r31, r4
/* 80168F78 00164BD8  48 10 57 E5 */	bl OSDisableInterrupts
/* 80168F7C 00164BDC  3F 60 80 49 */	lis r27, lbl_8048CB48@ha
/* 80168F80 00164BE0  7C 7A 1B 78 */	mr r26, r3
/* 80168F84 00164BE4  38 7B CB 48 */	addi r3, r27, lbl_8048CB48@l
/* 80168F88 00164BE8  48 0F 48 71 */	bl func_8025D7F8
/* 80168F8C 00164BEC  7C 7C 1B 78 */	mr r28, r3
/* 80168F90 00164BF0  7F 43 D3 78 */	mr r3, r26
/* 80168F94 00164BF4  48 10 57 F1 */	bl OSRestoreInterrupts
/* 80168F98 00164BF8  2C 1C 00 00 */	cmpwi r28, 0
/* 80168F9C 00164BFC  40 82 00 0C */	bne lbl_80168FA8
/* 80168FA0 00164C00  38 60 00 00 */	li r3, 0
/* 80168FA4 00164C04  48 00 02 1C */	b lbl_801691C0
lbl_80168FA8:
/* 80168FA8 00164C08  3C 60 00 01 */	lis r3, 0x0000DEAD@ha
/* 80168FAC 00164C0C  3B A3 DE AD */	addi r29, r3, 0x0000DEAD@l
lbl_80168FB0:
/* 80168FB0 00164C10  48 10 57 AD */	bl OSDisableInterrupts
/* 80168FB4 00164C14  7C 7A 1B 78 */	mr r26, r3
/* 80168FB8 00164C18  38 7B CB 48 */	addi r3, r27, -13496
/* 80168FBC 00164C1C  48 0F 48 3D */	bl func_8025D7F8
/* 80168FC0 00164C20  7C 7C 1B 78 */	mr r28, r3
/* 80168FC4 00164C24  7F 43 D3 78 */	mr r3, r26
/* 80168FC8 00164C28  48 10 57 BD */	bl OSRestoreInterrupts
/* 80168FCC 00164C2C  2C 1C 00 01 */	cmpwi r28, 1
/* 80168FD0 00164C30  40 82 00 18 */	bne lbl_80168FE8
/* 80168FD4 00164C34  4B FF FD 61 */	bl func_80168D34
/* 80168FD8 00164C38  2C 03 00 00 */	cmpwi r3, 0
/* 80168FDC 00164C3C  41 82 00 0C */	beq lbl_80168FE8
/* 80168FE0 00164C40  38 60 00 00 */	li r3, 0
/* 80168FE4 00164C44  48 00 01 DC */	b lbl_801691C0
lbl_80168FE8:
/* 80168FE8 00164C48  48 10 57 75 */	bl OSDisableInterrupts
/* 80168FEC 00164C4C  7C 7A 1B 78 */	mr r26, r3
/* 80168FF0 00164C50  38 7B CB 48 */	addi r3, r27, -13496
/* 80168FF4 00164C54  38 81 00 0A */	addi r4, r1, 0xa
/* 80168FF8 00164C58  38 A1 00 08 */	addi r5, r1, 8
/* 80168FFC 00164C5C  48 0F 4A 01 */	bl func_8025D9FC
/* 80169000 00164C60  7C 7C 1B 78 */	mr r28, r3
/* 80169004 00164C64  7F 43 D3 78 */	mr r3, r26
/* 80169008 00164C68  48 10 57 7D */	bl OSRestoreInterrupts
/* 8016900C 00164C6C  2C 1C 00 00 */	cmpwi r28, 0
/* 80169010 00164C70  40 82 00 0C */	bne lbl_8016901C
/* 80169014 00164C74  38 60 00 00 */	li r3, 0
/* 80169018 00164C78  48 00 01 A8 */	b lbl_801691C0
lbl_8016901C:
/* 8016901C 00164C7C  38 1C 00 03 */	addi r0, r28, 3
/* 80169020 00164C80  54 07 00 3A */	rlwinm r7, r0, 0, 0, 0x1d
/* 80169024 00164C84  80 67 00 00 */	lwz r3, 0(r7)
/* 80169028 00164C88  3C 83 AF BE */	addis r4, r3, 0xafbe
/* 8016902C 00164C8C  28 04 52 43 */	cmplwi r4, 0x5243
/* 80169030 00164C90  40 82 00 10 */	bne lbl_80169040
/* 80169034 00164C94  80 CD 9E 68 */	lwz r6, lbl_8063F128-_SDA_BASE_(r13)
/* 80169038 00164C98  2C 06 00 01 */	cmpwi r6, 1
/* 8016903C 00164C9C  40 82 00 3C */	bne lbl_80169078
lbl_80169040:
/* 80169040 00164CA0  48 10 57 1D */	bl OSDisableInterrupts
/* 80169044 00164CA4  3F A0 80 49 */	lis r29, lbl_8048CB48@ha
/* 80169048 00164CA8  7C 7B 1B 78 */	mr r27, r3
/* 8016904C 00164CAC  38 7D CB 48 */	addi r3, r29, lbl_8048CB48@l
/* 80169050 00164CB0  38 81 00 0A */	addi r4, r1, 0xa
/* 80169054 00164CB4  38 A1 00 08 */	addi r5, r1, 8
/* 80169058 00164CB8  48 0F 4A 59 */	bl func_8025DAB0
/* 8016905C 00164CBC  38 7D CB 48 */	addi r3, r29, -13496
/* 80169060 00164CC0  48 0F 4B 41 */	bl func_8025DBA0
/* 80169064 00164CC4  7F 63 DB 78 */	mr r3, r27
/* 80169068 00164CC8  48 10 57 1D */	bl OSRestoreInterrupts
/* 8016906C 00164CCC  4B FF C2 C1 */	bl func_8016532C
/* 80169070 00164CD0  38 60 00 00 */	li r3, 0
/* 80169074 00164CD4  48 00 01 4C */	b lbl_801691C0
lbl_80169078:
/* 80169078 00164CD8  80 07 00 04 */	lwz r0, 4(r7)
/* 8016907C 00164CDC  2C 00 00 00 */	cmpwi r0, 0
/* 80169080 00164CE0  41 82 00 0C */	beq lbl_8016908C
/* 80169084 00164CE4  2C 06 00 02 */	cmpwi r6, 2
/* 80169088 00164CE8  40 82 00 48 */	bne lbl_801690D0
lbl_8016908C:
/* 8016908C 00164CEC  3C 60 00 01 */	lis r3, 0x0000DEAD@ha
/* 80169090 00164CF0  38 03 DE AD */	addi r0, r3, 0x0000DEAD@l
/* 80169094 00164CF4  90 07 00 00 */	stw r0, 0(r7)
/* 80169098 00164CF8  48 10 56 C5 */	bl OSDisableInterrupts
/* 8016909C 00164CFC  3F A0 80 49 */	lis r29, lbl_8048CB48@ha
/* 801690A0 00164D00  7C 7B 1B 78 */	mr r27, r3
/* 801690A4 00164D04  38 7D CB 48 */	addi r3, r29, lbl_8048CB48@l
/* 801690A8 00164D08  38 81 00 0A */	addi r4, r1, 0xa
/* 801690AC 00164D0C  38 A1 00 08 */	addi r5, r1, 8
/* 801690B0 00164D10  48 0F 4A 01 */	bl func_8025DAB0
/* 801690B4 00164D14  38 7D CB 48 */	addi r3, r29, -13496
/* 801690B8 00164D18  48 0F 4A E9 */	bl func_8025DBA0
/* 801690BC 00164D1C  7F 63 DB 78 */	mr r3, r27
/* 801690C0 00164D20  48 10 56 C5 */	bl OSRestoreInterrupts
/* 801690C4 00164D24  4B FF C2 69 */	bl func_8016532C
/* 801690C8 00164D28  38 60 00 00 */	li r3, 0
/* 801690CC 00164D2C  48 00 00 F4 */	b lbl_801691C0
lbl_801690D0:
/* 801690D0 00164D30  80 A7 00 08 */	lwz r5, 8(r7)
/* 801690D4 00164D34  7C 05 00 40 */	cmplw r5, r0
/* 801690D8 00164D38  41 80 00 34 */	blt lbl_8016910C
/* 801690DC 00164D3C  93 A7 00 00 */	stw r29, 0(r7)
/* 801690E0 00164D40  48 10 56 7D */	bl OSDisableInterrupts
/* 801690E4 00164D44  7C 7C 1B 78 */	mr r28, r3
/* 801690E8 00164D48  38 7B CB 48 */	addi r3, r27, -13496
/* 801690EC 00164D4C  38 81 00 0A */	addi r4, r1, 0xa
/* 801690F0 00164D50  38 A1 00 08 */	addi r5, r1, 8
/* 801690F4 00164D54  48 0F 49 BD */	bl func_8025DAB0
/* 801690F8 00164D58  38 7B CB 48 */	addi r3, r27, -13496
/* 801690FC 00164D5C  48 0F 4A A5 */	bl func_8025DBA0
/* 80169100 00164D60  7F 83 E3 78 */	mr r3, r28
/* 80169104 00164D64  48 10 56 81 */	bl OSRestoreInterrupts
/* 80169108 00164D68  4B FF FE A8 */	b lbl_80168FB0
lbl_8016910C:
/* 8016910C 00164D6C  39 07 00 0C */	addi r8, r7, 0xc
/* 80169110 00164D70  39 20 00 00 */	li r9, 0
/* 80169114 00164D74  7C 09 03 A6 */	mtctr r0
/* 80169118 00164D78  28 00 00 00 */	cmplwi r0, 0
/* 8016911C 00164D7C  40 81 00 A0 */	ble lbl_801691BC
lbl_80169120:
/* 80169120 00164D80  28 04 52 43 */	cmplwi r4, 0x5243
/* 80169124 00164D84  40 82 00 0C */	bne lbl_80169130
/* 80169128 00164D88  2C 06 00 03 */	cmpwi r6, 3
/* 8016912C 00164D8C  40 82 00 3C */	bne lbl_80169168
lbl_80169130:
/* 80169130 00164D90  48 10 56 2D */	bl OSDisableInterrupts
/* 80169134 00164D94  3F C0 80 49 */	lis r30, lbl_8048CB48@ha
/* 80169138 00164D98  7C 7B 1B 78 */	mr r27, r3
/* 8016913C 00164D9C  38 7E CB 48 */	addi r3, r30, lbl_8048CB48@l
/* 80169140 00164DA0  38 81 00 0A */	addi r4, r1, 0xa
/* 80169144 00164DA4  38 A1 00 08 */	addi r5, r1, 8
/* 80169148 00164DA8  48 0F 49 69 */	bl func_8025DAB0
/* 8016914C 00164DAC  38 7E CB 48 */	addi r3, r30, -13496
/* 80169150 00164DB0  48 0F 4A 51 */	bl func_8025DBA0
/* 80169154 00164DB4  7F 63 DB 78 */	mr r3, r27
/* 80169158 00164DB8  48 10 56 2D */	bl OSRestoreInterrupts
/* 8016915C 00164DBC  4B FF C1 D1 */	bl func_8016532C
/* 80169160 00164DC0  38 60 00 00 */	li r3, 0
/* 80169164 00164DC4  48 00 00 5C */	b lbl_801691C0
lbl_80169168:
/* 80169168 00164DC8  7C 09 28 40 */	cmplw r9, r5
/* 8016916C 00164DCC  40 82 00 3C */	bne lbl_801691A8
/* 80169170 00164DD0  80 67 00 08 */	lwz r3, 8(r7)
/* 80169174 00164DD4  2C 1E 00 00 */	cmpwi r30, 0
/* 80169178 00164DD8  38 03 00 01 */	addi r0, r3, 1
/* 8016917C 00164DDC  90 07 00 08 */	stw r0, 8(r7)
/* 80169180 00164DE0  41 82 00 0C */	beq lbl_8016918C
/* 80169184 00164DE4  80 08 00 04 */	lwz r0, 4(r8)
/* 80169188 00164DE8  B0 1E 00 00 */	sth r0, 0(r30)
lbl_8016918C:
/* 8016918C 00164DEC  2C 1F 00 00 */	cmpwi r31, 0
/* 80169190 00164DF0  41 82 00 0C */	beq lbl_8016919C
/* 80169194 00164DF4  88 01 00 08 */	lbz r0, 8(r1)
/* 80169198 00164DF8  98 1F 00 00 */	stb r0, 0(r31)
lbl_8016919C:
/* 8016919C 00164DFC  38 68 00 08 */	addi r3, r8, 8
/* 801691A0 00164E00  4B FF FD 1D */	bl func_80168EBC
/* 801691A4 00164E04  48 00 00 1C */	b lbl_801691C0
lbl_801691A8:
/* 801691A8 00164E08  80 08 00 04 */	lwz r0, 4(r8)
/* 801691AC 00164E0C  39 29 00 01 */	addi r9, r9, 1
/* 801691B0 00164E10  7C 68 02 14 */	add r3, r8, r0
/* 801691B4 00164E14  39 03 00 08 */	addi r8, r3, 8
/* 801691B8 00164E18  42 00 FF 68 */	bdnz lbl_80169120
lbl_801691BC:
/* 801691BC 00164E1C  38 60 00 00 */	li r3, 0
lbl_801691C0:
/* 801691C0 00164E20  39 61 00 30 */	addi r11, r1, 0x30
/* 801691C4 00164E24  48 05 DF AD */	bl _restgpr_26
/* 801691C8 00164E28  80 01 00 34 */	lwz r0, 0x34(r1)
/* 801691CC 00164E2C  7C 08 03 A6 */	mtlr r0
/* 801691D0 00164E30  38 21 00 30 */	addi r1, r1, 0x30
/* 801691D4 00164E34  4E 80 00 20 */	blr

.global lbl_801691D8
lbl_801691D8:
/* 801691D8 00164E38  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801691DC 00164E3C  7C 08 02 A6 */	mflr r0
/* 801691E0 00164E40  90 01 00 24 */	stw r0, 0x24(r1)
/* 801691E4 00164E44  38 61 00 0A */	addi r3, r1, 0xa
/* 801691E8 00164E48  38 81 00 08 */	addi r4, r1, 8
/* 801691EC 00164E4C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801691F0 00164E50  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801691F4 00164E54  4B FF FD 69 */	bl func_80168F5C
/* 801691F8 00164E58  2C 03 00 00 */	cmpwi r3, 0
/* 801691FC 00164E5C  7C 7F 1B 78 */	mr r31, r3
/* 80169200 00164E60  40 82 00 0C */	bne lbl_8016920C
/* 80169204 00164E64  38 60 00 00 */	li r3, 0
/* 80169208 00164E68  48 00 00 28 */	b lbl_80169230
lbl_8016920C:
/* 8016920C 00164E6C  A0 61 00 0A */	lhz r3, 0xa(r1)
/* 80169210 00164E70  4B FF FA 0D */	bl func_80168C1C
/* 80169214 00164E74  A0 A1 00 0A */	lhz r5, 0xa(r1)
/* 80169218 00164E78  7C 7E 1B 78 */	mr r30, r3
/* 8016921C 00164E7C  7F E4 FB 78 */	mr r4, r31
/* 80169220 00164E80  4B E9 AD E1 */	bl memcpy
/* 80169224 00164E84  88 01 00 08 */	lbz r0, 8(r1)
/* 80169228 00164E88  7F C3 F3 78 */	mr r3, r30
/* 8016922C 00164E8C  90 1E 00 00 */	stw r0, 0(r30)
lbl_80169230:
/* 80169230 00164E90  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80169234 00164E94  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80169238 00164E98  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8016923C 00164E9C  7C 08 03 A6 */	mtlr r0
/* 80169240 00164EA0  38 21 00 20 */	addi r1, r1, 0x20
/* 80169244 00164EA4  4E 80 00 20 */	blr

.global func_80169248
func_80169248:
/* 80169248 00164EA8  38 A0 00 01 */	li r5, 1
/* 8016924C 00164EAC  38 6D 9E 60 */	addi r3, r13, lbl_8063F120-_SDA_BASE_
/* 80169250 00164EB0  38 80 00 04 */	li r4, 4
/* 80169254 00164EB4  38 00 00 00 */	li r0, 0
/* 80169258 00164EB8  98 AD 9E 60 */	stb r5, lbl_8063F120-_SDA_BASE_(r13)
/* 8016925C 00164EBC  B0 83 00 02 */	sth r4, 2(r3)
/* 80169260 00164EC0  98 03 00 04 */	stb r0, 4(r3)
/* 80169264 00164EC4  4E 80 00 20 */	blr