summaryrefslogtreecommitdiff
path: root/asm/SDK/VI/i2c.s
blob: fd45ac523c13b78150908f112b4f722225b78091 (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
.include "macros.inc"

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

.global WaitMicroTime
WaitMicroTime:
/* 80279E6C 00275ACC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80279E70 00275AD0  7C 08 02 A6 */	mflr r0
/* 80279E74 00275AD4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80279E78 00275AD8  39 61 00 20 */	addi r11, r1, 0x20
/* 80279E7C 00275ADC  4B F4 D2 AD */	bl _savegpr_27
/* 80279E80 00275AE0  7C 7B 1B 78 */	mr r27, r3
/* 80279E84 00275AE4  4B FF 89 55 */	bl __OSGetSystemTime
/* 80279E88 00275AE8  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 80279E8C 00275AEC  7C 9C 23 78 */	mr r28, r4
/* 80279E90 00275AF0  7C 7D 1B 78 */	mr r29, r3
/* 80279E94 00275AF4  3F E0 80 00 */	lis r31, 0x8000
/* 80279E98 00275AF8  3B C5 DE 83 */	addi r30, r5, 0x431BDE83@l
lbl_80279E9C:
/* 80279E9C 00275AFC  4B FF 89 3D */	bl __OSGetSystemTime
/* 80279EA0 00275B00  80 1F 00 F8 */	lwz r0, 0xf8(r31)
/* 80279EA4 00275B04  7C DC 20 10 */	subfc r6, r28, r4
/* 80279EA8 00275B08  7C 7D 19 10 */	subfe r3, r29, r3
/* 80279EAC 00275B0C  38 A0 00 00 */	li r5, 0
/* 80279EB0 00275B10  54 00 F0 BE */	srwi r0, r0, 2
/* 80279EB4 00275B14  54 C4 18 38 */	slwi r4, r6, 3
/* 80279EB8 00275B18  7C 1E 00 16 */	mulhwu r0, r30, r0
/* 80279EBC 00275B1C  54 63 18 38 */	slwi r3, r3, 3
/* 80279EC0 00275B20  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 80279EC4 00275B24  54 06 8B FE */	srwi r6, r0, 0xf
/* 80279EC8 00275B28  4B F4 D3 B1 */	bl __div2i
/* 80279ECC 00275B2C  7F 65 FE 70 */	srawi r5, r27, 0x1f
/* 80279ED0 00275B30  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80279ED4 00275B34  6C A5 80 00 */	xoris r5, r5, 0x8000
/* 80279ED8 00275B38  7C 7B 20 10 */	subfc r3, r27, r4
/* 80279EDC 00275B3C  7C A5 01 10 */	subfe r5, r5, r0
/* 80279EE0 00275B40  7C A0 01 10 */	subfe r5, r0, r0
/* 80279EE4 00275B44  7C A5 00 D1 */	neg. r5, r5
/* 80279EE8 00275B48  40 82 FF B4 */	bne lbl_80279E9C
/* 80279EEC 00275B4C  39 61 00 20 */	addi r11, r1, 0x20
/* 80279EF0 00275B50  4B F4 D2 85 */	bl _restgpr_27
/* 80279EF4 00275B54  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80279EF8 00275B58  7C 08 03 A6 */	mtlr r0
/* 80279EFC 00275B5C  38 21 00 20 */	addi r1, r1, 0x20
/* 80279F00 00275B60  4E 80 00 20 */	blr

.global sendSlaveAddr
sendSlaveAddr:
/* 80279F04 00275B64  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80279F08 00275B68  7C 08 02 A6 */	mflr r0
/* 80279F0C 00275B6C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80279F10 00275B70  39 61 00 30 */	addi r11, r1, 0x30
/* 80279F14 00275B74  4B F4 D2 05 */	bl _savegpr_23
/* 80279F18 00275B78  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 80279F1C 00275B7C  7C 7D 1B 78 */	mr r29, r3
/* 80279F20 00275B80  2C 00 00 00 */	cmpwi r0, 0
/* 80279F24 00275B84  40 82 00 1C */	bne lbl_80279F40
/* 80279F28 00275B88  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 80279F2C 00275B8C  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 80279F30 00275B90  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 80279F34 00275B94  60 00 80 00 */	ori r0, r0, 0x8000
/* 80279F38 00275B98  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 80279F3C 00275B9C  48 00 00 14 */	b lbl_80279F50
lbl_80279F40:
/* 80279F40 00275BA0  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 80279F44 00275BA4  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 80279F48 00275BA8  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 80279F4C 00275BAC  90 03 00 C0 */	stw r0, 0xc0(r3)
lbl_80279F50:
/* 80279F50 00275BB0  4B FF 88 89 */	bl __OSGetSystemTime
/* 80279F54 00275BB4  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 80279F58 00275BB8  7C 9C 23 78 */	mr r28, r4
/* 80279F5C 00275BBC  7C 7B 1B 78 */	mr r27, r3
/* 80279F60 00275BC0  3F 20 80 00 */	lis r25, 0x8000
/* 80279F64 00275BC4  3B 45 DE 83 */	addi r26, r5, 0x431BDE83@l
/* 80279F68 00275BC8  3B 00 00 02 */	li r24, 2
/* 80279F6C 00275BCC  3A E0 00 00 */	li r23, 0
lbl_80279F70:
/* 80279F70 00275BD0  4B FF 88 69 */	bl __OSGetSystemTime
/* 80279F74 00275BD4  80 19 00 F8 */	lwz r0, 0xf8(r25)
/* 80279F78 00275BD8  7C DC 20 10 */	subfc r6, r28, r4
/* 80279F7C 00275BDC  7C 7B 19 10 */	subfe r3, r27, r3
/* 80279F80 00275BE0  38 A0 00 00 */	li r5, 0
/* 80279F84 00275BE4  54 00 F0 BE */	srwi r0, r0, 2
/* 80279F88 00275BE8  54 C4 18 38 */	slwi r4, r6, 3
/* 80279F8C 00275BEC  7C 1A 00 16 */	mulhwu r0, r26, r0
/* 80279F90 00275BF0  54 63 18 38 */	slwi r3, r3, 3
/* 80279F94 00275BF4  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 80279F98 00275BF8  54 06 8B FE */	srwi r6, r0, 0xf
/* 80279F9C 00275BFC  4B F4 D2 DD */	bl __div2i
/* 80279FA0 00275C00  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80279FA4 00275C04  6E E5 80 00 */	xoris r5, r23, 0x8000
/* 80279FA8 00275C08  7C 78 20 10 */	subfc r3, r24, r4
/* 80279FAC 00275C0C  7C A5 01 10 */	subfe r5, r5, r0
/* 80279FB0 00275C10  7C A0 01 10 */	subfe r5, r0, r0
/* 80279FB4 00275C14  7C A5 00 D1 */	neg. r5, r5
/* 80279FB8 00275C18  40 82 FF B8 */	bne lbl_80279F70
/* 80279FBC 00275C1C  3F E0 CD 80 */	lis r31, 0xCD8000C0@ha
/* 80279FC0 00275C20  3C 60 43 1C */	lis r3, 0x431BDE83@ha
/* 80279FC4 00275C24  80 1F 00 C0 */	lwz r0, 0xCD8000C0@l(r31)
/* 80279FC8 00275C28  3B 23 DE 83 */	addi r25, r3, 0x431BDE83@l
/* 80279FCC 00275C2C  3B C0 00 00 */	li r30, 0
/* 80279FD0 00275C30  3F 80 80 00 */	lis r28, 0x8000
/* 80279FD4 00275C34  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 80279FD8 00275C38  3B 60 00 02 */	li r27, 2
/* 80279FDC 00275C3C  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 80279FE0 00275C40  3B 40 00 00 */	li r26, 0
lbl_80279FE4:
/* 80279FE4 00275C44  57 A0 06 31 */	rlwinm. r0, r29, 0, 0x18, 0x18
/* 80279FE8 00275C48  41 82 00 34 */	beq lbl_8027A01C
/* 80279FEC 00275C4C  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 80279FF0 00275C50  2C 00 00 00 */	cmpwi r0, 0
/* 80279FF4 00275C54  40 82 00 14 */	bne lbl_8027A008
/* 80279FF8 00275C58  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 80279FFC 00275C5C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A000 00275C60  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 8027A004 00275C64  48 00 00 44 */	b lbl_8027A048
lbl_8027A008:
/* 8027A008 00275C68  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 8027A00C 00275C6C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A010 00275C70  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A014 00275C74  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 8027A018 00275C78  48 00 00 30 */	b lbl_8027A048
lbl_8027A01C:
/* 8027A01C 00275C7C  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A020 00275C80  2C 00 00 00 */	cmpwi r0, 0
/* 8027A024 00275C84  40 82 00 18 */	bne lbl_8027A03C
/* 8027A028 00275C88  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 8027A02C 00275C8C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A030 00275C90  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A034 00275C94  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 8027A038 00275C98  48 00 00 10 */	b lbl_8027A048
lbl_8027A03C:
/* 8027A03C 00275C9C  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 8027A040 00275CA0  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A044 00275CA4  90 1F 00 C0 */	stw r0, 0xc0(r31)
lbl_8027A048:
/* 8027A048 00275CA8  4B FF 87 91 */	bl __OSGetSystemTime
/* 8027A04C 00275CAC  7C 98 23 78 */	mr r24, r4
/* 8027A050 00275CB0  7C 77 1B 78 */	mr r23, r3
lbl_8027A054:
/* 8027A054 00275CB4  4B FF 87 85 */	bl __OSGetSystemTime
/* 8027A058 00275CB8  80 1C 00 F8 */	lwz r0, 0xf8(r28)
/* 8027A05C 00275CBC  7C D8 20 10 */	subfc r6, r24, r4
/* 8027A060 00275CC0  7C 77 19 10 */	subfe r3, r23, r3
/* 8027A064 00275CC4  38 A0 00 00 */	li r5, 0
/* 8027A068 00275CC8  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A06C 00275CCC  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A070 00275CD0  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A074 00275CD4  54 63 18 38 */	slwi r3, r3, 3
/* 8027A078 00275CD8  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A07C 00275CDC  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A080 00275CE0  4B F4 D1 F9 */	bl __div2i
/* 8027A084 00275CE4  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A088 00275CE8  6F 45 80 00 */	xoris r5, r26, 0x8000
/* 8027A08C 00275CEC  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A090 00275CF0  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A094 00275CF4  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A098 00275CF8  7C A5 00 D1 */	neg. r5, r5
/* 8027A09C 00275CFC  40 82 FF B8 */	bne lbl_8027A054
/* 8027A0A0 00275D00  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 8027A0A4 00275D04  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A0A8 00275D08  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A0AC 00275D0C  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 8027A0B0 00275D10  4B FF 87 29 */	bl __OSGetSystemTime
/* 8027A0B4 00275D14  7C 97 23 78 */	mr r23, r4
/* 8027A0B8 00275D18  7C 78 1B 78 */	mr r24, r3
lbl_8027A0BC:
/* 8027A0BC 00275D1C  4B FF 87 1D */	bl __OSGetSystemTime
/* 8027A0C0 00275D20  80 1C 00 F8 */	lwz r0, 0xf8(r28)
/* 8027A0C4 00275D24  7C D7 20 10 */	subfc r6, r23, r4
/* 8027A0C8 00275D28  7C 78 19 10 */	subfe r3, r24, r3
/* 8027A0CC 00275D2C  38 A0 00 00 */	li r5, 0
/* 8027A0D0 00275D30  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A0D4 00275D34  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A0D8 00275D38  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A0DC 00275D3C  54 63 18 38 */	slwi r3, r3, 3
/* 8027A0E0 00275D40  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A0E4 00275D44  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A0E8 00275D48  4B F4 D1 91 */	bl __div2i
/* 8027A0EC 00275D4C  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A0F0 00275D50  6F 45 80 00 */	xoris r5, r26, 0x8000
/* 8027A0F4 00275D54  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A0F8 00275D58  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A0FC 00275D5C  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A100 00275D60  7C A5 00 D1 */	neg. r5, r5
/* 8027A104 00275D64  40 82 FF B8 */	bne lbl_8027A0BC
/* 8027A108 00275D68  80 1F 00 C0 */	lwz r0, 0xc0(r31)
/* 8027A10C 00275D6C  3B DE 00 01 */	addi r30, r30, 1
/* 8027A110 00275D70  2C 1E 00 08 */	cmpwi r30, 8
/* 8027A114 00275D74  57 BD 0E 3C */	rlwinm r29, r29, 1, 0x18, 0x1e
/* 8027A118 00275D78  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A11C 00275D7C  90 1F 00 C0 */	stw r0, 0xc0(r31)
/* 8027A120 00275D80  41 80 FE C4 */	blt lbl_80279FE4
/* 8027A124 00275D84  3C 60 CD 80 */	lis r3, 0xCD8000C4@ha
/* 8027A128 00275D88  80 03 00 C4 */	lwz r0, 0xCD8000C4@l(r3)
/* 8027A12C 00275D8C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A130 00275D90  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A134 00275D94  90 03 00 C4 */	stw r0, 0xc4(r3)
/* 8027A138 00275D98  4B FF 86 A1 */	bl __OSGetSystemTime
/* 8027A13C 00275D9C  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A140 00275DA0  7C 9F 23 78 */	mr r31, r4
/* 8027A144 00275DA4  7C 7E 1B 78 */	mr r30, r3
/* 8027A148 00275DA8  3F 80 80 00 */	lis r28, 0x8000
/* 8027A14C 00275DAC  3B A5 DE 83 */	addi r29, r5, 0x431BDE83@l
/* 8027A150 00275DB0  3B 60 00 02 */	li r27, 2
/* 8027A154 00275DB4  3B 40 00 00 */	li r26, 0
lbl_8027A158:
/* 8027A158 00275DB8  4B FF 86 81 */	bl __OSGetSystemTime
/* 8027A15C 00275DBC  80 1C 00 F8 */	lwz r0, 0xf8(r28)
/* 8027A160 00275DC0  7C DF 20 10 */	subfc r6, r31, r4
/* 8027A164 00275DC4  7C 7E 19 10 */	subfe r3, r30, r3
/* 8027A168 00275DC8  38 A0 00 00 */	li r5, 0
/* 8027A16C 00275DCC  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A170 00275DD0  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A174 00275DD4  7C 1D 00 16 */	mulhwu r0, r29, r0
/* 8027A178 00275DD8  54 63 18 38 */	slwi r3, r3, 3
/* 8027A17C 00275DDC  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A180 00275DE0  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A184 00275DE4  4B F4 D0 F5 */	bl __div2i
/* 8027A188 00275DE8  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A18C 00275DEC  6F 45 80 00 */	xoris r5, r26, 0x8000
/* 8027A190 00275DF0  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A194 00275DF4  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A198 00275DF8  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A19C 00275DFC  7C A5 00 D1 */	neg. r5, r5
/* 8027A1A0 00275E00  40 82 FF B8 */	bne lbl_8027A158
/* 8027A1A4 00275E04  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A1A8 00275E08  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A1AC 00275E0C  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A1B0 00275E10  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A1B4 00275E14  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 8027A1B8 00275E18  4B FF 86 21 */	bl __OSGetSystemTime
/* 8027A1BC 00275E1C  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A1C0 00275E20  7C 9A 23 78 */	mr r26, r4
/* 8027A1C4 00275E24  7C 7B 1B 78 */	mr r27, r3
/* 8027A1C8 00275E28  3F E0 80 00 */	lis r31, 0x8000
/* 8027A1CC 00275E2C  3B 85 DE 83 */	addi r28, r5, 0x431BDE83@l
/* 8027A1D0 00275E30  3B C0 00 02 */	li r30, 2
/* 8027A1D4 00275E34  3B A0 00 00 */	li r29, 0
lbl_8027A1D8:
/* 8027A1D8 00275E38  4B FF 86 01 */	bl __OSGetSystemTime
/* 8027A1DC 00275E3C  80 1F 00 F8 */	lwz r0, 0xf8(r31)
/* 8027A1E0 00275E40  7C DA 20 10 */	subfc r6, r26, r4
/* 8027A1E4 00275E44  7C 7B 19 10 */	subfe r3, r27, r3
/* 8027A1E8 00275E48  38 A0 00 00 */	li r5, 0
/* 8027A1EC 00275E4C  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A1F0 00275E50  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A1F4 00275E54  7C 1C 00 16 */	mulhwu r0, r28, r0
/* 8027A1F8 00275E58  54 63 18 38 */	slwi r3, r3, 3
/* 8027A1FC 00275E5C  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A200 00275E60  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A204 00275E64  4B F4 D0 75 */	bl __div2i
/* 8027A208 00275E68  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A20C 00275E6C  6F A5 80 00 */	xoris r5, r29, 0x8000
/* 8027A210 00275E70  7C 7E 20 10 */	subfc r3, r30, r4
/* 8027A214 00275E74  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A218 00275E78  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A21C 00275E7C  7C A5 00 D1 */	neg. r5, r5
/* 8027A220 00275E80  40 82 FF B8 */	bne lbl_8027A1D8
/* 8027A224 00275E84  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A228 00275E88  28 00 00 01 */	cmplwi r0, 1
/* 8027A22C 00275E8C  40 82 00 1C */	bne lbl_8027A248
/* 8027A230 00275E90  3C 60 CD 80 */	lis r3, 0xCD8000C8@ha
/* 8027A234 00275E94  80 03 00 C8 */	lwz r0, 0xCD8000C8@l(r3)
/* 8027A238 00275E98  54 00 8F FF */	rlwinm. r0, r0, 0x11, 0x1f, 0x1f
/* 8027A23C 00275E9C  41 82 00 0C */	beq lbl_8027A248
/* 8027A240 00275EA0  38 60 00 00 */	li r3, 0
/* 8027A244 00275EA4  48 00 00 5C */	b lbl_8027A2A0
lbl_8027A248:
/* 8027A248 00275EA8  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A24C 00275EAC  2C 00 00 00 */	cmpwi r0, 0
/* 8027A250 00275EB0  40 82 00 1C */	bne lbl_8027A26C
/* 8027A254 00275EB4  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A258 00275EB8  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A25C 00275EBC  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A260 00275EC0  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A264 00275EC4  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 8027A268 00275EC8  48 00 00 14 */	b lbl_8027A27C
lbl_8027A26C:
/* 8027A26C 00275ECC  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A270 00275ED0  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A274 00275ED4  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A278 00275ED8  90 03 00 C0 */	stw r0, 0xc0(r3)
lbl_8027A27C:
/* 8027A27C 00275EDC  3C 80 CD 80 */	lis r4, 0xCD8000C4@ha
/* 8027A280 00275EE0  38 60 00 01 */	li r3, 1
/* 8027A284 00275EE4  80 04 00 C4 */	lwz r0, 0xCD8000C4@l(r4)
/* 8027A288 00275EE8  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A28C 00275EEC  60 00 C0 00 */	ori r0, r0, 0xc000
/* 8027A290 00275EF0  90 04 00 C4 */	stw r0, 0xc4(r4)
/* 8027A294 00275EF4  80 04 00 C0 */	lwz r0, 0xc0(r4)
/* 8027A298 00275EF8  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A29C 00275EFC  90 04 00 C0 */	stw r0, 0xc0(r4)
lbl_8027A2A0:
/* 8027A2A0 00275F00  39 61 00 30 */	addi r11, r1, 0x30
/* 8027A2A4 00275F04  4B F4 CE C1 */	bl _restgpr_23
/* 8027A2A8 00275F08  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8027A2AC 00275F0C  7C 08 03 A6 */	mtlr r0
/* 8027A2B0 00275F10  38 21 00 30 */	addi r1, r1, 0x30
/* 8027A2B4 00275F14  4E 80 00 20 */	blr

.global __VISendI2CData
__VISendI2CData:
/* 8027A2B8 00275F18  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8027A2BC 00275F1C  7C 08 02 A6 */	mflr r0
/* 8027A2C0 00275F20  90 01 00 44 */	stw r0, 0x44(r1)
/* 8027A2C4 00275F24  39 61 00 40 */	addi r11, r1, 0x40
/* 8027A2C8 00275F28  4B F4 CE 45 */	bl _savegpr_20
/* 8027A2CC 00275F2C  80 0D A9 70 */	lwz r0, lbl_8063FC30-_SDA_BASE_(r13)
/* 8027A2D0 00275F30  7C 74 1B 78 */	mr r20, r3
/* 8027A2D4 00275F34  7C 9D 23 78 */	mr r29, r4
/* 8027A2D8 00275F38  7C BE 2B 78 */	mr r30, r5
/* 8027A2DC 00275F3C  2C 00 00 00 */	cmpwi r0, 0
/* 8027A2E0 00275F40  40 82 00 10 */	bne lbl_8027A2F0
/* 8027A2E4 00275F44  38 00 00 01 */	li r0, 1
/* 8027A2E8 00275F48  90 0D 88 28 */	stw r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A2EC 00275F4C  90 0D A9 70 */	stw r0, lbl_8063FC30-_SDA_BASE_(r13)
lbl_8027A2F0:
/* 8027A2F0 00275F50  4B FF 44 6D */	bl OSDisableInterrupts
/* 8027A2F4 00275F54  3C 80 CD 80 */	lis r4, 0xCD8000C4@ha
/* 8027A2F8 00275F58  7C 7F 1B 78 */	mr r31, r3
/* 8027A2FC 00275F5C  80 04 00 C4 */	lwz r0, 0xCD8000C4@l(r4)
/* 8027A300 00275F60  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A304 00275F64  60 00 C0 00 */	ori r0, r0, 0xc000
/* 8027A308 00275F68  90 04 00 C4 */	stw r0, 0xc4(r4)
/* 8027A30C 00275F6C  80 04 00 C0 */	lwz r0, 0xc0(r4)
/* 8027A310 00275F70  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A314 00275F74  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A318 00275F78  90 04 00 C0 */	stw r0, 0xc0(r4)
/* 8027A31C 00275F7C  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A320 00275F80  2C 00 00 00 */	cmpwi r0, 0
/* 8027A324 00275F84  40 82 00 14 */	bne lbl_8027A338
/* 8027A328 00275F88  80 04 00 C0 */	lwz r0, 0xc0(r4)
/* 8027A32C 00275F8C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A330 00275F90  90 04 00 C0 */	stw r0, 0xc0(r4)
/* 8027A334 00275F94  48 00 00 14 */	b lbl_8027A348
lbl_8027A338:
/* 8027A338 00275F98  80 04 00 C0 */	lwz r0, 0xc0(r4)
/* 8027A33C 00275F9C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A340 00275FA0  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A344 00275FA4  90 04 00 C0 */	stw r0, 0xc0(r4)
lbl_8027A348:
/* 8027A348 00275FA8  4B FF 84 91 */	bl __OSGetSystemTime
/* 8027A34C 00275FAC  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A350 00275FB0  7C 97 23 78 */	mr r23, r4
/* 8027A354 00275FB4  7C 76 1B 78 */	mr r22, r3
/* 8027A358 00275FB8  3F 20 80 00 */	lis r25, 0x8000
/* 8027A35C 00275FBC  3B 45 DE 83 */	addi r26, r5, 0x431BDE83@l
/* 8027A360 00275FC0  3B 00 00 02 */	li r24, 2
/* 8027A364 00275FC4  3A A0 00 00 */	li r21, 0
lbl_8027A368:
/* 8027A368 00275FC8  4B FF 84 71 */	bl __OSGetSystemTime
/* 8027A36C 00275FCC  80 19 00 F8 */	lwz r0, 0xf8(r25)
/* 8027A370 00275FD0  7C D7 20 10 */	subfc r6, r23, r4
/* 8027A374 00275FD4  7C 76 19 10 */	subfe r3, r22, r3
/* 8027A378 00275FD8  38 A0 00 00 */	li r5, 0
/* 8027A37C 00275FDC  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A380 00275FE0  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A384 00275FE4  7C 1A 00 16 */	mulhwu r0, r26, r0
/* 8027A388 00275FE8  54 63 18 38 */	slwi r3, r3, 3
/* 8027A38C 00275FEC  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A390 00275FF0  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A394 00275FF4  4B F4 CE E5 */	bl __div2i
/* 8027A398 00275FF8  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A39C 00275FFC  6E A5 80 00 */	xoris r5, r21, 0x8000
/* 8027A3A0 00276000  7C 78 20 10 */	subfc r3, r24, r4
/* 8027A3A4 00276004  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A3A8 00276008  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A3AC 0027600C  7C A5 00 D1 */	neg. r5, r5
/* 8027A3B0 00276010  40 82 FF B8 */	bne lbl_8027A368
/* 8027A3B4 00276014  4B FF 84 25 */	bl __OSGetSystemTime
/* 8027A3B8 00276018  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A3BC 0027601C  7C 97 23 78 */	mr r23, r4
/* 8027A3C0 00276020  7C 76 1B 78 */	mr r22, r3
/* 8027A3C4 00276024  3F 20 80 00 */	lis r25, 0x8000
/* 8027A3C8 00276028  3B 45 DE 83 */	addi r26, r5, 0x431BDE83@l
/* 8027A3CC 0027602C  3B 00 00 02 */	li r24, 2
/* 8027A3D0 00276030  3A A0 00 00 */	li r21, 0
lbl_8027A3D4:
/* 8027A3D4 00276034  4B FF 84 05 */	bl __OSGetSystemTime
/* 8027A3D8 00276038  80 19 00 F8 */	lwz r0, 0xf8(r25)
/* 8027A3DC 0027603C  7C D7 20 10 */	subfc r6, r23, r4
/* 8027A3E0 00276040  7C 76 19 10 */	subfe r3, r22, r3
/* 8027A3E4 00276044  38 A0 00 00 */	li r5, 0
/* 8027A3E8 00276048  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A3EC 0027604C  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A3F0 00276050  7C 1A 00 16 */	mulhwu r0, r26, r0
/* 8027A3F4 00276054  54 63 18 38 */	slwi r3, r3, 3
/* 8027A3F8 00276058  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A3FC 0027605C  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A400 00276060  4B F4 CE 79 */	bl __div2i
/* 8027A404 00276064  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A408 00276068  6E A5 80 00 */	xoris r5, r21, 0x8000
/* 8027A40C 0027606C  7C 78 20 10 */	subfc r3, r24, r4
/* 8027A410 00276070  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A414 00276074  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A418 00276078  7C A5 00 D1 */	neg. r5, r5
/* 8027A41C 0027607C  40 82 FF B8 */	bne lbl_8027A3D4
/* 8027A420 00276080  7E 83 A3 78 */	mr r3, r20
/* 8027A424 00276084  4B FF FA E1 */	bl sendSlaveAddr
/* 8027A428 00276088  2C 03 00 00 */	cmpwi r3, 0
/* 8027A42C 0027608C  40 82 00 14 */	bne lbl_8027A440
/* 8027A430 00276090  7F E3 FB 78 */	mr r3, r31
/* 8027A434 00276094  4B FF 43 51 */	bl OSRestoreInterrupts
/* 8027A438 00276098  38 60 00 00 */	li r3, 0
/* 8027A43C 0027609C  48 00 04 34 */	b lbl_8027A870
lbl_8027A440:
/* 8027A440 002760A0  3E C0 CD 80 */	lis r22, 0xCD8000C4@ha
/* 8027A444 002760A4  3C 60 43 1C */	lis r3, 0x431BDE83@ha
/* 8027A448 002760A8  80 16 00 C4 */	lwz r0, 0xCD8000C4@l(r22)
/* 8027A44C 002760AC  3B 23 DE 83 */	addi r25, r3, 0x431BDE83@l
/* 8027A450 002760B0  3F 40 80 00 */	lis r26, 0x8000
/* 8027A454 002760B4  3B 60 00 02 */	li r27, 2
/* 8027A458 002760B8  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A45C 002760BC  3B 80 00 00 */	li r28, 0
/* 8027A460 002760C0  60 00 C0 00 */	ori r0, r0, 0xc000
/* 8027A464 002760C4  90 16 00 C4 */	stw r0, 0xc4(r22)
/* 8027A468 002760C8  48 00 02 94 */	b lbl_8027A6FC
lbl_8027A46C:
/* 8027A46C 002760CC  8A 9D 00 00 */	lbz r20, 0(r29)
/* 8027A470 002760D0  3A A0 00 00 */	li r21, 0
/* 8027A474 002760D4  3B BD 00 01 */	addi r29, r29, 1
lbl_8027A478:
/* 8027A478 002760D8  56 80 06 31 */	rlwinm. r0, r20, 0, 0x18, 0x18
/* 8027A47C 002760DC  41 82 00 34 */	beq lbl_8027A4B0
/* 8027A480 002760E0  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A484 002760E4  2C 00 00 00 */	cmpwi r0, 0
/* 8027A488 002760E8  40 82 00 14 */	bne lbl_8027A49C
/* 8027A48C 002760EC  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A490 002760F0  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A494 002760F4  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A498 002760F8  48 00 00 44 */	b lbl_8027A4DC
lbl_8027A49C:
/* 8027A49C 002760FC  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A4A0 00276100  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A4A4 00276104  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A4A8 00276108  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A4AC 0027610C  48 00 00 30 */	b lbl_8027A4DC
lbl_8027A4B0:
/* 8027A4B0 00276110  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A4B4 00276114  2C 00 00 00 */	cmpwi r0, 0
/* 8027A4B8 00276118  40 82 00 18 */	bne lbl_8027A4D0
/* 8027A4BC 0027611C  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A4C0 00276120  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A4C4 00276124  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A4C8 00276128  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A4CC 0027612C  48 00 00 10 */	b lbl_8027A4DC
lbl_8027A4D0:
/* 8027A4D0 00276130  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A4D4 00276134  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A4D8 00276138  90 16 00 C0 */	stw r0, 0xc0(r22)
lbl_8027A4DC:
/* 8027A4DC 0027613C  4B FF 82 FD */	bl __OSGetSystemTime
/* 8027A4E0 00276140  7C 98 23 78 */	mr r24, r4
/* 8027A4E4 00276144  7C 77 1B 78 */	mr r23, r3
lbl_8027A4E8:
/* 8027A4E8 00276148  4B FF 82 F1 */	bl __OSGetSystemTime
/* 8027A4EC 0027614C  80 1A 00 F8 */	lwz r0, 0xf8(r26)
/* 8027A4F0 00276150  7C D8 20 10 */	subfc r6, r24, r4
/* 8027A4F4 00276154  7C 77 19 10 */	subfe r3, r23, r3
/* 8027A4F8 00276158  38 A0 00 00 */	li r5, 0
/* 8027A4FC 0027615C  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A500 00276160  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A504 00276164  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A508 00276168  54 63 18 38 */	slwi r3, r3, 3
/* 8027A50C 0027616C  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A510 00276170  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A514 00276174  4B F4 CD 65 */	bl __div2i
/* 8027A518 00276178  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A51C 0027617C  6F 85 80 00 */	xoris r5, r28, 0x8000
/* 8027A520 00276180  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A524 00276184  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A528 00276188  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A52C 0027618C  7C A5 00 D1 */	neg. r5, r5
/* 8027A530 00276190  40 82 FF B8 */	bne lbl_8027A4E8
/* 8027A534 00276194  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A538 00276198  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A53C 0027619C  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A540 002761A0  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A544 002761A4  4B FF 82 95 */	bl __OSGetSystemTime
/* 8027A548 002761A8  7C 98 23 78 */	mr r24, r4
/* 8027A54C 002761AC  7C 77 1B 78 */	mr r23, r3
lbl_8027A550:
/* 8027A550 002761B0  4B FF 82 89 */	bl __OSGetSystemTime
/* 8027A554 002761B4  80 1A 00 F8 */	lwz r0, 0xf8(r26)
/* 8027A558 002761B8  7C D8 20 10 */	subfc r6, r24, r4
/* 8027A55C 002761BC  7C 77 19 10 */	subfe r3, r23, r3
/* 8027A560 002761C0  38 A0 00 00 */	li r5, 0
/* 8027A564 002761C4  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A568 002761C8  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A56C 002761CC  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A570 002761D0  54 63 18 38 */	slwi r3, r3, 3
/* 8027A574 002761D4  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A578 002761D8  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A57C 002761DC  4B F4 CC FD */	bl __div2i
/* 8027A580 002761E0  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A584 002761E4  6F 85 80 00 */	xoris r5, r28, 0x8000
/* 8027A588 002761E8  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A58C 002761EC  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A590 002761F0  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A594 002761F4  7C A5 00 D1 */	neg. r5, r5
/* 8027A598 002761F8  40 82 FF B8 */	bne lbl_8027A550
/* 8027A59C 002761FC  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A5A0 00276200  3A B5 00 01 */	addi r21, r21, 1
/* 8027A5A4 00276204  2C 15 00 08 */	cmpwi r21, 8
/* 8027A5A8 00276208  56 94 0E 3C */	rlwinm r20, r20, 1, 0x18, 0x1e
/* 8027A5AC 0027620C  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A5B0 00276210  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A5B4 00276214  41 80 FE C4 */	blt lbl_8027A478
/* 8027A5B8 00276218  80 16 00 C4 */	lwz r0, 0xc4(r22)
/* 8027A5BC 0027621C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A5C0 00276220  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A5C4 00276224  90 16 00 C4 */	stw r0, 0xc4(r22)
/* 8027A5C8 00276228  4B FF 82 11 */	bl __OSGetSystemTime
/* 8027A5CC 0027622C  7C 98 23 78 */	mr r24, r4
/* 8027A5D0 00276230  7C 77 1B 78 */	mr r23, r3
lbl_8027A5D4:
/* 8027A5D4 00276234  4B FF 82 05 */	bl __OSGetSystemTime
/* 8027A5D8 00276238  80 1A 00 F8 */	lwz r0, 0xf8(r26)
/* 8027A5DC 0027623C  7C D8 20 10 */	subfc r6, r24, r4
/* 8027A5E0 00276240  7C 77 19 10 */	subfe r3, r23, r3
/* 8027A5E4 00276244  38 A0 00 00 */	li r5, 0
/* 8027A5E8 00276248  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A5EC 0027624C  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A5F0 00276250  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A5F4 00276254  54 63 18 38 */	slwi r3, r3, 3
/* 8027A5F8 00276258  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A5FC 0027625C  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A600 00276260  4B F4 CC 79 */	bl __div2i
/* 8027A604 00276264  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A608 00276268  6F 85 80 00 */	xoris r5, r28, 0x8000
/* 8027A60C 0027626C  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A610 00276270  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A614 00276274  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A618 00276278  7C A5 00 D1 */	neg. r5, r5
/* 8027A61C 0027627C  40 82 FF B8 */	bne lbl_8027A5D4
/* 8027A620 00276280  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A624 00276284  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A628 00276288  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A62C 0027628C  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A630 00276290  4B FF 81 A9 */	bl __OSGetSystemTime
/* 8027A634 00276294  7C 97 23 78 */	mr r23, r4
/* 8027A638 00276298  7C 78 1B 78 */	mr r24, r3
lbl_8027A63C:
/* 8027A63C 0027629C  4B FF 81 9D */	bl __OSGetSystemTime
/* 8027A640 002762A0  80 1A 00 F8 */	lwz r0, 0xf8(r26)
/* 8027A644 002762A4  7C D7 20 10 */	subfc r6, r23, r4
/* 8027A648 002762A8  7C 78 19 10 */	subfe r3, r24, r3
/* 8027A64C 002762AC  38 A0 00 00 */	li r5, 0
/* 8027A650 002762B0  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A654 002762B4  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A658 002762B8  7C 19 00 16 */	mulhwu r0, r25, r0
/* 8027A65C 002762BC  54 63 18 38 */	slwi r3, r3, 3
/* 8027A660 002762C0  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A664 002762C4  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A668 002762C8  4B F4 CC 11 */	bl __div2i
/* 8027A66C 002762CC  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A670 002762D0  6F 85 80 00 */	xoris r5, r28, 0x8000
/* 8027A674 002762D4  7C 7B 20 10 */	subfc r3, r27, r4
/* 8027A678 002762D8  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A67C 002762DC  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A680 002762E0  7C A5 00 D1 */	neg. r5, r5
/* 8027A684 002762E4  40 82 FF B8 */	bne lbl_8027A63C
/* 8027A688 002762E8  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A68C 002762EC  28 00 00 01 */	cmplwi r0, 1
/* 8027A690 002762F0  40 82 00 20 */	bne lbl_8027A6B0
/* 8027A694 002762F4  80 16 00 C8 */	lwz r0, 0xc8(r22)
/* 8027A698 002762F8  54 00 8F FF */	rlwinm. r0, r0, 0x11, 0x1f, 0x1f
/* 8027A69C 002762FC  41 82 00 14 */	beq lbl_8027A6B0
/* 8027A6A0 00276300  7F E3 FB 78 */	mr r3, r31
/* 8027A6A4 00276304  4B FF 40 E1 */	bl OSRestoreInterrupts
/* 8027A6A8 00276308  38 60 00 00 */	li r3, 0
/* 8027A6AC 0027630C  48 00 01 C4 */	b lbl_8027A870
lbl_8027A6B0:
/* 8027A6B0 00276310  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A6B4 00276314  2C 00 00 00 */	cmpwi r0, 0
/* 8027A6B8 00276318  40 82 00 18 */	bne lbl_8027A6D0
/* 8027A6BC 0027631C  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A6C0 00276320  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A6C4 00276324  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A6C8 00276328  90 16 00 C0 */	stw r0, 0xc0(r22)
/* 8027A6CC 0027632C  48 00 00 10 */	b lbl_8027A6DC
lbl_8027A6D0:
/* 8027A6D0 00276330  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A6D4 00276334  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A6D8 00276338  90 16 00 C0 */	stw r0, 0xc0(r22)
lbl_8027A6DC:
/* 8027A6DC 0027633C  80 16 00 C4 */	lwz r0, 0xc4(r22)
/* 8027A6E0 00276340  3B DE FF FF */	addi r30, r30, -1
/* 8027A6E4 00276344  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A6E8 00276348  60 00 C0 00 */	ori r0, r0, 0xc000
/* 8027A6EC 0027634C  90 16 00 C4 */	stw r0, 0xc4(r22)
/* 8027A6F0 00276350  80 16 00 C0 */	lwz r0, 0xc0(r22)
/* 8027A6F4 00276354  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A6F8 00276358  90 16 00 C0 */	stw r0, 0xc0(r22)
lbl_8027A6FC:
/* 8027A6FC 0027635C  2C 1E 00 00 */	cmpwi r30, 0
/* 8027A700 00276360  40 82 FD 6C */	bne lbl_8027A46C
/* 8027A704 00276364  3C 60 CD 80 */	lis r3, 0xCD8000C4@ha
/* 8027A708 00276368  80 03 00 C4 */	lwz r0, 0xCD8000C4@l(r3)
/* 8027A70C 0027636C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A710 00276370  60 00 C0 00 */	ori r0, r0, 0xc000
/* 8027A714 00276374  90 03 00 C4 */	stw r0, 0xc4(r3)
/* 8027A718 00276378  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A71C 0027637C  2C 00 00 00 */	cmpwi r0, 0
/* 8027A720 00276380  40 82 00 18 */	bne lbl_8027A738
/* 8027A724 00276384  80 03 00 C0 */	lwz r0, 0xc0(r3)
/* 8027A728 00276388  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A72C 0027638C  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A730 00276390  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 8027A734 00276394  48 00 00 10 */	b lbl_8027A744
lbl_8027A738:
/* 8027A738 00276398  80 03 00 C0 */	lwz r0, 0xc0(r3)
/* 8027A73C 0027639C  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A740 002763A0  90 03 00 C0 */	stw r0, 0xc0(r3)
lbl_8027A744:
/* 8027A744 002763A4  4B FF 80 95 */	bl __OSGetSystemTime
/* 8027A748 002763A8  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A74C 002763AC  7C 99 23 78 */	mr r25, r4
/* 8027A750 002763B0  7C 78 1B 78 */	mr r24, r3
/* 8027A754 002763B4  3E C0 80 00 */	lis r22, 0x8000
/* 8027A758 002763B8  3A E5 DE 83 */	addi r23, r5, 0x431BDE83@l
/* 8027A75C 002763BC  3A A0 00 02 */	li r21, 2
/* 8027A760 002763C0  3A 80 00 00 */	li r20, 0
lbl_8027A764:
/* 8027A764 002763C4  4B FF 80 75 */	bl __OSGetSystemTime
/* 8027A768 002763C8  80 16 00 F8 */	lwz r0, 0xf8(r22)
/* 8027A76C 002763CC  7C D9 20 10 */	subfc r6, r25, r4
/* 8027A770 002763D0  7C 78 19 10 */	subfe r3, r24, r3
/* 8027A774 002763D4  38 A0 00 00 */	li r5, 0
/* 8027A778 002763D8  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A77C 002763DC  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A780 002763E0  7C 17 00 16 */	mulhwu r0, r23, r0
/* 8027A784 002763E4  54 63 18 38 */	slwi r3, r3, 3
/* 8027A788 002763E8  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A78C 002763EC  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A790 002763F0  4B F4 CA E9 */	bl __div2i
/* 8027A794 002763F4  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A798 002763F8  6E 85 80 00 */	xoris r5, r20, 0x8000
/* 8027A79C 002763FC  7C 75 20 10 */	subfc r3, r21, r4
/* 8027A7A0 00276400  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A7A4 00276404  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A7A8 00276408  7C A5 00 D1 */	neg. r5, r5
/* 8027A7AC 0027640C  40 82 FF B8 */	bne lbl_8027A764
/* 8027A7B0 00276410  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A7B4 00276414  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A7B8 00276418  54 00 04 A0 */	rlwinm r0, r0, 0, 0x12, 0x10
/* 8027A7BC 0027641C  60 00 40 00 */	ori r0, r0, 0x4000
/* 8027A7C0 00276420  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 8027A7C4 00276424  4B FF 80 15 */	bl __OSGetSystemTime
/* 8027A7C8 00276428  3C A0 43 1C */	lis r5, 0x431BDE83@ha
/* 8027A7CC 0027642C  7C 99 23 78 */	mr r25, r4
/* 8027A7D0 00276430  7C 78 1B 78 */	mr r24, r3
/* 8027A7D4 00276434  3E C0 80 00 */	lis r22, 0x8000
/* 8027A7D8 00276438  3A E5 DE 83 */	addi r23, r5, 0x431BDE83@l
/* 8027A7DC 0027643C  3A A0 00 02 */	li r21, 2
/* 8027A7E0 00276440  3A 80 00 00 */	li r20, 0
lbl_8027A7E4:
/* 8027A7E4 00276444  4B FF 7F F5 */	bl __OSGetSystemTime
/* 8027A7E8 00276448  80 16 00 F8 */	lwz r0, 0xf8(r22)
/* 8027A7EC 0027644C  7C D9 20 10 */	subfc r6, r25, r4
/* 8027A7F0 00276450  7C 78 19 10 */	subfe r3, r24, r3
/* 8027A7F4 00276454  38 A0 00 00 */	li r5, 0
/* 8027A7F8 00276458  54 00 F0 BE */	srwi r0, r0, 2
/* 8027A7FC 0027645C  54 C4 18 38 */	slwi r4, r6, 3
/* 8027A800 00276460  7C 17 00 16 */	mulhwu r0, r23, r0
/* 8027A804 00276464  54 63 18 38 */	slwi r3, r3, 3
/* 8027A808 00276468  50 C3 1F 7E */	rlwimi r3, r6, 3, 0x1d, 0x1f
/* 8027A80C 0027646C  54 06 8B FE */	srwi r6, r0, 0xf
/* 8027A810 00276470  4B F4 CA 69 */	bl __div2i
/* 8027A814 00276474  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 8027A818 00276478  6E 85 80 00 */	xoris r5, r20, 0x8000
/* 8027A81C 0027647C  7C 75 20 10 */	subfc r3, r21, r4
/* 8027A820 00276480  7C A5 01 10 */	subfe r5, r5, r0
/* 8027A824 00276484  7C A0 01 10 */	subfe r5, r0, r0
/* 8027A828 00276488  7C A5 00 D1 */	neg. r5, r5
/* 8027A82C 0027648C  40 82 FF B8 */	bne lbl_8027A7E4
/* 8027A830 00276490  80 0D 88 28 */	lwz r0, lbl_8063DAE8-_SDA_BASE_(r13)
/* 8027A834 00276494  2C 00 00 00 */	cmpwi r0, 0
/* 8027A838 00276498  40 82 00 18 */	bne lbl_8027A850
/* 8027A83C 0027649C  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A840 002764A0  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A844 002764A4  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A848 002764A8  90 03 00 C0 */	stw r0, 0xc0(r3)
/* 8027A84C 002764AC  48 00 00 18 */	b lbl_8027A864
lbl_8027A850:
/* 8027A850 002764B0  3C 60 CD 80 */	lis r3, 0xCD8000C0@ha
/* 8027A854 002764B4  80 03 00 C0 */	lwz r0, 0xCD8000C0@l(r3)
/* 8027A858 002764B8  54 00 04 5E */	rlwinm r0, r0, 0, 0x11, 0xf
/* 8027A85C 002764BC  60 00 80 00 */	ori r0, r0, 0x8000
/* 8027A860 002764C0  90 03 00 C0 */	stw r0, 0xc0(r3)
lbl_8027A864:
/* 8027A864 002764C4  7F E3 FB 78 */	mr r3, r31
/* 8027A868 002764C8  4B FF 3F 1D */	bl OSRestoreInterrupts
/* 8027A86C 002764CC  38 60 00 01 */	li r3, 1
lbl_8027A870:
/* 8027A870 002764D0  39 61 00 40 */	addi r11, r1, 0x40
/* 8027A874 002764D4  4B F4 C8 E5 */	bl _restgpr_20
/* 8027A878 002764D8  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8027A87C 002764DC  7C 08 03 A6 */	mtlr r0
/* 8027A880 002764E0  38 21 00 40 */	addi r1, r1, 0x40
/* 8027A884 002764E4  4E 80 00 20 */	blr