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
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global CompleteTransfer
CompleteTransfer:
/* 802762AC 00271F0C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802762B0 00271F10 7C 08 02 A6 */ mflr r0
/* 802762B4 00271F14 90 01 00 24 */ stw r0, 0x24(r1)
/* 802762B8 00271F18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802762BC 00271F1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802762C0 00271F20 3F C0 80 43 */ lis r30, lbl_80433FB8@ha
/* 802762C4 00271F24 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802762C8 00271F28 3F A0 CD 00 */ lis r29, 0xCD006438@ha
/* 802762CC 00271F2C 83 FD 64 38 */ lwz r31, 0xCD006438@l(r29)
/* 802762D0 00271F30 80 1D 64 34 */ lwz r0, 0x6434(r29)
/* 802762D4 00271F34 64 00 80 00 */ oris r0, r0, 0x8000
/* 802762D8 00271F38 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 802762DC 00271F3C 90 1D 64 34 */ stw r0, 0x6434(r29)
/* 802762E0 00271F40 80 1E 3F B8 */ lwz r0, lbl_80433FB8@l(r30)
/* 802762E4 00271F44 2C 00 FF FF */ cmpwi r0, -1
/* 802762E8 00271F48 41 82 02 98 */ beq lbl_80276580
/* 802762EC 00271F4C 4B FF C4 ED */ bl __OSGetSystemTime
/* 802762F0 00271F50 80 FE 3F B8 */ lwz r7, 0x3fb8(r30)
/* 802762F4 00271F54 3C C0 80 51 */ lis r6, lbl_80515600@ha
/* 802762F8 00271F58 38 BE 3F B8 */ addi r5, r30, 0x3fb8
/* 802762FC 00271F5C 54 E7 18 38 */ slwi r7, r7, 3
/* 80276300 00271F60 38 C6 56 00 */ addi r6, r6, lbl_80515600@l
/* 80276304 00271F64 80 05 00 08 */ lwz r0, 8(r5)
/* 80276308 00271F68 7C C6 3A 14 */ add r6, r6, r7
/* 8027630C 00271F6C 90 86 00 04 */ stw r4, 4(r6)
/* 80276310 00271F70 38 E0 00 00 */ li r7, 0
/* 80276314 00271F74 54 08 F0 BF */ rlwinm. r8, r0, 0x1e, 2, 0x1f
/* 80276318 00271F78 80 A5 00 0C */ lwz r5, 0xc(r5)
/* 8027631C 00271F7C 90 66 00 00 */ stw r3, 0(r6)
/* 80276320 00271F80 41 82 00 B0 */ beq lbl_802763D0
/* 80276324 00271F84 28 08 00 08 */ cmplwi r8, 8
/* 80276328 00271F88 38 68 FF F8 */ addi r3, r8, -8
/* 8027632C 00271F8C 40 81 00 6C */ ble lbl_80276398
/* 80276330 00271F90 38 03 00 07 */ addi r0, r3, 7
/* 80276334 00271F94 38 9D 64 00 */ addi r4, r29, 0x6400
/* 80276338 00271F98 54 00 E8 FE */ srwi r0, r0, 3
/* 8027633C 00271F9C 7C 09 03 A6 */ mtctr r0
/* 80276340 00271FA0 28 03 00 00 */ cmplwi r3, 0
/* 80276344 00271FA4 40 81 00 54 */ ble lbl_80276398
lbl_80276348:
/* 80276348 00271FA8 80 04 00 80 */ lwz r0, 0x80(r4)
/* 8027634C 00271FAC 38 E7 00 08 */ addi r7, r7, 8
/* 80276350 00271FB0 90 05 00 00 */ stw r0, 0(r5)
/* 80276354 00271FB4 80 04 00 84 */ lwz r0, 0x84(r4)
/* 80276358 00271FB8 90 05 00 04 */ stw r0, 4(r5)
/* 8027635C 00271FBC 80 04 00 88 */ lwz r0, 0x88(r4)
/* 80276360 00271FC0 90 05 00 08 */ stw r0, 8(r5)
/* 80276364 00271FC4 80 04 00 8C */ lwz r0, 0x8c(r4)
/* 80276368 00271FC8 90 05 00 0C */ stw r0, 0xc(r5)
/* 8027636C 00271FCC 80 04 00 90 */ lwz r0, 0x90(r4)
/* 80276370 00271FD0 90 05 00 10 */ stw r0, 0x10(r5)
/* 80276374 00271FD4 80 04 00 94 */ lwz r0, 0x94(r4)
/* 80276378 00271FD8 90 05 00 14 */ stw r0, 0x14(r5)
/* 8027637C 00271FDC 80 04 00 98 */ lwz r0, 0x98(r4)
/* 80276380 00271FE0 90 05 00 18 */ stw r0, 0x18(r5)
/* 80276384 00271FE4 80 04 00 9C */ lwz r0, 0x9c(r4)
/* 80276388 00271FE8 38 84 00 20 */ addi r4, r4, 0x20
/* 8027638C 00271FEC 90 05 00 1C */ stw r0, 0x1c(r5)
/* 80276390 00271FF0 38 A5 00 20 */ addi r5, r5, 0x20
/* 80276394 00271FF4 42 00 FF B4 */ bdnz lbl_80276348
lbl_80276398:
/* 80276398 00271FF8 54 E3 10 3A */ slwi r3, r7, 2
/* 8027639C 00271FFC 3C 00 CD 00 */ lis r0, 0xcd00
/* 802763A0 00272000 7C 60 1A 14 */ add r3, r0, r3
/* 802763A4 00272004 7C 07 40 50 */ subf r0, r7, r8
/* 802763A8 00272008 38 63 64 00 */ addi r3, r3, 0x6400
/* 802763AC 0027200C 7C 09 03 A6 */ mtctr r0
/* 802763B0 00272010 7C 07 40 40 */ cmplw r7, r8
/* 802763B4 00272014 40 80 00 1C */ bge lbl_802763D0
lbl_802763B8:
/* 802763B8 00272018 80 03 00 80 */ lwz r0, 0x80(r3)
/* 802763BC 0027201C 38 63 00 04 */ addi r3, r3, 4
/* 802763C0 00272020 38 E7 00 01 */ addi r7, r7, 1
/* 802763C4 00272024 90 05 00 00 */ stw r0, 0(r5)
/* 802763C8 00272028 38 A5 00 04 */ addi r5, r5, 4
/* 802763CC 0027202C 42 00 FF EC */ bdnz lbl_802763B8
lbl_802763D0:
/* 802763D0 00272030 3C 60 80 43 */ lis r3, lbl_80433FB8@ha
/* 802763D4 00272034 38 63 3F B8 */ addi r3, r3, lbl_80433FB8@l
/* 802763D8 00272038 80 03 00 08 */ lwz r0, 8(r3)
/* 802763DC 0027203C 54 03 07 BF */ clrlwi. r3, r0, 0x1e
/* 802763E0 00272040 41 82 01 0C */ beq lbl_802764EC
/* 802763E4 00272044 54 E0 10 3A */ slwi r0, r7, 2
/* 802763E8 00272048 3C 80 CD 00 */ lis r4, 0xcd00
/* 802763EC 0027204C 7C C4 02 14 */ add r6, r4, r0
/* 802763F0 00272050 80 06 64 80 */ lwz r0, 0x6480(r6)
/* 802763F4 00272054 38 80 00 00 */ li r4, 0
/* 802763F8 00272058 41 82 00 F4 */ beq lbl_802764EC
/* 802763FC 0027205C 28 03 00 08 */ cmplwi r3, 8
/* 80276400 00272060 38 E3 FF F8 */ addi r7, r3, -8
/* 80276404 00272064 40 81 00 BC */ ble lbl_802764C0
/* 80276408 00272068 38 C7 00 07 */ addi r6, r7, 7
/* 8027640C 0027206C 54 C6 E8 FE */ srwi r6, r6, 3
/* 80276410 00272070 7C C9 03 A6 */ mtctr r6
/* 80276414 00272074 28 07 00 00 */ cmplwi r7, 0
/* 80276418 00272078 40 81 00 A8 */ ble lbl_802764C0
lbl_8027641C:
/* 8027641C 0027207C 20 C4 00 03 */ subfic r6, r4, 3
/* 80276420 00272080 38 E4 00 01 */ addi r7, r4, 1
/* 80276424 00272084 54 C8 18 38 */ slwi r8, r6, 3
/* 80276428 00272088 7C 09 44 30 */ srw r9, r0, r8
/* 8027642C 0027208C 20 E7 00 03 */ subfic r7, r7, 3
/* 80276430 00272090 54 E8 18 38 */ slwi r8, r7, 3
/* 80276434 00272094 99 25 00 00 */ stb r9, 0(r5)
/* 80276438 00272098 38 E4 00 02 */ addi r7, r4, 2
/* 8027643C 0027209C 7C C4 00 D0 */ neg r6, r4
/* 80276440 002720A0 7C 09 44 30 */ srw r9, r0, r8
/* 80276444 002720A4 54 C8 18 38 */ slwi r8, r6, 3
/* 80276448 002720A8 20 E7 00 03 */ subfic r7, r7, 3
/* 8027644C 002720AC 54 E6 18 38 */ slwi r6, r7, 3
/* 80276450 002720B0 99 25 00 01 */ stb r9, 1(r5)
/* 80276454 002720B4 7C 09 34 30 */ srw r9, r0, r6
/* 80276458 002720B8 7C 08 44 30 */ srw r8, r0, r8
/* 8027645C 002720BC 38 C4 00 04 */ addi r6, r4, 4
/* 80276460 002720C0 99 25 00 02 */ stb r9, 2(r5)
/* 80276464 002720C4 20 E6 00 03 */ subfic r7, r6, 3
/* 80276468 002720C8 38 C4 00 05 */ addi r6, r4, 5
/* 8027646C 002720CC 99 05 00 03 */ stb r8, 3(r5)
/* 80276470 002720D0 54 E7 18 38 */ slwi r7, r7, 3
/* 80276474 002720D4 7C 09 3C 30 */ srw r9, r0, r7
/* 80276478 002720D8 20 C6 00 03 */ subfic r6, r6, 3
/* 8027647C 002720DC 54 C8 18 38 */ slwi r8, r6, 3
/* 80276480 002720E0 99 25 00 04 */ stb r9, 4(r5)
/* 80276484 002720E4 38 C4 00 06 */ addi r6, r4, 6
/* 80276488 002720E8 20 E6 00 03 */ subfic r7, r6, 3
/* 8027648C 002720EC 7C 08 44 30 */ srw r8, r0, r8
/* 80276490 002720F0 38 C4 00 07 */ addi r6, r4, 7
/* 80276494 002720F4 99 05 00 05 */ stb r8, 5(r5)
/* 80276498 002720F8 54 E7 18 38 */ slwi r7, r7, 3
/* 8027649C 002720FC 38 84 00 08 */ addi r4, r4, 8
/* 802764A0 00272100 20 C6 00 03 */ subfic r6, r6, 3
/* 802764A4 00272104 7C 07 3C 30 */ srw r7, r0, r7
/* 802764A8 00272108 54 C6 18 38 */ slwi r6, r6, 3
/* 802764AC 0027210C 98 E5 00 06 */ stb r7, 6(r5)
/* 802764B0 00272110 7C 06 34 30 */ srw r6, r0, r6
/* 802764B4 00272114 98 C5 00 07 */ stb r6, 7(r5)
/* 802764B8 00272118 38 A5 00 08 */ addi r5, r5, 8
/* 802764BC 0027211C 42 00 FF 60 */ bdnz lbl_8027641C
lbl_802764C0:
/* 802764C0 00272120 7C C4 18 50 */ subf r6, r4, r3
/* 802764C4 00272124 7C C9 03 A6 */ mtctr r6
/* 802764C8 00272128 7C 04 18 40 */ cmplw r4, r3
/* 802764CC 0027212C 40 80 00 20 */ bge lbl_802764EC
lbl_802764D0:
/* 802764D0 00272130 20 64 00 03 */ subfic r3, r4, 3
/* 802764D4 00272134 38 84 00 01 */ addi r4, r4, 1
/* 802764D8 00272138 54 63 18 38 */ slwi r3, r3, 3
/* 802764DC 0027213C 7C 03 1C 30 */ srw r3, r0, r3
/* 802764E0 00272140 98 65 00 00 */ stb r3, 0(r5)
/* 802764E4 00272144 38 A5 00 01 */ addi r5, r5, 1
/* 802764E8 00272148 42 00 FF E8 */ bdnz lbl_802764D0
lbl_802764EC:
/* 802764EC 0027214C 3C 60 CD 00 */ lis r3, 0xCD006434@ha
/* 802764F0 00272150 80 03 64 34 */ lwz r0, 0xCD006434@l(r3)
/* 802764F4 00272154 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2
/* 802764F8 00272158 41 82 00 54 */ beq lbl_8027654C
/* 802764FC 0027215C 3C 60 80 43 */ lis r3, lbl_80433FB8@ha
/* 80276500 00272160 80 83 3F B8 */ lwz r4, lbl_80433FB8@l(r3)
/* 80276504 00272164 20 04 00 03 */ subfic r0, r4, 3
/* 80276508 00272168 54 00 18 38 */ slwi r0, r0, 3
/* 8027650C 0027216C 7F FF 04 30 */ srw r31, r31, r0
/* 80276510 00272170 57 FF 07 3E */ clrlwi r31, r31, 0x1c
/* 80276514 00272174 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
/* 80276518 00272178 41 82 00 24 */ beq lbl_8027653C
/* 8027651C 0027217C 3C 60 80 43 */ lis r3, lbl_80433FD0@ha
/* 80276520 00272180 54 84 10 3A */ slwi r4, r4, 2
/* 80276524 00272184 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l
/* 80276528 00272188 7C 03 20 2E */ lwzx r0, r3, r4
/* 8027652C 0027218C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 80276530 00272190 40 82 00 0C */ bne lbl_8027653C
/* 80276534 00272194 38 00 00 08 */ li r0, 8
/* 80276538 00272198 7C 03 21 2E */ stwx r0, r3, r4
lbl_8027653C:
/* 8027653C 0027219C 2C 1F 00 00 */ cmpwi r31, 0
/* 80276540 002721A0 40 82 00 34 */ bne lbl_80276574
/* 80276544 002721A4 3B E0 00 04 */ li r31, 4
/* 80276548 002721A8 48 00 00 2C */ b lbl_80276574
lbl_8027654C:
/* 8027654C 002721AC 4B FF C2 8D */ bl __OSGetSystemTime
/* 80276550 002721B0 3C C0 80 43 */ lis r6, lbl_80433FB8@ha
/* 80276554 002721B4 3C A0 80 51 */ lis r5, lbl_80515620@ha
/* 80276558 002721B8 80 06 3F B8 */ lwz r0, lbl_80433FB8@l(r6)
/* 8027655C 002721BC 38 A5 56 20 */ addi r5, r5, lbl_80515620@l
/* 80276560 002721C0 3B E0 00 00 */ li r31, 0
/* 80276564 002721C4 54 00 18 38 */ slwi r0, r0, 3
/* 80276568 002721C8 7C A5 02 14 */ add r5, r5, r0
/* 8027656C 002721CC 90 85 00 04 */ stw r4, 4(r5)
/* 80276570 002721D0 90 65 00 00 */ stw r3, 0(r5)
lbl_80276574:
/* 80276574 002721D4 38 00 FF FF */ li r0, -1
/* 80276578 002721D8 3C 60 80 43 */ lis r3, lbl_80433FB8@ha
/* 8027657C 002721DC 90 03 3F B8 */ stw r0, lbl_80433FB8@l(r3)
lbl_80276580:
/* 80276580 002721E0 7F E3 FB 78 */ mr r3, r31
/* 80276584 002721E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80276588 002721E8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8027658C 002721EC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80276590 002721F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80276594 002721F4 7C 08 03 A6 */ mtlr r0
/* 80276598 002721F8 38 21 00 20 */ addi r1, r1, 0x20
/* 8027659C 002721FC 4E 80 00 20 */ blr
.global SIInterruptHandler
SIInterruptHandler:
/* 802765A0 00272200 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802765A4 00272204 7C 08 02 A6 */ mflr r0
/* 802765A8 00272208 90 01 00 54 */ stw r0, 0x54(r1)
/* 802765AC 0027220C 39 61 00 50 */ addi r11, r1, 0x50
/* 802765B0 00272210 4B F5 0B 51 */ bl _savegpr_17
/* 802765B4 00272214 3C A0 CD 00 */ lis r5, 0xCD006434@ha
/* 802765B8 00272218 3F 60 80 51 */ lis r27, lbl_80515580@ha
/* 802765BC 0027221C 82 A5 64 34 */ lwz r21, 0xCD006434@l(r5)
/* 802765C0 00272220 7C 7E 1B 78 */ mr r30, r3
/* 802765C4 00272224 7C 9F 23 78 */ mr r31, r4
/* 802765C8 00272228 3B 7B 55 80 */ addi r27, r27, lbl_80515580@l
/* 802765CC 0027222C 56 A3 00 02 */ rlwinm r3, r21, 0, 0, 1
/* 802765D0 00272230 3C 03 40 00 */ addis r0, r3, 0x4000
/* 802765D4 00272234 28 00 00 00 */ cmplwi r0, 0
/* 802765D8 00272238 40 82 01 A4 */ bne lbl_8027677C
/* 802765DC 0027223C 3E 20 80 43 */ lis r17, lbl_80433FB8@ha
/* 802765E0 00272240 82 D1 3F B8 */ lwz r22, lbl_80433FB8@l(r17)
/* 802765E4 00272244 4B FF FC C9 */ bl CompleteTransfer
/* 802765E8 00272248 38 91 3F B8 */ addi r4, r17, 0x3fb8
/* 802765EC 0027224C 38 00 00 00 */ li r0, 0
/* 802765F0 00272250 83 04 00 10 */ lwz r24, 0x10(r4)
/* 802765F4 00272254 7C 77 1B 78 */ mr r23, r3
/* 802765F8 00272258 7E DC B3 78 */ mr r28, r22
/* 802765FC 0027225C 3A 3B 00 00 */ addi r17, r27, 0
/* 80276600 00272260 90 04 00 10 */ stw r0, 0x10(r4)
/* 80276604 00272264 3B 40 00 00 */ li r26, 0
lbl_80276608:
/* 80276608 00272268 3B 9C 00 01 */ addi r28, r28, 1
/* 8027660C 0027226C 57 80 F0 02 */ slwi r0, r28, 0x1e
/* 80276610 00272270 57 83 0F FE */ srwi r3, r28, 0x1f
/* 80276614 00272274 7C 03 00 50 */ subf r0, r3, r0
/* 80276618 00272278 54 00 10 3E */ rotlwi r0, r0, 2
/* 8027661C 0027227C 7F 80 1A 14 */ add r28, r0, r3
/* 80276620 00272280 57 80 28 34 */ slwi r0, r28, 5
/* 80276624 00272284 7F B1 02 14 */ add r29, r17, r0
/* 80276628 00272288 7C 11 00 2E */ lwzx r0, r17, r0
/* 8027662C 0027228C 2C 00 FF FF */ cmpwi r0, -1
/* 80276630 00272290 41 82 00 6C */ beq lbl_8027669C
/* 80276634 00272294 4B FF C1 A5 */ bl __OSGetSystemTime
/* 80276638 00272298 80 BD 00 18 */ lwz r5, 0x18(r29)
/* 8027663C 0027229C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 80276640 002722A0 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 80276644 002722A4 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 80276648 002722A8 7C 63 20 10 */ subfc r3, r3, r4
/* 8027664C 002722AC 7C A5 01 10 */ subfe r5, r5, r0
/* 80276650 002722B0 7C A0 01 10 */ subfe r5, r0, r0
/* 80276654 002722B4 7C A5 00 D1 */ neg. r5, r5
/* 80276658 002722B8 40 82 00 44 */ bne lbl_8027669C
/* 8027665C 002722BC 80 7D 00 00 */ lwz r3, 0(r29)
/* 80276660 002722C0 80 9D 00 04 */ lwz r4, 4(r29)
/* 80276664 002722C4 80 BD 00 08 */ lwz r5, 8(r29)
/* 80276668 002722C8 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 8027666C 002722CC 80 FD 00 10 */ lwz r7, 0x10(r29)
/* 80276670 002722D0 81 1D 00 14 */ lwz r8, 0x14(r29)
/* 80276674 002722D4 48 00 03 D9 */ bl __SITransfer
/* 80276678 002722D8 2C 03 00 00 */ cmpwi r3, 0
/* 8027667C 002722DC 41 82 00 2C */ beq lbl_802766A8
/* 80276680 002722E0 1C 7C 00 30 */ mulli r3, r28, 0x30
/* 80276684 002722E4 38 1B 00 C0 */ addi r0, r27, 0xc0
/* 80276688 002722E8 7C 60 1A 14 */ add r3, r0, r3
/* 8027668C 002722EC 4B FF 33 ED */ bl OSCancelAlarm
/* 80276690 002722F0 38 00 FF FF */ li r0, -1
/* 80276694 002722F4 90 1D 00 00 */ stw r0, 0(r29)
/* 80276698 002722F8 48 00 00 10 */ b lbl_802766A8
lbl_8027669C:
/* 8027669C 002722FC 3B 5A 00 01 */ addi r26, r26, 1
/* 802766A0 00272300 2C 1A 00 04 */ cmpwi r26, 4
/* 802766A4 00272304 41 80 FF 64 */ blt lbl_80276608
lbl_802766A8:
/* 802766A8 00272308 2C 18 00 00 */ cmpwi r24, 0
/* 802766AC 0027230C 41 82 00 1C */ beq lbl_802766C8
/* 802766B0 00272310 7F 0C C3 78 */ mr r12, r24
/* 802766B4 00272314 7E C3 B3 78 */ mr r3, r22
/* 802766B8 00272318 7E E4 BB 78 */ mr r4, r23
/* 802766BC 0027231C 7F E5 FB 78 */ mr r5, r31
/* 802766C0 00272320 7D 89 03 A6 */ mtctr r12
/* 802766C4 00272324 4E 80 04 21 */ bctrl
lbl_802766C8:
/* 802766C8 00272328 3C A0 CD 00 */ lis r5, 0xCD006438@ha
/* 802766CC 0027232C 3C 60 80 43 */ lis r3, lbl_80433FD0@ha
/* 802766D0 00272330 56 C0 18 38 */ slwi r0, r22, 3
/* 802766D4 00272334 3C 80 0F 00 */ lis r4, 0xf00
/* 802766D8 00272338 7C 84 06 30 */ sraw r4, r4, r0
/* 802766DC 0027233C 80 C5 64 38 */ lwz r6, 0xCD006438@l(r5)
/* 802766E0 00272340 56 C0 10 3A */ slwi r0, r22, 2
/* 802766E4 00272344 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l
/* 802766E8 00272348 7C C6 20 38 */ and r6, r6, r4
/* 802766EC 0027234C 90 C5 64 38 */ stw r6, 0x6438(r5)
/* 802766F0 00272350 7C C3 02 14 */ add r6, r3, r0
/* 802766F4 00272354 7C 03 00 2E */ lwzx r0, r3, r0
/* 802766F8 00272358 28 00 00 80 */ cmplwi r0, 0x80
/* 802766FC 0027235C 40 82 00 80 */ bne lbl_8027677C
/* 80276700 00272360 56 C0 28 34 */ slwi r0, r22, 5
/* 80276704 00272364 38 7B 00 00 */ addi r3, r27, 0
/* 80276708 00272368 7C 03 00 2E */ lwzx r0, r3, r0
/* 8027670C 0027236C 38 80 00 00 */ li r4, 0
/* 80276710 00272370 2C 00 FF FF */ cmpwi r0, -1
/* 80276714 00272374 40 82 00 14 */ bne lbl_80276728
/* 80276718 00272378 3C 60 80 43 */ lis r3, lbl_80433FB8@ha
/* 8027671C 0027237C 80 03 3F B8 */ lwz r0, lbl_80433FB8@l(r3)
/* 80276720 00272380 7C 00 B0 00 */ cmpw r0, r22
/* 80276724 00272384 40 82 00 08 */ bne lbl_8027672C
lbl_80276728:
/* 80276728 00272388 38 80 00 01 */ li r4, 1
lbl_8027672C:
/* 8027672C 0027238C 2C 04 00 00 */ cmpwi r4, 0
/* 80276730 00272390 40 82 00 4C */ bne lbl_8027677C
/* 80276734 00272394 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 80276738 00272398 3D 00 80 27 */ lis r8, GetTypeCallback@ha
/* 8027673C 0027239C 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
/* 80276740 002723A0 3C 60 43 1C */ lis r3, 0x431BDE83@ha
/* 80276744 002723A4 38 83 DE 83 */ addi r4, r3, 0x431BDE83@l
/* 80276748 002723A8 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l
/* 8027674C 002723AC 54 00 F0 BE */ srwi r0, r0, 2
/* 80276750 002723B0 7E C3 B3 78 */ mr r3, r22
/* 80276754 002723B4 7C 04 00 16 */ mulhwu r0, r4, r0
/* 80276758 002723B8 38 8D A8 A0 */ addi r4, r13, lbl_8063FB60-_SDA_BASE_
/* 8027675C 002723BC 38 A0 00 01 */ li r5, 1
/* 80276760 002723C0 38 E0 00 03 */ li r7, 3
/* 80276764 002723C4 39 20 00 00 */ li r9, 0
/* 80276768 002723C8 54 0A 8B FE */ srwi r10, r0, 0xf
/* 8027676C 002723CC 54 00 BA 72 */ rlwinm r0, r0, 0x17, 9, 0x19
/* 80276770 002723D0 7C 00 52 14 */ add r0, r0, r10
/* 80276774 002723D4 54 0A E8 FE */ srwi r10, r0, 3
/* 80276778 002723D8 48 00 05 6D */ bl SITransfer
lbl_8027677C:
/* 8027677C 002723DC 56 A3 00 C8 */ rlwinm r3, r21, 0, 3, 4
/* 80276780 002723E0 3C 03 E8 00 */ addis r0, r3, 0xe800
/* 80276784 002723E4 28 00 00 00 */ cmplwi r0, 0
/* 80276788 002723E8 40 82 01 EC */ bne lbl_80276974
/* 8027678C 002723EC 48 00 31 B9 */ bl VIGetCurrentLine
/* 80276790 002723F0 3C 80 80 43 */ lis r4, lbl_80433FB8@ha
/* 80276794 002723F4 3F 20 80 43 */ lis r25, lbl_80433FD0@ha
/* 80276798 002723F8 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l
/* 8027679C 002723FC 3F 80 CD 00 */ lis r28, 0xCD006400@ha
/* 802767A0 00272400 80 04 00 04 */ lwz r0, 4(r4)
/* 802767A4 00272404 3A 63 00 01 */ addi r19, r3, 1
/* 802767A8 00272408 3B 39 3F D0 */ addi r25, r25, lbl_80433FD0@l
/* 802767AC 0027240C 3B 1C 64 00 */ addi r24, r28, 0xCD006400@l
/* 802767B0 00272410 54 12 85 BE */ rlwinm r18, r0, 0x10, 0x16, 0x1f
/* 802767B4 00272414 3A FB 01 80 */ addi r23, r27, 0x180
/* 802767B8 00272418 3A DB 01 A0 */ addi r22, r27, 0x1a0
/* 802767BC 0027241C 3A BB 01 B0 */ addi r21, r27, 0x1b0
/* 802767C0 00272420 3A 80 00 00 */ li r20, 0
/* 802767C4 00272424 3B A0 00 08 */ li r29, 8
/* 802767C8 00272428 3A 20 00 01 */ li r17, 1
lbl_802767CC:
/* 802767CC 0027242C 4B FF 7F 91 */ bl OSDisableInterrupts
/* 802767D0 00272430 20 14 00 03 */ subfic r0, r20, 3
/* 802767D4 00272434 83 5C 64 38 */ lwz r26, 0x6438(r28)
/* 802767D8 00272438 54 00 18 38 */ slwi r0, r0, 3
/* 802767DC 0027243C 7F 5A 04 30 */ srw r26, r26, r0
/* 802767E0 00272440 57 40 07 39 */ rlwinm. r0, r26, 0, 0x1c, 0x1c
/* 802767E4 00272444 41 82 00 14 */ beq lbl_802767F8
/* 802767E8 00272448 80 19 00 00 */ lwz r0, 0(r25)
/* 802767EC 0027244C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 802767F0 00272450 40 82 00 08 */ bne lbl_802767F8
/* 802767F4 00272454 93 B9 00 00 */ stw r29, 0(r25)
lbl_802767F8:
/* 802767F8 00272458 4B FF 7F 8D */ bl OSRestoreInterrupts
/* 802767FC 0027245C 57 40 06 B5 */ rlwinm. r0, r26, 0, 0x1a, 0x1a
/* 80276800 00272460 41 82 00 20 */ beq lbl_80276820
/* 80276804 00272464 80 18 00 04 */ lwz r0, 4(r24)
/* 80276808 00272468 38 60 00 01 */ li r3, 1
/* 8027680C 0027246C 90 17 00 00 */ stw r0, 0(r23)
/* 80276810 00272470 80 18 00 08 */ lwz r0, 8(r24)
/* 80276814 00272474 90 17 00 04 */ stw r0, 4(r23)
/* 80276818 00272478 92 36 00 00 */ stw r17, 0(r22)
/* 8027681C 0027247C 48 00 00 08 */ b lbl_80276824
lbl_80276820:
/* 80276820 00272480 38 60 00 00 */ li r3, 0
lbl_80276824:
/* 80276824 00272484 2C 03 00 00 */ cmpwi r3, 0
/* 80276828 00272488 41 82 00 08 */ beq lbl_80276830
/* 8027682C 0027248C 92 75 00 00 */ stw r19, 0(r21)
lbl_80276830:
/* 80276830 00272490 3A 94 00 01 */ addi r20, r20, 1
/* 80276834 00272494 3B 18 00 0C */ addi r24, r24, 0xc
/* 80276838 00272498 2C 14 00 04 */ cmpwi r20, 4
/* 8027683C 0027249C 3A F7 00 08 */ addi r23, r23, 8
/* 80276840 002724A0 3A D6 00 04 */ addi r22, r22, 4
/* 80276844 002724A4 3A B5 00 04 */ addi r21, r21, 4
/* 80276848 002724A8 3B 39 00 04 */ addi r25, r25, 4
/* 8027684C 002724AC 41 80 FF 80 */ blt lbl_802767CC
/* 80276850 002724B0 3C 80 80 43 */ lis r4, lbl_80433FB8@ha
/* 80276854 002724B4 3C 60 80 00 */ lis r3, 0x8000
/* 80276858 002724B8 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l
/* 8027685C 002724BC 38 00 00 18 */ li r0, 0x18
/* 80276860 002724C0 80 A4 00 04 */ lwz r5, 4(r4)
/* 80276864 002724C4 7C 60 04 30 */ srw r0, r3, r0
/* 80276868 002724C8 38 9B 01 B0 */ addi r4, r27, 0x1b0
/* 8027686C 002724CC 56 46 F8 7E */ srwi r6, r18, 1
/* 80276870 002724D0 7C A0 00 39 */ and. r0, r5, r0
/* 80276874 002724D4 41 82 00 24 */ beq lbl_80276898
/* 80276878 002724D8 80 04 00 00 */ lwz r0, 0(r4)
/* 8027687C 002724DC 2C 00 00 00 */ cmpwi r0, 0
/* 80276880 002724E0 41 82 00 F4 */ beq lbl_80276974
/* 80276884 002724E4 80 04 00 00 */ lwz r0, 0(r4)
/* 80276888 002724E8 7C 06 02 14 */ add r0, r6, r0
/* 8027688C 002724EC 7C 00 98 40 */ cmplw r0, r19
/* 80276890 002724F0 40 80 00 08 */ bge lbl_80276898
/* 80276894 002724F4 48 00 00 E0 */ b lbl_80276974
lbl_80276898:
/* 80276898 002724F8 38 00 00 19 */ li r0, 0x19
/* 8027689C 002724FC 7C 60 04 30 */ srw r0, r3, r0
/* 802768A0 00272500 7C A0 00 39 */ and. r0, r5, r0
/* 802768A4 00272504 41 82 00 24 */ beq lbl_802768C8
/* 802768A8 00272508 80 04 00 04 */ lwz r0, 4(r4)
/* 802768AC 0027250C 2C 00 00 00 */ cmpwi r0, 0
/* 802768B0 00272510 41 82 00 C4 */ beq lbl_80276974
/* 802768B4 00272514 80 04 00 04 */ lwz r0, 4(r4)
/* 802768B8 00272518 7C 06 02 14 */ add r0, r6, r0
/* 802768BC 0027251C 7C 00 98 40 */ cmplw r0, r19
/* 802768C0 00272520 40 80 00 08 */ bge lbl_802768C8
/* 802768C4 00272524 48 00 00 B0 */ b lbl_80276974
lbl_802768C8:
/* 802768C8 00272528 38 00 00 1A */ li r0, 0x1a
/* 802768CC 0027252C 7C 60 04 30 */ srw r0, r3, r0
/* 802768D0 00272530 7C A0 00 39 */ and. r0, r5, r0
/* 802768D4 00272534 41 82 00 24 */ beq lbl_802768F8
/* 802768D8 00272538 80 04 00 08 */ lwz r0, 8(r4)
/* 802768DC 0027253C 2C 00 00 00 */ cmpwi r0, 0
/* 802768E0 00272540 41 82 00 94 */ beq lbl_80276974
/* 802768E4 00272544 80 04 00 08 */ lwz r0, 8(r4)
/* 802768E8 00272548 7C 06 02 14 */ add r0, r6, r0
/* 802768EC 0027254C 7C 00 98 40 */ cmplw r0, r19
/* 802768F0 00272550 40 80 00 08 */ bge lbl_802768F8
/* 802768F4 00272554 48 00 00 80 */ b lbl_80276974
lbl_802768F8:
/* 802768F8 00272558 38 00 00 1B */ li r0, 0x1b
/* 802768FC 0027255C 7C 60 04 30 */ srw r0, r3, r0
/* 80276900 00272560 7C A0 00 39 */ and. r0, r5, r0
/* 80276904 00272564 41 82 00 24 */ beq lbl_80276928
/* 80276908 00272568 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8027690C 0027256C 2C 00 00 00 */ cmpwi r0, 0
/* 80276910 00272570 41 82 00 64 */ beq lbl_80276974
/* 80276914 00272574 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80276918 00272578 7C 06 02 14 */ add r0, r6, r0
/* 8027691C 0027257C 7C 00 98 40 */ cmplw r0, r19
/* 80276920 00272580 40 80 00 08 */ bge lbl_80276928
/* 80276924 00272584 48 00 00 50 */ b lbl_80276974
lbl_80276928:
/* 80276928 00272588 38 00 00 00 */ li r0, 0
/* 8027692C 0027258C 38 7B 01 B0 */ addi r3, r27, 0x1b0
/* 80276930 00272590 90 03 00 00 */ stw r0, 0(r3)
/* 80276934 00272594 3A 3B 01 C0 */ addi r17, r27, 0x1c0
/* 80276938 00272598 3A 40 00 00 */ li r18, 0
/* 8027693C 0027259C 90 03 00 04 */ stw r0, 4(r3)
/* 80276940 002725A0 90 03 00 08 */ stw r0, 8(r3)
/* 80276944 002725A4 90 03 00 0C */ stw r0, 0xc(r3)
lbl_80276948:
/* 80276948 002725A8 81 91 00 00 */ lwz r12, 0(r17)
/* 8027694C 002725AC 2C 0C 00 00 */ cmpwi r12, 0
/* 80276950 002725B0 41 82 00 14 */ beq lbl_80276964
/* 80276954 002725B4 7F C3 F3 78 */ mr r3, r30
/* 80276958 002725B8 7F E4 FB 78 */ mr r4, r31
/* 8027695C 002725BC 7D 89 03 A6 */ mtctr r12
/* 80276960 002725C0 4E 80 04 21 */ bctrl
lbl_80276964:
/* 80276964 002725C4 3A 52 00 01 */ addi r18, r18, 1
/* 80276968 002725C8 3A 31 00 04 */ addi r17, r17, 4
/* 8027696C 002725CC 2C 12 00 04 */ cmpwi r18, 4
/* 80276970 002725D0 41 80 FF D8 */ blt lbl_80276948
lbl_80276974:
/* 80276974 002725D4 39 61 00 50 */ addi r11, r1, 0x50
/* 80276978 002725D8 4B F5 07 D5 */ bl _restgpr_17
/* 8027697C 002725DC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80276980 002725E0 7C 08 03 A6 */ mtlr r0
/* 80276984 002725E4 38 21 00 50 */ addi r1, r1, 0x50
/* 80276988 002725E8 4E 80 00 20 */ blr
.global SIInit
SIInit:
/* 8027698C 002725EC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80276990 002725F0 7C 08 02 A6 */ mflr r0
/* 80276994 002725F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80276998 002725F8 80 0D A8 A4 */ lwz r0, lbl_8063FB64-_SDA_BASE_(r13)
/* 8027699C 002725FC 2C 00 00 00 */ cmpwi r0, 0
/* 802769A0 00272600 40 82 00 9C */ bne lbl_80276A3C
/* 802769A4 00272604 80 6D 88 00 */ lwz r3, lbl_8063DAC0-_SDA_BASE_(r13)
/* 802769A8 00272608 4B FF 2C A9 */ bl OSRegisterVersion
/* 802769AC 0027260C 3C C0 80 51 */ lis r6, lbl_80515580@ha
/* 802769B0 00272610 3C 80 80 43 */ lis r4, lbl_80433FB8@ha
/* 802769B4 00272614 38 E0 FF FF */ li r7, -1
/* 802769B8 00272618 38 00 00 00 */ li r0, 0
/* 802769BC 0027261C 38 A6 55 80 */ addi r5, r6, lbl_80515580@l
/* 802769C0 00272620 38 84 3F B8 */ addi r4, r4, lbl_80433FB8@l
/* 802769C4 00272624 90 E5 00 60 */ stw r7, 0x60(r5)
/* 802769C8 00272628 38 60 00 00 */ li r3, 0
/* 802769CC 0027262C 90 E5 00 40 */ stw r7, 0x40(r5)
/* 802769D0 00272630 90 E5 00 20 */ stw r7, 0x20(r5)
/* 802769D4 00272634 90 E6 55 80 */ stw r7, 0x5580(r6)
/* 802769D8 00272638 90 04 00 04 */ stw r0, 4(r4)
/* 802769DC 0027263C 48 00 08 D9 */ bl SISetSamplingRate
/* 802769E0 00272640 3C 60 CD 00 */ lis r3, 0xCD006434@ha
lbl_802769E4:
/* 802769E4 00272644 80 03 64 34 */ lwz r0, 0xCD006434@l(r3)
/* 802769E8 00272648 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 802769EC 0027264C 40 82 FF F8 */ bne lbl_802769E4
/* 802769F0 00272650 3C 00 80 00 */ lis r0, 0x8000
/* 802769F4 00272654 3C 60 CD 00 */ lis r3, 0xCD006434@ha
/* 802769F8 00272658 3C 80 80 27 */ lis r4, SIInterruptHandler@ha
/* 802769FC 0027265C 90 03 64 34 */ stw r0, 0xCD006434@l(r3)
/* 80276A00 00272660 38 84 65 A0 */ addi r4, r4, SIInterruptHandler@l
/* 80276A04 00272664 38 60 00 14 */ li r3, 0x14
/* 80276A08 00272668 4B FF 7D A1 */ bl __OSSetInterruptHandler
/* 80276A0C 0027266C 38 60 08 00 */ li r3, 0x800
/* 80276A10 00272670 4B FF 81 5D */ bl __OSUnmaskInterrupts
/* 80276A14 00272674 38 60 00 00 */ li r3, 0
/* 80276A18 00272678 48 00 06 E9 */ bl SIGetType
/* 80276A1C 0027267C 38 60 00 01 */ li r3, 1
/* 80276A20 00272680 48 00 06 E1 */ bl SIGetType
/* 80276A24 00272684 38 60 00 02 */ li r3, 2
/* 80276A28 00272688 48 00 06 D9 */ bl SIGetType
/* 80276A2C 0027268C 38 60 00 03 */ li r3, 3
/* 80276A30 00272690 48 00 06 D1 */ bl SIGetType
/* 80276A34 00272694 38 00 00 01 */ li r0, 1
/* 80276A38 00272698 90 0D A8 A4 */ stw r0, lbl_8063FB64-_SDA_BASE_(r13)
lbl_80276A3C:
/* 80276A3C 0027269C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80276A40 002726A0 7C 08 03 A6 */ mtlr r0
/* 80276A44 002726A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80276A48 002726A8 4E 80 00 20 */ blr
.global __SITransfer
__SITransfer:
/* 80276A4C 002726AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80276A50 002726B0 7C 08 02 A6 */ mflr r0
/* 80276A54 002726B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80276A58 002726B8 39 61 00 20 */ addi r11, r1, 0x20
/* 80276A5C 002726BC 4B F5 06 C9 */ bl _savegpr_26
/* 80276A60 002726C0 7C 7B 1B 78 */ mr r27, r3
/* 80276A64 002726C4 7C 9C 23 78 */ mr r28, r4
/* 80276A68 002726C8 7C BD 2B 78 */ mr r29, r5
/* 80276A6C 002726CC 7C DA 33 78 */ mr r26, r6
/* 80276A70 002726D0 7C FE 3B 78 */ mr r30, r7
/* 80276A74 002726D4 7D 1F 43 78 */ mr r31, r8
/* 80276A78 002726D8 4B FF 7C E5 */ bl OSDisableInterrupts
/* 80276A7C 002726DC 3D 00 80 43 */ lis r8, lbl_80433FB8@ha
/* 80276A80 002726E0 80 08 3F B8 */ lwz r0, lbl_80433FB8@l(r8)
/* 80276A84 002726E4 2C 00 FF FF */ cmpwi r0, -1
/* 80276A88 002726E8 41 82 00 10 */ beq lbl_80276A98
/* 80276A8C 002726EC 4B FF 7C F9 */ bl OSRestoreInterrupts
/* 80276A90 002726F0 38 60 00 00 */ li r3, 0
/* 80276A94 002726F4 48 00 01 50 */ b lbl_80276BE4
lbl_80276A98:
/* 80276A98 002726F8 3C E0 CD 00 */ lis r7, 0xCD006438@ha
/* 80276A9C 002726FC 57 64 18 38 */ slwi r4, r27, 3
/* 80276AA0 00272700 3C A0 0F 00 */ lis r5, 0xf00
/* 80276AA4 00272704 81 27 64 38 */ lwz r9, 0xCD006438@l(r7)
/* 80276AA8 00272708 7C A5 26 30 */ sraw r5, r5, r4
/* 80276AAC 0027270C 38 1D 00 03 */ addi r0, r29, 3
/* 80276AB0 00272710 7D 29 28 38 */ and r9, r9, r5
/* 80276AB4 00272714 38 C8 3F B8 */ addi r6, r8, 0x3fb8
/* 80276AB8 00272718 91 27 64 38 */ stw r9, 0x6438(r7)
/* 80276ABC 0027271C 54 04 F0 BF */ rlwinm. r4, r0, 0x1e, 2, 0x1f
/* 80276AC0 00272720 38 A0 00 00 */ li r5, 0
/* 80276AC4 00272724 93 68 3F B8 */ stw r27, 0x3fb8(r8)
/* 80276AC8 00272728 93 E6 00 10 */ stw r31, 0x10(r6)
/* 80276ACC 0027272C 93 C6 00 08 */ stw r30, 8(r6)
/* 80276AD0 00272730 93 46 00 0C */ stw r26, 0xc(r6)
/* 80276AD4 00272734 41 82 00 B4 */ beq lbl_80276B88
/* 80276AD8 00272738 28 04 00 08 */ cmplwi r4, 8
/* 80276ADC 0027273C 38 C4 FF F8 */ addi r6, r4, -8
/* 80276AE0 00272740 40 81 00 70 */ ble lbl_80276B50
/* 80276AE4 00272744 38 06 00 07 */ addi r0, r6, 7
/* 80276AE8 00272748 7F 88 E3 78 */ mr r8, r28
/* 80276AEC 0027274C 54 00 E8 FE */ srwi r0, r0, 3
/* 80276AF0 00272750 38 E7 64 00 */ addi r7, r7, 0x6400
/* 80276AF4 00272754 7C 09 03 A6 */ mtctr r0
/* 80276AF8 00272758 28 06 00 00 */ cmplwi r6, 0
/* 80276AFC 0027275C 40 81 00 54 */ ble lbl_80276B50
lbl_80276B00:
/* 80276B00 00272760 80 08 00 00 */ lwz r0, 0(r8)
/* 80276B04 00272764 38 A5 00 08 */ addi r5, r5, 8
/* 80276B08 00272768 90 07 00 80 */ stw r0, 0x80(r7)
/* 80276B0C 0027276C 80 08 00 04 */ lwz r0, 4(r8)
/* 80276B10 00272770 90 07 00 84 */ stw r0, 0x84(r7)
/* 80276B14 00272774 80 08 00 08 */ lwz r0, 8(r8)
/* 80276B18 00272778 90 07 00 88 */ stw r0, 0x88(r7)
/* 80276B1C 0027277C 80 08 00 0C */ lwz r0, 0xc(r8)
/* 80276B20 00272780 90 07 00 8C */ stw r0, 0x8c(r7)
/* 80276B24 00272784 80 08 00 10 */ lwz r0, 0x10(r8)
/* 80276B28 00272788 90 07 00 90 */ stw r0, 0x90(r7)
/* 80276B2C 0027278C 80 08 00 14 */ lwz r0, 0x14(r8)
/* 80276B30 00272790 90 07 00 94 */ stw r0, 0x94(r7)
/* 80276B34 00272794 80 08 00 18 */ lwz r0, 0x18(r8)
/* 80276B38 00272798 90 07 00 98 */ stw r0, 0x98(r7)
/* 80276B3C 0027279C 80 08 00 1C */ lwz r0, 0x1c(r8)
/* 80276B40 002727A0 39 08 00 20 */ addi r8, r8, 0x20
/* 80276B44 002727A4 90 07 00 9C */ stw r0, 0x9c(r7)
/* 80276B48 002727A8 38 E7 00 20 */ addi r7, r7, 0x20
/* 80276B4C 002727AC 42 00 FF B4 */ bdnz lbl_80276B00
lbl_80276B50:
/* 80276B50 002727B0 54 A7 10 3A */ slwi r7, r5, 2
/* 80276B54 002727B4 3C 00 CD 00 */ lis r0, 0xcd00
/* 80276B58 002727B8 7C C0 3A 14 */ add r6, r0, r7
/* 80276B5C 002727BC 7C 05 20 50 */ subf r0, r5, r4
/* 80276B60 002727C0 7C FC 3A 14 */ add r7, r28, r7
/* 80276B64 002727C4 38 C6 64 00 */ addi r6, r6, 0x6400
/* 80276B68 002727C8 7C 09 03 A6 */ mtctr r0
/* 80276B6C 002727CC 7C 05 20 40 */ cmplw r5, r4
/* 80276B70 002727D0 40 80 00 18 */ bge lbl_80276B88
lbl_80276B74:
/* 80276B74 002727D4 80 07 00 00 */ lwz r0, 0(r7)
/* 80276B78 002727D8 38 E7 00 04 */ addi r7, r7, 4
/* 80276B7C 002727DC 90 06 00 80 */ stw r0, 0x80(r6)
/* 80276B80 002727E0 38 C6 00 04 */ addi r6, r6, 4
/* 80276B84 002727E4 42 00 FF F0 */ bdnz lbl_80276B74
lbl_80276B88:
/* 80276B88 002727E8 38 9D FF 80 */ addi r4, r29, -128
/* 80276B8C 002727EC 20 1D 00 80 */ subfic r0, r29, 0x80
/* 80276B90 002727F0 7C 80 00 F8 */ nor r0, r4, r0
/* 80276B94 002727F4 3D 20 CD 00 */ lis r9, 0xCD006434@ha
/* 80276B98 002727F8 7C 05 FE 70 */ srawi r5, r0, 0x1f
/* 80276B9C 002727FC 7C DF 00 D0 */ neg r6, r31
/* 80276BA0 00272800 38 9E FF 80 */ addi r4, r30, -128
/* 80276BA4 00272804 20 1E 00 80 */ subfic r0, r30, 0x80
/* 80276BA8 00272808 7C 80 00 F8 */ nor r0, r4, r0
/* 80276BAC 0027280C 81 09 64 34 */ lwz r8, 0xCD006434@l(r9)
/* 80276BB0 00272810 7C 00 FE 70 */ srawi r0, r0, 0x1f
/* 80276BB4 00272814 7C C7 FB 78 */ or r7, r6, r31
/* 80276BB8 00272818 7F A4 28 78 */ andc r4, r29, r5
/* 80276BBC 0027281C 65 06 80 00 */ oris r6, r8, 0x8000
/* 80276BC0 00272820 50 E6 F8 42 */ rlwimi r6, r7, 0x1f, 1, 1
/* 80276BC4 00272824 7F C0 00 78 */ andc r0, r30, r0
/* 80276BC8 00272828 50 86 82 5E */ rlwimi r6, r4, 0x10, 9, 0xf
/* 80276BCC 0027282C 50 06 44 6E */ rlwimi r6, r0, 8, 0x11, 0x17
/* 80276BD0 00272830 53 66 0F 7C */ rlwimi r6, r27, 1, 0x1d, 0x1e
/* 80276BD4 00272834 60 C0 00 01 */ ori r0, r6, 1
/* 80276BD8 00272838 90 09 64 34 */ stw r0, 0x6434(r9)
/* 80276BDC 0027283C 4B FF 7B A9 */ bl OSRestoreInterrupts
/* 80276BE0 00272840 38 60 00 01 */ li r3, 1
lbl_80276BE4:
/* 80276BE4 00272844 39 61 00 20 */ addi r11, r1, 0x20
/* 80276BE8 00272848 4B F5 05 89 */ bl _restgpr_26
/* 80276BEC 0027284C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80276BF0 00272850 7C 08 03 A6 */ mtlr r0
/* 80276BF4 00272854 38 21 00 20 */ addi r1, r1, 0x20
/* 80276BF8 00272858 4E 80 00 20 */ blr
.global SISetXY
SISetXY:
/* 80276BFC 0027285C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80276C00 00272860 7C 08 02 A6 */ mflr r0
/* 80276C04 00272864 90 01 00 14 */ stw r0, 0x14(r1)
/* 80276C08 00272868 54 80 40 2E */ slwi r0, r4, 8
/* 80276C0C 0027286C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80276C10 00272870 54 7F 80 1E */ slwi r31, r3, 0x10
/* 80276C14 00272874 7F FF 03 78 */ or r31, r31, r0
/* 80276C18 00272878 4B FF 7B 45 */ bl OSDisableInterrupts
/* 80276C1C 0027287C 3C A0 80 43 */ lis r5, lbl_80433FB8@ha
/* 80276C20 00272880 3C 80 CD 00 */ lis r4, 0xCD006430@ha
/* 80276C24 00272884 38 A5 3F B8 */ addi r5, r5, lbl_80433FB8@l
/* 80276C28 00272888 80 05 00 04 */ lwz r0, 4(r5)
/* 80276C2C 0027288C 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5
/* 80276C30 00272890 7C 1F FB 78 */ or r31, r0, r31
/* 80276C34 00272894 93 E5 00 04 */ stw r31, 4(r5)
/* 80276C38 00272898 93 E4 64 30 */ stw r31, 0xCD006430@l(r4)
/* 80276C3C 0027289C 4B FF 7B 49 */ bl OSRestoreInterrupts
/* 80276C40 002728A0 7F E3 FB 78 */ mr r3, r31
/* 80276C44 002728A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80276C48 002728A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80276C4C 002728AC 7C 08 03 A6 */ mtlr r0
/* 80276C50 002728B0 38 21 00 10 */ addi r1, r1, 0x10
/* 80276C54 002728B4 4E 80 00 20 */ blr
.global AlarmHandler
AlarmHandler:
/* 80276C58 002728B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80276C5C 002728BC 7C 08 02 A6 */ mflr r0
/* 80276C60 002728C0 3C C0 80 51 */ lis r6, lbl_80515640@ha
/* 80276C64 002728C4 3C A0 2A AB */ lis r5, 0x2AAAAAAB@ha
/* 80276C68 002728C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80276C6C 002728CC 38 C6 56 40 */ addi r6, r6, lbl_80515640@l
/* 80276C70 002728D0 7C 06 18 50 */ subf r0, r6, r3
/* 80276C74 002728D4 38 65 AA AB */ addi r3, r5, 0x2AAAAAAB@l
/* 80276C78 002728D8 7C 03 00 96 */ mulhw r0, r3, r0
/* 80276C7C 002728DC 3C 80 80 51 */ lis r4, lbl_80515580@ha
/* 80276C80 002728E0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80276C84 002728E4 38 84 55 80 */ addi r4, r4, lbl_80515580@l
/* 80276C88 002728E8 7C 00 1E 70 */ srawi r0, r0, 3
/* 80276C8C 002728EC 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80276C90 002728F0 7C 00 1A 14 */ add r0, r0, r3
/* 80276C94 002728F4 54 00 28 34 */ slwi r0, r0, 5
/* 80276C98 002728F8 7C 64 00 2E */ lwzx r3, r4, r0
/* 80276C9C 002728FC 7F E4 02 14 */ add r31, r4, r0
/* 80276CA0 00272900 2C 03 FF FF */ cmpwi r3, -1
/* 80276CA4 00272904 41 82 00 2C */ beq lbl_80276CD0
/* 80276CA8 00272908 80 9F 00 04 */ lwz r4, 4(r31)
/* 80276CAC 0027290C 80 BF 00 08 */ lwz r5, 8(r31)
/* 80276CB0 00272910 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 80276CB4 00272914 80 FF 00 10 */ lwz r7, 0x10(r31)
/* 80276CB8 00272918 81 1F 00 14 */ lwz r8, 0x14(r31)
/* 80276CBC 0027291C 4B FF FD 91 */ bl __SITransfer
/* 80276CC0 00272920 2C 03 00 00 */ cmpwi r3, 0
/* 80276CC4 00272924 41 82 00 0C */ beq lbl_80276CD0
/* 80276CC8 00272928 38 00 FF FF */ li r0, -1
/* 80276CCC 0027292C 90 1F 00 00 */ stw r0, 0(r31)
lbl_80276CD0:
/* 80276CD0 00272930 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80276CD4 00272934 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80276CD8 00272938 7C 08 03 A6 */ mtlr r0
/* 80276CDC 0027293C 38 21 00 10 */ addi r1, r1, 0x10
/* 80276CE0 00272940 4E 80 00 20 */ blr
.global SITransfer
SITransfer:
/* 80276CE4 00272944 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80276CE8 00272948 7C 08 02 A6 */ mflr r0
/* 80276CEC 0027294C 90 01 00 44 */ stw r0, 0x44(r1)
/* 80276CF0 00272950 39 61 00 40 */ addi r11, r1, 0x40
/* 80276CF4 00272954 4B F5 04 1D */ bl _savegpr_21
/* 80276CF8 00272958 3F E0 80 51 */ lis r31, lbl_80515580@ha
/* 80276CFC 0027295C 54 6B 28 34 */ slwi r11, r3, 5
/* 80276D00 00272960 3B FF 55 80 */ addi r31, r31, lbl_80515580@l
/* 80276D04 00272964 7C 75 1B 78 */ mr r21, r3
/* 80276D08 00272968 38 1F 00 00 */ addi r0, r31, 0
/* 80276D0C 0027296C 7C 96 23 78 */ mr r22, r4
/* 80276D10 00272970 7C B7 2B 78 */ mr r23, r5
/* 80276D14 00272974 7C D8 33 78 */ mr r24, r6
/* 80276D18 00272978 7C F9 3B 78 */ mr r25, r7
/* 80276D1C 0027297C 7D 1A 43 78 */ mr r26, r8
/* 80276D20 00272980 7D 3B 4B 78 */ mr r27, r9
/* 80276D24 00272984 7D 5C 53 78 */ mr r28, r10
/* 80276D28 00272988 7F A0 5A 14 */ add r29, r0, r11
/* 80276D2C 0027298C 4B FF 7A 31 */ bl OSDisableInterrupts
/* 80276D30 00272990 80 1D 00 00 */ lwz r0, 0(r29)
/* 80276D34 00272994 7C 7E 1B 78 */ mr r30, r3
/* 80276D38 00272998 2C 00 FF FF */ cmpwi r0, -1
/* 80276D3C 0027299C 40 82 00 14 */ bne lbl_80276D50
/* 80276D40 002729A0 3C 60 80 43 */ lis r3, lbl_80433FB8@ha
/* 80276D44 002729A4 80 03 3F B8 */ lwz r0, lbl_80433FB8@l(r3)
/* 80276D48 002729A8 7C 00 A8 00 */ cmpw r0, r21
/* 80276D4C 002729AC 40 82 00 14 */ bne lbl_80276D60
lbl_80276D50:
/* 80276D50 002729B0 7F C3 F3 78 */ mr r3, r30
/* 80276D54 002729B4 4B FF 7A 31 */ bl OSRestoreInterrupts
/* 80276D58 002729B8 38 60 00 00 */ li r3, 0
/* 80276D5C 002729BC 48 00 00 DC */ b lbl_80276E38
lbl_80276D60:
/* 80276D60 002729C0 4B FF BA 79 */ bl __OSGetSystemTime
/* 80276D64 002729C4 7F 80 DB 79 */ or. r0, r28, r27
/* 80276D68 002729C8 7C 68 1B 78 */ mr r8, r3
/* 80276D6C 002729CC 40 82 00 10 */ bne lbl_80276D7C
/* 80276D70 002729D0 7C 9C 23 78 */ mr r28, r4
/* 80276D74 002729D4 7D 1B 43 78 */ mr r27, r8
/* 80276D78 002729D8 48 00 00 20 */ b lbl_80276D98
lbl_80276D7C:
/* 80276D7C 002729DC 56 A5 18 38 */ slwi r5, r21, 3
/* 80276D80 002729E0 38 1F 00 80 */ addi r0, r31, 0x80
/* 80276D84 002729E4 7C C0 2A 14 */ add r6, r0, r5
/* 80276D88 002729E8 80 A6 00 04 */ lwz r5, 4(r6)
/* 80276D8C 002729EC 80 06 00 00 */ lwz r0, 0(r6)
/* 80276D90 002729F0 7F 9C 28 14 */ addc r28, r28, r5
/* 80276D94 002729F4 7F 7B 01 14 */ adde r27, r27, r0
lbl_80276D98:
/* 80276D98 002729F8 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 80276D9C 002729FC 6F 65 80 00 */ xoris r5, r27, 0x8000
/* 80276DA0 00272A00 7C 7C 20 10 */ subfc r3, r28, r4
/* 80276DA4 00272A04 7C A5 01 10 */ subfe r5, r5, r0
/* 80276DA8 00272A08 7C A0 01 10 */ subfe r5, r0, r0
/* 80276DAC 00272A0C 7C A5 00 D1 */ neg. r5, r5
/* 80276DB0 00272A10 41 82 00 28 */ beq lbl_80276DD8
/* 80276DB4 00272A14 1C 75 00 30 */ mulli r3, r21, 0x30
/* 80276DB8 00272A18 38 1F 00 C0 */ addi r0, r31, 0xc0
/* 80276DBC 00272A1C 7C C4 E0 10 */ subfc r6, r4, r28
/* 80276DC0 00272A20 3C E0 80 27 */ lis r7, AlarmHandler@ha
/* 80276DC4 00272A24 7C 60 1A 14 */ add r3, r0, r3
/* 80276DC8 00272A28 7C A8 D9 10 */ subfe r5, r8, r27
/* 80276DCC 00272A2C 38 E7 6C 58 */ addi r7, r7, AlarmHandler@l
/* 80276DD0 00272A30 4B FF 2B B5 */ bl OSSetAlarm
/* 80276DD4 00272A34 48 00 00 38 */ b lbl_80276E0C
lbl_80276DD8:
/* 80276DD8 00272A38 7E A3 AB 78 */ mr r3, r21
/* 80276DDC 00272A3C 7E C4 B3 78 */ mr r4, r22
/* 80276DE0 00272A40 7E E5 BB 78 */ mr r5, r23
/* 80276DE4 00272A44 7F 06 C3 78 */ mr r6, r24
/* 80276DE8 00272A48 7F 27 CB 78 */ mr r7, r25
/* 80276DEC 00272A4C 7F 48 D3 78 */ mr r8, r26
/* 80276DF0 00272A50 4B FF FC 5D */ bl __SITransfer
/* 80276DF4 00272A54 2C 03 00 00 */ cmpwi r3, 0
/* 80276DF8 00272A58 41 82 00 14 */ beq lbl_80276E0C
/* 80276DFC 00272A5C 7F C3 F3 78 */ mr r3, r30
/* 80276E00 00272A60 4B FF 79 85 */ bl OSRestoreInterrupts
/* 80276E04 00272A64 38 60 00 01 */ li r3, 1
/* 80276E08 00272A68 48 00 00 30 */ b lbl_80276E38
lbl_80276E0C:
/* 80276E0C 00272A6C 92 BD 00 00 */ stw r21, 0(r29)
/* 80276E10 00272A70 7F C3 F3 78 */ mr r3, r30
/* 80276E14 00272A74 92 DD 00 04 */ stw r22, 4(r29)
/* 80276E18 00272A78 92 FD 00 08 */ stw r23, 8(r29)
/* 80276E1C 00272A7C 93 1D 00 0C */ stw r24, 0xc(r29)
/* 80276E20 00272A80 93 3D 00 10 */ stw r25, 0x10(r29)
/* 80276E24 00272A84 93 5D 00 14 */ stw r26, 0x14(r29)
/* 80276E28 00272A88 93 9D 00 1C */ stw r28, 0x1c(r29)
/* 80276E2C 00272A8C 93 7D 00 18 */ stw r27, 0x18(r29)
/* 80276E30 00272A90 4B FF 79 55 */ bl OSRestoreInterrupts
/* 80276E34 00272A94 38 60 00 01 */ li r3, 1
lbl_80276E38:
/* 80276E38 00272A98 39 61 00 40 */ addi r11, r1, 0x40
/* 80276E3C 00272A9C 4B F5 03 21 */ bl _restgpr_21
/* 80276E40 00272AA0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80276E44 00272AA4 7C 08 03 A6 */ mtlr r0
/* 80276E48 00272AA8 38 21 00 40 */ addi r1, r1, 0x40
/* 80276E4C 00272AAC 4E 80 00 20 */ blr
.global GetTypeCallback
GetTypeCallback:
/* 80276E50 00272AB0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80276E54 00272AB4 7C 08 02 A6 */ mflr r0
/* 80276E58 00272AB8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80276E5C 00272ABC 39 61 00 20 */ addi r11, r1, 0x20
/* 80276E60 00272AC0 4B F5 02 C5 */ bl _savegpr_26
/* 80276E64 00272AC4 3F E0 80 43 */ lis r31, lbl_80433FD0@ha
/* 80276E68 00272AC8 3F C0 80 51 */ lis r30, lbl_80515580@ha
/* 80276E6C 00272ACC 54 7D 10 3A */ slwi r29, r3, 2
/* 80276E70 00272AD0 7C 7A 1B 78 */ mr r26, r3
/* 80276E74 00272AD4 3B FF 3F D0 */ addi r31, r31, lbl_80433FD0@l
/* 80276E78 00272AD8 7C 9B 23 78 */ mr r27, r4
/* 80276E7C 00272ADC 7C 1F E8 2E */ lwzx r0, r31, r29
/* 80276E80 00272AE0 3B DE 55 80 */ addi r30, r30, lbl_80515580@l
/* 80276E84 00272AE4 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17
/* 80276E88 00272AE8 7C 00 23 78 */ or r0, r0, r4
/* 80276E8C 00272AEC 7C 1F E9 2E */ stwx r0, r31, r29
/* 80276E90 00272AF0 4B FF B9 49 */ bl __OSGetSystemTime
/* 80276E94 00272AF4 57 45 18 38 */ slwi r5, r26, 3
/* 80276E98 00272AF8 38 1E 00 A0 */ addi r0, r30, 0xa0
/* 80276E9C 00272AFC 7C C0 2A 14 */ add r6, r0, r5
/* 80276EA0 00272B00 7F 9F E8 2E */ lwzx r28, r31, r29
/* 80276EA4 00272B04 90 86 00 04 */ stw r4, 4(r6)
/* 80276EA8 00272B08 3C A0 80 00 */ lis r5, 0x8000
/* 80276EAC 00272B0C 57 60 07 3F */ clrlwi. r0, r27, 0x1c
/* 80276EB0 00272B10 80 8D A8 AC */ lwz r4, lbl_8063FB6C-_SDA_BASE_(r13)
/* 80276EB4 00272B14 7C A5 D4 30 */ srw r5, r5, r26
/* 80276EB8 00272B18 90 66 00 00 */ stw r3, 0(r6)
/* 80276EBC 00272B1C 7C 80 28 78 */ andc r0, r4, r5
/* 80276EC0 00272B20 90 0D A8 AC */ stw r0, lbl_8063FB6C-_SDA_BASE_(r13)
/* 80276EC4 00272B24 7C 9B 28 38 */ and r27, r4, r5
/* 80276EC8 00272B28 40 82 00 24 */ bne lbl_80276EEC
/* 80276ECC 00272B2C 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4
/* 80276ED0 00272B30 3C 03 F8 00 */ addis r0, r3, 0xf800
/* 80276ED4 00272B34 28 00 00 00 */ cmplwi r0, 0
/* 80276ED8 00272B38 40 82 00 14 */ bne lbl_80276EEC
/* 80276EDC 00272B3C 57 80 00 01 */ rlwinm. r0, r28, 0, 0, 0
/* 80276EE0 00272B40 41 82 00 0C */ beq lbl_80276EEC
/* 80276EE4 00272B44 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5
/* 80276EE8 00272B48 41 82 00 5C */ beq lbl_80276F44
lbl_80276EEC:
/* 80276EEC 00272B4C 7F 43 D3 78 */ mr r3, r26
/* 80276EF0 00272B50 38 80 00 00 */ li r4, 0
/* 80276EF4 00272B54 4B FF 9C AD */ bl OSSetWirelessID
/* 80276EF8 00272B58 7F 9F E8 2E */ lwzx r28, r31, r29
/* 80276EFC 00272B5C 57 43 20 36 */ slwi r3, r26, 4
/* 80276F00 00272B60 38 1E 01 E0 */ addi r0, r30, 0x1e0
/* 80276F04 00272B64 3B A0 00 00 */ li r29, 0
/* 80276F08 00272B68 7F C0 1A 14 */ add r30, r0, r3
/* 80276F0C 00272B6C 3B 60 00 00 */ li r27, 0
lbl_80276F10:
/* 80276F10 00272B70 81 9E 00 00 */ lwz r12, 0(r30)
/* 80276F14 00272B74 2C 0C 00 00 */ cmpwi r12, 0
/* 80276F18 00272B78 41 82 00 18 */ beq lbl_80276F30
/* 80276F1C 00272B7C 7F 43 D3 78 */ mr r3, r26
/* 80276F20 00272B80 7F 84 E3 78 */ mr r4, r28
/* 80276F24 00272B84 93 7E 00 00 */ stw r27, 0(r30)
/* 80276F28 00272B88 7D 89 03 A6 */ mtctr r12
/* 80276F2C 00272B8C 4E 80 04 21 */ bctrl
lbl_80276F30:
/* 80276F30 00272B90 3B BD 00 01 */ addi r29, r29, 1
/* 80276F34 00272B94 3B DE 00 04 */ addi r30, r30, 4
/* 80276F38 00272B98 2C 1D 00 04 */ cmpwi r29, 4
/* 80276F3C 00272B9C 41 80 FF D4 */ blt lbl_80276F10
/* 80276F40 00272BA0 48 00 01 A8 */ b lbl_802770E8
lbl_80276F44:
/* 80276F44 00272BA4 7F 43 D3 78 */ mr r3, r26
/* 80276F48 00272BA8 4B FF 9B E1 */ bl OSGetWirelessID
/* 80276F4C 00272BAC 2C 1B 00 00 */ cmpwi r27, 0
/* 80276F50 00272BB0 54 7B 42 2E */ rlwinm r27, r3, 8, 8, 0x17
/* 80276F54 00272BB4 41 82 00 54 */ beq lbl_80276FA8
/* 80276F58 00272BB8 57 60 02 D7 */ rlwinm. r0, r27, 0, 0xb, 0xb
/* 80276F5C 00272BBC 41 82 00 4C */ beq lbl_80276FA8
/* 80276F60 00272BC0 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha
/* 80276F64 00272BC4 3D 00 80 27 */ lis r8, GetTypeCallback@ha
/* 80276F68 00272BC8 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l
/* 80276F6C 00272BCC 38 9E 01 D0 */ addi r4, r30, 0x1d0
/* 80276F70 00272BD0 7F 60 00 38 */ and r0, r27, r0
/* 80276F74 00272BD4 7C DF EA 14 */ add r6, r31, r29
/* 80276F78 00272BD8 64 03 4E 10 */ oris r3, r0, 0x4e10
/* 80276F7C 00272BDC 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l
/* 80276F80 00272BE0 38 00 00 80 */ li r0, 0x80
/* 80276F84 00272BE4 7C 64 E9 6E */ stwux r3, r4, r29
/* 80276F88 00272BE8 7F 43 D3 78 */ mr r3, r26
/* 80276F8C 00272BEC 38 A0 00 03 */ li r5, 3
/* 80276F90 00272BF0 7C 1F E9 2E */ stwx r0, r31, r29
/* 80276F94 00272BF4 38 E0 00 03 */ li r7, 3
/* 80276F98 00272BF8 39 40 00 00 */ li r10, 0
/* 80276F9C 00272BFC 39 20 00 00 */ li r9, 0
/* 80276FA0 00272C00 4B FF FD 45 */ bl SITransfer
/* 80276FA4 00272C04 48 00 01 44 */ b lbl_802770E8
lbl_80276FA8:
/* 80276FA8 00272C08 57 80 02 D7 */ rlwinm. r0, r28, 0, 0xb, 0xb
/* 80276FAC 00272C0C 41 82 00 7C */ beq lbl_80277028
/* 80276FB0 00272C10 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha
/* 80276FB4 00272C14 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l
/* 80276FB8 00272C18 7F 83 00 38 */ and r3, r28, r0
/* 80276FBC 00272C1C 7F 60 00 38 */ and r0, r27, r0
/* 80276FC0 00272C20 7C 00 18 40 */ cmplw r0, r3
/* 80276FC4 00272C24 41 82 00 DC */ beq lbl_802770A0
/* 80276FC8 00272C28 57 60 02 D7 */ rlwinm. r0, r27, 0, 0xb, 0xb
/* 80276FCC 00272C2C 40 82 00 14 */ bne lbl_80276FE0
/* 80276FD0 00272C30 64 7B 00 10 */ oris r27, r3, 0x10
/* 80276FD4 00272C34 7F 43 D3 78 */ mr r3, r26
/* 80276FD8 00272C38 57 64 C4 3E */ rlwinm r4, r27, 0x18, 0x10, 0x1f
/* 80276FDC 00272C3C 4B FF 9B C5 */ bl OSSetWirelessID
lbl_80276FE0:
/* 80276FE0 00272C40 3C 60 80 43 */ lis r3, lbl_80433FD0@ha
/* 80276FE4 00272C44 38 1E 01 D0 */ addi r0, r30, 0x1d0
/* 80276FE8 00272C48 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l
/* 80276FEC 00272C4C 3D 00 80 27 */ lis r8, GetTypeCallback@ha
/* 80276FF0 00272C50 7C 80 EA 14 */ add r4, r0, r29
/* 80276FF4 00272C54 67 65 4E 00 */ oris r5, r27, 0x4e00
/* 80276FF8 00272C58 7C C3 EA 14 */ add r6, r3, r29
/* 80276FFC 00272C5C 38 00 00 80 */ li r0, 0x80
/* 80277000 00272C60 90 A4 00 00 */ stw r5, 0(r4)
/* 80277004 00272C64 7F 43 D3 78 */ mr r3, r26
/* 80277008 00272C68 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l
/* 8027700C 00272C6C 38 A0 00 03 */ li r5, 3
/* 80277010 00272C70 90 06 00 00 */ stw r0, 0(r6)
/* 80277014 00272C74 38 E0 00 03 */ li r7, 3
/* 80277018 00272C78 39 40 00 00 */ li r10, 0
/* 8027701C 00272C7C 39 20 00 00 */ li r9, 0
/* 80277020 00272C80 4B FF FC C5 */ bl SITransfer
/* 80277024 00272C84 48 00 00 C4 */ b lbl_802770E8
lbl_80277028:
/* 80277028 00272C88 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1
/* 8027702C 00272C8C 41 82 00 68 */ beq lbl_80277094
/* 80277030 00272C90 3C 80 00 D0 */ lis r4, 0x00CFFF00@ha
/* 80277034 00272C94 7F 43 D3 78 */ mr r3, r26
/* 80277038 00272C98 38 04 FF 00 */ addi r0, r4, 0x00CFFF00@l
/* 8027703C 00272C9C 7F 9B 00 38 */ and r27, r28, r0
/* 80277040 00272CA0 67 7B 00 10 */ oris r27, r27, 0x10
/* 80277044 00272CA4 57 64 C4 3E */ rlwinm r4, r27, 0x18, 0x10, 0x1f
/* 80277048 00272CA8 4B FF 9B 59 */ bl OSSetWirelessID
/* 8027704C 00272CAC 3C 60 80 43 */ lis r3, lbl_80433FD0@ha
/* 80277050 00272CB0 38 1E 01 D0 */ addi r0, r30, 0x1d0
/* 80277054 00272CB4 38 63 3F D0 */ addi r3, r3, lbl_80433FD0@l
/* 80277058 00272CB8 3D 00 80 27 */ lis r8, GetTypeCallback@ha
/* 8027705C 00272CBC 7C 80 EA 14 */ add r4, r0, r29
/* 80277060 00272CC0 67 65 4E 00 */ oris r5, r27, 0x4e00
/* 80277064 00272CC4 7C C3 EA 14 */ add r6, r3, r29
/* 80277068 00272CC8 38 00 00 80 */ li r0, 0x80
/* 8027706C 00272CCC 90 A4 00 00 */ stw r5, 0(r4)
/* 80277070 00272CD0 7F 43 D3 78 */ mr r3, r26
/* 80277074 00272CD4 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l
/* 80277078 00272CD8 38 A0 00 03 */ li r5, 3
/* 8027707C 00272CDC 90 06 00 00 */ stw r0, 0(r6)
/* 80277080 00272CE0 38 E0 00 03 */ li r7, 3
/* 80277084 00272CE4 39 40 00 00 */ li r10, 0
/* 80277088 00272CE8 39 20 00 00 */ li r9, 0
/* 8027708C 00272CEC 4B FF FC 59 */ bl SITransfer
/* 80277090 00272CF0 48 00 00 58 */ b lbl_802770E8
lbl_80277094:
/* 80277094 00272CF4 7F 43 D3 78 */ mr r3, r26
/* 80277098 00272CF8 38 80 00 00 */ li r4, 0
/* 8027709C 00272CFC 4B FF 9B 05 */ bl OSSetWirelessID
lbl_802770A0:
/* 802770A0 00272D00 7F 9F E8 2E */ lwzx r28, r31, r29
/* 802770A4 00272D04 57 43 20 36 */ slwi r3, r26, 4
/* 802770A8 00272D08 38 1E 01 E0 */ addi r0, r30, 0x1e0
/* 802770AC 00272D0C 3B A0 00 00 */ li r29, 0
/* 802770B0 00272D10 7F C0 1A 14 */ add r30, r0, r3
/* 802770B4 00272D14 3B 60 00 00 */ li r27, 0
lbl_802770B8:
/* 802770B8 00272D18 81 9E 00 00 */ lwz r12, 0(r30)
/* 802770BC 00272D1C 2C 0C 00 00 */ cmpwi r12, 0
/* 802770C0 00272D20 41 82 00 18 */ beq lbl_802770D8
/* 802770C4 00272D24 7F 43 D3 78 */ mr r3, r26
/* 802770C8 00272D28 7F 84 E3 78 */ mr r4, r28
/* 802770CC 00272D2C 93 7E 00 00 */ stw r27, 0(r30)
/* 802770D0 00272D30 7D 89 03 A6 */ mtctr r12
/* 802770D4 00272D34 4E 80 04 21 */ bctrl
lbl_802770D8:
/* 802770D8 00272D38 3B BD 00 01 */ addi r29, r29, 1
/* 802770DC 00272D3C 3B DE 00 04 */ addi r30, r30, 4
/* 802770E0 00272D40 2C 1D 00 04 */ cmpwi r29, 4
/* 802770E4 00272D44 41 80 FF D4 */ blt lbl_802770B8
lbl_802770E8:
/* 802770E8 00272D48 39 61 00 20 */ addi r11, r1, 0x20
/* 802770EC 00272D4C 4B F5 00 85 */ bl _restgpr_26
/* 802770F0 00272D50 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802770F4 00272D54 7C 08 03 A6 */ mtlr r0
/* 802770F8 00272D58 38 21 00 20 */ addi r1, r1, 0x20
/* 802770FC 00272D5C 4E 80 00 20 */ blr
.global SIGetType
SIGetType:
/* 80277100 00272D60 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80277104 00272D64 7C 08 02 A6 */ mflr r0
/* 80277108 00272D68 90 01 00 24 */ stw r0, 0x24(r1)
/* 8027710C 00272D6C 39 61 00 20 */ addi r11, r1, 0x20
/* 80277110 00272D70 4B F5 00 19 */ bl _savegpr_27
/* 80277114 00272D74 7C 7B 1B 78 */ mr r27, r3
/* 80277118 00272D78 4B FF 76 45 */ bl OSDisableInterrupts
/* 8027711C 00272D7C 3C A0 80 43 */ lis r5, lbl_80433FD0@ha
/* 80277120 00272D80 3C 80 80 51 */ lis r4, lbl_80515620@ha
/* 80277124 00272D84 57 66 10 3A */ slwi r6, r27, 2
/* 80277128 00272D88 57 60 18 38 */ slwi r0, r27, 3
/* 8027712C 00272D8C 38 A5 3F D0 */ addi r5, r5, lbl_80433FD0@l
/* 80277130 00272D90 38 84 56 20 */ addi r4, r4, lbl_80515620@l
/* 80277134 00272D94 7F 85 30 2E */ lwzx r28, r5, r6
/* 80277138 00272D98 7F C5 32 14 */ add r30, r5, r6
/* 8027713C 00272D9C 7C 7D 1B 78 */ mr r29, r3
/* 80277140 00272DA0 7F E4 02 14 */ add r31, r4, r0
/* 80277144 00272DA4 4B FF B6 95 */ bl __OSGetSystemTime
/* 80277148 00272DA8 80 DF 00 04 */ lwz r6, 4(r31)
/* 8027714C 00272DAC 3C A0 80 43 */ lis r5, lbl_80433FB8@ha
/* 80277150 00272DB0 80 1F 00 00 */ lwz r0, 0(r31)
/* 80277154 00272DB4 38 A5 3F B8 */ addi r5, r5, lbl_80433FB8@l
/* 80277158 00272DB8 7D 06 20 10 */ subfc r8, r6, r4
/* 8027715C 00272DBC 80 85 00 04 */ lwz r4, 4(r5)
/* 80277160 00272DC0 7C E0 19 10 */ subfe r7, r0, r3
/* 80277164 00272DC4 38 60 00 80 */ li r3, 0x80
/* 80277168 00272DC8 7C 60 DE 30 */ sraw r0, r3, r27
/* 8027716C 00272DCC 7C 80 00 39 */ and. r0, r4, r0
/* 80277170 00272DD0 41 82 00 34 */ beq lbl_802771A4
/* 80277174 00272DD4 28 1C 00 08 */ cmplwi r28, 8
/* 80277178 00272DD8 41 82 00 20 */ beq lbl_80277198
/* 8027717C 00272DDC 4B FF B6 5D */ bl __OSGetSystemTime
/* 80277180 00272DE0 90 9F 00 04 */ stw r4, 4(r31)
/* 80277184 00272DE4 90 7F 00 00 */ stw r3, 0(r31)
/* 80277188 00272DE8 7F A3 EB 78 */ mr r3, r29
/* 8027718C 00272DEC 4B FF 75 F9 */ bl OSRestoreInterrupts
/* 80277190 00272DF0 7F 83 E3 78 */ mr r3, r28
/* 80277194 00272DF4 48 00 01 08 */ b lbl_8027729C
lbl_80277198:
/* 80277198 00272DF8 90 7E 00 00 */ stw r3, 0(r30)
/* 8027719C 00272DFC 3B 80 00 80 */ li r28, 0x80
/* 802771A0 00272E00 48 00 00 98 */ b lbl_80277238
lbl_802771A4:
/* 802771A4 00272E04 3C 80 80 00 */ lis r4, 0x800000F8@ha
/* 802771A8 00272E08 3C 60 10 62 */ lis r3, 0x10624DD3@ha
/* 802771AC 00272E0C 80 A4 00 F8 */ lwz r5, 0x800000F8@l(r4)
/* 802771B0 00272E10 38 C3 4D D3 */ addi r6, r3, 0x10624DD3@l
/* 802771B4 00272E14 38 00 00 00 */ li r0, 0
/* 802771B8 00272E18 6C E4 80 00 */ xoris r4, r7, 0x8000
/* 802771BC 00272E1C 54 A3 F0 BE */ srwi r3, r5, 2
/* 802771C0 00272E20 7C 66 18 16 */ mulhwu r3, r6, r3
/* 802771C4 00272E24 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802771C8 00272E28 54 65 D1 BE */ srwi r5, r3, 6
/* 802771CC 00272E2C 1C 65 00 32 */ mulli r3, r5, 0x32
/* 802771D0 00272E30 7C 68 18 10 */ subfc r3, r8, r3
/* 802771D4 00272E34 7C 84 01 10 */ subfe r4, r4, r0
/* 802771D8 00272E38 7C 80 01 10 */ subfe r4, r0, r0
/* 802771DC 00272E3C 7C 84 00 D1 */ neg. r4, r4
/* 802771E0 00272E40 40 82 00 1C */ bne lbl_802771FC
/* 802771E4 00272E44 28 1C 00 08 */ cmplwi r28, 8
/* 802771E8 00272E48 41 82 00 14 */ beq lbl_802771FC
/* 802771EC 00272E4C 7F A3 EB 78 */ mr r3, r29
/* 802771F0 00272E50 4B FF 75 95 */ bl OSRestoreInterrupts
/* 802771F4 00272E54 7F 83 E3 78 */ mr r3, r28
/* 802771F8 00272E58 48 00 00 A4 */ b lbl_8027729C
lbl_802771FC:
/* 802771FC 00272E5C 1C 65 00 4B */ mulli r3, r5, 0x4b
/* 80277200 00272E60 38 00 00 00 */ li r0, 0
/* 80277204 00272E64 6C E4 80 00 */ xoris r4, r7, 0x8000
/* 80277208 00272E68 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8027720C 00272E6C 7C 68 18 10 */ subfc r3, r8, r3
/* 80277210 00272E70 7C 84 01 10 */ subfe r4, r4, r0
/* 80277214 00272E74 7C 80 01 10 */ subfe r4, r0, r0
/* 80277218 00272E78 7C 84 00 D1 */ neg. r4, r4
/* 8027721C 00272E7C 40 82 00 10 */ bne lbl_8027722C
/* 80277220 00272E80 38 00 00 80 */ li r0, 0x80
/* 80277224 00272E84 90 1E 00 00 */ stw r0, 0(r30)
/* 80277228 00272E88 48 00 00 10 */ b lbl_80277238
lbl_8027722C:
/* 8027722C 00272E8C 38 00 00 80 */ li r0, 0x80
/* 80277230 00272E90 3B 80 00 80 */ li r28, 0x80
/* 80277234 00272E94 90 1E 00 00 */ stw r0, 0(r30)
lbl_80277238:
/* 80277238 00272E98 4B FF B5 A1 */ bl __OSGetSystemTime
/* 8027723C 00272E9C 90 9F 00 04 */ stw r4, 4(r31)
/* 80277240 00272EA0 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 80277244 00272EA4 39 24 DE 83 */ addi r9, r4, 0x431BDE83@l
/* 80277248 00272EA8 3D 00 80 27 */ lis r8, GetTypeCallback@ha
/* 8027724C 00272EAC 90 7F 00 00 */ stw r3, 0(r31)
/* 80277250 00272EB0 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 80277254 00272EB4 7F 63 DB 78 */ mr r3, r27
/* 80277258 00272EB8 7F C6 F3 78 */ mr r6, r30
/* 8027725C 00272EBC 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 80277260 00272EC0 39 08 6E 50 */ addi r8, r8, GetTypeCallback@l
/* 80277264 00272EC4 38 8D A8 A8 */ addi r4, r13, lbl_8063FB68-_SDA_BASE_
/* 80277268 00272EC8 38 A0 00 01 */ li r5, 1
/* 8027726C 00272ECC 54 00 F0 BE */ srwi r0, r0, 2
/* 80277270 00272ED0 38 E0 00 03 */ li r7, 3
/* 80277274 00272ED4 7C 09 00 16 */ mulhwu r0, r9, r0
/* 80277278 00272ED8 39 20 00 00 */ li r9, 0
/* 8027727C 00272EDC 54 0A 8B FE */ srwi r10, r0, 0xf
/* 80277280 00272EE0 54 00 BA 72 */ rlwinm r0, r0, 0x17, 9, 0x19
/* 80277284 00272EE4 7C 00 52 14 */ add r0, r0, r10
/* 80277288 00272EE8 54 0A E8 FE */ srwi r10, r0, 3
/* 8027728C 00272EEC 4B FF FA 59 */ bl SITransfer
/* 80277290 00272EF0 7F A3 EB 78 */ mr r3, r29
/* 80277294 00272EF4 4B FF 74 F1 */ bl OSRestoreInterrupts
/* 80277298 00272EF8 7F 83 E3 78 */ mr r3, r28
lbl_8027729C:
/* 8027729C 00272EFC 39 61 00 20 */ addi r11, r1, 0x20
/* 802772A0 00272F00 4B F4 FE D5 */ bl _restgpr_27
/* 802772A4 00272F04 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802772A8 00272F08 7C 08 03 A6 */ mtlr r0
/* 802772AC 00272F0C 38 21 00 20 */ addi r1, r1, 0x20
/* 802772B0 00272F10 4E 80 00 20 */ blr
|