summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSRtc.s
blob: bbcc2f8acaeffbc417ee9acac92b17c3b8a39e09 (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
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
.include "macros.inc"

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

.global WriteSramCallback
WriteSramCallback:
/* 802703DC 0026C03C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802703E0 0026C040  7C 08 02 A6 */	mflr r0
/* 802703E4 0026C044  3C C0 80 51 */	lis r6, lbl_80514780@ha
/* 802703E8 0026C048  3C A0 80 27 */	lis r5, WriteSramCallback@ha
/* 802703EC 0026C04C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802703F0 0026C050  38 C6 47 80 */	addi r6, r6, lbl_80514780@l
/* 802703F4 0026C054  38 60 00 00 */	li r3, 0
/* 802703F8 0026C058  38 A5 03 DC */	addi r5, r5, WriteSramCallback@l
/* 802703FC 0026C05C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80270400 0026C060  38 80 00 01 */	li r4, 1
/* 80270404 0026C064  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80270408 0026C068  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8027040C 0026C06C  83 E6 00 40 */	lwz r31, 0x40(r6)
/* 80270410 0026C070  23 BF 00 40 */	subfic r29, r31, 0x40
/* 80270414 0026C074  7F C6 FA 14 */	add r30, r6, r31
/* 80270418 0026C078  48 00 54 2D */	bl EXILock
/* 8027041C 0026C07C  2C 03 00 00 */	cmpwi r3, 0
/* 80270420 0026C080  40 82 00 0C */	bne lbl_8027042C
/* 80270424 0026C084  38 00 00 00 */	li r0, 0
/* 80270428 0026C088  48 00 00 B4 */	b lbl_802704DC
lbl_8027042C:
/* 8027042C 0026C08C  38 60 00 00 */	li r3, 0
/* 80270430 0026C090  38 80 00 01 */	li r4, 1
/* 80270434 0026C094  38 A0 00 03 */	li r5, 3
/* 80270438 0026C098  48 00 4C 79 */	bl EXISelect
/* 8027043C 0026C09C  2C 03 00 00 */	cmpwi r3, 0
/* 80270440 0026C0A0  40 82 00 14 */	bne lbl_80270454
/* 80270444 0026C0A4  38 60 00 00 */	li r3, 0
/* 80270448 0026C0A8  48 00 54 F9 */	bl EXIUnlock
/* 8027044C 0026C0AC  38 00 00 00 */	li r0, 0
/* 80270450 0026C0B0  48 00 00 8C */	b lbl_802704DC
lbl_80270454:
/* 80270454 0026C0B4  57 E3 30 32 */	slwi r3, r31, 6
/* 80270458 0026C0B8  38 81 00 08 */	addi r4, r1, 8
/* 8027045C 0026C0BC  38 03 01 00 */	addi r0, r3, 0x100
/* 80270460 0026C0C0  38 A0 00 04 */	li r5, 4
/* 80270464 0026C0C4  64 00 A0 00 */	oris r0, r0, 0xa000
/* 80270468 0026C0C8  38 60 00 00 */	li r3, 0
/* 8027046C 0026C0CC  90 01 00 08 */	stw r0, 8(r1)
/* 80270470 0026C0D0  38 C0 00 01 */	li r6, 1
/* 80270474 0026C0D4  38 E0 00 00 */	li r7, 0
/* 80270478 0026C0D8  48 00 41 D1 */	bl EXIImm
/* 8027047C 0026C0DC  7C 60 00 34 */	cntlzw r0, r3
/* 80270480 0026C0E0  38 60 00 00 */	li r3, 0
/* 80270484 0026C0E4  54 1F D9 7E */	srwi r31, r0, 5
/* 80270488 0026C0E8  48 00 45 D9 */	bl EXISync
/* 8027048C 0026C0EC  7C 60 00 34 */	cntlzw r0, r3
/* 80270490 0026C0F0  7F C4 F3 78 */	mr r4, r30
/* 80270494 0026C0F4  54 00 D9 7E */	srwi r0, r0, 5
/* 80270498 0026C0F8  7F A5 EB 78 */	mr r5, r29
/* 8027049C 0026C0FC  7F FD 03 78 */	or r29, r31, r0
/* 802704A0 0026C100  38 60 00 00 */	li r3, 0
/* 802704A4 0026C104  38 C0 00 01 */	li r6, 1
/* 802704A8 0026C108  48 00 44 1D */	bl EXIImmEx
/* 802704AC 0026C10C  7C 60 00 34 */	cntlzw r0, r3
/* 802704B0 0026C110  38 60 00 00 */	li r3, 0
/* 802704B4 0026C114  54 00 D9 7E */	srwi r0, r0, 5
/* 802704B8 0026C118  7F BD 03 78 */	or r29, r29, r0
/* 802704BC 0026C11C  48 00 4D 25 */	bl EXIDeselect
/* 802704C0 0026C120  7C 60 00 34 */	cntlzw r0, r3
/* 802704C4 0026C124  38 60 00 00 */	li r3, 0
/* 802704C8 0026C128  54 00 D9 7E */	srwi r0, r0, 5
/* 802704CC 0026C12C  7F BD 03 78 */	or r29, r29, r0
/* 802704D0 0026C130  48 00 54 71 */	bl EXIUnlock
/* 802704D4 0026C134  7F A0 00 34 */	cntlzw r0, r29
/* 802704D8 0026C138  54 00 D9 7E */	srwi r0, r0, 5
lbl_802704DC:
/* 802704DC 0026C13C  3C 60 80 51 */	lis r3, lbl_80514780@ha
/* 802704E0 0026C140  2C 00 00 00 */	cmpwi r0, 0
/* 802704E4 0026C144  38 63 47 80 */	addi r3, r3, lbl_80514780@l
/* 802704E8 0026C148  90 03 00 4C */	stw r0, 0x4c(r3)
/* 802704EC 0026C14C  41 82 00 0C */	beq lbl_802704F8
/* 802704F0 0026C150  38 00 00 40 */	li r0, 0x40
/* 802704F4 0026C154  90 03 00 40 */	stw r0, 0x40(r3)
lbl_802704F8:
/* 802704F8 0026C158  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802704FC 0026C15C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80270500 0026C160  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80270504 0026C164  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80270508 0026C168  7C 08 03 A6 */	mtlr r0
/* 8027050C 0026C16C  38 21 00 20 */	addi r1, r1, 0x20
/* 80270510 0026C170  4E 80 00 20 */	blr

.global __OSInitSram
__OSInitSram:
/* 80270514 0026C174  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80270518 0026C178  7C 08 02 A6 */	mflr r0
/* 8027051C 0026C17C  38 80 00 40 */	li r4, 0x40
/* 80270520 0026C180  90 01 00 24 */	stw r0, 0x24(r1)
/* 80270524 0026C184  38 00 00 00 */	li r0, 0
/* 80270528 0026C188  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8027052C 0026C18C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80270530 0026C190  3F C0 80 51 */	lis r30, lbl_80514780@ha
/* 80270534 0026C194  3B DE 47 80 */	addi r30, r30, lbl_80514780@l
/* 80270538 0026C198  90 1E 00 44 */	stw r0, 0x44(r30)
/* 8027053C 0026C19C  7F C3 F3 78 */	mr r3, r30
/* 80270540 0026C1A0  90 1E 00 48 */	stw r0, 0x48(r30)
/* 80270544 0026C1A4  4B FF A0 E5 */	bl DCInvalidateRange
/* 80270548 0026C1A8  38 60 00 00 */	li r3, 0
/* 8027054C 0026C1AC  38 80 00 01 */	li r4, 1
/* 80270550 0026C1B0  38 A0 00 00 */	li r5, 0
/* 80270554 0026C1B4  48 00 52 F1 */	bl EXILock
/* 80270558 0026C1B8  2C 03 00 00 */	cmpwi r3, 0
/* 8027055C 0026C1BC  40 82 00 0C */	bne lbl_80270568
/* 80270560 0026C1C0  38 60 00 00 */	li r3, 0
/* 80270564 0026C1C4  48 00 00 C8 */	b lbl_8027062C
lbl_80270568:
/* 80270568 0026C1C8  38 60 00 00 */	li r3, 0
/* 8027056C 0026C1CC  38 80 00 01 */	li r4, 1
/* 80270570 0026C1D0  38 A0 00 03 */	li r5, 3
/* 80270574 0026C1D4  48 00 4B 3D */	bl EXISelect
/* 80270578 0026C1D8  2C 03 00 00 */	cmpwi r3, 0
/* 8027057C 0026C1DC  40 82 00 14 */	bne lbl_80270590
/* 80270580 0026C1E0  38 60 00 00 */	li r3, 0
/* 80270584 0026C1E4  48 00 53 BD */	bl EXIUnlock
/* 80270588 0026C1E8  38 60 00 00 */	li r3, 0
/* 8027058C 0026C1EC  48 00 00 A0 */	b lbl_8027062C
lbl_80270590:
/* 80270590 0026C1F0  3C 60 20 00 */	lis r3, 0x20000100@ha
/* 80270594 0026C1F4  38 81 00 08 */	addi r4, r1, 8
/* 80270598 0026C1F8  38 03 01 00 */	addi r0, r3, 0x20000100@l
/* 8027059C 0026C1FC  38 A0 00 04 */	li r5, 4
/* 802705A0 0026C200  90 01 00 08 */	stw r0, 8(r1)
/* 802705A4 0026C204  38 60 00 00 */	li r3, 0
/* 802705A8 0026C208  38 C0 00 01 */	li r6, 1
/* 802705AC 0026C20C  38 E0 00 00 */	li r7, 0
/* 802705B0 0026C210  48 00 40 99 */	bl EXIImm
/* 802705B4 0026C214  7C 60 00 34 */	cntlzw r0, r3
/* 802705B8 0026C218  38 60 00 00 */	li r3, 0
/* 802705BC 0026C21C  54 1F D9 7E */	srwi r31, r0, 5
/* 802705C0 0026C220  48 00 44 A1 */	bl EXISync
/* 802705C4 0026C224  7C 60 00 34 */	cntlzw r0, r3
/* 802705C8 0026C228  7F C4 F3 78 */	mr r4, r30
/* 802705CC 0026C22C  54 00 D9 7E */	srwi r0, r0, 5
/* 802705D0 0026C230  38 60 00 00 */	li r3, 0
/* 802705D4 0026C234  7F FE 03 78 */	or r30, r31, r0
/* 802705D8 0026C238  38 A0 00 40 */	li r5, 0x40
/* 802705DC 0026C23C  38 C0 00 00 */	li r6, 0
/* 802705E0 0026C240  38 E0 00 00 */	li r7, 0
/* 802705E4 0026C244  48 00 43 85 */	bl EXIDma
/* 802705E8 0026C248  7C 60 00 34 */	cntlzw r0, r3
/* 802705EC 0026C24C  38 60 00 00 */	li r3, 0
/* 802705F0 0026C250  54 00 D9 7E */	srwi r0, r0, 5
/* 802705F4 0026C254  7F DE 03 78 */	or r30, r30, r0
/* 802705F8 0026C258  48 00 44 69 */	bl EXISync
/* 802705FC 0026C25C  7C 60 00 34 */	cntlzw r0, r3
/* 80270600 0026C260  38 60 00 00 */	li r3, 0
/* 80270604 0026C264  54 00 D9 7E */	srwi r0, r0, 5
/* 80270608 0026C268  7F DE 03 78 */	or r30, r30, r0
/* 8027060C 0026C26C  48 00 4B D5 */	bl EXIDeselect
/* 80270610 0026C270  7C 60 00 34 */	cntlzw r0, r3
/* 80270614 0026C274  38 60 00 00 */	li r3, 0
/* 80270618 0026C278  54 00 D9 7E */	srwi r0, r0, 5
/* 8027061C 0026C27C  7F DE 03 78 */	or r30, r30, r0
/* 80270620 0026C280  48 00 53 21 */	bl EXIUnlock
/* 80270624 0026C284  7F C0 00 34 */	cntlzw r0, r30
/* 80270628 0026C288  54 03 D9 7E */	srwi r3, r0, 5
lbl_8027062C:
/* 8027062C 0026C28C  3F E0 80 51 */	lis r31, lbl_80514780@ha
/* 80270630 0026C290  38 00 00 40 */	li r0, 0x40
/* 80270634 0026C294  3B FF 47 80 */	addi r31, r31, lbl_80514780@l
/* 80270638 0026C298  90 7F 00 4C */	stw r3, 0x4c(r31)
/* 8027063C 0026C29C  90 1F 00 40 */	stw r0, 0x40(r31)
/* 80270640 0026C2A0  4B FF E1 1D */	bl OSDisableInterrupts
/* 80270644 0026C2A4  80 1F 00 48 */	lwz r0, 0x48(r31)
/* 80270648 0026C2A8  2C 00 00 00 */	cmpwi r0, 0
/* 8027064C 0026C2AC  41 82 00 10 */	beq lbl_8027065C
/* 80270650 0026C2B0  4B FF E1 35 */	bl OSRestoreInterrupts
/* 80270654 0026C2B4  38 60 00 00 */	li r3, 0
/* 80270658 0026C2B8  48 00 00 14 */	b lbl_8027066C
lbl_8027065C:
/* 8027065C 0026C2BC  38 00 00 01 */	li r0, 1
/* 80270660 0026C2C0  90 7F 00 44 */	stw r3, 0x44(r31)
/* 80270664 0026C2C4  38 7F 00 14 */	addi r3, r31, 0x14
/* 80270668 0026C2C8  90 1F 00 48 */	stw r0, 0x48(r31)
lbl_8027066C:
/* 8027066C 0026C2CC  A3 C3 00 28 */	lhz r30, 0x28(r3)
/* 80270670 0026C2D0  38 60 00 00 */	li r3, 0
/* 80270674 0026C2D4  38 80 00 14 */	li r4, 0x14
/* 80270678 0026C2D8  48 00 00 9D */	bl UnlockSram
/* 8027067C 0026C2DC  57 C0 04 6A */	rlwinm r0, r30, 0, 0x11, 0x15
/* 80270680 0026C2E0  28 00 50 00 */	cmplwi r0, 0x5000
/* 80270684 0026C2E4  41 82 00 10 */	beq lbl_80270694
/* 80270688 0026C2E8  57 C0 06 32 */	rlwinm r0, r30, 0, 0x18, 0x19
/* 8027068C 0026C2EC  28 00 00 C0 */	cmplwi r0, 0xc0
/* 80270690 0026C2F0  40 82 00 08 */	bne lbl_80270698
lbl_80270694:
/* 80270694 0026C2F4  3B C0 00 00 */	li r30, 0
lbl_80270698:
/* 80270698 0026C2F8  4B FF E0 C5 */	bl OSDisableInterrupts
/* 8027069C 0026C2FC  3C 80 80 51 */	lis r4, lbl_80514780@ha
/* 802706A0 0026C300  38 84 47 80 */	addi r4, r4, lbl_80514780@l
/* 802706A4 0026C304  80 04 00 48 */	lwz r0, 0x48(r4)
/* 802706A8 0026C308  2C 00 00 00 */	cmpwi r0, 0
/* 802706AC 0026C30C  41 82 00 10 */	beq lbl_802706BC
/* 802706B0 0026C310  4B FF E0 D5 */	bl OSRestoreInterrupts
/* 802706B4 0026C314  38 A0 00 00 */	li r5, 0
/* 802706B8 0026C318  48 00 00 14 */	b lbl_802706CC
lbl_802706BC:
/* 802706BC 0026C31C  38 00 00 01 */	li r0, 1
/* 802706C0 0026C320  90 64 00 44 */	stw r3, 0x44(r4)
/* 802706C4 0026C324  38 A4 00 14 */	addi r5, r4, 0x14
/* 802706C8 0026C328  90 04 00 48 */	stw r0, 0x48(r4)
lbl_802706CC:
/* 802706CC 0026C32C  A0 05 00 28 */	lhz r0, 0x28(r5)
/* 802706D0 0026C330  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 802706D4 0026C334  7C 03 00 40 */	cmplw r3, r0
/* 802706D8 0026C338  40 82 00 14 */	bne lbl_802706EC
/* 802706DC 0026C33C  38 60 00 00 */	li r3, 0
/* 802706E0 0026C340  38 80 00 14 */	li r4, 0x14
/* 802706E4 0026C344  48 00 00 31 */	bl UnlockSram
/* 802706E8 0026C348  48 00 00 14 */	b lbl_802706FC
lbl_802706EC:
/* 802706EC 0026C34C  B3 C5 00 28 */	sth r30, 0x28(r5)
/* 802706F0 0026C350  38 60 00 01 */	li r3, 1
/* 802706F4 0026C354  38 80 00 14 */	li r4, 0x14
/* 802706F8 0026C358  48 00 00 1D */	bl UnlockSram
lbl_802706FC:
/* 802706FC 0026C35C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80270700 0026C360  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80270704 0026C364  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80270708 0026C368  7C 08 03 A6 */	mtlr r0
/* 8027070C 0026C36C  38 21 00 20 */	addi r1, r1, 0x20
/* 80270710 0026C370  4E 80 00 20 */	blr

.global UnlockSram
UnlockSram:
/* 80270714 0026C374  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80270718 0026C378  7C 08 02 A6 */	mflr r0
/* 8027071C 0026C37C  2C 03 00 00 */	cmpwi r3, 0
/* 80270720 0026C380  90 01 00 24 */	stw r0, 0x24(r1)
/* 80270724 0026C384  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80270728 0026C388  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8027072C 0026C38C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80270730 0026C390  41 82 02 8C */	beq lbl_802709BC
/* 80270734 0026C394  2C 04 00 00 */	cmpwi r4, 0
/* 80270738 0026C398  40 82 01 30 */	bne lbl_80270868
/* 8027073C 0026C39C  3D 00 80 51 */	lis r8, lbl_80514780@ha
/* 80270740 0026C3A0  39 08 47 80 */	addi r8, r8, lbl_80514780@l
/* 80270744 0026C3A4  88 68 00 13 */	lbz r3, 0x13(r8)
/* 80270748 0026C3A8  54 60 07 BE */	clrlwi r0, r3, 0x1e
/* 8027074C 0026C3AC  28 00 00 02 */	cmplwi r0, 2
/* 80270750 0026C3B0  40 81 00 0C */	ble lbl_8027075C
/* 80270754 0026C3B4  54 60 06 3A */	rlwinm r0, r3, 0, 0x18, 0x1d
/* 80270758 0026C3B8  98 08 00 13 */	stb r0, 0x13(r8)
lbl_8027075C:
/* 8027075C 0026C3BC  3C 60 80 51 */	lis r3, lbl_80514780@ha
/* 80270760 0026C3C0  38 00 00 00 */	li r0, 0
/* 80270764 0026C3C4  38 63 47 80 */	addi r3, r3, lbl_80514780@l
/* 80270768 0026C3C8  38 E8 00 0C */	addi r7, r8, 0xc
/* 8027076C 0026C3CC  38 A3 00 14 */	addi r5, r3, 0x14
/* 80270770 0026C3D0  B0 08 00 02 */	sth r0, 2(r8)
/* 80270774 0026C3D4  38 65 00 01 */	addi r3, r5, 1
/* 80270778 0026C3D8  7C 67 18 50 */	subf r3, r7, r3
/* 8027077C 0026C3DC  7C 07 28 40 */	cmplw r7, r5
/* 80270780 0026C3E0  B0 08 00 00 */	sth r0, 0(r8)
/* 80270784 0026C3E4  54 63 F8 7E */	srwi r3, r3, 1
/* 80270788 0026C3E8  40 80 00 E0 */	bge lbl_80270868
/* 8027078C 0026C3EC  54 60 F0 BF */	rlwinm. r0, r3, 0x1e, 2, 0x1f
/* 80270790 0026C3F0  7C 09 03 A6 */	mtctr r0
/* 80270794 0026C3F4  41 82 00 A4 */	beq lbl_80270838
lbl_80270798:
/* 80270798 0026C3F8  A0 C8 00 00 */	lhz r6, 0(r8)
/* 8027079C 0026C3FC  A0 07 00 00 */	lhz r0, 0(r7)
/* 802707A0 0026C400  A0 A8 00 02 */	lhz r5, 2(r8)
/* 802707A4 0026C404  7C 06 02 14 */	add r0, r6, r0
/* 802707A8 0026C408  B0 08 00 00 */	sth r0, 0(r8)
/* 802707AC 0026C40C  54 06 04 3E */	clrlwi r6, r0, 0x10
/* 802707B0 0026C410  A0 07 00 00 */	lhz r0, 0(r7)
/* 802707B4 0026C414  7C 00 00 F8 */	nor r0, r0, r0
/* 802707B8 0026C418  7C 05 02 14 */	add r0, r5, r0
/* 802707BC 0026C41C  B0 08 00 02 */	sth r0, 2(r8)
/* 802707C0 0026C420  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 802707C4 0026C424  A0 07 00 02 */	lhz r0, 2(r7)
/* 802707C8 0026C428  7C 06 02 14 */	add r0, r6, r0
/* 802707CC 0026C42C  B0 08 00 00 */	sth r0, 0(r8)
/* 802707D0 0026C430  54 06 04 3E */	clrlwi r6, r0, 0x10
/* 802707D4 0026C434  A0 07 00 02 */	lhz r0, 2(r7)
/* 802707D8 0026C438  7C 00 00 F8 */	nor r0, r0, r0
/* 802707DC 0026C43C  7C 05 02 14 */	add r0, r5, r0
/* 802707E0 0026C440  B0 08 00 02 */	sth r0, 2(r8)
/* 802707E4 0026C444  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 802707E8 0026C448  A0 07 00 04 */	lhz r0, 4(r7)
/* 802707EC 0026C44C  7C 06 02 14 */	add r0, r6, r0
/* 802707F0 0026C450  B0 08 00 00 */	sth r0, 0(r8)
/* 802707F4 0026C454  54 06 04 3E */	clrlwi r6, r0, 0x10
/* 802707F8 0026C458  A0 07 00 04 */	lhz r0, 4(r7)
/* 802707FC 0026C45C  7C 00 00 F8 */	nor r0, r0, r0
/* 80270800 0026C460  7C 05 02 14 */	add r0, r5, r0
/* 80270804 0026C464  B0 08 00 02 */	sth r0, 2(r8)
/* 80270808 0026C468  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 8027080C 0026C46C  A0 07 00 06 */	lhz r0, 6(r7)
/* 80270810 0026C470  7C 06 02 14 */	add r0, r6, r0
/* 80270814 0026C474  B0 08 00 00 */	sth r0, 0(r8)
/* 80270818 0026C478  A0 07 00 06 */	lhz r0, 6(r7)
/* 8027081C 0026C47C  38 E7 00 08 */	addi r7, r7, 8
/* 80270820 0026C480  7C 00 00 F8 */	nor r0, r0, r0
/* 80270824 0026C484  7C 05 02 14 */	add r0, r5, r0
/* 80270828 0026C488  B0 08 00 02 */	sth r0, 2(r8)
/* 8027082C 0026C48C  42 00 FF 6C */	bdnz lbl_80270798
/* 80270830 0026C490  70 63 00 03 */	andi. r3, r3, 3
/* 80270834 0026C494  41 82 00 34 */	beq lbl_80270868
lbl_80270838:
/* 80270838 0026C498  7C 69 03 A6 */	mtctr r3
lbl_8027083C:
/* 8027083C 0026C49C  A0 C8 00 00 */	lhz r6, 0(r8)
/* 80270840 0026C4A0  A0 07 00 00 */	lhz r0, 0(r7)
/* 80270844 0026C4A4  A0 A8 00 02 */	lhz r5, 2(r8)
/* 80270848 0026C4A8  7C 06 02 14 */	add r0, r6, r0
/* 8027084C 0026C4AC  B0 08 00 00 */	sth r0, 0(r8)
/* 80270850 0026C4B0  A0 07 00 00 */	lhz r0, 0(r7)
/* 80270854 0026C4B4  38 E7 00 02 */	addi r7, r7, 2
/* 80270858 0026C4B8  7C 00 00 F8 */	nor r0, r0, r0
/* 8027085C 0026C4BC  7C 05 02 14 */	add r0, r5, r0
/* 80270860 0026C4C0  B0 08 00 02 */	sth r0, 2(r8)
/* 80270864 0026C4C4  42 00 FF D8 */	bdnz lbl_8027083C
lbl_80270868:
/* 80270868 0026C4C8  3C 60 80 51 */	lis r3, lbl_80514780@ha
/* 8027086C 0026C4CC  38 63 47 80 */	addi r3, r3, lbl_80514780@l
/* 80270870 0026C4D0  80 03 00 40 */	lwz r0, 0x40(r3)
/* 80270874 0026C4D4  7C 04 00 40 */	cmplw r4, r0
/* 80270878 0026C4D8  40 80 00 08 */	bge lbl_80270880
/* 8027087C 0026C4DC  90 83 00 40 */	stw r4, 0x40(r3)
lbl_80270880:
/* 80270880 0026C4E0  3C 80 80 51 */	lis r4, lbl_80514780@ha
/* 80270884 0026C4E4  38 84 47 80 */	addi r4, r4, lbl_80514780@l
/* 80270888 0026C4E8  80 04 00 40 */	lwz r0, 0x40(r4)
/* 8027088C 0026C4EC  28 00 00 14 */	cmplwi r0, 0x14
/* 80270890 0026C4F0  41 81 00 28 */	bgt lbl_802708B8
/* 80270894 0026C4F4  A0 64 00 3C */	lhz r3, 0x3c(r4)
/* 80270898 0026C4F8  54 60 04 6A */	rlwinm r0, r3, 0, 0x11, 0x15
/* 8027089C 0026C4FC  28 00 50 00 */	cmplwi r0, 0x5000
/* 802708A0 0026C500  41 82 00 10 */	beq lbl_802708B0
/* 802708A4 0026C504  54 60 06 32 */	rlwinm r0, r3, 0, 0x18, 0x19
/* 802708A8 0026C508  28 00 00 C0 */	cmplwi r0, 0xc0
/* 802708AC 0026C50C  40 82 00 0C */	bne lbl_802708B8
lbl_802708B0:
/* 802708B0 0026C510  38 00 00 00 */	li r0, 0
/* 802708B4 0026C514  B0 04 00 3C */	sth r0, 0x3c(r4)
lbl_802708B8:
/* 802708B8 0026C518  3C C0 80 51 */	lis r6, lbl_80514780@ha
/* 802708BC 0026C51C  3C A0 80 27 */	lis r5, WriteSramCallback@ha
/* 802708C0 0026C520  38 C6 47 80 */	addi r6, r6, lbl_80514780@l
/* 802708C4 0026C524  38 60 00 00 */	li r3, 0
/* 802708C8 0026C528  83 E6 00 40 */	lwz r31, 0x40(r6)
/* 802708CC 0026C52C  38 A5 03 DC */	addi r5, r5, WriteSramCallback@l
/* 802708D0 0026C530  38 80 00 01 */	li r4, 1
/* 802708D4 0026C534  23 BF 00 40 */	subfic r29, r31, 0x40
/* 802708D8 0026C538  7F C6 FA 14 */	add r30, r6, r31
/* 802708DC 0026C53C  48 00 4F 69 */	bl EXILock
/* 802708E0 0026C540  2C 03 00 00 */	cmpwi r3, 0
/* 802708E4 0026C544  40 82 00 0C */	bne lbl_802708F0
/* 802708E8 0026C548  38 00 00 00 */	li r0, 0
/* 802708EC 0026C54C  48 00 00 B4 */	b lbl_802709A0
lbl_802708F0:
/* 802708F0 0026C550  38 60 00 00 */	li r3, 0
/* 802708F4 0026C554  38 80 00 01 */	li r4, 1
/* 802708F8 0026C558  38 A0 00 03 */	li r5, 3
/* 802708FC 0026C55C  48 00 47 B5 */	bl EXISelect
/* 80270900 0026C560  2C 03 00 00 */	cmpwi r3, 0
/* 80270904 0026C564  40 82 00 14 */	bne lbl_80270918
/* 80270908 0026C568  38 60 00 00 */	li r3, 0
/* 8027090C 0026C56C  48 00 50 35 */	bl EXIUnlock
/* 80270910 0026C570  38 00 00 00 */	li r0, 0
/* 80270914 0026C574  48 00 00 8C */	b lbl_802709A0
lbl_80270918:
/* 80270918 0026C578  57 E3 30 32 */	slwi r3, r31, 6
/* 8027091C 0026C57C  38 81 00 08 */	addi r4, r1, 8
/* 80270920 0026C580  38 03 01 00 */	addi r0, r3, 0x100
/* 80270924 0026C584  38 A0 00 04 */	li r5, 4
/* 80270928 0026C588  64 00 A0 00 */	oris r0, r0, 0xa000
/* 8027092C 0026C58C  38 60 00 00 */	li r3, 0
/* 80270930 0026C590  90 01 00 08 */	stw r0, 8(r1)
/* 80270934 0026C594  38 C0 00 01 */	li r6, 1
/* 80270938 0026C598  38 E0 00 00 */	li r7, 0
/* 8027093C 0026C59C  48 00 3D 0D */	bl EXIImm
/* 80270940 0026C5A0  7C 60 00 34 */	cntlzw r0, r3
/* 80270944 0026C5A4  38 60 00 00 */	li r3, 0
/* 80270948 0026C5A8  54 1F D9 7E */	srwi r31, r0, 5
/* 8027094C 0026C5AC  48 00 41 15 */	bl EXISync
/* 80270950 0026C5B0  7C 60 00 34 */	cntlzw r0, r3
/* 80270954 0026C5B4  7F C4 F3 78 */	mr r4, r30
/* 80270958 0026C5B8  54 00 D9 7E */	srwi r0, r0, 5
/* 8027095C 0026C5BC  7F A5 EB 78 */	mr r5, r29
/* 80270960 0026C5C0  7F FD 03 78 */	or r29, r31, r0
/* 80270964 0026C5C4  38 60 00 00 */	li r3, 0
/* 80270968 0026C5C8  38 C0 00 01 */	li r6, 1
/* 8027096C 0026C5CC  48 00 3F 59 */	bl EXIImmEx
/* 80270970 0026C5D0  7C 60 00 34 */	cntlzw r0, r3
/* 80270974 0026C5D4  38 60 00 00 */	li r3, 0
/* 80270978 0026C5D8  54 00 D9 7E */	srwi r0, r0, 5
/* 8027097C 0026C5DC  7F BD 03 78 */	or r29, r29, r0
/* 80270980 0026C5E0  48 00 48 61 */	bl EXIDeselect
/* 80270984 0026C5E4  7C 60 00 34 */	cntlzw r0, r3
/* 80270988 0026C5E8  38 60 00 00 */	li r3, 0
/* 8027098C 0026C5EC  54 00 D9 7E */	srwi r0, r0, 5
/* 80270990 0026C5F0  7F BD 03 78 */	or r29, r29, r0
/* 80270994 0026C5F4  48 00 4F AD */	bl EXIUnlock
/* 80270998 0026C5F8  7F A0 00 34 */	cntlzw r0, r29
/* 8027099C 0026C5FC  54 00 D9 7E */	srwi r0, r0, 5
lbl_802709A0:
/* 802709A0 0026C600  3C 60 80 51 */	lis r3, lbl_80514780@ha
/* 802709A4 0026C604  2C 00 00 00 */	cmpwi r0, 0
/* 802709A8 0026C608  38 63 47 80 */	addi r3, r3, lbl_80514780@l
/* 802709AC 0026C60C  90 03 00 4C */	stw r0, 0x4c(r3)
/* 802709B0 0026C610  41 82 00 0C */	beq lbl_802709BC
/* 802709B4 0026C614  38 00 00 40 */	li r0, 0x40
/* 802709B8 0026C618  90 03 00 40 */	stw r0, 0x40(r3)
lbl_802709BC:
/* 802709BC 0026C61C  3F E0 80 51 */	lis r31, lbl_80514780@ha
/* 802709C0 0026C620  38 00 00 00 */	li r0, 0
/* 802709C4 0026C624  3B FF 47 80 */	addi r31, r31, lbl_80514780@l
/* 802709C8 0026C628  90 1F 00 48 */	stw r0, 0x48(r31)
/* 802709CC 0026C62C  80 7F 00 44 */	lwz r3, 0x44(r31)
/* 802709D0 0026C630  4B FF DD B5 */	bl OSRestoreInterrupts
/* 802709D4 0026C634  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 802709D8 0026C638  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802709DC 0026C63C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802709E0 0026C640  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802709E4 0026C644  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802709E8 0026C648  7C 08 03 A6 */	mtlr r0
/* 802709EC 0026C64C  38 21 00 20 */	addi r1, r1, 0x20
/* 802709F0 0026C650  4E 80 00 20 */	blr

.global __OSSyncSram
__OSSyncSram:
/* 802709F4 0026C654  3C 60 80 51 */	lis r3, lbl_80514780@ha
/* 802709F8 0026C658  38 63 47 80 */	addi r3, r3, lbl_80514780@l
/* 802709FC 0026C65C  80 63 00 4C */	lwz r3, 0x4c(r3)
/* 80270A00 0026C660  4E 80 00 20 */	blr

.global __OSReadROM
__OSReadROM:
/* 80270A04 0026C664  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80270A08 0026C668  7C 08 02 A6 */	mflr r0
/* 80270A0C 0026C66C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80270A10 0026C670  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80270A14 0026C674  7C BF 2B 78 */	mr r31, r5
/* 80270A18 0026C678  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80270A1C 0026C67C  7C 9E 23 78 */	mr r30, r4
/* 80270A20 0026C680  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80270A24 0026C684  7C 7D 1B 78 */	mr r29, r3
/* 80270A28 0026C688  4B FF 9C 01 */	bl DCInvalidateRange
/* 80270A2C 0026C68C  38 60 00 00 */	li r3, 0
/* 80270A30 0026C690  38 80 00 01 */	li r4, 1
/* 80270A34 0026C694  38 A0 00 00 */	li r5, 0
/* 80270A38 0026C698  48 00 4E 0D */	bl EXILock
/* 80270A3C 0026C69C  2C 03 00 00 */	cmpwi r3, 0
/* 80270A40 0026C6A0  40 82 00 0C */	bne lbl_80270A4C
/* 80270A44 0026C6A4  38 60 00 00 */	li r3, 0
/* 80270A48 0026C6A8  48 00 00 C4 */	b lbl_80270B0C
lbl_80270A4C:
/* 80270A4C 0026C6AC  38 60 00 00 */	li r3, 0
/* 80270A50 0026C6B0  38 80 00 01 */	li r4, 1
/* 80270A54 0026C6B4  38 A0 00 03 */	li r5, 3
/* 80270A58 0026C6B8  48 00 46 59 */	bl EXISelect
/* 80270A5C 0026C6BC  2C 03 00 00 */	cmpwi r3, 0
/* 80270A60 0026C6C0  40 82 00 14 */	bne lbl_80270A74
/* 80270A64 0026C6C4  38 60 00 00 */	li r3, 0
/* 80270A68 0026C6C8  48 00 4E D9 */	bl EXIUnlock
/* 80270A6C 0026C6CC  38 60 00 00 */	li r3, 0
/* 80270A70 0026C6D0  48 00 00 9C */	b lbl_80270B0C
lbl_80270A74:
/* 80270A74 0026C6D4  57 E0 30 32 */	slwi r0, r31, 6
/* 80270A78 0026C6D8  38 81 00 08 */	addi r4, r1, 8
/* 80270A7C 0026C6DC  90 01 00 08 */	stw r0, 8(r1)
/* 80270A80 0026C6E0  38 60 00 00 */	li r3, 0
/* 80270A84 0026C6E4  38 A0 00 04 */	li r5, 4
/* 80270A88 0026C6E8  38 C0 00 01 */	li r6, 1
/* 80270A8C 0026C6EC  38 E0 00 00 */	li r7, 0
/* 80270A90 0026C6F0  48 00 3B B9 */	bl EXIImm
/* 80270A94 0026C6F4  7C 60 00 34 */	cntlzw r0, r3
/* 80270A98 0026C6F8  38 60 00 00 */	li r3, 0
/* 80270A9C 0026C6FC  54 1F D9 7E */	srwi r31, r0, 5
/* 80270AA0 0026C700  48 00 3F C1 */	bl EXISync
/* 80270AA4 0026C704  7C 60 00 34 */	cntlzw r0, r3
/* 80270AA8 0026C708  7F A4 EB 78 */	mr r4, r29
/* 80270AAC 0026C70C  54 00 D9 7E */	srwi r0, r0, 5
/* 80270AB0 0026C710  7F C5 F3 78 */	mr r5, r30
/* 80270AB4 0026C714  7F FF 03 78 */	or r31, r31, r0
/* 80270AB8 0026C718  38 60 00 00 */	li r3, 0
/* 80270ABC 0026C71C  38 C0 00 00 */	li r6, 0
/* 80270AC0 0026C720  38 E0 00 00 */	li r7, 0
/* 80270AC4 0026C724  48 00 3E A5 */	bl EXIDma
/* 80270AC8 0026C728  7C 60 00 34 */	cntlzw r0, r3
/* 80270ACC 0026C72C  38 60 00 00 */	li r3, 0
/* 80270AD0 0026C730  54 00 D9 7E */	srwi r0, r0, 5
/* 80270AD4 0026C734  7F FF 03 78 */	or r31, r31, r0
/* 80270AD8 0026C738  48 00 3F 89 */	bl EXISync
/* 80270ADC 0026C73C  7C 60 00 34 */	cntlzw r0, r3
/* 80270AE0 0026C740  38 60 00 00 */	li r3, 0
/* 80270AE4 0026C744  54 00 D9 7E */	srwi r0, r0, 5
/* 80270AE8 0026C748  7F FF 03 78 */	or r31, r31, r0
/* 80270AEC 0026C74C  48 00 46 F5 */	bl EXIDeselect
/* 80270AF0 0026C750  7C 60 00 34 */	cntlzw r0, r3
/* 80270AF4 0026C754  38 60 00 00 */	li r3, 0
/* 80270AF8 0026C758  54 00 D9 7E */	srwi r0, r0, 5
/* 80270AFC 0026C75C  7F FF 03 78 */	or r31, r31, r0
/* 80270B00 0026C760  48 00 4E 41 */	bl EXIUnlock
/* 80270B04 0026C764  7F E0 00 34 */	cntlzw r0, r31
/* 80270B08 0026C768  54 03 D9 7E */	srwi r3, r0, 5
lbl_80270B0C:
/* 80270B0C 0026C76C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80270B10 0026C770  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80270B14 0026C774  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80270B18 0026C778  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80270B1C 0026C77C  7C 08 03 A6 */	mtlr r0
/* 80270B20 0026C780  38 21 00 20 */	addi r1, r1, 0x20
/* 80270B24 0026C784  4E 80 00 20 */	blr

.global OSGetWirelessID
OSGetWirelessID:
/* 80270B28 0026C788  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80270B2C 0026C78C  7C 08 02 A6 */	mflr r0
/* 80270B30 0026C790  90 01 00 14 */	stw r0, 0x14(r1)
/* 80270B34 0026C794  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80270B38 0026C798  7C 7F 1B 78 */	mr r31, r3
/* 80270B3C 0026C79C  4B FF DC 21 */	bl OSDisableInterrupts
/* 80270B40 0026C7A0  3C 80 80 51 */	lis r4, lbl_80514780@ha
/* 80270B44 0026C7A4  38 84 47 80 */	addi r4, r4, lbl_80514780@l
/* 80270B48 0026C7A8  80 04 00 48 */	lwz r0, 0x48(r4)
/* 80270B4C 0026C7AC  2C 00 00 00 */	cmpwi r0, 0
/* 80270B50 0026C7B0  41 82 00 10 */	beq lbl_80270B60
/* 80270B54 0026C7B4  4B FF DC 31 */	bl OSRestoreInterrupts
/* 80270B58 0026C7B8  38 A0 00 00 */	li r5, 0
/* 80270B5C 0026C7BC  48 00 00 14 */	b lbl_80270B70
lbl_80270B60:
/* 80270B60 0026C7C0  38 00 00 01 */	li r0, 1
/* 80270B64 0026C7C4  90 64 00 44 */	stw r3, 0x44(r4)
/* 80270B68 0026C7C8  38 A4 00 14 */	addi r5, r4, 0x14
/* 80270B6C 0026C7CC  90 04 00 48 */	stw r0, 0x48(r4)
lbl_80270B70:
/* 80270B70 0026C7D0  57 E0 08 3C */	slwi r0, r31, 1
/* 80270B74 0026C7D4  38 60 00 00 */	li r3, 0
/* 80270B78 0026C7D8  7C A5 02 14 */	add r5, r5, r0
/* 80270B7C 0026C7DC  38 80 00 14 */	li r4, 0x14
/* 80270B80 0026C7E0  A3 E5 00 1C */	lhz r31, 0x1c(r5)
/* 80270B84 0026C7E4  4B FF FB 91 */	bl UnlockSram
/* 80270B88 0026C7E8  7F E3 FB 78 */	mr r3, r31
/* 80270B8C 0026C7EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80270B90 0026C7F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80270B94 0026C7F4  7C 08 03 A6 */	mtlr r0
/* 80270B98 0026C7F8  38 21 00 10 */	addi r1, r1, 0x10
/* 80270B9C 0026C7FC  4E 80 00 20 */	blr

.global OSSetWirelessID
OSSetWirelessID:
/* 80270BA0 0026C800  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80270BA4 0026C804  7C 08 02 A6 */	mflr r0
/* 80270BA8 0026C808  90 01 00 14 */	stw r0, 0x14(r1)
/* 80270BAC 0026C80C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80270BB0 0026C810  7C 9F 23 78 */	mr r31, r4
/* 80270BB4 0026C814  93 C1 00 08 */	stw r30, 8(r1)
/* 80270BB8 0026C818  7C 7E 1B 78 */	mr r30, r3
/* 80270BBC 0026C81C  4B FF DB A1 */	bl OSDisableInterrupts
/* 80270BC0 0026C820  3C 80 80 51 */	lis r4, lbl_80514780@ha
/* 80270BC4 0026C824  38 84 47 80 */	addi r4, r4, lbl_80514780@l
/* 80270BC8 0026C828  80 04 00 48 */	lwz r0, 0x48(r4)
/* 80270BCC 0026C82C  2C 00 00 00 */	cmpwi r0, 0
/* 80270BD0 0026C830  41 82 00 10 */	beq lbl_80270BE0
/* 80270BD4 0026C834  4B FF DB B1 */	bl OSRestoreInterrupts
/* 80270BD8 0026C838  38 60 00 00 */	li r3, 0
/* 80270BDC 0026C83C  48 00 00 14 */	b lbl_80270BF0
lbl_80270BE0:
/* 80270BE0 0026C840  38 00 00 01 */	li r0, 1
/* 80270BE4 0026C844  90 64 00 44 */	stw r3, 0x44(r4)
/* 80270BE8 0026C848  38 64 00 14 */	addi r3, r4, 0x14
/* 80270BEC 0026C84C  90 04 00 48 */	stw r0, 0x48(r4)
lbl_80270BF0:
/* 80270BF0 0026C850  57 C0 08 3C */	slwi r0, r30, 1
/* 80270BF4 0026C854  7C 63 02 14 */	add r3, r3, r0
/* 80270BF8 0026C858  A0 03 00 1C */	lhz r0, 0x1c(r3)
/* 80270BFC 0026C85C  7C 1F 00 40 */	cmplw r31, r0
/* 80270C00 0026C860  41 82 00 18 */	beq lbl_80270C18
/* 80270C04 0026C864  B3 E3 00 1C */	sth r31, 0x1c(r3)
/* 80270C08 0026C868  38 60 00 01 */	li r3, 1
/* 80270C0C 0026C86C  38 80 00 14 */	li r4, 0x14
/* 80270C10 0026C870  4B FF FB 05 */	bl UnlockSram
/* 80270C14 0026C874  48 00 00 10 */	b lbl_80270C24
lbl_80270C18:
/* 80270C18 0026C878  38 60 00 00 */	li r3, 0
/* 80270C1C 0026C87C  38 80 00 14 */	li r4, 0x14
/* 80270C20 0026C880  4B FF FA F5 */	bl UnlockSram
lbl_80270C24:
/* 80270C24 0026C884  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80270C28 0026C888  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80270C2C 0026C88C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80270C30 0026C890  7C 08 03 A6 */	mtlr r0
/* 80270C34 0026C894  38 21 00 10 */	addi r1, r1, 0x10
/* 80270C38 0026C898  4E 80 00 20 */	blr

.global __OSGetRTCFlags
__OSGetRTCFlags:
/* 80270C3C 0026C89C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80270C40 0026C8A0  7C 08 02 A6 */	mflr r0
/* 80270C44 0026C8A4  38 80 00 01 */	li r4, 1
/* 80270C48 0026C8A8  38 A0 00 00 */	li r5, 0
/* 80270C4C 0026C8AC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80270C50 0026C8B0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80270C54 0026C8B4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80270C58 0026C8B8  7C 7E 1B 78 */	mr r30, r3
/* 80270C5C 0026C8BC  38 60 00 00 */	li r3, 0
/* 80270C60 0026C8C0  48 00 4B E5 */	bl EXILock
/* 80270C64 0026C8C4  2C 03 00 00 */	cmpwi r3, 0
/* 80270C68 0026C8C8  40 82 00 0C */	bne lbl_80270C74
/* 80270C6C 0026C8CC  38 60 00 00 */	li r3, 0
/* 80270C70 0026C8D0  48 00 00 D0 */	b lbl_80270D40
lbl_80270C74:
/* 80270C74 0026C8D4  38 60 00 00 */	li r3, 0
/* 80270C78 0026C8D8  38 80 00 01 */	li r4, 1
/* 80270C7C 0026C8DC  38 A0 00 03 */	li r5, 3
/* 80270C80 0026C8E0  48 00 44 31 */	bl EXISelect
/* 80270C84 0026C8E4  2C 03 00 00 */	cmpwi r3, 0
/* 80270C88 0026C8E8  40 82 00 14 */	bne lbl_80270C9C
/* 80270C8C 0026C8EC  38 60 00 00 */	li r3, 0
/* 80270C90 0026C8F0  48 00 4C B1 */	bl EXIUnlock
/* 80270C94 0026C8F4  38 60 00 00 */	li r3, 0
/* 80270C98 0026C8F8  48 00 00 A8 */	b lbl_80270D40
lbl_80270C9C:
/* 80270C9C 0026C8FC  3C 60 21 00 */	lis r3, 0x21000800@ha
/* 80270CA0 0026C900  38 81 00 08 */	addi r4, r1, 8
/* 80270CA4 0026C904  38 03 08 00 */	addi r0, r3, 0x21000800@l
/* 80270CA8 0026C908  38 A0 00 04 */	li r5, 4
/* 80270CAC 0026C90C  90 01 00 08 */	stw r0, 8(r1)
/* 80270CB0 0026C910  38 60 00 00 */	li r3, 0
/* 80270CB4 0026C914  38 C0 00 01 */	li r6, 1
/* 80270CB8 0026C918  38 E0 00 00 */	li r7, 0
/* 80270CBC 0026C91C  48 00 39 8D */	bl EXIImm
/* 80270CC0 0026C920  7C 60 00 34 */	cntlzw r0, r3
/* 80270CC4 0026C924  38 60 00 00 */	li r3, 0
/* 80270CC8 0026C928  54 1F D9 7E */	srwi r31, r0, 5
/* 80270CCC 0026C92C  48 00 3D 95 */	bl EXISync
/* 80270CD0 0026C930  7C 60 00 34 */	cntlzw r0, r3
/* 80270CD4 0026C934  38 81 00 08 */	addi r4, r1, 8
/* 80270CD8 0026C938  54 00 D9 7E */	srwi r0, r0, 5
/* 80270CDC 0026C93C  38 60 00 00 */	li r3, 0
/* 80270CE0 0026C940  7F FF 03 78 */	or r31, r31, r0
/* 80270CE4 0026C944  38 A0 00 04 */	li r5, 4
/* 80270CE8 0026C948  38 C0 00 00 */	li r6, 0
/* 80270CEC 0026C94C  38 E0 00 00 */	li r7, 0
/* 80270CF0 0026C950  48 00 39 59 */	bl EXIImm
/* 80270CF4 0026C954  7C 60 00 34 */	cntlzw r0, r3
/* 80270CF8 0026C958  38 60 00 00 */	li r3, 0
/* 80270CFC 0026C95C  54 00 D9 7E */	srwi r0, r0, 5
/* 80270D00 0026C960  7F FF 03 78 */	or r31, r31, r0
/* 80270D04 0026C964  48 00 3D 5D */	bl EXISync
/* 80270D08 0026C968  7C 60 00 34 */	cntlzw r0, r3
/* 80270D0C 0026C96C  38 60 00 00 */	li r3, 0
/* 80270D10 0026C970  54 00 D9 7E */	srwi r0, r0, 5
/* 80270D14 0026C974  7F FF 03 78 */	or r31, r31, r0
/* 80270D18 0026C978  48 00 44 C9 */	bl EXIDeselect
/* 80270D1C 0026C97C  7C 60 00 34 */	cntlzw r0, r3
/* 80270D20 0026C980  38 60 00 00 */	li r3, 0
/* 80270D24 0026C984  54 00 D9 7E */	srwi r0, r0, 5
/* 80270D28 0026C988  7F FF 03 78 */	or r31, r31, r0
/* 80270D2C 0026C98C  48 00 4C 15 */	bl EXIUnlock
/* 80270D30 0026C990  80 81 00 08 */	lwz r4, 8(r1)
/* 80270D34 0026C994  7F E0 00 34 */	cntlzw r0, r31
/* 80270D38 0026C998  54 03 D9 7E */	srwi r3, r0, 5
/* 80270D3C 0026C99C  90 9E 00 00 */	stw r4, 0(r30)
lbl_80270D40:
/* 80270D40 0026C9A0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80270D44 0026C9A4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80270D48 0026C9A8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80270D4C 0026C9AC  7C 08 03 A6 */	mtlr r0
/* 80270D50 0026C9B0  38 21 00 20 */	addi r1, r1, 0x20
/* 80270D54 0026C9B4  4E 80 00 20 */	blr

.global __OSClearRTCFlags
__OSClearRTCFlags:
/* 80270D58 0026C9B8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80270D5C 0026C9BC  7C 08 02 A6 */	mflr r0
/* 80270D60 0026C9C0  38 60 00 00 */	li r3, 0
/* 80270D64 0026C9C4  38 80 00 01 */	li r4, 1
/* 80270D68 0026C9C8  90 01 00 24 */	stw r0, 0x24(r1)
/* 80270D6C 0026C9CC  38 00 00 00 */	li r0, 0
/* 80270D70 0026C9D0  38 A0 00 00 */	li r5, 0
/* 80270D74 0026C9D4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80270D78 0026C9D8  90 01 00 08 */	stw r0, 8(r1)
/* 80270D7C 0026C9DC  48 00 4A C9 */	bl EXILock
/* 80270D80 0026C9E0  2C 03 00 00 */	cmpwi r3, 0
/* 80270D84 0026C9E4  40 82 00 0C */	bne lbl_80270D90
/* 80270D88 0026C9E8  38 60 00 00 */	li r3, 0
/* 80270D8C 0026C9EC  48 00 00 C8 */	b lbl_80270E54
lbl_80270D90:
/* 80270D90 0026C9F0  38 60 00 00 */	li r3, 0
/* 80270D94 0026C9F4  38 80 00 01 */	li r4, 1
/* 80270D98 0026C9F8  38 A0 00 03 */	li r5, 3
/* 80270D9C 0026C9FC  48 00 43 15 */	bl EXISelect
/* 80270DA0 0026CA00  2C 03 00 00 */	cmpwi r3, 0
/* 80270DA4 0026CA04  40 82 00 14 */	bne lbl_80270DB8
/* 80270DA8 0026CA08  38 60 00 00 */	li r3, 0
/* 80270DAC 0026CA0C  48 00 4B 95 */	bl EXIUnlock
/* 80270DB0 0026CA10  38 60 00 00 */	li r3, 0
/* 80270DB4 0026CA14  48 00 00 A0 */	b lbl_80270E54
lbl_80270DB8:
/* 80270DB8 0026CA18  3C 60 A1 00 */	lis r3, 0xA1000800@ha
/* 80270DBC 0026CA1C  38 81 00 0C */	addi r4, r1, 0xc
/* 80270DC0 0026CA20  38 03 08 00 */	addi r0, r3, 0xA1000800@l
/* 80270DC4 0026CA24  38 A0 00 04 */	li r5, 4
/* 80270DC8 0026CA28  90 01 00 0C */	stw r0, 0xc(r1)
/* 80270DCC 0026CA2C  38 60 00 00 */	li r3, 0
/* 80270DD0 0026CA30  38 C0 00 01 */	li r6, 1
/* 80270DD4 0026CA34  38 E0 00 00 */	li r7, 0
/* 80270DD8 0026CA38  48 00 38 71 */	bl EXIImm
/* 80270DDC 0026CA3C  7C 60 00 34 */	cntlzw r0, r3
/* 80270DE0 0026CA40  38 60 00 00 */	li r3, 0
/* 80270DE4 0026CA44  54 1F D9 7E */	srwi r31, r0, 5
/* 80270DE8 0026CA48  48 00 3C 79 */	bl EXISync
/* 80270DEC 0026CA4C  7C 60 00 34 */	cntlzw r0, r3
/* 80270DF0 0026CA50  38 81 00 08 */	addi r4, r1, 8
/* 80270DF4 0026CA54  54 00 D9 7E */	srwi r0, r0, 5
/* 80270DF8 0026CA58  38 60 00 00 */	li r3, 0
/* 80270DFC 0026CA5C  7F FF 03 78 */	or r31, r31, r0
/* 80270E00 0026CA60  38 A0 00 04 */	li r5, 4
/* 80270E04 0026CA64  38 C0 00 01 */	li r6, 1
/* 80270E08 0026CA68  38 E0 00 00 */	li r7, 0
/* 80270E0C 0026CA6C  48 00 38 3D */	bl EXIImm
/* 80270E10 0026CA70  7C 60 00 34 */	cntlzw r0, r3
/* 80270E14 0026CA74  38 60 00 00 */	li r3, 0
/* 80270E18 0026CA78  54 00 D9 7E */	srwi r0, r0, 5
/* 80270E1C 0026CA7C  7F FF 03 78 */	or r31, r31, r0
/* 80270E20 0026CA80  48 00 3C 41 */	bl EXISync
/* 80270E24 0026CA84  7C 60 00 34 */	cntlzw r0, r3
/* 80270E28 0026CA88  38 60 00 00 */	li r3, 0
/* 80270E2C 0026CA8C  54 00 D9 7E */	srwi r0, r0, 5
/* 80270E30 0026CA90  7F FF 03 78 */	or r31, r31, r0
/* 80270E34 0026CA94  48 00 43 AD */	bl EXIDeselect
/* 80270E38 0026CA98  7C 60 00 34 */	cntlzw r0, r3
/* 80270E3C 0026CA9C  38 60 00 00 */	li r3, 0
/* 80270E40 0026CAA0  54 00 D9 7E */	srwi r0, r0, 5
/* 80270E44 0026CAA4  7F FF 03 78 */	or r31, r31, r0
/* 80270E48 0026CAA8  48 00 4A F9 */	bl EXIUnlock
/* 80270E4C 0026CAAC  7F E0 00 34 */	cntlzw r0, r31
/* 80270E50 0026CAB0  54 03 D9 7E */	srwi r3, r0, 5
lbl_80270E54:
/* 80270E54 0026CAB4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80270E58 0026CAB8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80270E5C 0026CABC  7C 08 03 A6 */	mtlr r0
/* 80270E60 0026CAC0  38 21 00 20 */	addi r1, r1, 0x20
/* 80270E64 0026CAC4  4E 80 00 20 */	blr