summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSError.s
blob: 23720d008f2bdb38712ab8fd99c5201406e5225c (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
.include "macros.inc"

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

.global OSPanic
OSPanic:
/* 8026B49C 002670FC  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 8026B4A0 00267100  7C 08 02 A6 */	mflr r0
/* 8026B4A4 00267104  90 01 00 94 */	stw r0, 0x94(r1)
/* 8026B4A8 00267108  93 E1 00 8C */	stw r31, 0x8c(r1)
/* 8026B4AC 0026710C  93 C1 00 88 */	stw r30, 0x88(r1)
/* 8026B4B0 00267110  7C 9E 23 78 */	mr r30, r4
/* 8026B4B4 00267114  93 A1 00 84 */	stw r29, 0x84(r1)
/* 8026B4B8 00267118  7C BD 2B 78 */	mr r29, r5
/* 8026B4BC 0026711C  93 81 00 80 */	stw r28, 0x80(r1)
/* 8026B4C0 00267120  7C 7C 1B 78 */	mr r28, r3
/* 8026B4C4 00267124  40 86 00 24 */	bne cr1, lbl_8026B4E8
/* 8026B4C8 00267128  D8 21 00 28 */	stfd f1, 0x28(r1)
/* 8026B4CC 0026712C  D8 41 00 30 */	stfd f2, 0x30(r1)
/* 8026B4D0 00267130  D8 61 00 38 */	stfd f3, 0x38(r1)
/* 8026B4D4 00267134  D8 81 00 40 */	stfd f4, 0x40(r1)
/* 8026B4D8 00267138  D8 A1 00 48 */	stfd f5, 0x48(r1)
/* 8026B4DC 0026713C  D8 C1 00 50 */	stfd f6, 0x50(r1)
/* 8026B4E0 00267140  D8 E1 00 58 */	stfd f7, 0x58(r1)
/* 8026B4E4 00267144  D9 01 00 60 */	stfd f8, 0x60(r1)
lbl_8026B4E8:
/* 8026B4E8 00267148  3F E0 80 42 */	lis r31, lbl_80426E78@ha
/* 8026B4EC 0026714C  90 61 00 08 */	stw r3, 8(r1)
/* 8026B4F0 00267150  3B FF 6E 78 */	addi r31, r31, lbl_80426E78@l
/* 8026B4F4 00267154  90 81 00 0C */	stw r4, 0xc(r1)
/* 8026B4F8 00267158  90 A1 00 10 */	stw r5, 0x10(r1)
/* 8026B4FC 0026715C  90 C1 00 14 */	stw r6, 0x14(r1)
/* 8026B500 00267160  90 E1 00 18 */	stw r7, 0x18(r1)
/* 8026B504 00267164  91 01 00 1C */	stw r8, 0x1c(r1)
/* 8026B508 00267168  91 21 00 20 */	stw r9, 0x20(r1)
/* 8026B50C 0026716C  91 41 00 24 */	stw r10, 0x24(r1)
/* 8026B510 00267170  48 00 32 4D */	bl OSDisableInterrupts
/* 8026B514 00267174  38 A1 00 98 */	addi r5, r1, 0x98
/* 8026B518 00267178  38 01 00 08 */	addi r0, r1, 8
/* 8026B51C 0026717C  3C 60 03 00 */	lis r3, 0x300
/* 8026B520 00267180  90 A1 00 6C */	stw r5, 0x6c(r1)
/* 8026B524 00267184  38 81 00 68 */	addi r4, r1, 0x68
/* 8026B528 00267188  90 61 00 68 */	stw r3, 0x68(r1)
/* 8026B52C 0026718C  7F A3 EB 78 */	mr r3, r29
/* 8026B530 00267190  90 01 00 70 */	stw r0, 0x70(r1)
/* 8026B534 00267194  4B F6 13 F9 */	bl vprintf
/* 8026B538 00267198  7F 84 E3 78 */	mr r4, r28
/* 8026B53C 0026719C  7F C5 F3 78 */	mr r5, r30
/* 8026B540 002671A0  38 7F 00 00 */	addi r3, r31, 0
/* 8026B544 002671A4  4C C6 31 82 */	crclr 6
/* 8026B548 002671A8  4B D9 C5 7D */	bl OSReport
/* 8026B54C 002671AC  38 7F 00 18 */	addi r3, r31, 0x18
/* 8026B550 002671B0  4C C6 31 82 */	crclr 6
/* 8026B554 002671B4  4B D9 C5 71 */	bl OSReport
/* 8026B558 002671B8  3B C0 00 00 */	li r30, 0
/* 8026B55C 002671BC  4B FF FA CD */	bl OSGetStackPointer
/* 8026B560 002671C0  7C 7D 1B 78 */	mr r29, r3
/* 8026B564 002671C4  48 00 00 20 */	b lbl_8026B584
lbl_8026B568:
/* 8026B568 002671C8  80 BD 00 00 */	lwz r5, 0(r29)
/* 8026B56C 002671CC  7F A4 EB 78 */	mr r4, r29
/* 8026B570 002671D0  80 DD 00 04 */	lwz r6, 4(r29)
/* 8026B574 002671D4  38 7F 00 40 */	addi r3, r31, 0x40
/* 8026B578 002671D8  4C C6 31 82 */	crclr 6
/* 8026B57C 002671DC  4B D9 C5 49 */	bl OSReport
/* 8026B580 002671E0  83 BD 00 00 */	lwz r29, 0(r29)
lbl_8026B584:
/* 8026B584 002671E4  2C 1D 00 00 */	cmpwi r29, 0
/* 8026B588 002671E8  41 82 00 1C */	beq lbl_8026B5A4
/* 8026B58C 002671EC  3C 1D 00 01 */	addis r0, r29, 1
/* 8026B590 002671F0  28 00 FF FF */	cmplwi r0, 0xffff
/* 8026B594 002671F4  41 82 00 10 */	beq lbl_8026B5A4
/* 8026B598 002671F8  28 1E 00 10 */	cmplwi r30, 0x10
/* 8026B59C 002671FC  3B DE 00 01 */	addi r30, r30, 1
/* 8026B5A0 00267200  41 80 FF C8 */	blt lbl_8026B568
lbl_8026B5A4:
/* 8026B5A4 00267204  4B FF CC C5 */	bl PPCHalt
/* 8026B5A8 00267208  80 01 00 94 */	lwz r0, 0x94(r1)
/* 8026B5AC 0026720C  83 E1 00 8C */	lwz r31, 0x8c(r1)
/* 8026B5B0 00267210  83 C1 00 88 */	lwz r30, 0x88(r1)
/* 8026B5B4 00267214  83 A1 00 84 */	lwz r29, 0x84(r1)
/* 8026B5B8 00267218  83 81 00 80 */	lwz r28, 0x80(r1)
/* 8026B5BC 0026721C  7C 08 03 A6 */	mtlr r0
/* 8026B5C0 00267220  38 21 00 90 */	addi r1, r1, 0x90
/* 8026B5C4 00267224  4E 80 00 20 */	blr

.global OSSetErrorHandler
OSSetErrorHandler:
/* 8026B5C8 00267228  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8026B5CC 0026722C  7C 08 02 A6 */	mflr r0
/* 8026B5D0 00267230  90 01 00 24 */	stw r0, 0x24(r1)
/* 8026B5D4 00267234  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8026B5D8 00267238  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8026B5DC 0026723C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8026B5E0 00267240  7C 7D 1B 78 */	mr r29, r3
/* 8026B5E4 00267244  93 81 00 10 */	stw r28, 0x10(r1)
/* 8026B5E8 00267248  7C 9C 23 78 */	mr r28, r4
/* 8026B5EC 0026724C  48 00 31 71 */	bl OSDisableInterrupts
/* 8026B5F0 00267250  3C 80 80 50 */	lis r4, lbl_80503CF0@ha
/* 8026B5F4 00267254  57 A0 13 BA */	rlwinm r0, r29, 2, 0xe, 0x1d
/* 8026B5F8 00267258  38 84 3C F0 */	addi r4, r4, lbl_80503CF0@l
/* 8026B5FC 0026725C  28 1D 00 10 */	cmplwi r29, 0x10
/* 8026B600 00267260  7F C4 00 2E */	lwzx r30, r4, r0
/* 8026B604 00267264  7C 7D 1B 78 */	mr r29, r3
/* 8026B608 00267268  7F 84 01 2E */	stwx r28, r4, r0
/* 8026B60C 0026726C  40 82 02 18 */	bne lbl_8026B824
/* 8026B610 00267270  4B FF CC 19 */	bl PPCMfmsr
/* 8026B614 00267274  7C 7F 1B 78 */	mr r31, r3
/* 8026B618 00267278  60 63 20 00 */	ori r3, r3, 0x2000
/* 8026B61C 0026727C  4B FF CC 15 */	bl PPCMtmsr
/* 8026B620 00267280  4B FF CC 8D */	bl PPCMffpscr
/* 8026B624 00267284  2C 1C 00 00 */	cmpwi r28, 0
/* 8026B628 00267288  41 82 01 98 */	beq lbl_8026B7C0
/* 8026B62C 0026728C  3C A0 80 00 */	lis r5, 0x800000DC@ha
/* 8026B630 00267290  3C 80 60 06 */	lis r4, 0x6005F8FF@ha
/* 8026B634 00267294  81 25 00 DC */	lwz r9, 0x800000DC@l(r5)
/* 8026B638 00267298  38 A4 F8 FF */	addi r5, r4, 0x6005F8FF@l
/* 8026B63C 0026729C  39 00 FF FF */	li r8, -1
/* 8026B640 002672A0  38 E0 00 04 */	li r7, 4
/* 8026B644 002672A4  38 00 00 02 */	li r0, 2
/* 8026B648 002672A8  48 00 01 5C */	b lbl_8026B7A4
lbl_8026B64C:
/* 8026B64C 002672AC  80 89 01 9C */	lwz r4, 0x19c(r9)
/* 8026B650 002672B0  60 84 09 00 */	ori r4, r4, 0x900
/* 8026B654 002672B4  90 89 01 9C */	stw r4, 0x19c(r9)
/* 8026B658 002672B8  A0 C9 01 A2 */	lhz r6, 0x1a2(r9)
/* 8026B65C 002672BC  54 C4 07 FF */	clrlwi. r4, r6, 0x1f
/* 8026B660 002672C0  40 82 01 28 */	bne lbl_8026B788
/* 8026B664 002672C4  60 C4 00 01 */	ori r4, r6, 1
/* 8026B668 002672C8  38 C9 00 90 */	addi r6, r9, 0x90
/* 8026B66C 002672CC  B0 89 01 A2 */	sth r4, 0x1a2(r9)
/* 8026B670 002672D0  38 89 01 C8 */	addi r4, r9, 0x1c8
/* 8026B674 002672D4  7C 09 03 A6 */	mtctr r0
lbl_8026B678:
/* 8026B678 002672D8  91 06 00 04 */	stw r8, 4(r6)
/* 8026B67C 002672DC  91 06 00 00 */	stw r8, 0(r6)
/* 8026B680 002672E0  91 04 00 04 */	stw r8, 4(r4)
/* 8026B684 002672E4  91 04 00 00 */	stw r8, 0(r4)
/* 8026B688 002672E8  91 06 00 0C */	stw r8, 0xc(r6)
/* 8026B68C 002672EC  91 06 00 08 */	stw r8, 8(r6)
/* 8026B690 002672F0  91 04 00 0C */	stw r8, 0xc(r4)
/* 8026B694 002672F4  91 04 00 08 */	stw r8, 8(r4)
/* 8026B698 002672F8  91 06 00 14 */	stw r8, 0x14(r6)
/* 8026B69C 002672FC  91 06 00 10 */	stw r8, 0x10(r6)
/* 8026B6A0 00267300  91 04 00 14 */	stw r8, 0x14(r4)
/* 8026B6A4 00267304  91 04 00 10 */	stw r8, 0x10(r4)
/* 8026B6A8 00267308  91 06 00 1C */	stw r8, 0x1c(r6)
/* 8026B6AC 0026730C  91 06 00 18 */	stw r8, 0x18(r6)
/* 8026B6B0 00267310  91 04 00 1C */	stw r8, 0x1c(r4)
/* 8026B6B4 00267314  91 04 00 18 */	stw r8, 0x18(r4)
/* 8026B6B8 00267318  91 06 00 24 */	stw r8, 0x24(r6)
/* 8026B6BC 0026731C  91 06 00 20 */	stw r8, 0x20(r6)
/* 8026B6C0 00267320  91 04 00 24 */	stw r8, 0x24(r4)
/* 8026B6C4 00267324  91 04 00 20 */	stw r8, 0x20(r4)
/* 8026B6C8 00267328  91 06 00 2C */	stw r8, 0x2c(r6)
/* 8026B6CC 0026732C  91 06 00 28 */	stw r8, 0x28(r6)
/* 8026B6D0 00267330  91 04 00 2C */	stw r8, 0x2c(r4)
/* 8026B6D4 00267334  91 04 00 28 */	stw r8, 0x28(r4)
/* 8026B6D8 00267338  91 06 00 34 */	stw r8, 0x34(r6)
/* 8026B6DC 0026733C  91 06 00 30 */	stw r8, 0x30(r6)
/* 8026B6E0 00267340  91 04 00 34 */	stw r8, 0x34(r4)
/* 8026B6E4 00267344  91 04 00 30 */	stw r8, 0x30(r4)
/* 8026B6E8 00267348  91 06 00 3C */	stw r8, 0x3c(r6)
/* 8026B6EC 0026734C  91 06 00 38 */	stw r8, 0x38(r6)
/* 8026B6F0 00267350  91 04 00 3C */	stw r8, 0x3c(r4)
/* 8026B6F4 00267354  91 04 00 38 */	stw r8, 0x38(r4)
/* 8026B6F8 00267358  91 06 00 44 */	stw r8, 0x44(r6)
/* 8026B6FC 0026735C  91 06 00 40 */	stw r8, 0x40(r6)
/* 8026B700 00267360  91 04 00 44 */	stw r8, 0x44(r4)
/* 8026B704 00267364  91 04 00 40 */	stw r8, 0x40(r4)
/* 8026B708 00267368  91 06 00 4C */	stw r8, 0x4c(r6)
/* 8026B70C 0026736C  91 06 00 48 */	stw r8, 0x48(r6)
/* 8026B710 00267370  91 04 00 4C */	stw r8, 0x4c(r4)
/* 8026B714 00267374  91 04 00 48 */	stw r8, 0x48(r4)
/* 8026B718 00267378  91 06 00 54 */	stw r8, 0x54(r6)
/* 8026B71C 0026737C  91 06 00 50 */	stw r8, 0x50(r6)
/* 8026B720 00267380  91 04 00 54 */	stw r8, 0x54(r4)
/* 8026B724 00267384  91 04 00 50 */	stw r8, 0x50(r4)
/* 8026B728 00267388  91 06 00 5C */	stw r8, 0x5c(r6)
/* 8026B72C 0026738C  91 06 00 58 */	stw r8, 0x58(r6)
/* 8026B730 00267390  91 04 00 5C */	stw r8, 0x5c(r4)
/* 8026B734 00267394  91 04 00 58 */	stw r8, 0x58(r4)
/* 8026B738 00267398  91 06 00 64 */	stw r8, 0x64(r6)
/* 8026B73C 0026739C  91 06 00 60 */	stw r8, 0x60(r6)
/* 8026B740 002673A0  91 04 00 64 */	stw r8, 0x64(r4)
/* 8026B744 002673A4  91 04 00 60 */	stw r8, 0x60(r4)
/* 8026B748 002673A8  91 06 00 6C */	stw r8, 0x6c(r6)
/* 8026B74C 002673AC  91 06 00 68 */	stw r8, 0x68(r6)
/* 8026B750 002673B0  91 04 00 6C */	stw r8, 0x6c(r4)
/* 8026B754 002673B4  91 04 00 68 */	stw r8, 0x68(r4)
/* 8026B758 002673B8  91 06 00 74 */	stw r8, 0x74(r6)
/* 8026B75C 002673BC  91 06 00 70 */	stw r8, 0x70(r6)
/* 8026B760 002673C0  91 04 00 74 */	stw r8, 0x74(r4)
/* 8026B764 002673C4  91 04 00 70 */	stw r8, 0x70(r4)
/* 8026B768 002673C8  91 06 00 7C */	stw r8, 0x7c(r6)
/* 8026B76C 002673CC  91 06 00 78 */	stw r8, 0x78(r6)
/* 8026B770 002673D0  38 C6 00 80 */	addi r6, r6, 0x80
/* 8026B774 002673D4  91 04 00 7C */	stw r8, 0x7c(r4)
/* 8026B778 002673D8  91 04 00 78 */	stw r8, 0x78(r4)
/* 8026B77C 002673DC  38 84 00 80 */	addi r4, r4, 0x80
/* 8026B780 002673E0  42 00 FE F8 */	bdnz lbl_8026B678
/* 8026B784 002673E4  90 E9 01 94 */	stw r7, 0x194(r9)
lbl_8026B788:
/* 8026B788 002673E8  80 8D 87 B8 */	lwz r4, lbl_8063DA78-_SDA_BASE_(r13)
/* 8026B78C 002673EC  80 C9 01 94 */	lwz r6, 0x194(r9)
/* 8026B790 002673F0  54 84 06 38 */	rlwinm r4, r4, 0, 0x18, 0x1c
/* 8026B794 002673F4  7C C4 23 78 */	or r4, r6, r4
/* 8026B798 002673F8  7C 84 28 38 */	and r4, r4, r5
/* 8026B79C 002673FC  90 89 01 94 */	stw r4, 0x194(r9)
/* 8026B7A0 00267400  81 29 02 FC */	lwz r9, 0x2fc(r9)
lbl_8026B7A4:
/* 8026B7A4 00267404  2C 09 00 00 */	cmpwi r9, 0
/* 8026B7A8 00267408  40 82 FE A4 */	bne lbl_8026B64C
/* 8026B7AC 0026740C  80 0D 87 B8 */	lwz r0, lbl_8063DA78-_SDA_BASE_(r13)
/* 8026B7B0 00267410  63 FF 09 00 */	ori r31, r31, 0x900
/* 8026B7B4 00267414  54 00 06 38 */	rlwinm r0, r0, 0, 0x18, 0x1c
/* 8026B7B8 00267418  7C 64 03 78 */	or r4, r3, r0
/* 8026B7BC 0026741C  48 00 00 50 */	b lbl_8026B80C
lbl_8026B7C0:
/* 8026B7C0 00267420  3C A0 80 00 */	lis r5, 0x800000DC@ha
/* 8026B7C4 00267424  3C 80 60 06 */	lis r4, 0x6005F8FF@ha
/* 8026B7C8 00267428  80 C5 00 DC */	lwz r6, 0x800000DC@l(r5)
/* 8026B7CC 0026742C  38 84 F8 FF */	addi r4, r4, 0x6005F8FF@l
/* 8026B7D0 00267430  38 A0 F6 FF */	li r5, -2305
/* 8026B7D4 00267434  48 00 00 24 */	b lbl_8026B7F8
lbl_8026B7D8:
/* 8026B7D8 00267438  80 06 01 9C */	lwz r0, 0x19c(r6)
/* 8026B7DC 0026743C  7C 00 28 38 */	and r0, r0, r5
/* 8026B7E0 00267440  90 06 01 9C */	stw r0, 0x19c(r6)
/* 8026B7E4 00267444  80 06 01 94 */	lwz r0, 0x194(r6)
/* 8026B7E8 00267448  54 00 07 6E */	rlwinm r0, r0, 0, 0x1d, 0x17
/* 8026B7EC 0026744C  7C 00 20 38 */	and r0, r0, r4
/* 8026B7F0 00267450  90 06 01 94 */	stw r0, 0x194(r6)
/* 8026B7F4 00267454  80 C6 02 FC */	lwz r6, 0x2fc(r6)
lbl_8026B7F8:
/* 8026B7F8 00267458  2C 06 00 00 */	cmpwi r6, 0
/* 8026B7FC 0026745C  40 82 FF DC */	bne lbl_8026B7D8
/* 8026B800 00267460  38 00 F6 FF */	li r0, -2305
/* 8026B804 00267464  54 64 07 6E */	rlwinm r4, r3, 0, 0x1d, 0x17
/* 8026B808 00267468  7F FF 00 38 */	and r31, r31, r0
lbl_8026B80C:
/* 8026B80C 0026746C  3C 60 60 06 */	lis r3, 0x6005F8FF@ha
/* 8026B810 00267470  38 03 F8 FF */	addi r0, r3, 0x6005F8FF@l
/* 8026B814 00267474  7C 83 00 38 */	and r3, r4, r0
/* 8026B818 00267478  4B FF CA B5 */	bl PPCMtfpscr
/* 8026B81C 0026747C  7F E3 FB 78 */	mr r3, r31
/* 8026B820 00267480  4B FF CA 11 */	bl PPCMtmsr
lbl_8026B824:
/* 8026B824 00267484  7F A3 EB 78 */	mr r3, r29
/* 8026B828 00267488  48 00 2F 5D */	bl OSRestoreInterrupts
/* 8026B82C 0026748C  7F C3 F3 78 */	mr r3, r30
/* 8026B830 00267490  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8026B834 00267494  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8026B838 00267498  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8026B83C 0026749C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8026B840 002674A0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8026B844 002674A4  7C 08 03 A6 */	mtlr r0
/* 8026B848 002674A8  38 21 00 20 */	addi r1, r1, 0x20
/* 8026B84C 002674AC  4E 80 00 20 */	blr

.global __OSUnhandledException
__OSUnhandledException:
/* 8026B850 002674B0  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8026B854 002674B4  7C 08 02 A6 */	mflr r0
/* 8026B858 002674B8  90 01 00 34 */	stw r0, 0x34(r1)
/* 8026B85C 002674BC  39 61 00 30 */	addi r11, r1, 0x30
/* 8026B860 002674C0  4B F5 B8 B9 */	bl _savegpr_23
/* 8026B864 002674C4  3F E0 80 42 */	lis r31, lbl_80426E78@ha
/* 8026B868 002674C8  7C 79 1B 78 */	mr r25, r3
/* 8026B86C 002674CC  7C 9A 23 78 */	mr r26, r4
/* 8026B870 002674D0  7C BB 2B 78 */	mr r27, r5
/* 8026B874 002674D4  7C DC 33 78 */	mr r28, r6
/* 8026B878 002674D8  3B FF 6E 78 */	addi r31, r31, lbl_80426E78@l
/* 8026B87C 002674DC  48 00 6F 3D */	bl OSGetTime
/* 8026B880 002674E0  80 BA 01 9C */	lwz r5, 0x19c(r26)
/* 8026B884 002674E4  7C 9D 23 78 */	mr r29, r4
/* 8026B888 002674E8  7C 7E 1B 78 */	mr r30, r3
/* 8026B88C 002674EC  54 A0 07 BD */	rlwinm. r0, r5, 0, 0x1e, 0x1e
/* 8026B890 002674F0  40 82 00 18 */	bne lbl_8026B8A8
/* 8026B894 002674F4  7F 24 CB 78 */	mr r4, r25
/* 8026B898 002674F8  38 7F 00 5C */	addi r3, r31, 0x5c
/* 8026B89C 002674FC  4C C6 31 82 */	crclr 6
/* 8026B8A0 00267500  4B D9 C2 25 */	bl OSReport
/* 8026B8A4 00267504  48 00 01 60 */	b lbl_8026BA04
lbl_8026B8A8:
/* 8026B8A8 00267508  28 19 00 06 */	cmplwi r25, 6
/* 8026B8AC 0026750C  40 82 00 EC */	bne lbl_8026B998
/* 8026B8B0 00267510  54 A0 02 D7 */	rlwinm. r0, r5, 0, 0xb, 0xb
/* 8026B8B4 00267514  41 82 00 E4 */	beq lbl_8026B998
/* 8026B8B8 00267518  3C 60 80 50 */	lis r3, lbl_80503CF0@ha
/* 8026B8BC 0026751C  38 63 3C F0 */	addi r3, r3, lbl_80503CF0@l
/* 8026B8C0 00267520  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8026B8C4 00267524  2C 00 00 00 */	cmpwi r0, 0
/* 8026B8C8 00267528  41 82 00 D0 */	beq lbl_8026B998
/* 8026B8CC 0026752C  3B 20 00 10 */	li r25, 0x10
/* 8026B8D0 00267530  4B FF C9 59 */	bl PPCMfmsr
/* 8026B8D4 00267534  7C 77 1B 78 */	mr r23, r3
/* 8026B8D8 00267538  60 63 20 00 */	ori r3, r3, 0x2000
/* 8026B8DC 0026753C  4B FF C9 55 */	bl PPCMtmsr
/* 8026B8E0 00267540  3C 60 80 00 */	lis r3, 0x800000D8@ha
/* 8026B8E4 00267544  80 63 00 D8 */	lwz r3, 0x800000D8@l(r3)
/* 8026B8E8 00267548  2C 03 00 00 */	cmpwi r3, 0
/* 8026B8EC 0026754C  41 82 00 08 */	beq lbl_8026B8F4
/* 8026B8F0 00267550  4B FF F5 71 */	bl OSSaveFPUContext
lbl_8026B8F4:
/* 8026B8F4 00267554  4B FF C9 B9 */	bl PPCMffpscr
/* 8026B8F8 00267558  3F 00 60 06 */	lis r24, 0x6005F8FF@ha
/* 8026B8FC 0026755C  38 18 F8 FF */	addi r0, r24, 0x6005F8FF@l
/* 8026B900 00267560  7C 63 00 38 */	and r3, r3, r0
/* 8026B904 00267564  4B FF C9 C9 */	bl PPCMtfpscr
/* 8026B908 00267568  7E E3 BB 78 */	mr r3, r23
/* 8026B90C 0026756C  4B FF C9 25 */	bl PPCMtmsr
/* 8026B910 00267570  3E E0 80 00 */	lis r23, 0x800000D8@ha
/* 8026B914 00267574  80 17 00 D8 */	lwz r0, 0x800000D8@l(r23)
/* 8026B918 00267578  7C 00 D0 40 */	cmplw r0, r26
/* 8026B91C 0026757C  40 82 00 60 */	bne lbl_8026B97C
/* 8026B920 00267580  48 00 5A 25 */	bl OSDisableScheduler
/* 8026B924 00267584  7F 44 D3 78 */	mr r4, r26
/* 8026B928 00267588  7F 65 DB 78 */	mr r5, r27
/* 8026B92C 0026758C  7F 86 E3 78 */	mr r6, r28
/* 8026B930 00267590  38 60 00 10 */	li r3, 0x10
/* 8026B934 00267594  4C C6 31 82 */	crclr 6
/* 8026B938 00267598  3C E0 80 50 */	lis r7, lbl_80503CF0@ha
/* 8026B93C 0026759C  38 E7 3C F0 */	addi r7, r7, lbl_80503CF0@l
/* 8026B940 002675A0  81 87 00 40 */	lwz r12, 0x40(r7)
/* 8026B944 002675A4  7D 89 03 A6 */	mtctr r12
/* 8026B948 002675A8  4E 80 04 21 */	bctrl
/* 8026B94C 002675AC  80 9A 01 9C */	lwz r4, 0x19c(r26)
/* 8026B950 002675B0  38 60 00 00 */	li r3, 0
/* 8026B954 002675B4  38 18 F8 FF */	addi r0, r24, -1793
/* 8026B958 002675B8  54 84 04 E2 */	rlwinm r4, r4, 0, 0x13, 0x11
/* 8026B95C 002675BC  90 9A 01 9C */	stw r4, 0x19c(r26)
/* 8026B960 002675C0  90 77 00 D8 */	stw r3, 0xd8(r23)
/* 8026B964 002675C4  80 7A 01 94 */	lwz r3, 0x194(r26)
/* 8026B968 002675C8  7C 60 00 38 */	and r0, r3, r0
/* 8026B96C 002675CC  90 1A 01 94 */	stw r0, 0x194(r26)
/* 8026B970 002675D0  48 00 5A 11 */	bl OSEnableScheduler
/* 8026B974 002675D4  48 00 5F 19 */	bl __OSReschedule
/* 8026B978 002675D8  48 00 00 18 */	b lbl_8026B990
lbl_8026B97C:
/* 8026B97C 002675DC  80 7A 01 9C */	lwz r3, 0x19c(r26)
/* 8026B980 002675E0  38 00 00 00 */	li r0, 0
/* 8026B984 002675E4  54 63 04 E2 */	rlwinm r3, r3, 0, 0x13, 0x11
/* 8026B988 002675E8  90 7A 01 9C */	stw r3, 0x19c(r26)
/* 8026B98C 002675EC  90 17 00 D8 */	stw r0, 0xd8(r23)
lbl_8026B990:
/* 8026B990 002675F0  7F 43 D3 78 */	mr r3, r26
/* 8026B994 002675F4  4B FF F5 BD */	bl OSLoadContext
lbl_8026B998:
/* 8026B998 002675F8  3F 00 80 50 */	lis r24, lbl_80503CF0@ha
/* 8026B99C 002675FC  57 37 15 BA */	rlwinm r23, r25, 2, 0x16, 0x1d
/* 8026B9A0 00267600  3B 18 3C F0 */	addi r24, r24, lbl_80503CF0@l
/* 8026B9A4 00267604  7C 18 B8 2E */	lwzx r0, r24, r23
/* 8026B9A8 00267608  2C 00 00 00 */	cmpwi r0, 0
/* 8026B9AC 0026760C  41 82 00 38 */	beq lbl_8026B9E4
/* 8026B9B0 00267610  48 00 59 95 */	bl OSDisableScheduler
/* 8026B9B4 00267614  7F 23 CB 78 */	mr r3, r25
/* 8026B9B8 00267618  7F 44 D3 78 */	mr r4, r26
/* 8026B9BC 0026761C  7F 65 DB 78 */	mr r5, r27
/* 8026B9C0 00267620  7F 86 E3 78 */	mr r6, r28
/* 8026B9C4 00267624  4C C6 31 82 */	crclr 6
/* 8026B9C8 00267628  7D 98 B8 2E */	lwzx r12, r24, r23
/* 8026B9CC 0026762C  7D 89 03 A6 */	mtctr r12
/* 8026B9D0 00267630  4E 80 04 21 */	bctrl
/* 8026B9D4 00267634  48 00 59 AD */	bl OSEnableScheduler
/* 8026B9D8 00267638  48 00 5E B5 */	bl __OSReschedule
/* 8026B9DC 0026763C  7F 43 D3 78 */	mr r3, r26
/* 8026B9E0 00267640  4B FF F5 71 */	bl OSLoadContext
lbl_8026B9E4:
/* 8026B9E4 00267644  28 19 00 08 */	cmplwi r25, 8
/* 8026B9E8 00267648  40 82 00 0C */	bne lbl_8026B9F4
/* 8026B9EC 0026764C  7F 43 D3 78 */	mr r3, r26
/* 8026B9F0 00267650  4B FF F5 61 */	bl OSLoadContext
lbl_8026B9F4:
/* 8026B9F4 00267654  7F 24 CB 78 */	mr r4, r25
/* 8026B9F8 00267658  38 7F 00 7C */	addi r3, r31, 0x7c
/* 8026B9FC 0026765C  4C C6 31 82 */	crclr 6
/* 8026BA00 00267660  4B D9 C0 C5 */	bl OSReport
lbl_8026BA04:
/* 8026BA04 00267664  38 6D 87 BC */	addi r3, r13, lbl_8063DA7C-_SDA_BASE_
/* 8026BA08 00267668  4C C6 31 82 */	crclr 6
/* 8026BA0C 0026766C  4B D9 C0 B9 */	bl OSReport
/* 8026BA10 00267670  7F 43 D3 78 */	mr r3, r26
/* 8026BA14 00267674  4B FF F7 5D */	bl OSDumpContext
/* 8026BA18 00267678  7F 64 DB 78 */	mr r4, r27
/* 8026BA1C 0026767C  7F 85 E3 78 */	mr r5, r28
/* 8026BA20 00267680  38 7F 00 94 */	addi r3, r31, 0x94
/* 8026BA24 00267684  4C C6 31 82 */	crclr 6
/* 8026BA28 00267688  4B D9 C0 9D */	bl OSReport
/* 8026BA2C 0026768C  7F A6 EB 78 */	mr r6, r29
/* 8026BA30 00267690  7F C5 F3 78 */	mr r5, r30
/* 8026BA34 00267694  38 7F 00 C8 */	addi r3, r31, 0xc8
/* 8026BA38 00267698  4C C6 31 82 */	crclr 6
/* 8026BA3C 0026769C  4B D9 C0 89 */	bl OSReport
/* 8026BA40 002676A0  28 19 00 0F */	cmplwi r25, 0xf
/* 8026BA44 002676A4  41 81 00 C4 */	bgt lbl_8026BB08
/* 8026BA48 002676A8  3C 60 80 42 */	lis r3, lbl_80427154@ha
/* 8026BA4C 002676AC  57 20 10 3A */	slwi r0, r25, 2
/* 8026BA50 002676B0  38 63 71 54 */	addi r3, r3, lbl_80427154@l
/* 8026BA54 002676B4  7C 63 00 2E */	lwzx r3, r3, r0
/* 8026BA58 002676B8  7C 69 03 A6 */	mtctr r3
/* 8026BA5C 002676BC  4E 80 04 20 */	bctr
/* 8026BA60 002676C0  80 9A 01 98 */	lwz r4, 0x198(r26)
/* 8026BA64 002676C4  7F 85 E3 78 */	mr r5, r28
/* 8026BA68 002676C8  38 7F 00 D8 */	addi r3, r31, 0xd8
/* 8026BA6C 002676CC  4C C6 31 82 */	crclr 6
/* 8026BA70 002676D0  4B D9 C0 55 */	bl OSReport
/* 8026BA74 002676D4  48 00 00 94 */	b lbl_8026BB08
/* 8026BA78 002676D8  80 9A 01 98 */	lwz r4, 0x198(r26)
/* 8026BA7C 002676DC  38 7F 01 38 */	addi r3, r31, 0x138
/* 8026BA80 002676E0  4C C6 31 82 */	crclr 6
/* 8026BA84 002676E4  4B D9 C0 41 */	bl OSReport
/* 8026BA88 002676E8  48 00 00 80 */	b lbl_8026BB08
/* 8026BA8C 002676EC  80 9A 01 98 */	lwz r4, 0x198(r26)
/* 8026BA90 002676F0  7F 85 E3 78 */	mr r5, r28
/* 8026BA94 002676F4  38 7F 01 84 */	addi r3, r31, 0x184
/* 8026BA98 002676F8  4C C6 31 82 */	crclr 6
/* 8026BA9C 002676FC  4B D9 C0 29 */	bl OSReport
/* 8026BAA0 00267700  48 00 00 68 */	b lbl_8026BB08
/* 8026BAA4 00267704  80 9A 01 98 */	lwz r4, 0x198(r26)
/* 8026BAA8 00267708  7F 85 E3 78 */	mr r5, r28
/* 8026BAAC 0026770C  38 7F 01 E8 */	addi r3, r31, 0x1e8
/* 8026BAB0 00267710  4C C6 31 82 */	crclr 6
/* 8026BAB4 00267714  4B D9 C0 11 */	bl OSReport
/* 8026BAB8 00267718  48 00 00 50 */	b lbl_8026BB08
/* 8026BABC 0026771C  38 6D 87 BC */	addi r3, r13, lbl_8063DA7C-_SDA_BASE_
/* 8026BAC0 00267720  4C C6 31 82 */	crclr 6
/* 8026BAC4 00267724  4B D9 C0 01 */	bl OSReport
/* 8026BAC8 00267728  3F 20 CC 00 */	lis r25, 0xCC005030@ha
/* 8026BACC 0026772C  38 7F 02 48 */	addi r3, r31, 0x248
/* 8026BAD0 00267730  A0 99 50 30 */	lhz r4, 0xCC005030@l(r25)
/* 8026BAD4 00267734  A0 B9 50 32 */	lhz r5, 0x5032(r25)
/* 8026BAD8 00267738  4C C6 31 82 */	crclr 6
/* 8026BADC 0026773C  4B D9 BF E9 */	bl OSReport
/* 8026BAE0 00267740  A0 99 50 20 */	lhz r4, 0x5020(r25)
/* 8026BAE4 00267744  38 7F 02 68 */	addi r3, r31, 0x268
/* 8026BAE8 00267748  A0 B9 50 22 */	lhz r5, 0x5022(r25)
/* 8026BAEC 0026774C  4C C6 31 82 */	crclr 6
/* 8026BAF0 00267750  4B D9 BF D5 */	bl OSReport
/* 8026BAF4 00267754  3C 80 CD 00 */	lis r4, 0xCD006014@ha
/* 8026BAF8 00267758  38 7F 02 88 */	addi r3, r31, 0x288
/* 8026BAFC 0026775C  80 84 60 14 */	lwz r4, 0xCD006014@l(r4)
/* 8026BB00 00267760  4C C6 31 82 */	crclr 6
/* 8026BB04 00267764  4B D9 BF C1 */	bl OSReport
lbl_8026BB08:
/* 8026BB08 00267768  A8 8D A7 FC */	lha r4, lbl_8063FABC-_SDA_BASE_(r13)
/* 8026BB0C 0026776C  38 7F 02 A4 */	addi r3, r31, 0x2a4
/* 8026BB10 00267770  80 AD A7 F8 */	lwz r5, lbl_8063FAB8-_SDA_BASE_(r13)
/* 8026BB14 00267774  80 ED A8 00 */	lwz r7, lbl_8063FAC0-_SDA_BASE_(r13)
/* 8026BB18 00267778  81 0D A8 04 */	lwz r8, lbl_8063FAC4-_SDA_BASE_(r13)
/* 8026BB1C 0026777C  4C C6 31 82 */	crclr 6
/* 8026BB20 00267780  4B D9 BF A5 */	bl OSReport
/* 8026BB24 00267784  4B FF C7 45 */	bl PPCHalt
/* 8026BB28 00267788  39 61 00 30 */	addi r11, r1, 0x30
/* 8026BB2C 0026778C  4B F5 B6 39 */	bl _restgpr_23
/* 8026BB30 00267790  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8026BB34 00267794  7C 08 03 A6 */	mtlr r0
/* 8026BB38 00267798  38 21 00 30 */	addi r1, r1, 0x30
/* 8026BB3C 0026779C  4E 80 00 20 */	blr