diff options
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/DB/db.s | 88 | ||||
-rw-r--r-- | asm/SDK/EXI/EXIBios.s | 1753 | ||||
-rw-r--r-- | asm/SDK/EXI/EXICommon.s | 112 | ||||
-rw-r--r-- | asm/SDK/EXI/EXIUart.s | 229 | ||||
-rw-r--r-- | asm/SDK/HBM/HBMBase.s | 4 | ||||
-rw-r--r-- | asm/SDK/OS/OS.s | 16 | ||||
-rw-r--r-- | asm/SDK/OS/OSCache.s | 10 | ||||
-rw-r--r-- | asm/SDK/OS/OSContext.s | 2 | ||||
-rw-r--r-- | asm/SDK/OS/OSFatal.s | 50 | ||||
-rw-r--r-- | asm/SDK/OS/OSMemory.s | 1 | ||||
-rw-r--r-- | asm/SDK/OS/OSReset.s | 4 | ||||
-rw-r--r-- | asm/SDK/OS/OSRtc.s | 104 | ||||
-rw-r--r-- | asm/SDK/SI/SIBios.s | 1121 | ||||
-rw-r--r-- | asm/SDK/SI/SISamplingRate.s | 71 | ||||
-rw-r--r-- | asm/SDK/VI/i2c.s | 703 | ||||
-rw-r--r-- | asm/SDK/VI/vi.s | 2952 | ||||
-rw-r--r-- | asm/SDK/VI/vi3in1.s | 1529 |
17 files changed, 8653 insertions, 96 deletions
diff --git a/asm/SDK/DB/db.s b/asm/SDK/DB/db.s new file mode 100644 index 0000000..77e9dd3 --- /dev/null +++ b/asm/SDK/DB/db.s @@ -0,0 +1,88 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DBInit
+DBInit:
+/* 80277394 00272FF4 3C 80 80 00 */ lis r4, 0x80000040@ha
+/* 80277398 00272FF8 3C 60 80 27 */ lis r3, __DBExceptionDestination@ha
+/* 8027739C 00272FFC 38 A4 00 40 */ addi r5, r4, 0x80000040@l
+/* 802773A0 00273000 38 00 00 01 */ li r0, 1
+/* 802773A4 00273004 38 63 74 20 */ addi r3, r3, __DBExceptionDestination@l
+/* 802773A8 00273008 90 AD A8 B8 */ stw r5, lbl_8063FB78-_SDA_BASE_(r13)
+/* 802773AC 0027300C 3C 63 80 00 */ addis r3, r3, 0x8000
+/* 802773B0 00273010 90 64 00 48 */ stw r3, 0x48(r4)
+/* 802773B4 00273014 90 0D A8 BC */ stw r0, lbl_8063FB7C-_SDA_BASE_(r13)
+/* 802773B8 00273018 4E 80 00 20 */ blr
+
+.global DBIsDebuggerPresent
+DBIsDebuggerPresent:
+/* 802773BC 0027301C 80 6D A8 B8 */ lwz r3, lbl_8063FB78-_SDA_BASE_(r13)
+/* 802773C0 00273020 2C 03 00 00 */ cmpwi r3, 0
+/* 802773C4 00273024 40 82 00 0C */ bne lbl_802773D0
+/* 802773C8 00273028 38 60 00 00 */ li r3, 0
+/* 802773CC 0027302C 4E 80 00 20 */ blr
+lbl_802773D0:
+/* 802773D0 00273030 80 63 00 00 */ lwz r3, 0(r3)
+/* 802773D4 00273034 4E 80 00 20 */ blr
+
+.global __DBExceptionDestinationAux
+__DBExceptionDestinationAux:
+/* 802773D8 00273038 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802773DC 0027303C 7C 08 02 A6 */ mflr r0
+/* 802773E0 00273040 3C 60 80 43 */ lis r3, lbl_80434078@ha
+/* 802773E4 00273044 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802773E8 00273048 38 63 40 78 */ addi r3, r3, lbl_80434078@l
+/* 802773EC 0027304C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802773F0 00273050 80 80 00 C0 */ lwz r4, 0xc0(0)
+/* 802773F4 00273054 3F E4 80 00 */ addis r31, r4, 0x8000
+/* 802773F8 00273058 4C C6 31 82 */ crclr 6
+/* 802773FC 0027305C 4B D9 06 C9 */ bl func_80007AC4
+/* 80277400 00273060 7F E3 FB 78 */ mr r3, r31
+/* 80277404 00273064 4B FF 3D 6D */ bl OSDumpContext
+/* 80277408 00273068 4B FF 0E 61 */ bl PPCHalt
+/* 8027740C 0027306C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80277410 00273070 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80277414 00273074 7C 08 03 A6 */ mtlr r0
+/* 80277418 00273078 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027741C 0027307C 4E 80 00 20 */ blr
+
+.global __DBExceptionDestination
+__DBExceptionDestination:
+/* 80277420 00273080 7C 60 00 A6 */ mfmsr r3
+/* 80277424 00273084 60 63 00 30 */ ori r3, r3, 0x30
+/* 80277428 00273088 7C 60 01 24 */ mtmsr r3
+/* 8027742C 0027308C 4B FF FF AC */ b __DBExceptionDestinationAux
+
+.global __DBIsExceptionMarked
+__DBIsExceptionMarked:
+/* 80277430 00273090 80 8D A8 B8 */ lwz r4, lbl_8063FB78-_SDA_BASE_(r13)
+/* 80277434 00273094 38 00 00 01 */ li r0, 1
+/* 80277438 00273098 7C 00 18 30 */ slw r0, r0, r3
+/* 8027743C 0027309C 80 64 00 04 */ lwz r3, 4(r4)
+/* 80277440 002730A0 7C 63 00 38 */ and r3, r3, r0
+/* 80277444 002730A4 4E 80 00 20 */ blr
+
+.global DBPrintf
+DBPrintf:
+/* 80277448 002730A8 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 8027744C 002730AC 40 86 00 24 */ bne cr1, lbl_80277470
+/* 80277450 002730B0 D8 21 00 28 */ stfd f1, 0x28(r1)
+/* 80277454 002730B4 D8 41 00 30 */ stfd f2, 0x30(r1)
+/* 80277458 002730B8 D8 61 00 38 */ stfd f3, 0x38(r1)
+/* 8027745C 002730BC D8 81 00 40 */ stfd f4, 0x40(r1)
+/* 80277460 002730C0 D8 A1 00 48 */ stfd f5, 0x48(r1)
+/* 80277464 002730C4 D8 C1 00 50 */ stfd f6, 0x50(r1)
+/* 80277468 002730C8 D8 E1 00 58 */ stfd f7, 0x58(r1)
+/* 8027746C 002730CC D9 01 00 60 */ stfd f8, 0x60(r1)
+lbl_80277470:
+/* 80277470 002730D0 90 61 00 08 */ stw r3, 8(r1)
+/* 80277474 002730D4 90 81 00 0C */ stw r4, 0xc(r1)
+/* 80277478 002730D8 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 8027747C 002730DC 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 80277480 002730E0 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 80277484 002730E4 91 01 00 1C */ stw r8, 0x1c(r1)
+/* 80277488 002730E8 91 21 00 20 */ stw r9, 0x20(r1)
+/* 8027748C 002730EC 91 41 00 24 */ stw r10, 0x24(r1)
+/* 80277490 002730F0 38 21 00 70 */ addi r1, r1, 0x70
+/* 80277494 002730F4 4E 80 00 20 */ blr
diff --git a/asm/SDK/EXI/EXIBios.s b/asm/SDK/EXI/EXIBios.s new file mode 100644 index 0000000..0c674d0 --- /dev/null +++ b/asm/SDK/EXI/EXIBios.s @@ -0,0 +1,1753 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global SetExiInterruptMask
+SetExiInterruptMask:
+/* 80274558 002701B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027455C 002701BC 7C 08 02 A6 */ mflr r0
+/* 80274560 002701C0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80274564 002701C4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80274568 002701C8 7C 9F 23 78 */ mr r31, r4
+/* 8027456C 002701CC 3C A0 80 51 */ lis r5, lbl_805154C0@ha
+/* 80274570 002701D0 38 A5 54 C0 */ addi r5, r5, lbl_805154C0@l
+/* 80274574 002701D4 2C 03 00 01 */ cmpwi r3, 1
+/* 80274578 002701D8 41 82 00 5C */ beq lbl_802745D4
+/* 8027457C 002701DC 40 80 00 10 */ bge lbl_8027458C
+/* 80274580 002701E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80274584 002701E4 40 80 00 14 */ bge lbl_80274598
+/* 80274588 002701E8 48 00 00 AC */ b lbl_80274634
+lbl_8027458C:
+/* 8027458C 002701EC 2C 03 00 03 */ cmpwi r3, 3
+/* 80274590 002701F0 40 80 00 A4 */ bge lbl_80274634
+/* 80274594 002701F4 48 00 00 70 */ b lbl_80274604
+lbl_80274598:
+/* 80274598 002701F8 80 04 00 00 */ lwz r0, 0(r4)
+/* 8027459C 002701FC 2C 00 00 00 */ cmpwi r0, 0
+/* 802745A0 00270200 40 82 00 10 */ bne lbl_802745B0
+/* 802745A4 00270204 80 05 00 80 */ lwz r0, 0x80(r5)
+/* 802745A8 00270208 2C 00 00 00 */ cmpwi r0, 0
+/* 802745AC 0027020C 41 82 00 10 */ beq lbl_802745BC
+lbl_802745B0:
+/* 802745B0 00270210 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 802745B4 00270214 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 802745B8 00270218 41 82 00 10 */ beq lbl_802745C8
+lbl_802745BC:
+/* 802745BC 0027021C 3C 60 00 41 */ lis r3, 0x41
+/* 802745C0 00270220 4B FF A5 2D */ bl __OSMaskInterrupts
+/* 802745C4 00270224 48 00 00 70 */ b lbl_80274634
+lbl_802745C8:
+/* 802745C8 00270228 3C 60 00 41 */ lis r3, 0x41
+/* 802745CC 0027022C 4B FF A5 A1 */ bl __OSUnmaskInterrupts
+/* 802745D0 00270230 48 00 00 64 */ b lbl_80274634
+lbl_802745D4:
+/* 802745D4 00270234 80 04 00 00 */ lwz r0, 0(r4)
+/* 802745D8 00270238 2C 00 00 00 */ cmpwi r0, 0
+/* 802745DC 0027023C 41 82 00 10 */ beq lbl_802745EC
+/* 802745E0 00270240 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 802745E4 00270244 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 802745E8 00270248 41 82 00 10 */ beq lbl_802745F8
+lbl_802745EC:
+/* 802745EC 0027024C 3C 60 00 08 */ lis r3, 8
+/* 802745F0 00270250 4B FF A4 FD */ bl __OSMaskInterrupts
+/* 802745F4 00270254 48 00 00 40 */ b lbl_80274634
+lbl_802745F8:
+/* 802745F8 00270258 3C 60 00 08 */ lis r3, 8
+/* 802745FC 0027025C 4B FF A5 71 */ bl __OSUnmaskInterrupts
+/* 80274600 00270260 48 00 00 34 */ b lbl_80274634
+lbl_80274604:
+/* 80274604 00270264 38 60 00 19 */ li r3, 0x19
+/* 80274608 00270268 4B FF A1 B5 */ bl __OSGetInterruptHandler
+/* 8027460C 0027026C 2C 03 00 00 */ cmpwi r3, 0
+/* 80274610 00270270 41 82 00 10 */ beq lbl_80274620
+/* 80274614 00270274 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274618 00270278 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 8027461C 0027027C 41 82 00 10 */ beq lbl_8027462C
+lbl_80274620:
+/* 80274620 00270280 38 60 00 40 */ li r3, 0x40
+/* 80274624 00270284 4B FF A4 C9 */ bl __OSMaskInterrupts
+/* 80274628 00270288 48 00 00 0C */ b lbl_80274634
+lbl_8027462C:
+/* 8027462C 0027028C 38 60 00 40 */ li r3, 0x40
+/* 80274630 00270290 4B FF A5 3D */ bl __OSUnmaskInterrupts
+lbl_80274634:
+/* 80274634 00270294 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80274638 00270298 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027463C 0027029C 7C 08 03 A6 */ mtlr r0
+/* 80274640 002702A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80274644 002702A4 4E 80 00 20 */ blr
+
+.global EXIImm
+EXIImm:
+/* 80274648 002702A8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8027464C 002702AC 7C 08 02 A6 */ mflr r0
+/* 80274650 002702B0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80274654 002702B4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80274658 002702B8 4B F5 2A C9 */ bl _savegpr_25
+/* 8027465C 002702BC 7C 7A 1B 78 */ mr r26, r3
+/* 80274660 002702C0 7C 9B 23 78 */ mr r27, r4
+/* 80274664 002702C4 7C BC 2B 78 */ mr r28, r5
+/* 80274668 002702C8 7C DD 33 78 */ mr r29, r6
+/* 8027466C 002702CC 7C F9 3B 78 */ mr r25, r7
+/* 80274670 002702D0 54 60 30 32 */ slwi r0, r3, 6
+/* 80274674 002702D4 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80274678 002702D8 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 8027467C 002702DC 7F E3 02 14 */ add r31, r3, r0
+/* 80274680 002702E0 4B FF A0 DD */ bl OSDisableInterrupts
+/* 80274684 002702E4 7C 7E 1B 78 */ mr r30, r3
+/* 80274688 002702E8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027468C 002702EC 54 00 07 BF */ clrlwi. r0, r0, 0x1e
+/* 80274690 002702F0 40 82 00 10 */ bne lbl_802746A0
+/* 80274694 002702F4 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274698 002702F8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 8027469C 002702FC 40 82 00 14 */ bne lbl_802746B0
+lbl_802746A0:
+/* 802746A0 00270300 7F C3 F3 78 */ mr r3, r30
+/* 802746A4 00270304 4B FF A0 E1 */ bl OSRestoreInterrupts
+/* 802746A8 00270308 38 60 00 00 */ li r3, 0
+/* 802746AC 0027030C 48 00 02 00 */ b lbl_802748AC
+lbl_802746B0:
+/* 802746B0 00270310 93 3F 00 04 */ stw r25, 4(r31)
+/* 802746B4 00270314 2C 19 00 00 */ cmpwi r25, 0
+/* 802746B8 00270318 41 82 00 34 */ beq lbl_802746EC
+/* 802746BC 0027031C 1C 7A 00 14 */ mulli r3, r26, 0x14
+/* 802746C0 00270320 3C 00 CD 00 */ lis r0, 0xcd00
+/* 802746C4 00270324 7C 60 1A 14 */ add r3, r0, r3
+/* 802746C8 00270328 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 802746CC 0027032C 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 802746D0 00270330 60 00 00 08 */ ori r0, r0, 8
+/* 802746D4 00270334 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 802746D8 00270338 3C 60 00 20 */ lis r3, 0x20
+/* 802746DC 0027033C 57 40 10 3A */ slwi r0, r26, 2
+/* 802746E0 00270340 7C 1A 00 50 */ subf r0, r26, r0
+/* 802746E4 00270344 7C 63 04 30 */ srw r3, r3, r0
+/* 802746E8 00270348 4B FF A4 85 */ bl __OSUnmaskInterrupts
+lbl_802746EC:
+/* 802746EC 0027034C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 802746F0 00270350 60 00 00 02 */ ori r0, r0, 2
+/* 802746F4 00270354 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 802746F8 00270358 2C 1D 00 00 */ cmpwi r29, 0
+/* 802746FC 0027035C 41 82 01 64 */ beq lbl_80274860
+/* 80274700 00270360 38 00 00 00 */ li r0, 0
+/* 80274704 00270364 38 80 00 00 */ li r4, 0
+/* 80274708 00270368 2C 9C 00 00 */ cmpwi cr1, r28, 0
+/* 8027470C 0027036C 40 85 01 44 */ ble cr1, lbl_80274850
+/* 80274710 00270370 38 DC FF F8 */ addi r6, r28, -8
+/* 80274714 00270374 2C 1C 00 08 */ cmpwi r28, 8
+/* 80274718 00270378 40 81 01 04 */ ble lbl_8027481C
+/* 8027471C 0027037C 38 A0 00 00 */ li r5, 0
+/* 80274720 00270380 41 84 00 18 */ blt cr1, lbl_80274738
+/* 80274724 00270384 3C 60 80 00 */ lis r3, 0x7FFFFFFE@ha
+/* 80274728 00270388 38 63 FF FE */ addi r3, r3, 0x7FFFFFFE@l
+/* 8027472C 0027038C 7C 1C 18 00 */ cmpw r28, r3
+/* 80274730 00270390 41 81 00 08 */ bgt lbl_80274738
+/* 80274734 00270394 38 A0 00 01 */ li r5, 1
+lbl_80274738:
+/* 80274738 00270398 2C 05 00 00 */ cmpwi r5, 0
+/* 8027473C 0027039C 41 82 00 E0 */ beq lbl_8027481C
+/* 80274740 002703A0 7F 63 DB 78 */ mr r3, r27
+/* 80274744 002703A4 38 A6 00 07 */ addi r5, r6, 7
+/* 80274748 002703A8 54 A5 E8 FE */ srwi r5, r5, 3
+/* 8027474C 002703AC 7C A9 03 A6 */ mtctr r5
+/* 80274750 002703B0 2C 06 00 00 */ cmpwi r6, 0
+/* 80274754 002703B4 40 81 00 C8 */ ble lbl_8027481C
+lbl_80274758:
+/* 80274758 002703B8 88 C3 00 00 */ lbz r6, 0(r3)
+/* 8027475C 002703BC 20 A4 00 03 */ subfic r5, r4, 3
+/* 80274760 002703C0 54 A5 18 38 */ slwi r5, r5, 3
+/* 80274764 002703C4 7C C5 28 30 */ slw r5, r6, r5
+/* 80274768 002703C8 7C 00 2B 78 */ or r0, r0, r5
+/* 8027476C 002703CC 88 C3 00 01 */ lbz r6, 1(r3)
+/* 80274770 002703D0 38 A4 00 01 */ addi r5, r4, 1
+/* 80274774 002703D4 20 A5 00 03 */ subfic r5, r5, 3
+/* 80274778 002703D8 54 A5 18 38 */ slwi r5, r5, 3
+/* 8027477C 002703DC 7C C5 28 30 */ slw r5, r6, r5
+/* 80274780 002703E0 7C 00 2B 78 */ or r0, r0, r5
+/* 80274784 002703E4 88 C3 00 02 */ lbz r6, 2(r3)
+/* 80274788 002703E8 38 A4 00 02 */ addi r5, r4, 2
+/* 8027478C 002703EC 20 A5 00 03 */ subfic r5, r5, 3
+/* 80274790 002703F0 54 A5 18 38 */ slwi r5, r5, 3
+/* 80274794 002703F4 7C C5 28 30 */ slw r5, r6, r5
+/* 80274798 002703F8 7C 00 2B 78 */ or r0, r0, r5
+/* 8027479C 002703FC 88 C3 00 03 */ lbz r6, 3(r3)
+/* 802747A0 00270400 7C A4 00 D0 */ neg r5, r4
+/* 802747A4 00270404 54 A5 18 38 */ slwi r5, r5, 3
+/* 802747A8 00270408 7C C5 28 30 */ slw r5, r6, r5
+/* 802747AC 0027040C 7C 00 2B 78 */ or r0, r0, r5
+/* 802747B0 00270410 88 C3 00 04 */ lbz r6, 4(r3)
+/* 802747B4 00270414 38 A4 00 04 */ addi r5, r4, 4
+/* 802747B8 00270418 20 A5 00 03 */ subfic r5, r5, 3
+/* 802747BC 0027041C 54 A5 18 38 */ slwi r5, r5, 3
+/* 802747C0 00270420 7C C5 28 30 */ slw r5, r6, r5
+/* 802747C4 00270424 7C 00 2B 78 */ or r0, r0, r5
+/* 802747C8 00270428 88 C3 00 05 */ lbz r6, 5(r3)
+/* 802747CC 0027042C 38 A4 00 05 */ addi r5, r4, 5
+/* 802747D0 00270430 20 A5 00 03 */ subfic r5, r5, 3
+/* 802747D4 00270434 54 A5 18 38 */ slwi r5, r5, 3
+/* 802747D8 00270438 7C C5 28 30 */ slw r5, r6, r5
+/* 802747DC 0027043C 7C 00 2B 78 */ or r0, r0, r5
+/* 802747E0 00270440 88 C3 00 06 */ lbz r6, 6(r3)
+/* 802747E4 00270444 38 A4 00 06 */ addi r5, r4, 6
+/* 802747E8 00270448 20 A5 00 03 */ subfic r5, r5, 3
+/* 802747EC 0027044C 54 A5 18 38 */ slwi r5, r5, 3
+/* 802747F0 00270450 7C C5 28 30 */ slw r5, r6, r5
+/* 802747F4 00270454 7C 00 2B 78 */ or r0, r0, r5
+/* 802747F8 00270458 88 C3 00 07 */ lbz r6, 7(r3)
+/* 802747FC 0027045C 38 A4 00 07 */ addi r5, r4, 7
+/* 80274800 00270460 20 A5 00 03 */ subfic r5, r5, 3
+/* 80274804 00270464 54 A5 18 38 */ slwi r5, r5, 3
+/* 80274808 00270468 7C C5 28 30 */ slw r5, r6, r5
+/* 8027480C 0027046C 7C 00 2B 78 */ or r0, r0, r5
+/* 80274810 00270470 38 63 00 08 */ addi r3, r3, 8
+/* 80274814 00270474 38 84 00 08 */ addi r4, r4, 8
+/* 80274818 00270478 42 00 FF 40 */ bdnz lbl_80274758
+lbl_8027481C:
+/* 8027481C 0027047C 7C DB 22 14 */ add r6, r27, r4
+/* 80274820 00270480 7C 64 E0 50 */ subf r3, r4, r28
+/* 80274824 00270484 7C 69 03 A6 */ mtctr r3
+/* 80274828 00270488 7C 04 E0 00 */ cmpw r4, r28
+/* 8027482C 0027048C 40 80 00 24 */ bge lbl_80274850
+lbl_80274830:
+/* 80274830 00270490 88 A6 00 00 */ lbz r5, 0(r6)
+/* 80274834 00270494 20 64 00 03 */ subfic r3, r4, 3
+/* 80274838 00270498 54 63 18 38 */ slwi r3, r3, 3
+/* 8027483C 0027049C 7C A3 18 30 */ slw r3, r5, r3
+/* 80274840 002704A0 7C 00 1B 78 */ or r0, r0, r3
+/* 80274844 002704A4 38 C6 00 01 */ addi r6, r6, 1
+/* 80274848 002704A8 38 84 00 01 */ addi r4, r4, 1
+/* 8027484C 002704AC 42 00 FF E4 */ bdnz lbl_80274830
+lbl_80274850:
+/* 80274850 002704B0 3C 80 CD 00 */ lis r4, 0xcd00
+/* 80274854 002704B4 1C 7A 00 14 */ mulli r3, r26, 0x14
+/* 80274858 002704B8 7C 64 1A 14 */ add r3, r4, r3
+/* 8027485C 002704BC 90 03 68 10 */ stw r0, 0x6810(r3)
+lbl_80274860:
+/* 80274860 002704C0 93 7F 00 14 */ stw r27, 0x14(r31)
+/* 80274864 002704C4 38 7D FF FF */ addi r3, r29, -1
+/* 80274868 002704C8 20 1D 00 01 */ subfic r0, r29, 1
+/* 8027486C 002704CC 7C 60 03 78 */ or r0, r3, r0
+/* 80274870 002704D0 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 80274874 002704D4 7F 80 00 38 */ and r0, r28, r0
+/* 80274878 002704D8 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8027487C 002704DC 57 A0 10 3A */ slwi r0, r29, 2
+/* 80274880 002704E0 60 03 00 01 */ ori r3, r0, 1
+/* 80274884 002704E4 38 1C FF FF */ addi r0, r28, -1
+/* 80274888 002704E8 54 00 20 36 */ slwi r0, r0, 4
+/* 8027488C 002704EC 7C 64 03 78 */ or r4, r3, r0
+/* 80274890 002704F0 3C 60 CD 00 */ lis r3, 0xcd00
+/* 80274894 002704F4 1C 1A 00 14 */ mulli r0, r26, 0x14
+/* 80274898 002704F8 7C 63 02 14 */ add r3, r3, r0
+/* 8027489C 002704FC 90 83 68 0C */ stw r4, 0x680c(r3)
+/* 802748A0 00270500 7F C3 F3 78 */ mr r3, r30
+/* 802748A4 00270504 4B FF 9E E1 */ bl OSRestoreInterrupts
+/* 802748A8 00270508 38 60 00 01 */ li r3, 1
+lbl_802748AC:
+/* 802748AC 0027050C 39 61 00 30 */ addi r11, r1, 0x30
+/* 802748B0 00270510 4B F5 28 BD */ bl _restgpr_25
+/* 802748B4 00270514 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802748B8 00270518 7C 08 03 A6 */ mtlr r0
+/* 802748BC 0027051C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802748C0 00270520 4E 80 00 20 */ blr
+
+.global EXIImmEx
+EXIImmEx:
+/* 802748C4 00270524 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802748C8 00270528 7C 08 02 A6 */ mflr r0
+/* 802748CC 0027052C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802748D0 00270530 39 61 00 20 */ addi r11, r1, 0x20
+/* 802748D4 00270534 4B F5 28 55 */ bl _savegpr_27
+/* 802748D8 00270538 7C 7B 1B 78 */ mr r27, r3
+/* 802748DC 0027053C 7C 9C 23 78 */ mr r28, r4
+/* 802748E0 00270540 7C BD 2B 78 */ mr r29, r5
+/* 802748E4 00270544 7C DE 33 78 */ mr r30, r6
+/* 802748E8 00270548 48 00 00 5C */ b lbl_80274944
+lbl_802748EC:
+/* 802748EC 0027054C 2C 1D 00 04 */ cmpwi r29, 4
+/* 802748F0 00270550 3B E0 00 04 */ li r31, 4
+/* 802748F4 00270554 40 80 00 08 */ bge lbl_802748FC
+/* 802748F8 00270558 7F BF EB 78 */ mr r31, r29
+lbl_802748FC:
+/* 802748FC 0027055C 7F 63 DB 78 */ mr r3, r27
+/* 80274900 00270560 7F 84 E3 78 */ mr r4, r28
+/* 80274904 00270564 7F E5 FB 78 */ mr r5, r31
+/* 80274908 00270568 7F C6 F3 78 */ mr r6, r30
+/* 8027490C 0027056C 38 E0 00 00 */ li r7, 0
+/* 80274910 00270570 4B FF FD 39 */ bl EXIImm
+/* 80274914 00270574 2C 03 00 00 */ cmpwi r3, 0
+/* 80274918 00270578 40 82 00 0C */ bne lbl_80274924
+/* 8027491C 0027057C 38 60 00 00 */ li r3, 0
+/* 80274920 00270580 48 00 00 30 */ b lbl_80274950
+lbl_80274924:
+/* 80274924 00270584 7F 63 DB 78 */ mr r3, r27
+/* 80274928 00270588 48 00 01 39 */ bl EXISync
+/* 8027492C 0027058C 2C 03 00 00 */ cmpwi r3, 0
+/* 80274930 00270590 40 82 00 0C */ bne lbl_8027493C
+/* 80274934 00270594 38 60 00 00 */ li r3, 0
+/* 80274938 00270598 48 00 00 18 */ b lbl_80274950
+lbl_8027493C:
+/* 8027493C 0027059C 7F 9C FA 14 */ add r28, r28, r31
+/* 80274940 002705A0 7F BF E8 50 */ subf r29, r31, r29
+lbl_80274944:
+/* 80274944 002705A4 2C 1D 00 00 */ cmpwi r29, 0
+/* 80274948 002705A8 40 82 FF A4 */ bne lbl_802748EC
+/* 8027494C 002705AC 38 60 00 01 */ li r3, 1
+lbl_80274950:
+/* 80274950 002705B0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80274954 002705B4 4B F5 28 21 */ bl _restgpr_27
+/* 80274958 002705B8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027495C 002705BC 7C 08 03 A6 */ mtlr r0
+/* 80274960 002705C0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80274964 002705C4 4E 80 00 20 */ blr
+
+.global EXIDma
+EXIDma:
+/* 80274968 002705C8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8027496C 002705CC 7C 08 02 A6 */ mflr r0
+/* 80274970 002705D0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80274974 002705D4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80274978 002705D8 4B F5 27 A9 */ bl _savegpr_25
+/* 8027497C 002705DC 7C 7A 1B 78 */ mr r26, r3
+/* 80274980 002705E0 7C 9B 23 78 */ mr r27, r4
+/* 80274984 002705E4 7C BC 2B 78 */ mr r28, r5
+/* 80274988 002705E8 7C DD 33 78 */ mr r29, r6
+/* 8027498C 002705EC 7C F9 3B 78 */ mr r25, r7
+/* 80274990 002705F0 54 60 30 32 */ slwi r0, r3, 6
+/* 80274994 002705F4 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80274998 002705F8 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 8027499C 002705FC 7F E3 02 14 */ add r31, r3, r0
+/* 802749A0 00270600 4B FF 9D BD */ bl OSDisableInterrupts
+/* 802749A4 00270604 7C 7E 1B 78 */ mr r30, r3
+/* 802749A8 00270608 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 802749AC 0027060C 54 00 07 BF */ clrlwi. r0, r0, 0x1e
+/* 802749B0 00270610 40 82 00 10 */ bne lbl_802749C0
+/* 802749B4 00270614 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 802749B8 00270618 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 802749BC 0027061C 40 82 00 14 */ bne lbl_802749D0
+lbl_802749C0:
+/* 802749C0 00270620 7F C3 F3 78 */ mr r3, r30
+/* 802749C4 00270624 4B FF 9D C1 */ bl OSRestoreInterrupts
+/* 802749C8 00270628 38 60 00 00 */ li r3, 0
+/* 802749CC 0027062C 48 00 00 7C */ b lbl_80274A48
+lbl_802749D0:
+/* 802749D0 00270630 93 3F 00 04 */ stw r25, 4(r31)
+/* 802749D4 00270634 2C 19 00 00 */ cmpwi r25, 0
+/* 802749D8 00270638 41 82 00 34 */ beq lbl_80274A0C
+/* 802749DC 0027063C 1C 7A 00 14 */ mulli r3, r26, 0x14
+/* 802749E0 00270640 3C 00 CD 00 */ lis r0, 0xcd00
+/* 802749E4 00270644 7C 60 1A 14 */ add r3, r0, r3
+/* 802749E8 00270648 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 802749EC 0027064C 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 802749F0 00270650 60 00 00 08 */ ori r0, r0, 8
+/* 802749F4 00270654 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 802749F8 00270658 3C 60 00 20 */ lis r3, 0x20
+/* 802749FC 0027065C 57 40 10 3A */ slwi r0, r26, 2
+/* 80274A00 00270660 7C 1A 00 50 */ subf r0, r26, r0
+/* 80274A04 00270664 7C 63 04 30 */ srw r3, r3, r0
+/* 80274A08 00270668 4B FF A1 65 */ bl __OSUnmaskInterrupts
+lbl_80274A0C:
+/* 80274A0C 0027066C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274A10 00270670 60 00 00 01 */ ori r0, r0, 1
+/* 80274A14 00270674 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80274A18 00270678 1C 7A 00 14 */ mulli r3, r26, 0x14
+/* 80274A1C 0027067C 57 64 00 34 */ rlwinm r4, r27, 0, 0, 0x1a
+/* 80274A20 00270680 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274A24 00270684 7C 60 1A 14 */ add r3, r0, r3
+/* 80274A28 00270688 90 83 68 04 */ stw r4, 0x6804(r3)
+/* 80274A2C 0027068C 93 83 68 08 */ stw r28, 0x6808(r3)
+/* 80274A30 00270690 57 A0 10 3A */ slwi r0, r29, 2
+/* 80274A34 00270694 60 00 00 03 */ ori r0, r0, 3
+/* 80274A38 00270698 90 03 68 0C */ stw r0, 0x680c(r3)
+/* 80274A3C 0027069C 7F C3 F3 78 */ mr r3, r30
+/* 80274A40 002706A0 4B FF 9D 45 */ bl OSRestoreInterrupts
+/* 80274A44 002706A4 38 60 00 01 */ li r3, 1
+lbl_80274A48:
+/* 80274A48 002706A8 39 61 00 30 */ addi r11, r1, 0x30
+/* 80274A4C 002706AC 4B F5 27 21 */ bl _restgpr_25
+/* 80274A50 002706B0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80274A54 002706B4 7C 08 03 A6 */ mtlr r0
+/* 80274A58 002706B8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80274A5C 002706BC 4E 80 00 20 */ blr
+
+.global EXISync
+EXISync:
+/* 80274A60 002706C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274A64 002706C4 7C 08 02 A6 */ mflr r0
+/* 80274A68 002706C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80274A6C 002706CC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80274A70 002706D0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80274A74 002706D4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80274A78 002706D8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80274A7C 002706DC 54 60 30 32 */ slwi r0, r3, 6
+/* 80274A80 002706E0 3C 80 80 51 */ lis r4, lbl_805154C0@ha
+/* 80274A84 002706E4 38 84 54 C0 */ addi r4, r4, lbl_805154C0@l
+/* 80274A88 002706E8 7F E4 02 14 */ add r31, r4, r0
+/* 80274A8C 002706EC 3B A0 00 00 */ li r29, 0
+/* 80274A90 002706F0 1F C3 00 14 */ mulli r30, r3, 0x14
+/* 80274A94 002706F4 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274A98 002706F8 7C 60 F2 14 */ add r3, r0, r30
+/* 80274A9C 002706FC 48 00 02 10 */ b lbl_80274CAC
+lbl_80274AA0:
+/* 80274AA0 00270700 80 03 68 0C */ lwz r0, 0x680c(r3)
+/* 80274AA4 00270704 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80274AA8 00270708 40 82 02 04 */ bne lbl_80274CAC
+/* 80274AAC 0027070C 4B FF 9C B1 */ bl OSDisableInterrupts
+/* 80274AB0 00270710 7C 7C 1B 78 */ mr r28, r3
+/* 80274AB4 00270714 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274AB8 00270718 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 80274ABC 0027071C 41 82 01 E4 */ beq lbl_80274CA0
+/* 80274AC0 00270720 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274AC4 00270724 54 00 07 BF */ clrlwi. r0, r0, 0x1e
+/* 80274AC8 00270728 41 82 01 54 */ beq lbl_80274C1C
+/* 80274ACC 0027072C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274AD0 00270730 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80274AD4 00270734 41 82 01 3C */ beq lbl_80274C10
+/* 80274AD8 00270738 80 BF 00 10 */ lwz r5, 0x10(r31)
+/* 80274ADC 0027073C 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 80274AE0 00270740 41 86 01 30 */ beq cr1, lbl_80274C10
+/* 80274AE4 00270744 80 9F 00 14 */ lwz r4, 0x14(r31)
+/* 80274AE8 00270748 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274AEC 0027074C 7C 60 F2 14 */ add r3, r0, r30
+/* 80274AF0 00270750 80 03 68 10 */ lwz r0, 0x6810(r3)
+/* 80274AF4 00270754 38 60 00 00 */ li r3, 0
+/* 80274AF8 00270758 40 85 01 18 */ ble cr1, lbl_80274C10
+/* 80274AFC 0027075C 38 E5 FF F8 */ addi r7, r5, -8
+/* 80274B00 00270760 2C 05 00 08 */ cmpwi r5, 8
+/* 80274B04 00270764 40 81 00 E0 */ ble lbl_80274BE4
+/* 80274B08 00270768 39 00 00 00 */ li r8, 0
+/* 80274B0C 0027076C 41 84 00 18 */ blt cr1, lbl_80274B24
+/* 80274B10 00270770 3C C0 80 00 */ lis r6, 0x7FFFFFFE@ha
+/* 80274B14 00270774 38 C6 FF FE */ addi r6, r6, 0x7FFFFFFE@l
+/* 80274B18 00270778 7C 05 30 00 */ cmpw r5, r6
+/* 80274B1C 0027077C 41 81 00 08 */ bgt lbl_80274B24
+/* 80274B20 00270780 39 00 00 01 */ li r8, 1
+lbl_80274B24:
+/* 80274B24 00270784 2C 08 00 00 */ cmpwi r8, 0
+/* 80274B28 00270788 41 82 00 BC */ beq lbl_80274BE4
+/* 80274B2C 0027078C 38 C7 00 07 */ addi r6, r7, 7
+/* 80274B30 00270790 54 C6 E8 FE */ srwi r6, r6, 3
+/* 80274B34 00270794 7C C9 03 A6 */ mtctr r6
+/* 80274B38 00270798 2C 07 00 00 */ cmpwi r7, 0
+/* 80274B3C 0027079C 40 81 00 A8 */ ble lbl_80274BE4
+lbl_80274B40:
+/* 80274B40 002707A0 20 C3 00 03 */ subfic r6, r3, 3
+/* 80274B44 002707A4 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274B48 002707A8 7C 06 34 30 */ srw r6, r0, r6
+/* 80274B4C 002707AC 98 C4 00 00 */ stb r6, 0(r4)
+/* 80274B50 002707B0 38 C3 00 01 */ addi r6, r3, 1
+/* 80274B54 002707B4 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274B58 002707B8 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274B5C 002707BC 7C 06 34 30 */ srw r6, r0, r6
+/* 80274B60 002707C0 98 C4 00 01 */ stb r6, 1(r4)
+/* 80274B64 002707C4 38 C3 00 02 */ addi r6, r3, 2
+/* 80274B68 002707C8 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274B6C 002707CC 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274B70 002707D0 7C 06 34 30 */ srw r6, r0, r6
+/* 80274B74 002707D4 98 C4 00 02 */ stb r6, 2(r4)
+/* 80274B78 002707D8 7C C3 00 D0 */ neg r6, r3
+/* 80274B7C 002707DC 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274B80 002707E0 7C 06 34 30 */ srw r6, r0, r6
+/* 80274B84 002707E4 98 C4 00 03 */ stb r6, 3(r4)
+/* 80274B88 002707E8 38 C3 00 04 */ addi r6, r3, 4
+/* 80274B8C 002707EC 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274B90 002707F0 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274B94 002707F4 7C 06 34 30 */ srw r6, r0, r6
+/* 80274B98 002707F8 98 C4 00 04 */ stb r6, 4(r4)
+/* 80274B9C 002707FC 38 C3 00 05 */ addi r6, r3, 5
+/* 80274BA0 00270800 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274BA4 00270804 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274BA8 00270808 7C 06 34 30 */ srw r6, r0, r6
+/* 80274BAC 0027080C 98 C4 00 05 */ stb r6, 5(r4)
+/* 80274BB0 00270810 38 C3 00 06 */ addi r6, r3, 6
+/* 80274BB4 00270814 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274BB8 00270818 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274BBC 0027081C 7C 06 34 30 */ srw r6, r0, r6
+/* 80274BC0 00270820 98 C4 00 06 */ stb r6, 6(r4)
+/* 80274BC4 00270824 38 C3 00 07 */ addi r6, r3, 7
+/* 80274BC8 00270828 20 C6 00 03 */ subfic r6, r6, 3
+/* 80274BCC 0027082C 54 C6 18 38 */ slwi r6, r6, 3
+/* 80274BD0 00270830 7C 06 34 30 */ srw r6, r0, r6
+/* 80274BD4 00270834 98 C4 00 07 */ stb r6, 7(r4)
+/* 80274BD8 00270838 38 84 00 08 */ addi r4, r4, 8
+/* 80274BDC 0027083C 38 63 00 08 */ addi r3, r3, 8
+/* 80274BE0 00270840 42 00 FF 60 */ bdnz lbl_80274B40
+lbl_80274BE4:
+/* 80274BE4 00270844 7C C3 28 50 */ subf r6, r3, r5
+/* 80274BE8 00270848 7C C9 03 A6 */ mtctr r6
+/* 80274BEC 0027084C 7C 03 28 00 */ cmpw r3, r5
+/* 80274BF0 00270850 40 80 00 20 */ bge lbl_80274C10
+lbl_80274BF4:
+/* 80274BF4 00270854 20 A3 00 03 */ subfic r5, r3, 3
+/* 80274BF8 00270858 54 A5 18 38 */ slwi r5, r5, 3
+/* 80274BFC 0027085C 7C 05 2C 30 */ srw r5, r0, r5
+/* 80274C00 00270860 98 A4 00 00 */ stb r5, 0(r4)
+/* 80274C04 00270864 38 84 00 01 */ addi r4, r4, 1
+/* 80274C08 00270868 38 63 00 01 */ addi r3, r3, 1
+/* 80274C0C 0027086C 42 00 FF E8 */ bdnz lbl_80274BF4
+lbl_80274C10:
+/* 80274C10 00270870 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274C14 00270874 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
+/* 80274C18 00270878 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_80274C1C:
+/* 80274C1C 0027087C 4B FF 4A 25 */ bl __OSGetDIConfig
+/* 80274C20 00270880 28 03 00 FF */ cmplwi r3, 0xff
+/* 80274C24 00270884 40 82 00 78 */ bne lbl_80274C9C
+/* 80274C28 00270888 4B FF 39 05 */ bl OSGetConsoleType
+/* 80274C2C 0027088C 54 63 00 06 */ rlwinm r3, r3, 0, 0, 3
+/* 80274C30 00270890 3C 03 E0 00 */ addis r0, r3, 0xe000
+/* 80274C34 00270894 28 00 00 00 */ cmplwi r0, 0
+/* 80274C38 00270898 41 82 00 64 */ beq lbl_80274C9C
+/* 80274C3C 0027089C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80274C40 002708A0 2C 00 00 04 */ cmpwi r0, 4
+/* 80274C44 002708A4 40 82 00 58 */ bne lbl_80274C9C
+/* 80274C48 002708A8 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274C4C 002708AC 7C 80 F2 14 */ add r4, r0, r30
+/* 80274C50 002708B0 80 04 68 00 */ lwz r0, 0x6800(r4)
+/* 80274C54 002708B4 54 00 06 77 */ rlwinm. r0, r0, 0, 0x19, 0x1b
+/* 80274C58 002708B8 40 82 00 44 */ bne lbl_80274C9C
+/* 80274C5C 002708BC 80 64 68 10 */ lwz r3, 0x6810(r4)
+/* 80274C60 002708C0 3C 03 FE FF */ addis r0, r3, 0xfeff
+/* 80274C64 002708C4 28 00 00 00 */ cmplwi r0, 0
+/* 80274C68 002708C8 41 82 00 24 */ beq lbl_80274C8C
+/* 80274C6C 002708CC 80 64 68 10 */ lwz r3, 0x6810(r4)
+/* 80274C70 002708D0 3C 03 FA F9 */ addis r0, r3, 0xfaf9
+/* 80274C74 002708D4 28 00 00 00 */ cmplwi r0, 0
+/* 80274C78 002708D8 41 82 00 14 */ beq lbl_80274C8C
+/* 80274C7C 002708DC 80 64 68 10 */ lwz r3, 0x6810(r4)
+/* 80274C80 002708E0 3C 03 FB DE */ addis r0, r3, 0xfbde
+/* 80274C84 002708E4 28 00 00 01 */ cmplwi r0, 1
+/* 80274C88 002708E8 40 82 00 14 */ bne lbl_80274C9C
+lbl_80274C8C:
+/* 80274C8C 002708EC 3C 60 80 00 */ lis r3, 0x800030E6@ha
+/* 80274C90 002708F0 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3)
+/* 80274C94 002708F4 28 00 82 00 */ cmplwi r0, 0x8200
+/* 80274C98 002708F8 40 82 00 08 */ bne lbl_80274CA0
+lbl_80274C9C:
+/* 80274C9C 002708FC 3B A0 00 01 */ li r29, 1
+lbl_80274CA0:
+/* 80274CA0 00270900 7F 83 E3 78 */ mr r3, r28
+/* 80274CA4 00270904 4B FF 9A E1 */ bl OSRestoreInterrupts
+/* 80274CA8 00270908 48 00 00 10 */ b lbl_80274CB8
+lbl_80274CAC:
+/* 80274CAC 0027090C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274CB0 00270910 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 80274CB4 00270914 40 82 FD EC */ bne lbl_80274AA0
+lbl_80274CB8:
+/* 80274CB8 00270918 7F A3 EB 78 */ mr r3, r29
+/* 80274CBC 0027091C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80274CC0 00270920 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80274CC4 00270924 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80274CC8 00270928 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80274CCC 0027092C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80274CD0 00270930 7C 08 03 A6 */ mtlr r0
+/* 80274CD4 00270934 38 21 00 20 */ addi r1, r1, 0x20
+/* 80274CD8 00270938 4E 80 00 20 */ blr
+
+.global EXISetExiCallback
+EXISetExiCallback:
+/* 80274CDC 0027093C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274CE0 00270940 7C 08 02 A6 */ mflr r0
+/* 80274CE4 00270944 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80274CE8 00270948 39 61 00 20 */ addi r11, r1, 0x20
+/* 80274CEC 0027094C 4B F5 24 39 */ bl _savegpr_26
+/* 80274CF0 00270950 7C 7A 1B 78 */ mr r26, r3
+/* 80274CF4 00270954 7C 9B 23 78 */ mr r27, r4
+/* 80274CF8 00270958 54 60 30 32 */ slwi r0, r3, 6
+/* 80274CFC 0027095C 3F E0 80 51 */ lis r31, lbl_805154C0@ha
+/* 80274D00 00270960 3B FF 54 C0 */ addi r31, r31, lbl_805154C0@l
+/* 80274D04 00270964 7F DF 02 14 */ add r30, r31, r0
+/* 80274D08 00270968 4B FF 9A 55 */ bl OSDisableInterrupts
+/* 80274D0C 0027096C 7C 7C 1B 78 */ mr r28, r3
+/* 80274D10 00270970 83 BE 00 00 */ lwz r29, 0(r30)
+/* 80274D14 00270974 93 7E 00 00 */ stw r27, 0(r30)
+/* 80274D18 00270978 2C 1A 00 02 */ cmpwi r26, 2
+/* 80274D1C 0027097C 41 82 00 14 */ beq lbl_80274D30
+/* 80274D20 00270980 7F 43 D3 78 */ mr r3, r26
+/* 80274D24 00270984 7F C4 F3 78 */ mr r4, r30
+/* 80274D28 00270988 4B FF F8 31 */ bl SetExiInterruptMask
+/* 80274D2C 0027098C 48 00 00 10 */ b lbl_80274D3C
+lbl_80274D30:
+/* 80274D30 00270990 38 60 00 00 */ li r3, 0
+/* 80274D34 00270994 7F E4 FB 78 */ mr r4, r31
+/* 80274D38 00270998 4B FF F8 21 */ bl SetExiInterruptMask
+lbl_80274D3C:
+/* 80274D3C 0027099C 7F 83 E3 78 */ mr r3, r28
+/* 80274D40 002709A0 4B FF 9A 45 */ bl OSRestoreInterrupts
+/* 80274D44 002709A4 7F A3 EB 78 */ mr r3, r29
+/* 80274D48 002709A8 39 61 00 20 */ addi r11, r1, 0x20
+/* 80274D4C 002709AC 4B F5 24 25 */ bl _restgpr_26
+/* 80274D50 002709B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80274D54 002709B4 7C 08 03 A6 */ mtlr r0
+/* 80274D58 002709B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 80274D5C 002709BC 4E 80 00 20 */ blr
+
+.global __EXIProbe
+__EXIProbe:
+/* 80274D60 002709C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274D64 002709C4 7C 08 02 A6 */ mflr r0
+/* 80274D68 002709C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80274D6C 002709CC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80274D70 002709D0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80274D74 002709D4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80274D78 002709D8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80274D7C 002709DC 7C 7C 1B 78 */ mr r28, r3
+/* 80274D80 002709E0 54 60 30 32 */ slwi r0, r3, 6
+/* 80274D84 002709E4 3C 80 80 51 */ lis r4, lbl_805154C0@ha
+/* 80274D88 002709E8 38 84 54 C0 */ addi r4, r4, lbl_805154C0@l
+/* 80274D8C 002709EC 7F E4 02 14 */ add r31, r4, r0
+/* 80274D90 002709F0 2C 03 00 02 */ cmpwi r3, 2
+/* 80274D94 002709F4 40 82 00 0C */ bne lbl_80274DA0
+/* 80274D98 002709F8 38 60 00 01 */ li r3, 1
+/* 80274D9C 002709FC 48 00 01 24 */ b lbl_80274EC0
+lbl_80274DA0:
+/* 80274DA0 00270A00 3B A0 00 01 */ li r29, 1
+/* 80274DA4 00270A04 4B FF 99 B9 */ bl OSDisableInterrupts
+/* 80274DA8 00270A08 7C 7E 1B 78 */ mr r30, r3
+/* 80274DAC 00270A0C 1C 7C 00 14 */ mulli r3, r28, 0x14
+/* 80274DB0 00270A10 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274DB4 00270A14 7C 60 1A 14 */ add r3, r0, r3
+/* 80274DB8 00270A18 80 A3 68 00 */ lwz r5, 0x6800(r3)
+/* 80274DBC 00270A1C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274DC0 00270A20 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80274DC4 00270A24 40 82 00 C4 */ bne lbl_80274E88
+/* 80274DC8 00270A28 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
+/* 80274DCC 00270A2C 41 82 00 2C */ beq lbl_80274DF8
+/* 80274DD0 00270A30 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 80274DD4 00270A34 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 80274DD8 00270A38 60 00 08 00 */ ori r0, r0, 0x800
+/* 80274DDC 00270A3C 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80274DE0 00270A40 38 80 00 00 */ li r4, 0
+/* 80274DE4 00270A44 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 80274DE8 00270A48 57 83 10 3A */ slwi r3, r28, 2
+/* 80274DEC 00270A4C 3C 00 80 00 */ lis r0, 0x8000
+/* 80274DF0 00270A50 7C 60 1A 14 */ add r3, r0, r3
+/* 80274DF4 00270A54 90 83 30 C0 */ stw r4, 0x30c0(r3)
+lbl_80274DF8:
+/* 80274DF8 00270A58 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
+/* 80274DFC 00270A5C 41 82 00 6C */ beq lbl_80274E68
+/* 80274E00 00270A60 4B FF D9 B9 */ bl OSGetTime
+/* 80274E04 00270A64 3F E0 80 00 */ lis r31, 0x800000F8@ha
+/* 80274E08 00270A68 80 1F 00 F8 */ lwz r0, 0x800000F8@l(r31)
+/* 80274E0C 00270A6C 54 00 F0 BE */ srwi r0, r0, 2
+/* 80274E10 00270A70 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 80274E14 00270A74 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l
+/* 80274E18 00270A78 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 80274E1C 00270A7C 54 06 D1 BE */ srwi r6, r0, 6
+/* 80274E20 00270A80 38 A0 00 00 */ li r5, 0
+/* 80274E24 00270A84 4B F5 24 55 */ bl __div2i
+/* 80274E28 00270A88 38 C0 00 64 */ li r6, 0x64
+/* 80274E2C 00270A8C 38 A0 00 00 */ li r5, 0
+/* 80274E30 00270A90 4B F5 24 49 */ bl __div2i
+/* 80274E34 00270A94 38 84 00 01 */ addi r4, r4, 1
+/* 80274E38 00270A98 57 80 10 3A */ slwi r0, r28, 2
+/* 80274E3C 00270A9C 7C 7F 02 14 */ add r3, r31, r0
+/* 80274E40 00270AA0 80 03 30 C0 */ lwz r0, 0x30c0(r3)
+/* 80274E44 00270AA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80274E48 00270AA8 40 82 00 08 */ bne lbl_80274E50
+/* 80274E4C 00270AAC 90 83 30 C0 */ stw r4, 0x30c0(r3)
+lbl_80274E50:
+/* 80274E50 00270AB0 80 03 30 C0 */ lwz r0, 0x30c0(r3)
+/* 80274E54 00270AB4 7C 00 20 50 */ subf r0, r0, r4
+/* 80274E58 00270AB8 2C 00 00 03 */ cmpwi r0, 3
+/* 80274E5C 00270ABC 40 80 00 58 */ bge lbl_80274EB4
+/* 80274E60 00270AC0 3B A0 00 00 */ li r29, 0
+/* 80274E64 00270AC4 48 00 00 50 */ b lbl_80274EB4
+lbl_80274E68:
+/* 80274E68 00270AC8 38 80 00 00 */ li r4, 0
+/* 80274E6C 00270ACC 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 80274E70 00270AD0 57 83 10 3A */ slwi r3, r28, 2
+/* 80274E74 00270AD4 3C 00 80 00 */ lis r0, 0x8000
+/* 80274E78 00270AD8 7C 60 1A 14 */ add r3, r0, r3
+/* 80274E7C 00270ADC 90 83 30 C0 */ stw r4, 0x30c0(r3)
+/* 80274E80 00270AE0 3B A0 00 00 */ li r29, 0
+/* 80274E84 00270AE4 48 00 00 30 */ b lbl_80274EB4
+lbl_80274E88:
+/* 80274E88 00270AE8 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13
+/* 80274E8C 00270AEC 41 82 00 0C */ beq lbl_80274E98
+/* 80274E90 00270AF0 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14
+/* 80274E94 00270AF4 41 82 00 20 */ beq lbl_80274EB4
+lbl_80274E98:
+/* 80274E98 00270AF8 38 80 00 00 */ li r4, 0
+/* 80274E9C 00270AFC 90 9F 00 20 */ stw r4, 0x20(r31)
+/* 80274EA0 00270B00 57 83 10 3A */ slwi r3, r28, 2
+/* 80274EA4 00270B04 3C 00 80 00 */ lis r0, 0x8000
+/* 80274EA8 00270B08 7C 60 1A 14 */ add r3, r0, r3
+/* 80274EAC 00270B0C 90 83 30 C0 */ stw r4, 0x30c0(r3)
+/* 80274EB0 00270B10 3B A0 00 00 */ li r29, 0
+lbl_80274EB4:
+/* 80274EB4 00270B14 7F C3 F3 78 */ mr r3, r30
+/* 80274EB8 00270B18 4B FF 98 CD */ bl OSRestoreInterrupts
+/* 80274EBC 00270B1C 7F A3 EB 78 */ mr r3, r29
+lbl_80274EC0:
+/* 80274EC0 00270B20 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80274EC4 00270B24 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80274EC8 00270B28 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80274ECC 00270B2C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80274ED0 00270B30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80274ED4 00270B34 7C 08 03 A6 */ mtlr r0
+/* 80274ED8 00270B38 38 21 00 20 */ addi r1, r1, 0x20
+/* 80274EDC 00270B3C 4E 80 00 20 */ blr
+
+.global EXIAttach
+EXIAttach:
+/* 80274EE0 00270B40 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80274EE4 00270B44 7C 08 02 A6 */ mflr r0
+/* 80274EE8 00270B48 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80274EEC 00270B4C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80274EF0 00270B50 4B F5 22 39 */ bl _savegpr_27
+/* 80274EF4 00270B54 7C 7D 1B 78 */ mr r29, r3
+/* 80274EF8 00270B58 7C 9B 23 78 */ mr r27, r4
+/* 80274EFC 00270B5C 54 60 30 32 */ slwi r0, r3, 6
+/* 80274F00 00270B60 3C 80 80 51 */ lis r4, lbl_805154C0@ha
+/* 80274F04 00270B64 38 84 54 C0 */ addi r4, r4, lbl_805154C0@l
+/* 80274F08 00270B68 7F E4 02 14 */ add r31, r4, r0
+/* 80274F0C 00270B6C 4B FF FE 55 */ bl __EXIProbe
+/* 80274F10 00270B70 2C 03 00 00 */ cmpwi r3, 0
+/* 80274F14 00270B74 41 82 00 20 */ beq lbl_80274F34
+/* 80274F18 00270B78 80 1F 00 20 */ lwz r0, 0x20(r31)
+/* 80274F1C 00270B7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80274F20 00270B80 40 82 00 14 */ bne lbl_80274F34
+/* 80274F24 00270B84 7F A3 EB 78 */ mr r3, r29
+/* 80274F28 00270B88 38 80 00 00 */ li r4, 0
+/* 80274F2C 00270B8C 38 A1 00 08 */ addi r5, r1, 8
+/* 80274F30 00270B90 48 00 0B 11 */ bl EXIGetID
+lbl_80274F34:
+/* 80274F34 00270B94 4B FF 98 29 */ bl OSDisableInterrupts
+/* 80274F38 00270B98 7C 7E 1B 78 */ mr r30, r3
+/* 80274F3C 00270B9C 80 1F 00 20 */ lwz r0, 0x20(r31)
+/* 80274F40 00270BA0 2C 00 00 00 */ cmpwi r0, 0
+/* 80274F44 00270BA4 40 82 00 10 */ bne lbl_80274F54
+/* 80274F48 00270BA8 4B FF 98 3D */ bl OSRestoreInterrupts
+/* 80274F4C 00270BAC 38 60 00 00 */ li r3, 0
+/* 80274F50 00270BB0 48 00 00 90 */ b lbl_80274FE0
+lbl_80274F54:
+/* 80274F54 00270BB4 4B FF 98 09 */ bl OSDisableInterrupts
+/* 80274F58 00270BB8 7C 7C 1B 78 */ mr r28, r3
+/* 80274F5C 00270BBC 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274F60 00270BC0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80274F64 00270BC4 40 82 00 14 */ bne lbl_80274F78
+/* 80274F68 00270BC8 7F A3 EB 78 */ mr r3, r29
+/* 80274F6C 00270BCC 4B FF FD F5 */ bl __EXIProbe
+/* 80274F70 00270BD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80274F74 00270BD4 40 82 00 14 */ bne lbl_80274F88
+lbl_80274F78:
+/* 80274F78 00270BD8 7F 83 E3 78 */ mr r3, r28
+/* 80274F7C 00270BDC 4B FF 98 09 */ bl OSRestoreInterrupts
+/* 80274F80 00270BE0 3B A0 00 00 */ li r29, 0
+/* 80274F84 00270BE4 48 00 00 50 */ b lbl_80274FD4
+lbl_80274F88:
+/* 80274F88 00270BE8 1C 7D 00 14 */ mulli r3, r29, 0x14
+/* 80274F8C 00270BEC 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80274F90 00270BF0 7C 60 1A 14 */ add r3, r0, r3
+/* 80274F94 00270BF4 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 80274F98 00270BF8 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 80274F9C 00270BFC 60 00 00 02 */ ori r0, r0, 2
+/* 80274FA0 00270C00 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80274FA4 00270C04 93 7F 00 08 */ stw r27, 8(r31)
+/* 80274FA8 00270C08 3C 60 00 10 */ lis r3, 0x10
+/* 80274FAC 00270C0C 57 A0 10 3A */ slwi r0, r29, 2
+/* 80274FB0 00270C10 7C 1D 00 50 */ subf r0, r29, r0
+/* 80274FB4 00270C14 7C 63 04 30 */ srw r3, r3, r0
+/* 80274FB8 00270C18 4B FF 9B B5 */ bl __OSUnmaskInterrupts
+/* 80274FBC 00270C1C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80274FC0 00270C20 60 00 00 08 */ ori r0, r0, 8
+/* 80274FC4 00270C24 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80274FC8 00270C28 7F 83 E3 78 */ mr r3, r28
+/* 80274FCC 00270C2C 4B FF 97 B9 */ bl OSRestoreInterrupts
+/* 80274FD0 00270C30 3B A0 00 01 */ li r29, 1
+lbl_80274FD4:
+/* 80274FD4 00270C34 7F C3 F3 78 */ mr r3, r30
+/* 80274FD8 00270C38 4B FF 97 AD */ bl OSRestoreInterrupts
+/* 80274FDC 00270C3C 7F A3 EB 78 */ mr r3, r29
+lbl_80274FE0:
+/* 80274FE0 00270C40 39 61 00 30 */ addi r11, r1, 0x30
+/* 80274FE4 00270C44 4B F5 21 91 */ bl _restgpr_27
+/* 80274FE8 00270C48 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80274FEC 00270C4C 7C 08 03 A6 */ mtlr r0
+/* 80274FF0 00270C50 38 21 00 30 */ addi r1, r1, 0x30
+/* 80274FF4 00270C54 4E 80 00 20 */ blr
+
+.global EXIDetach
+EXIDetach:
+/* 80274FF8 00270C58 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274FFC 00270C5C 7C 08 02 A6 */ mflr r0
+/* 80275000 00270C60 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80275004 00270C64 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80275008 00270C68 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027500C 00270C6C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80275010 00270C70 7C 7D 1B 78 */ mr r29, r3
+/* 80275014 00270C74 54 60 30 32 */ slwi r0, r3, 6
+/* 80275018 00270C78 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 8027501C 00270C7C 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 80275020 00270C80 7F E3 02 14 */ add r31, r3, r0
+/* 80275024 00270C84 4B FF 97 39 */ bl OSDisableInterrupts
+/* 80275028 00270C88 7C 7E 1B 78 */ mr r30, r3
+/* 8027502C 00270C8C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275030 00270C90 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80275034 00270C94 40 82 00 10 */ bne lbl_80275044
+/* 80275038 00270C98 4B FF 97 4D */ bl OSRestoreInterrupts
+/* 8027503C 00270C9C 38 60 00 01 */ li r3, 1
+/* 80275040 00270CA0 48 00 00 54 */ b lbl_80275094
+lbl_80275044:
+/* 80275044 00270CA4 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275048 00270CA8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 8027504C 00270CAC 41 82 00 1C */ beq lbl_80275068
+/* 80275050 00270CB0 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80275054 00270CB4 2C 00 00 00 */ cmpwi r0, 0
+/* 80275058 00270CB8 40 82 00 10 */ bne lbl_80275068
+/* 8027505C 00270CBC 4B FF 97 29 */ bl OSRestoreInterrupts
+/* 80275060 00270CC0 38 60 00 00 */ li r3, 0
+/* 80275064 00270CC4 48 00 00 30 */ b lbl_80275094
+lbl_80275068:
+/* 80275068 00270CC8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027506C 00270CCC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 80275070 00270CD0 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80275074 00270CD4 3C 60 00 50 */ lis r3, 0x50
+/* 80275078 00270CD8 57 A0 10 3A */ slwi r0, r29, 2
+/* 8027507C 00270CDC 7C 1D 00 50 */ subf r0, r29, r0
+/* 80275080 00270CE0 7C 63 04 30 */ srw r3, r3, r0
+/* 80275084 00270CE4 4B FF 9A 69 */ bl __OSMaskInterrupts
+/* 80275088 00270CE8 7F C3 F3 78 */ mr r3, r30
+/* 8027508C 00270CEC 4B FF 96 F9 */ bl OSRestoreInterrupts
+/* 80275090 00270CF0 38 60 00 01 */ li r3, 1
+lbl_80275094:
+/* 80275094 00270CF4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80275098 00270CF8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027509C 00270CFC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802750A0 00270D00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802750A4 00270D04 7C 08 03 A6 */ mtlr r0
+/* 802750A8 00270D08 38 21 00 20 */ addi r1, r1, 0x20
+/* 802750AC 00270D0C 4E 80 00 20 */ blr
+
+.global EXISelect
+EXISelect:
+/* 802750B0 00270D10 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802750B4 00270D14 7C 08 02 A6 */ mflr r0
+/* 802750B8 00270D18 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802750BC 00270D1C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802750C0 00270D20 4B F5 20 69 */ bl _savegpr_27
+/* 802750C4 00270D24 7C 7B 1B 78 */ mr r27, r3
+/* 802750C8 00270D28 7C 9C 23 78 */ mr r28, r4
+/* 802750CC 00270D2C 7C BD 2B 78 */ mr r29, r5
+/* 802750D0 00270D30 54 60 30 32 */ slwi r0, r3, 6
+/* 802750D4 00270D34 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 802750D8 00270D38 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 802750DC 00270D3C 7F E3 02 14 */ add r31, r3, r0
+/* 802750E0 00270D40 4B FF 96 7D */ bl OSDisableInterrupts
+/* 802750E4 00270D44 7C 7E 1B 78 */ mr r30, r3
+/* 802750E8 00270D48 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 802750EC 00270D4C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 802750F0 00270D50 40 82 00 48 */ bne lbl_80275138
+/* 802750F4 00270D54 2C 1B 00 02 */ cmpwi r27, 2
+/* 802750F8 00270D58 41 82 00 50 */ beq lbl_80275148
+/* 802750FC 00270D5C 2C 1C 00 00 */ cmpwi r28, 0
+/* 80275100 00270D60 40 82 00 20 */ bne lbl_80275120
+/* 80275104 00270D64 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275108 00270D68 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 8027510C 00270D6C 40 82 00 14 */ bne lbl_80275120
+/* 80275110 00270D70 7F 63 DB 78 */ mr r3, r27
+/* 80275114 00270D74 4B FF FC 4D */ bl __EXIProbe
+/* 80275118 00270D78 2C 03 00 00 */ cmpwi r3, 0
+/* 8027511C 00270D7C 41 82 00 1C */ beq lbl_80275138
+lbl_80275120:
+/* 80275120 00270D80 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275124 00270D84 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80275128 00270D88 41 82 00 10 */ beq lbl_80275138
+/* 8027512C 00270D8C 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80275130 00270D90 7C 00 E0 40 */ cmplw r0, r28
+/* 80275134 00270D94 41 82 00 14 */ beq lbl_80275148
+lbl_80275138:
+/* 80275138 00270D98 7F C3 F3 78 */ mr r3, r30
+/* 8027513C 00270D9C 4B FF 96 49 */ bl OSRestoreInterrupts
+/* 80275140 00270DA0 38 60 00 00 */ li r3, 0
+/* 80275144 00270DA4 48 00 00 84 */ b lbl_802751C8
+lbl_80275148:
+/* 80275148 00270DA8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027514C 00270DAC 60 00 00 04 */ ori r0, r0, 4
+/* 80275150 00270DB0 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80275154 00270DB4 1C 7B 00 14 */ mulli r3, r27, 0x14
+/* 80275158 00270DB8 3C 00 CD 00 */ lis r0, 0xcd00
+/* 8027515C 00270DBC 7C 80 1A 14 */ add r4, r0, r3
+/* 80275160 00270DC0 80 64 68 00 */ lwz r3, 0x6800(r4)
+/* 80275164 00270DC4 70 63 04 05 */ andi. r3, r3, 0x405
+/* 80275168 00270DC8 57 A0 20 36 */ slwi r0, r29, 4
+/* 8027516C 00270DCC 7C 63 03 78 */ or r3, r3, r0
+/* 80275170 00270DD0 38 00 00 01 */ li r0, 1
+/* 80275174 00270DD4 7C 00 E0 30 */ slw r0, r0, r28
+/* 80275178 00270DD8 54 00 38 30 */ slwi r0, r0, 7
+/* 8027517C 00270DDC 7C 63 03 78 */ or r3, r3, r0
+/* 80275180 00270DE0 90 64 68 00 */ stw r3, 0x6800(r4)
+/* 80275184 00270DE4 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275188 00270DE8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 8027518C 00270DEC 41 82 00 30 */ beq lbl_802751BC
+/* 80275190 00270DF0 2C 1B 00 01 */ cmpwi r27, 1
+/* 80275194 00270DF4 41 82 00 20 */ beq lbl_802751B4
+/* 80275198 00270DF8 40 80 00 24 */ bge lbl_802751BC
+/* 8027519C 00270DFC 2C 1B 00 00 */ cmpwi r27, 0
+/* 802751A0 00270E00 40 80 00 08 */ bge lbl_802751A8
+/* 802751A4 00270E04 48 00 00 18 */ b lbl_802751BC
+lbl_802751A8:
+/* 802751A8 00270E08 3C 60 00 10 */ lis r3, 0x10
+/* 802751AC 00270E0C 4B FF 99 41 */ bl __OSMaskInterrupts
+/* 802751B0 00270E10 48 00 00 0C */ b lbl_802751BC
+lbl_802751B4:
+/* 802751B4 00270E14 3C 60 00 02 */ lis r3, 2
+/* 802751B8 00270E18 4B FF 99 35 */ bl __OSMaskInterrupts
+lbl_802751BC:
+/* 802751BC 00270E1C 7F C3 F3 78 */ mr r3, r30
+/* 802751C0 00270E20 4B FF 95 C5 */ bl OSRestoreInterrupts
+/* 802751C4 00270E24 38 60 00 01 */ li r3, 1
+lbl_802751C8:
+/* 802751C8 00270E28 39 61 00 20 */ addi r11, r1, 0x20
+/* 802751CC 00270E2C 4B F5 1F A9 */ bl _restgpr_27
+/* 802751D0 00270E30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802751D4 00270E34 7C 08 03 A6 */ mtlr r0
+/* 802751D8 00270E38 38 21 00 20 */ addi r1, r1, 0x20
+/* 802751DC 00270E3C 4E 80 00 20 */ blr
+
+.global EXIDeselect
+EXIDeselect:
+/* 802751E0 00270E40 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802751E4 00270E44 7C 08 02 A6 */ mflr r0
+/* 802751E8 00270E48 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802751EC 00270E4C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802751F0 00270E50 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802751F4 00270E54 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802751F8 00270E58 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802751FC 00270E5C 7C 7C 1B 78 */ mr r28, r3
+/* 80275200 00270E60 54 60 30 32 */ slwi r0, r3, 6
+/* 80275204 00270E64 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80275208 00270E68 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 8027520C 00270E6C 7F E3 02 14 */ add r31, r3, r0
+/* 80275210 00270E70 4B FF 95 4D */ bl OSDisableInterrupts
+/* 80275214 00270E74 7C 7D 1B 78 */ mr r29, r3
+/* 80275218 00270E78 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027521C 00270E7C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 80275220 00270E80 40 82 00 10 */ bne lbl_80275230
+/* 80275224 00270E84 4B FF 95 61 */ bl OSRestoreInterrupts
+/* 80275228 00270E88 38 60 00 00 */ li r3, 0
+/* 8027522C 00270E8C 48 00 00 94 */ b lbl_802752C0
+lbl_80275230:
+/* 80275230 00270E90 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275234 00270E94 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c
+/* 80275238 00270E98 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8027523C 00270E9C 1C 7C 00 14 */ mulli r3, r28, 0x14
+/* 80275240 00270EA0 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80275244 00270EA4 7C 60 1A 14 */ add r3, r0, r3
+/* 80275248 00270EA8 83 C3 68 00 */ lwz r30, 0x6800(r3)
+/* 8027524C 00270EAC 73 C0 04 05 */ andi. r0, r30, 0x405
+/* 80275250 00270EB0 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80275254 00270EB4 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275258 00270EB8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 8027525C 00270EBC 41 82 00 30 */ beq lbl_8027528C
+/* 80275260 00270EC0 2C 1C 00 01 */ cmpwi r28, 1
+/* 80275264 00270EC4 41 82 00 20 */ beq lbl_80275284
+/* 80275268 00270EC8 40 80 00 24 */ bge lbl_8027528C
+/* 8027526C 00270ECC 2C 1C 00 00 */ cmpwi r28, 0
+/* 80275270 00270ED0 40 80 00 08 */ bge lbl_80275278
+/* 80275274 00270ED4 48 00 00 18 */ b lbl_8027528C
+lbl_80275278:
+/* 80275278 00270ED8 3C 60 00 10 */ lis r3, 0x10
+/* 8027527C 00270EDC 4B FF 98 F1 */ bl __OSUnmaskInterrupts
+/* 80275280 00270EE0 48 00 00 0C */ b lbl_8027528C
+lbl_80275284:
+/* 80275284 00270EE4 3C 60 00 02 */ lis r3, 2
+/* 80275288 00270EE8 4B FF 98 E5 */ bl __OSUnmaskInterrupts
+lbl_8027528C:
+/* 8027528C 00270EEC 7F A3 EB 78 */ mr r3, r29
+/* 80275290 00270EF0 4B FF 94 F5 */ bl OSRestoreInterrupts
+/* 80275294 00270EF4 2C 1C 00 02 */ cmpwi r28, 2
+/* 80275298 00270EF8 41 82 00 24 */ beq lbl_802752BC
+/* 8027529C 00270EFC 57 C0 06 31 */ rlwinm. r0, r30, 0, 0x18, 0x18
+/* 802752A0 00270F00 41 82 00 1C */ beq lbl_802752BC
+/* 802752A4 00270F04 7F 83 E3 78 */ mr r3, r28
+/* 802752A8 00270F08 4B FF FA B9 */ bl __EXIProbe
+/* 802752AC 00270F0C 7C 03 00 D0 */ neg r0, r3
+/* 802752B0 00270F10 7C 00 1B 78 */ or r0, r0, r3
+/* 802752B4 00270F14 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 802752B8 00270F18 48 00 00 08 */ b lbl_802752C0
+lbl_802752BC:
+/* 802752BC 00270F1C 38 60 00 01 */ li r3, 1
+lbl_802752C0:
+/* 802752C0 00270F20 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802752C4 00270F24 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802752C8 00270F28 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802752CC 00270F2C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 802752D0 00270F30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802752D4 00270F34 7C 08 03 A6 */ mtlr r0
+/* 802752D8 00270F38 38 21 00 20 */ addi r1, r1, 0x20
+/* 802752DC 00270F3C 4E 80 00 20 */ blr
+
+.global EXIIntrruptHandler
+EXIIntrruptHandler:
+/* 802752E0 00270F40 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 802752E4 00270F44 7C 08 02 A6 */ mflr r0
+/* 802752E8 00270F48 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 802752EC 00270F4C 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 802752F0 00270F50 93 C1 02 D8 */ stw r30, 0x2d8(r1)
+/* 802752F4 00270F54 93 A1 02 D4 */ stw r29, 0x2d4(r1)
+/* 802752F8 00270F58 7C 9D 23 78 */ mr r29, r4
+/* 802752FC 00270F5C 38 03 FF F7 */ addi r0, r3, -9
+/* 80275300 00270F60 3C 60 55 55 */ lis r3, 0x55555556@ha
+/* 80275304 00270F64 38 63 55 56 */ addi r3, r3, 0x55555556@l
+/* 80275308 00270F68 7C 63 00 96 */ mulhw r3, r3, r0
+/* 8027530C 00270F6C 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 80275310 00270F70 7F E3 02 14 */ add r31, r3, r0
+/* 80275314 00270F74 1C 7F 00 14 */ mulli r3, r31, 0x14
+/* 80275318 00270F78 3C 00 CD 00 */ lis r0, 0xcd00
+/* 8027531C 00270F7C 7C 60 1A 14 */ add r3, r0, r3
+/* 80275320 00270F80 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 80275324 00270F84 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 80275328 00270F88 60 00 00 02 */ ori r0, r0, 2
+/* 8027532C 00270F8C 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80275330 00270F90 57 E0 30 32 */ slwi r0, r31, 6
+/* 80275334 00270F94 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80275338 00270F98 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 8027533C 00270F9C 7F C3 00 2E */ lwzx r30, r3, r0
+/* 80275340 00270FA0 2C 1E 00 00 */ cmpwi r30, 0
+/* 80275344 00270FA4 41 82 00 38 */ beq lbl_8027537C
+/* 80275348 00270FA8 38 61 00 08 */ addi r3, r1, 8
+/* 8027534C 00270FAC 4B FF 5D 45 */ bl OSClearContext
+/* 80275350 00270FB0 38 61 00 08 */ addi r3, r1, 8
+/* 80275354 00270FB4 4B FF 5B 15 */ bl OSSetCurrentContext
+/* 80275358 00270FB8 7F E3 FB 78 */ mr r3, r31
+/* 8027535C 00270FBC 7F A4 EB 78 */ mr r4, r29
+/* 80275360 00270FC0 7F CC F3 78 */ mr r12, r30
+/* 80275364 00270FC4 7D 89 03 A6 */ mtctr r12
+/* 80275368 00270FC8 4E 80 04 21 */ bctrl
+/* 8027536C 00270FCC 38 61 00 08 */ addi r3, r1, 8
+/* 80275370 00270FD0 4B FF 5D 21 */ bl OSClearContext
+/* 80275374 00270FD4 7F A3 EB 78 */ mr r3, r29
+/* 80275378 00270FD8 4B FF 5A F1 */ bl OSSetCurrentContext
+lbl_8027537C:
+/* 8027537C 00270FDC 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 80275380 00270FE0 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
+/* 80275384 00270FE4 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
+/* 80275388 00270FE8 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 8027538C 00270FEC 7C 08 03 A6 */ mtlr r0
+/* 80275390 00270FF0 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 80275394 00270FF4 4E 80 00 20 */ blr
+
+.global TCIntrruptHandler
+TCIntrruptHandler:
+/* 80275398 00270FF8 94 21 FD 10 */ stwu r1, -0x2f0(r1)
+/* 8027539C 00270FFC 7C 08 02 A6 */ mflr r0
+/* 802753A0 00271000 90 01 02 F4 */ stw r0, 0x2f4(r1)
+/* 802753A4 00271004 39 61 02 F0 */ addi r11, r1, 0x2f0
+/* 802753A8 00271008 4B F5 1D 81 */ bl _savegpr_27
+/* 802753AC 0027100C 7C 9B 23 78 */ mr r27, r4
+/* 802753B0 00271010 38 03 FF F6 */ addi r0, r3, -10
+/* 802753B4 00271014 3C 80 55 55 */ lis r4, 0x55555556@ha
+/* 802753B8 00271018 38 84 55 56 */ addi r4, r4, 0x55555556@l
+/* 802753BC 0027101C 7C 84 00 96 */ mulhw r4, r4, r0
+/* 802753C0 00271020 54 80 0F FE */ srwi r0, r4, 0x1f
+/* 802753C4 00271024 7F A4 02 14 */ add r29, r4, r0
+/* 802753C8 00271028 57 A0 30 32 */ slwi r0, r29, 6
+/* 802753CC 0027102C 3C 80 80 51 */ lis r4, lbl_805154C0@ha
+/* 802753D0 00271030 38 84 54 C0 */ addi r4, r4, lbl_805154C0@l
+/* 802753D4 00271034 7F C4 02 14 */ add r30, r4, r0
+/* 802753D8 00271038 3F E0 80 00 */ lis r31, 0x8000
+/* 802753DC 0027103C 7F E3 1C 30 */ srw r3, r31, r3
+/* 802753E0 00271040 4B FF 97 0D */ bl __OSMaskInterrupts
+/* 802753E4 00271044 1C 7D 00 14 */ mulli r3, r29, 0x14
+/* 802753E8 00271048 3C 00 CD 00 */ lis r0, 0xcd00
+/* 802753EC 0027104C 7C 60 1A 14 */ add r3, r0, r3
+/* 802753F0 00271050 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 802753F4 00271054 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 802753F8 00271058 60 00 00 08 */ ori r0, r0, 8
+/* 802753FC 0027105C 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80275400 00271060 83 9E 00 04 */ lwz r28, 4(r30)
+/* 80275404 00271064 2C 1C 00 00 */ cmpwi r28, 0
+/* 80275408 00271068 41 82 01 90 */ beq lbl_80275598
+/* 8027540C 0027106C 38 00 00 00 */ li r0, 0
+/* 80275410 00271070 90 1E 00 04 */ stw r0, 4(r30)
+/* 80275414 00271074 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80275418 00271078 54 00 07 BF */ clrlwi. r0, r0, 0x1e
+/* 8027541C 0027107C 41 82 01 48 */ beq lbl_80275564
+/* 80275420 00271080 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80275424 00271084 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80275428 00271088 41 82 01 30 */ beq lbl_80275558
+/* 8027542C 0027108C 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 80275430 00271090 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 80275434 00271094 41 86 01 24 */ beq cr1, lbl_80275558
+/* 80275438 00271098 80 9E 00 14 */ lwz r4, 0x14(r30)
+/* 8027543C 0027109C 80 03 68 10 */ lwz r0, 0x6810(r3)
+/* 80275440 002710A0 38 60 00 00 */ li r3, 0
+/* 80275444 002710A4 40 85 01 14 */ ble cr1, lbl_80275558
+/* 80275448 002710A8 38 E5 FF F8 */ addi r7, r5, -8
+/* 8027544C 002710AC 2C 05 00 08 */ cmpwi r5, 8
+/* 80275450 002710B0 40 81 00 DC */ ble lbl_8027552C
+/* 80275454 002710B4 39 00 00 00 */ li r8, 0
+/* 80275458 002710B8 41 84 00 14 */ blt cr1, lbl_8027546C
+/* 8027545C 002710BC 38 DF FF FE */ addi r6, r31, -2
+/* 80275460 002710C0 7C 05 30 00 */ cmpw r5, r6
+/* 80275464 002710C4 41 81 00 08 */ bgt lbl_8027546C
+/* 80275468 002710C8 39 00 00 01 */ li r8, 1
+lbl_8027546C:
+/* 8027546C 002710CC 2C 08 00 00 */ cmpwi r8, 0
+/* 80275470 002710D0 41 82 00 BC */ beq lbl_8027552C
+/* 80275474 002710D4 38 C7 00 07 */ addi r6, r7, 7
+/* 80275478 002710D8 54 C6 E8 FE */ srwi r6, r6, 3
+/* 8027547C 002710DC 7C C9 03 A6 */ mtctr r6
+/* 80275480 002710E0 2C 07 00 00 */ cmpwi r7, 0
+/* 80275484 002710E4 40 81 00 A8 */ ble lbl_8027552C
+lbl_80275488:
+/* 80275488 002710E8 20 C3 00 03 */ subfic r6, r3, 3
+/* 8027548C 002710EC 54 C6 18 38 */ slwi r6, r6, 3
+/* 80275490 002710F0 7C 06 34 30 */ srw r6, r0, r6
+/* 80275494 002710F4 98 C4 00 00 */ stb r6, 0(r4)
+/* 80275498 002710F8 38 C3 00 01 */ addi r6, r3, 1
+/* 8027549C 002710FC 20 C6 00 03 */ subfic r6, r6, 3
+/* 802754A0 00271100 54 C6 18 38 */ slwi r6, r6, 3
+/* 802754A4 00271104 7C 06 34 30 */ srw r6, r0, r6
+/* 802754A8 00271108 98 C4 00 01 */ stb r6, 1(r4)
+/* 802754AC 0027110C 38 C3 00 02 */ addi r6, r3, 2
+/* 802754B0 00271110 20 C6 00 03 */ subfic r6, r6, 3
+/* 802754B4 00271114 54 C6 18 38 */ slwi r6, r6, 3
+/* 802754B8 00271118 7C 06 34 30 */ srw r6, r0, r6
+/* 802754BC 0027111C 98 C4 00 02 */ stb r6, 2(r4)
+/* 802754C0 00271120 7C C3 00 D0 */ neg r6, r3
+/* 802754C4 00271124 54 C6 18 38 */ slwi r6, r6, 3
+/* 802754C8 00271128 7C 06 34 30 */ srw r6, r0, r6
+/* 802754CC 0027112C 98 C4 00 03 */ stb r6, 3(r4)
+/* 802754D0 00271130 38 C3 00 04 */ addi r6, r3, 4
+/* 802754D4 00271134 20 C6 00 03 */ subfic r6, r6, 3
+/* 802754D8 00271138 54 C6 18 38 */ slwi r6, r6, 3
+/* 802754DC 0027113C 7C 06 34 30 */ srw r6, r0, r6
+/* 802754E0 00271140 98 C4 00 04 */ stb r6, 4(r4)
+/* 802754E4 00271144 38 C3 00 05 */ addi r6, r3, 5
+/* 802754E8 00271148 20 C6 00 03 */ subfic r6, r6, 3
+/* 802754EC 0027114C 54 C6 18 38 */ slwi r6, r6, 3
+/* 802754F0 00271150 7C 06 34 30 */ srw r6, r0, r6
+/* 802754F4 00271154 98 C4 00 05 */ stb r6, 5(r4)
+/* 802754F8 00271158 38 C3 00 06 */ addi r6, r3, 6
+/* 802754FC 0027115C 20 C6 00 03 */ subfic r6, r6, 3
+/* 80275500 00271160 54 C6 18 38 */ slwi r6, r6, 3
+/* 80275504 00271164 7C 06 34 30 */ srw r6, r0, r6
+/* 80275508 00271168 98 C4 00 06 */ stb r6, 6(r4)
+/* 8027550C 0027116C 38 C3 00 07 */ addi r6, r3, 7
+/* 80275510 00271170 20 C6 00 03 */ subfic r6, r6, 3
+/* 80275514 00271174 54 C6 18 38 */ slwi r6, r6, 3
+/* 80275518 00271178 7C 06 34 30 */ srw r6, r0, r6
+/* 8027551C 0027117C 98 C4 00 07 */ stb r6, 7(r4)
+/* 80275520 00271180 38 84 00 08 */ addi r4, r4, 8
+/* 80275524 00271184 38 63 00 08 */ addi r3, r3, 8
+/* 80275528 00271188 42 00 FF 60 */ bdnz lbl_80275488
+lbl_8027552C:
+/* 8027552C 0027118C 7C C3 28 50 */ subf r6, r3, r5
+/* 80275530 00271190 7C C9 03 A6 */ mtctr r6
+/* 80275534 00271194 7C 03 28 00 */ cmpw r3, r5
+/* 80275538 00271198 40 80 00 20 */ bge lbl_80275558
+lbl_8027553C:
+/* 8027553C 0027119C 20 A3 00 03 */ subfic r5, r3, 3
+/* 80275540 002711A0 54 A5 18 38 */ slwi r5, r5, 3
+/* 80275544 002711A4 7C 05 2C 30 */ srw r5, r0, r5
+/* 80275548 002711A8 98 A4 00 00 */ stb r5, 0(r4)
+/* 8027554C 002711AC 38 84 00 01 */ addi r4, r4, 1
+/* 80275550 002711B0 38 63 00 01 */ addi r3, r3, 1
+/* 80275554 002711B4 42 00 FF E8 */ bdnz lbl_8027553C
+lbl_80275558:
+/* 80275558 002711B8 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 8027555C 002711BC 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d
+/* 80275560 002711C0 90 1E 00 0C */ stw r0, 0xc(r30)
+lbl_80275564:
+/* 80275564 002711C4 38 61 00 08 */ addi r3, r1, 8
+/* 80275568 002711C8 4B FF 5B 29 */ bl OSClearContext
+/* 8027556C 002711CC 38 61 00 08 */ addi r3, r1, 8
+/* 80275570 002711D0 4B FF 58 F9 */ bl OSSetCurrentContext
+/* 80275574 002711D4 7F A3 EB 78 */ mr r3, r29
+/* 80275578 002711D8 7F 64 DB 78 */ mr r4, r27
+/* 8027557C 002711DC 7F 8C E3 78 */ mr r12, r28
+/* 80275580 002711E0 7D 89 03 A6 */ mtctr r12
+/* 80275584 002711E4 4E 80 04 21 */ bctrl
+/* 80275588 002711E8 38 61 00 08 */ addi r3, r1, 8
+/* 8027558C 002711EC 4B FF 5B 05 */ bl OSClearContext
+/* 80275590 002711F0 7F 63 DB 78 */ mr r3, r27
+/* 80275594 002711F4 4B FF 58 D5 */ bl OSSetCurrentContext
+lbl_80275598:
+/* 80275598 002711F8 39 61 02 F0 */ addi r11, r1, 0x2f0
+/* 8027559C 002711FC 4B F5 1B D9 */ bl _restgpr_27
+/* 802755A0 00271200 80 01 02 F4 */ lwz r0, 0x2f4(r1)
+/* 802755A4 00271204 7C 08 03 A6 */ mtlr r0
+/* 802755A8 00271208 38 21 02 F0 */ addi r1, r1, 0x2f0
+/* 802755AC 0027120C 4E 80 00 20 */ blr
+
+.global EXTIntrruptHandler
+EXTIntrruptHandler:
+/* 802755B0 00271210 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 802755B4 00271214 7C 08 02 A6 */ mflr r0
+/* 802755B8 00271218 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 802755BC 0027121C 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 802755C0 00271220 93 C1 02 D8 */ stw r30, 0x2d8(r1)
+/* 802755C4 00271224 93 A1 02 D4 */ stw r29, 0x2d4(r1)
+/* 802755C8 00271228 93 81 02 D0 */ stw r28, 0x2d0(r1)
+/* 802755CC 0027122C 7C 9C 23 78 */ mr r28, r4
+/* 802755D0 00271230 38 03 FF F5 */ addi r0, r3, -11
+/* 802755D4 00271234 3C 60 55 55 */ lis r3, 0x55555556@ha
+/* 802755D8 00271238 38 63 55 56 */ addi r3, r3, 0x55555556@l
+/* 802755DC 0027123C 7C 63 00 96 */ mulhw r3, r3, r0
+/* 802755E0 00271240 54 60 0F FE */ srwi r0, r3, 0x1f
+/* 802755E4 00271244 7F E3 02 14 */ add r31, r3, r0
+/* 802755E8 00271248 3C 60 00 50 */ lis r3, 0x50
+/* 802755EC 0027124C 57 E0 10 3A */ slwi r0, r31, 2
+/* 802755F0 00271250 7C 1F 00 50 */ subf r0, r31, r0
+/* 802755F4 00271254 7C 63 04 30 */ srw r3, r3, r0
+/* 802755F8 00271258 4B FF 94 F5 */ bl __OSMaskInterrupts
+/* 802755FC 0027125C 57 E0 30 32 */ slwi r0, r31, 6
+/* 80275600 00271260 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80275604 00271264 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 80275608 00271268 7F C3 02 14 */ add r30, r3, r0
+/* 8027560C 0027126C 83 BE 00 08 */ lwz r29, 8(r30)
+/* 80275610 00271270 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80275614 00271274 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 80275618 00271278 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 8027561C 0027127C 2C 1D 00 00 */ cmpwi r29, 0
+/* 80275620 00271280 41 82 00 40 */ beq lbl_80275660
+/* 80275624 00271284 38 61 00 08 */ addi r3, r1, 8
+/* 80275628 00271288 4B FF 5A 69 */ bl OSClearContext
+/* 8027562C 0027128C 38 61 00 08 */ addi r3, r1, 8
+/* 80275630 00271290 4B FF 58 39 */ bl OSSetCurrentContext
+/* 80275634 00271294 38 00 00 00 */ li r0, 0
+/* 80275638 00271298 90 1E 00 08 */ stw r0, 8(r30)
+/* 8027563C 0027129C 7F E3 FB 78 */ mr r3, r31
+/* 80275640 002712A0 7F 84 E3 78 */ mr r4, r28
+/* 80275644 002712A4 7F AC EB 78 */ mr r12, r29
+/* 80275648 002712A8 7D 89 03 A6 */ mtctr r12
+/* 8027564C 002712AC 4E 80 04 21 */ bctrl
+/* 80275650 002712B0 38 61 00 08 */ addi r3, r1, 8
+/* 80275654 002712B4 4B FF 5A 3D */ bl OSClearContext
+/* 80275658 002712B8 7F 83 E3 78 */ mr r3, r28
+/* 8027565C 002712BC 4B FF 58 0D */ bl OSSetCurrentContext
+lbl_80275660:
+/* 80275660 002712C0 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 80275664 002712C4 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
+/* 80275668 002712C8 83 A1 02 D4 */ lwz r29, 0x2d4(r1)
+/* 8027566C 002712CC 83 81 02 D0 */ lwz r28, 0x2d0(r1)
+/* 80275670 002712D0 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 80275674 002712D4 7C 08 03 A6 */ mtlr r0
+/* 80275678 002712D8 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 8027567C 002712DC 4E 80 00 20 */ blr
+
+.global EXIInit
+EXIInit:
+/* 80275680 002712E0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80275684 002712E4 7C 08 02 A6 */ mflr r0
+/* 80275688 002712E8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027568C 002712EC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80275690 002712F0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80275694 002712F4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80275698 002712F8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8027569C 002712FC 3C 60 CD 00 */ lis r3, 0xCD00680C@ha
+lbl_802756A0:
+/* 802756A0 00271300 80 03 68 0C */ lwz r0, 0xCD00680C@l(r3)
+/* 802756A4 00271304 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 802756A8 00271308 28 00 00 01 */ cmplwi r0, 1
+/* 802756AC 0027130C 41 82 FF F4 */ beq lbl_802756A0
+/* 802756B0 00271310 80 03 68 20 */ lwz r0, 0x6820(r3)
+/* 802756B4 00271314 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 802756B8 00271318 28 00 00 01 */ cmplwi r0, 1
+/* 802756BC 0027131C 41 82 FF E4 */ beq lbl_802756A0
+/* 802756C0 00271320 80 03 68 34 */ lwz r0, 0x6834(r3)
+/* 802756C4 00271324 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 802756C8 00271328 28 00 00 01 */ cmplwi r0, 1
+/* 802756CC 0027132C 41 82 FF D4 */ beq lbl_802756A0
+/* 802756D0 00271330 3C 60 00 80 */ lis r3, 0x007F8000@ha
+/* 802756D4 00271334 38 63 80 00 */ addi r3, r3, 0x007F8000@l
+/* 802756D8 00271338 4B FF 94 15 */ bl __OSMaskInterrupts
+/* 802756DC 0027133C 3B 80 00 00 */ li r28, 0
+/* 802756E0 00271340 3C 60 CD 00 */ lis r3, 0xCD006800@ha
+/* 802756E4 00271344 93 83 68 00 */ stw r28, 0xCD006800@l(r3)
+/* 802756E8 00271348 93 83 68 14 */ stw r28, 0x6814(r3)
+/* 802756EC 0027134C 93 83 68 28 */ stw r28, 0x6828(r3)
+/* 802756F0 00271350 38 00 20 00 */ li r0, 0x2000
+/* 802756F4 00271354 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 802756F8 00271358 38 60 00 09 */ li r3, 9
+/* 802756FC 0027135C 3F A0 80 27 */ lis r29, EXIIntrruptHandler@ha
+/* 80275700 00271360 38 9D 52 E0 */ addi r4, r29, EXIIntrruptHandler@l
+/* 80275704 00271364 4B FF 90 A5 */ bl __OSSetInterruptHandler
+/* 80275708 00271368 38 60 00 0A */ li r3, 0xa
+/* 8027570C 0027136C 3F C0 80 27 */ lis r30, TCIntrruptHandler@ha
+/* 80275710 00271370 38 9E 53 98 */ addi r4, r30, TCIntrruptHandler@l
+/* 80275714 00271374 4B FF 90 95 */ bl __OSSetInterruptHandler
+/* 80275718 00271378 38 60 00 0B */ li r3, 0xb
+/* 8027571C 0027137C 3F E0 80 27 */ lis r31, EXTIntrruptHandler@ha
+/* 80275720 00271380 38 9F 55 B0 */ addi r4, r31, EXTIntrruptHandler@l
+/* 80275724 00271384 4B FF 90 85 */ bl __OSSetInterruptHandler
+/* 80275728 00271388 38 60 00 0C */ li r3, 0xc
+/* 8027572C 0027138C 38 9D 52 E0 */ addi r4, r29, 0x52e0
+/* 80275730 00271390 4B FF 90 79 */ bl __OSSetInterruptHandler
+/* 80275734 00271394 38 60 00 0D */ li r3, 0xd
+/* 80275738 00271398 38 9E 53 98 */ addi r4, r30, 0x5398
+/* 8027573C 0027139C 4B FF 90 6D */ bl __OSSetInterruptHandler
+/* 80275740 002713A0 38 60 00 0E */ li r3, 0xe
+/* 80275744 002713A4 38 9F 55 B0 */ addi r4, r31, 0x55b0
+/* 80275748 002713A8 4B FF 90 61 */ bl __OSSetInterruptHandler
+/* 8027574C 002713AC 38 60 00 0F */ li r3, 0xf
+/* 80275750 002713B0 38 9D 52 E0 */ addi r4, r29, 0x52e0
+/* 80275754 002713B4 4B FF 90 55 */ bl __OSSetInterruptHandler
+/* 80275758 002713B8 38 60 00 10 */ li r3, 0x10
+/* 8027575C 002713BC 38 9E 53 98 */ addi r4, r30, 0x5398
+/* 80275760 002713C0 4B FF 90 49 */ bl __OSSetInterruptHandler
+/* 80275764 002713C4 38 60 00 00 */ li r3, 0
+/* 80275768 002713C8 38 80 00 02 */ li r4, 2
+/* 8027576C 002713CC 38 AD A8 88 */ addi r5, r13, lbl_8063FB48-_SDA_BASE_
+/* 80275770 002713D0 48 00 02 D1 */ bl EXIGetID
+/* 80275774 002713D4 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13)
+/* 80275778 002713D8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027577C 002713DC 41 82 00 34 */ beq lbl_802757B0
+/* 80275780 002713E0 3C 60 80 00 */ lis r3, 0x800030C4@ha
+/* 80275784 002713E4 93 83 30 C4 */ stw r28, 0x800030C4@l(r3)
+/* 80275788 002713E8 93 83 30 C0 */ stw r28, 0x30c0(r3)
+/* 8027578C 002713EC 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80275790 002713F0 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 80275794 002713F4 93 83 00 60 */ stw r28, 0x60(r3)
+/* 80275798 002713F8 93 83 00 20 */ stw r28, 0x20(r3)
+/* 8027579C 002713FC 38 60 00 00 */ li r3, 0
+/* 802757A0 00271400 4B FF F5 C1 */ bl __EXIProbe
+/* 802757A4 00271404 38 60 00 01 */ li r3, 1
+/* 802757A8 00271408 4B FF F5 B9 */ bl __EXIProbe
+/* 802757AC 0027140C 48 00 00 70 */ b lbl_8027581C
+lbl_802757B0:
+/* 802757B0 00271410 38 60 00 00 */ li r3, 0
+/* 802757B4 00271414 38 80 00 00 */ li r4, 0
+/* 802757B8 00271418 38 A1 00 08 */ addi r5, r1, 8
+/* 802757BC 0027141C 48 00 02 85 */ bl EXIGetID
+/* 802757C0 00271420 2C 03 00 00 */ cmpwi r3, 0
+/* 802757C4 00271424 41 82 00 24 */ beq lbl_802757E8
+/* 802757C8 00271428 80 61 00 08 */ lwz r3, 8(r1)
+/* 802757CC 0027142C 3C 03 F8 FF */ addis r0, r3, 0xf8ff
+/* 802757D0 00271430 28 00 00 00 */ cmplwi r0, 0
+/* 802757D4 00271434 40 82 00 14 */ bne lbl_802757E8
+/* 802757D8 00271438 38 60 00 01 */ li r3, 1
+/* 802757DC 0027143C 38 80 00 00 */ li r4, 0
+/* 802757E0 00271440 48 00 07 85 */ bl __OSEnableBarnacle
+/* 802757E4 00271444 48 00 00 38 */ b lbl_8027581C
+lbl_802757E8:
+/* 802757E8 00271448 38 60 00 01 */ li r3, 1
+/* 802757EC 0027144C 38 80 00 00 */ li r4, 0
+/* 802757F0 00271450 38 A1 00 08 */ addi r5, r1, 8
+/* 802757F4 00271454 48 00 02 4D */ bl EXIGetID
+/* 802757F8 00271458 2C 03 00 00 */ cmpwi r3, 0
+/* 802757FC 0027145C 41 82 00 20 */ beq lbl_8027581C
+/* 80275800 00271460 80 61 00 08 */ lwz r3, 8(r1)
+/* 80275804 00271464 3C 03 F8 FF */ addis r0, r3, 0xf8ff
+/* 80275808 00271468 28 00 00 00 */ cmplwi r0, 0
+/* 8027580C 0027146C 40 82 00 10 */ bne lbl_8027581C
+/* 80275810 00271470 38 60 00 00 */ li r3, 0
+/* 80275814 00271474 38 80 00 02 */ li r4, 2
+/* 80275818 00271478 48 00 07 4D */ bl __OSEnableBarnacle
+lbl_8027581C:
+/* 8027581C 0027147C 80 6D 87 F8 */ lwz r3, lbl_8063DAB8-_SDA_BASE_(r13)
+/* 80275820 00271480 4B FF 3E 31 */ bl OSRegisterVersion
+/* 80275824 00271484 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80275828 00271488 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027582C 0027148C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80275830 00271490 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80275834 00271494 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80275838 00271498 7C 08 03 A6 */ mtlr r0
+/* 8027583C 0027149C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80275840 002714A0 4E 80 00 20 */ blr
+
+.global EXILock
+EXILock:
+/* 80275844 002714A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80275848 002714A8 7C 08 02 A6 */ mflr r0
+/* 8027584C 002714AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80275850 002714B0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80275854 002714B4 4B F5 18 D5 */ bl _savegpr_27
+/* 80275858 002714B8 7C 7B 1B 78 */ mr r27, r3
+/* 8027585C 002714BC 7C 9F 23 78 */ mr r31, r4
+/* 80275860 002714C0 7C BC 2B 78 */ mr r28, r5
+/* 80275864 002714C4 54 60 30 32 */ slwi r0, r3, 6
+/* 80275868 002714C8 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 8027586C 002714CC 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 80275870 002714D0 7F C3 02 14 */ add r30, r3, r0
+/* 80275874 002714D4 4B FF 8E E9 */ bl OSDisableInterrupts
+/* 80275878 002714D8 7C 7D 1B 78 */ mr r29, r3
+/* 8027587C 002714DC 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80275880 002714E0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80275884 002714E4 41 82 00 7C */ beq lbl_80275900
+/* 80275888 002714E8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8027588C 002714EC 41 82 00 64 */ beq lbl_802758F0
+/* 80275890 002714F0 7F C3 F3 78 */ mr r3, r30
+/* 80275894 002714F4 80 9E 00 24 */ lwz r4, 0x24(r30)
+/* 80275898 002714F8 7C 89 03 A6 */ mtctr r4
+/* 8027589C 002714FC 2C 04 00 00 */ cmpwi r4, 0
+/* 802758A0 00271500 40 81 00 28 */ ble lbl_802758C8
+lbl_802758A4:
+/* 802758A4 00271504 80 03 00 28 */ lwz r0, 0x28(r3)
+/* 802758A8 00271508 7C 1F 00 40 */ cmplw r31, r0
+/* 802758AC 0027150C 40 82 00 14 */ bne lbl_802758C0
+/* 802758B0 00271510 7F A3 EB 78 */ mr r3, r29
+/* 802758B4 00271514 4B FF 8E D1 */ bl OSRestoreInterrupts
+/* 802758B8 00271518 38 60 00 00 */ li r3, 0
+/* 802758BC 0027151C 48 00 00 6C */ b lbl_80275928
+lbl_802758C0:
+/* 802758C0 00271520 38 63 00 08 */ addi r3, r3, 8
+/* 802758C4 00271524 42 00 FF E0 */ bdnz lbl_802758A4
+lbl_802758C8:
+/* 802758C8 00271528 54 80 18 38 */ slwi r0, r4, 3
+/* 802758CC 0027152C 7C 7E 02 14 */ add r3, r30, r0
+/* 802758D0 00271530 93 83 00 2C */ stw r28, 0x2c(r3)
+/* 802758D4 00271534 80 1E 00 24 */ lwz r0, 0x24(r30)
+/* 802758D8 00271538 54 00 18 38 */ slwi r0, r0, 3
+/* 802758DC 0027153C 7C 7E 02 14 */ add r3, r30, r0
+/* 802758E0 00271540 93 E3 00 28 */ stw r31, 0x28(r3)
+/* 802758E4 00271544 80 7E 00 24 */ lwz r3, 0x24(r30)
+/* 802758E8 00271548 38 03 00 01 */ addi r0, r3, 1
+/* 802758EC 0027154C 90 1E 00 24 */ stw r0, 0x24(r30)
+lbl_802758F0:
+/* 802758F0 00271550 7F A3 EB 78 */ mr r3, r29
+/* 802758F4 00271554 4B FF 8E 91 */ bl OSRestoreInterrupts
+/* 802758F8 00271558 38 60 00 00 */ li r3, 0
+/* 802758FC 0027155C 48 00 00 2C */ b lbl_80275928
+lbl_80275900:
+/* 80275900 00271560 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80275904 00271564 60 00 00 10 */ ori r0, r0, 0x10
+/* 80275908 00271568 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 8027590C 0027156C 93 FE 00 18 */ stw r31, 0x18(r30)
+/* 80275910 00271570 7F 63 DB 78 */ mr r3, r27
+/* 80275914 00271574 7F C4 F3 78 */ mr r4, r30
+/* 80275918 00271578 4B FF EC 41 */ bl SetExiInterruptMask
+/* 8027591C 0027157C 7F A3 EB 78 */ mr r3, r29
+/* 80275920 00271580 4B FF 8E 65 */ bl OSRestoreInterrupts
+/* 80275924 00271584 38 60 00 01 */ li r3, 1
+lbl_80275928:
+/* 80275928 00271588 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027592C 0027158C 4B F5 18 49 */ bl _restgpr_27
+/* 80275930 00271590 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80275934 00271594 7C 08 03 A6 */ mtlr r0
+/* 80275938 00271598 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027593C 0027159C 4E 80 00 20 */ blr
+
+.global EXIUnlock
+EXIUnlock:
+/* 80275940 002715A0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80275944 002715A4 7C 08 02 A6 */ mflr r0
+/* 80275948 002715A8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027594C 002715AC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80275950 002715B0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80275954 002715B4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80275958 002715B8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8027595C 002715BC 7C 7C 1B 78 */ mr r28, r3
+/* 80275960 002715C0 54 60 30 32 */ slwi r0, r3, 6
+/* 80275964 002715C4 3C 60 80 51 */ lis r3, lbl_805154C0@ha
+/* 80275968 002715C8 38 63 54 C0 */ addi r3, r3, lbl_805154C0@l
+/* 8027596C 002715CC 7F E3 02 14 */ add r31, r3, r0
+/* 80275970 002715D0 4B FF 8D ED */ bl OSDisableInterrupts
+/* 80275974 002715D4 7C 7E 1B 78 */ mr r30, r3
+/* 80275978 002715D8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027597C 002715DC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80275980 002715E0 40 82 00 10 */ bne lbl_80275990
+/* 80275984 002715E4 4B FF 8E 01 */ bl OSRestoreInterrupts
+/* 80275988 002715E8 38 60 00 00 */ li r3, 0
+/* 8027598C 002715EC 48 00 00 6C */ b lbl_802759F8
+lbl_80275990:
+/* 80275990 002715F0 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80275994 002715F4 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 80275998 002715F8 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8027599C 002715FC 7F 83 E3 78 */ mr r3, r28
+/* 802759A0 00271600 7F E4 FB 78 */ mr r4, r31
+/* 802759A4 00271604 4B FF EB B5 */ bl SetExiInterruptMask
+/* 802759A8 00271608 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 802759AC 0027160C 2C 03 00 00 */ cmpwi r3, 0
+/* 802759B0 00271610 40 81 00 3C */ ble lbl_802759EC
+/* 802759B4 00271614 83 BF 00 2C */ lwz r29, 0x2c(r31)
+/* 802759B8 00271618 34 03 FF FF */ addic. r0, r3, -1
+/* 802759BC 0027161C 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 802759C0 00271620 40 81 00 18 */ ble lbl_802759D8
+/* 802759C4 00271624 38 7F 00 28 */ addi r3, r31, 0x28
+/* 802759C8 00271628 38 9F 00 30 */ addi r4, r31, 0x30
+/* 802759CC 0027162C 80 1F 00 24 */ lwz r0, 0x24(r31)
+/* 802759D0 00271630 54 05 18 38 */ slwi r5, r0, 3
+/* 802759D4 00271634 4B F5 48 A1 */ bl memmove
+lbl_802759D8:
+/* 802759D8 00271638 7F 83 E3 78 */ mr r3, r28
+/* 802759DC 0027163C 38 80 00 00 */ li r4, 0
+/* 802759E0 00271640 7F AC EB 78 */ mr r12, r29
+/* 802759E4 00271644 7D 89 03 A6 */ mtctr r12
+/* 802759E8 00271648 4E 80 04 21 */ bctrl
+lbl_802759EC:
+/* 802759EC 0027164C 7F C3 F3 78 */ mr r3, r30
+/* 802759F0 00271650 4B FF 8D 95 */ bl OSRestoreInterrupts
+/* 802759F4 00271654 38 60 00 01 */ li r3, 1
+lbl_802759F8:
+/* 802759F8 00271658 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802759FC 0027165C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80275A00 00271660 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80275A04 00271664 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80275A08 00271668 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80275A0C 0027166C 7C 08 03 A6 */ mtlr r0
+/* 80275A10 00271670 38 21 00 20 */ addi r1, r1, 0x20
+/* 80275A14 00271674 4E 80 00 20 */ blr
+
+.global UnlockedHandler
+UnlockedHandler:
+/* 80275A18 00271678 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80275A1C 0027167C 7C 08 02 A6 */ mflr r0
+/* 80275A20 00271680 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80275A24 00271684 38 80 00 00 */ li r4, 0
+/* 80275A28 00271688 38 A1 00 08 */ addi r5, r1, 8
+/* 80275A2C 0027168C 48 00 00 15 */ bl EXIGetID
+/* 80275A30 00271690 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80275A34 00271694 7C 08 03 A6 */ mtlr r0
+/* 80275A38 00271698 38 21 00 10 */ addi r1, r1, 0x10
+/* 80275A3C 0027169C 4E 80 00 20 */ blr
+
+.global EXIGetID
+EXIGetID:
+/* 80275A40 002716A0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80275A44 002716A4 7C 08 02 A6 */ mflr r0
+/* 80275A48 002716A8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80275A4C 002716AC 39 61 00 40 */ addi r11, r1, 0x40
+/* 80275A50 002716B0 4B F5 16 C9 */ bl _savegpr_23
+/* 80275A54 002716B4 7C 79 1B 78 */ mr r25, r3
+/* 80275A58 002716B8 7C 9A 23 78 */ mr r26, r4
+/* 80275A5C 002716BC 7C BB 2B 78 */ mr r27, r5
+/* 80275A60 002716C0 54 60 30 32 */ slwi r0, r3, 6
+/* 80275A64 002716C4 3C C0 80 51 */ lis r6, lbl_805154C0@ha
+/* 80275A68 002716C8 38 C6 54 C0 */ addi r6, r6, lbl_805154C0@l
+/* 80275A6C 002716CC 7F A6 02 14 */ add r29, r6, r0
+/* 80275A70 002716D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80275A74 002716D4 40 82 00 24 */ bne lbl_80275A98
+/* 80275A78 002716D8 28 04 00 02 */ cmplwi r4, 2
+/* 80275A7C 002716DC 40 82 00 1C */ bne lbl_80275A98
+/* 80275A80 002716E0 80 0D A8 88 */ lwz r0, lbl_8063FB48-_SDA_BASE_(r13)
+/* 80275A84 002716E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80275A88 002716E8 41 82 00 10 */ beq lbl_80275A98
+/* 80275A8C 002716EC 90 05 00 00 */ stw r0, 0(r5)
+/* 80275A90 002716F0 38 60 00 01 */ li r3, 1
+/* 80275A94 002716F4 48 00 03 40 */ b lbl_80275DD4
+lbl_80275A98:
+/* 80275A98 002716F8 2C 03 00 02 */ cmpwi r3, 2
+/* 80275A9C 002716FC 40 80 00 E8 */ bge lbl_80275B84
+/* 80275AA0 00271700 2C 04 00 00 */ cmpwi r4, 0
+/* 80275AA4 00271704 40 82 00 E0 */ bne lbl_80275B84
+/* 80275AA8 00271708 7F 23 CB 78 */ mr r3, r25
+/* 80275AAC 0027170C 4B FF F2 B5 */ bl __EXIProbe
+/* 80275AB0 00271710 2C 03 00 00 */ cmpwi r3, 0
+/* 80275AB4 00271714 40 82 00 0C */ bne lbl_80275AC0
+/* 80275AB8 00271718 38 60 00 00 */ li r3, 0
+/* 80275ABC 0027171C 48 00 03 18 */ b lbl_80275DD4
+lbl_80275AC0:
+/* 80275AC0 00271720 57 23 10 3A */ slwi r3, r25, 2
+/* 80275AC4 00271724 3C 00 80 00 */ lis r0, 0x8000
+/* 80275AC8 00271728 7F E0 1A 14 */ add r31, r0, r3
+/* 80275ACC 0027172C 80 7D 00 20 */ lwz r3, 0x20(r29)
+/* 80275AD0 00271730 80 1F 30 C0 */ lwz r0, 0x30c0(r31)
+/* 80275AD4 00271734 7C 03 00 00 */ cmpw r3, r0
+/* 80275AD8 00271738 40 82 00 14 */ bne lbl_80275AEC
+/* 80275ADC 0027173C 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 80275AE0 00271740 90 1B 00 00 */ stw r0, 0(r27)
+/* 80275AE4 00271744 80 7D 00 20 */ lwz r3, 0x20(r29)
+/* 80275AE8 00271748 48 00 02 EC */ b lbl_80275DD4
+lbl_80275AEC:
+/* 80275AEC 0027174C 4B FF 8C 71 */ bl OSDisableInterrupts
+/* 80275AF0 00271750 7C 7E 1B 78 */ mr r30, r3
+/* 80275AF4 00271754 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275AF8 00271758 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80275AFC 0027175C 40 82 00 14 */ bne lbl_80275B10
+/* 80275B00 00271760 7F 23 CB 78 */ mr r3, r25
+/* 80275B04 00271764 4B FF F2 5D */ bl __EXIProbe
+/* 80275B08 00271768 2C 03 00 00 */ cmpwi r3, 0
+/* 80275B0C 0027176C 40 82 00 14 */ bne lbl_80275B20
+lbl_80275B10:
+/* 80275B10 00271770 7F C3 F3 78 */ mr r3, r30
+/* 80275B14 00271774 4B FF 8C 71 */ bl OSRestoreInterrupts
+/* 80275B18 00271778 38 00 00 00 */ li r0, 0
+/* 80275B1C 0027177C 48 00 00 54 */ b lbl_80275B70
+lbl_80275B20:
+/* 80275B20 00271780 1C 79 00 14 */ mulli r3, r25, 0x14
+/* 80275B24 00271784 3C 00 CD 00 */ lis r0, 0xcd00
+/* 80275B28 00271788 7C 60 1A 14 */ add r3, r0, r3
+/* 80275B2C 0027178C 80 03 68 00 */ lwz r0, 0x6800(r3)
+/* 80275B30 00271790 70 00 07 F5 */ andi. r0, r0, 0x7f5
+/* 80275B34 00271794 60 00 00 02 */ ori r0, r0, 2
+/* 80275B38 00271798 90 03 68 00 */ stw r0, 0x6800(r3)
+/* 80275B3C 0027179C 38 00 00 00 */ li r0, 0
+/* 80275B40 002717A0 90 1D 00 08 */ stw r0, 8(r29)
+/* 80275B44 002717A4 3C 60 00 10 */ lis r3, 0x10
+/* 80275B48 002717A8 57 20 10 3A */ slwi r0, r25, 2
+/* 80275B4C 002717AC 7C 19 00 50 */ subf r0, r25, r0
+/* 80275B50 002717B0 7C 63 04 30 */ srw r3, r3, r0
+/* 80275B54 002717B4 4B FF 90 19 */ bl __OSUnmaskInterrupts
+/* 80275B58 002717B8 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275B5C 002717BC 60 00 00 08 */ ori r0, r0, 8
+/* 80275B60 002717C0 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80275B64 002717C4 7F C3 F3 78 */ mr r3, r30
+/* 80275B68 002717C8 4B FF 8C 1D */ bl OSRestoreInterrupts
+/* 80275B6C 002717CC 38 00 00 01 */ li r0, 1
+lbl_80275B70:
+/* 80275B70 002717D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80275B74 002717D4 40 82 00 0C */ bne lbl_80275B80
+/* 80275B78 002717D8 38 60 00 00 */ li r3, 0
+/* 80275B7C 002717DC 48 00 02 58 */ b lbl_80275DD4
+lbl_80275B80:
+/* 80275B80 002717E0 83 FF 30 C0 */ lwz r31, 0x30c0(r31)
+lbl_80275B84:
+/* 80275B84 002717E4 4B FF 8B D9 */ bl OSDisableInterrupts
+/* 80275B88 002717E8 7C 7C 1B 78 */ mr r28, r3
+/* 80275B8C 002717EC 7F 23 CB 78 */ mr r3, r25
+/* 80275B90 002717F0 7F 44 D3 78 */ mr r4, r26
+/* 80275B94 002717F4 38 A0 00 00 */ li r5, 0
+/* 80275B98 002717F8 2C 19 00 02 */ cmpwi r25, 2
+/* 80275B9C 002717FC 40 80 00 10 */ bge lbl_80275BAC
+/* 80275BA0 00271800 2C 1A 00 00 */ cmpwi r26, 0
+/* 80275BA4 00271804 40 82 00 08 */ bne lbl_80275BAC
+/* 80275BA8 00271808 38 A0 00 01 */ li r5, 1
+lbl_80275BAC:
+/* 80275BAC 0027180C 7C 05 00 D0 */ neg r0, r5
+/* 80275BB0 00271810 7C 00 2B 78 */ or r0, r0, r5
+/* 80275BB4 00271814 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 80275BB8 00271818 3C A0 80 27 */ lis r5, UnlockedHandler@ha
+/* 80275BBC 0027181C 38 A5 5A 18 */ addi r5, r5, UnlockedHandler@l
+/* 80275BC0 00271820 7C A5 00 38 */ and r5, r5, r0
+/* 80275BC4 00271824 4B FF FC 81 */ bl EXILock
+/* 80275BC8 00271828 7C 60 00 34 */ cntlzw r0, r3
+/* 80275BCC 0027182C 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f
+/* 80275BD0 00271830 40 82 01 2C */ bne lbl_80275CFC
+/* 80275BD4 00271834 7F 23 CB 78 */ mr r3, r25
+/* 80275BD8 00271838 7F 44 D3 78 */ mr r4, r26
+/* 80275BDC 0027183C 38 A0 00 00 */ li r5, 0
+/* 80275BE0 00271840 4B FF F4 D1 */ bl EXISelect
+/* 80275BE4 00271844 7C 60 00 34 */ cntlzw r0, r3
+/* 80275BE8 00271848 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f
+/* 80275BEC 0027184C 40 82 00 90 */ bne lbl_80275C7C
+/* 80275BF0 00271850 38 00 00 00 */ li r0, 0
+/* 80275BF4 00271854 90 01 00 08 */ stw r0, 8(r1)
+/* 80275BF8 00271858 7F 23 CB 78 */ mr r3, r25
+/* 80275BFC 0027185C 38 81 00 08 */ addi r4, r1, 8
+/* 80275C00 00271860 38 A0 00 02 */ li r5, 2
+/* 80275C04 00271864 38 C0 00 01 */ li r6, 1
+/* 80275C08 00271868 38 E0 00 00 */ li r7, 0
+/* 80275C0C 0027186C 4B FF EA 3D */ bl EXIImm
+/* 80275C10 00271870 7C 60 00 34 */ cntlzw r0, r3
+/* 80275C14 00271874 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275C18 00271878 7F DE 03 78 */ or r30, r30, r0
+/* 80275C1C 0027187C 7F 23 CB 78 */ mr r3, r25
+/* 80275C20 00271880 4B FF EE 41 */ bl EXISync
+/* 80275C24 00271884 7C 60 00 34 */ cntlzw r0, r3
+/* 80275C28 00271888 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275C2C 0027188C 7F DE 03 78 */ or r30, r30, r0
+/* 80275C30 00271890 7F 23 CB 78 */ mr r3, r25
+/* 80275C34 00271894 7F 64 DB 78 */ mr r4, r27
+/* 80275C38 00271898 38 A0 00 04 */ li r5, 4
+/* 80275C3C 0027189C 38 C0 00 00 */ li r6, 0
+/* 80275C40 002718A0 38 E0 00 00 */ li r7, 0
+/* 80275C44 002718A4 4B FF EA 05 */ bl EXIImm
+/* 80275C48 002718A8 7C 60 00 34 */ cntlzw r0, r3
+/* 80275C4C 002718AC 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275C50 002718B0 7F DE 03 78 */ or r30, r30, r0
+/* 80275C54 002718B4 7F 23 CB 78 */ mr r3, r25
+/* 80275C58 002718B8 4B FF EE 09 */ bl EXISync
+/* 80275C5C 002718BC 7C 60 00 34 */ cntlzw r0, r3
+/* 80275C60 002718C0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275C64 002718C4 7F DE 03 78 */ or r30, r30, r0
+/* 80275C68 002718C8 7F 23 CB 78 */ mr r3, r25
+/* 80275C6C 002718CC 4B FF F5 75 */ bl EXIDeselect
+/* 80275C70 002718D0 7C 60 00 34 */ cntlzw r0, r3
+/* 80275C74 002718D4 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275C78 002718D8 7F DE 03 78 */ or r30, r30, r0
+lbl_80275C7C:
+/* 80275C7C 002718DC 4B FF 8A E1 */ bl OSDisableInterrupts
+/* 80275C80 002718E0 7C 77 1B 78 */ mr r23, r3
+/* 80275C84 002718E4 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275C88 002718E8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80275C8C 002718EC 40 82 00 0C */ bne lbl_80275C98
+/* 80275C90 002718F0 4B FF 8A F5 */ bl OSRestoreInterrupts
+/* 80275C94 002718F4 48 00 00 68 */ b lbl_80275CFC
+lbl_80275C98:
+/* 80275C98 002718F8 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275C9C 002718FC 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 80275CA0 00271900 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80275CA4 00271904 7F 23 CB 78 */ mr r3, r25
+/* 80275CA8 00271908 7F A4 EB 78 */ mr r4, r29
+/* 80275CAC 0027190C 4B FF E8 AD */ bl SetExiInterruptMask
+/* 80275CB0 00271910 80 7D 00 24 */ lwz r3, 0x24(r29)
+/* 80275CB4 00271914 2C 03 00 00 */ cmpwi r3, 0
+/* 80275CB8 00271918 40 81 00 3C */ ble lbl_80275CF4
+/* 80275CBC 0027191C 83 1D 00 2C */ lwz r24, 0x2c(r29)
+/* 80275CC0 00271920 34 03 FF FF */ addic. r0, r3, -1
+/* 80275CC4 00271924 90 1D 00 24 */ stw r0, 0x24(r29)
+/* 80275CC8 00271928 40 81 00 18 */ ble lbl_80275CE0
+/* 80275CCC 0027192C 38 7D 00 28 */ addi r3, r29, 0x28
+/* 80275CD0 00271930 38 9D 00 30 */ addi r4, r29, 0x30
+/* 80275CD4 00271934 80 1D 00 24 */ lwz r0, 0x24(r29)
+/* 80275CD8 00271938 54 05 18 38 */ slwi r5, r0, 3
+/* 80275CDC 0027193C 4B F5 45 99 */ bl memmove
+lbl_80275CE0:
+/* 80275CE0 00271940 7F 23 CB 78 */ mr r3, r25
+/* 80275CE4 00271944 38 80 00 00 */ li r4, 0
+/* 80275CE8 00271948 7F 0C C3 78 */ mr r12, r24
+/* 80275CEC 0027194C 7D 89 03 A6 */ mtctr r12
+/* 80275CF0 00271950 4E 80 04 21 */ bctrl
+lbl_80275CF4:
+/* 80275CF4 00271954 7E E3 BB 78 */ mr r3, r23
+/* 80275CF8 00271958 4B FF 8A 8D */ bl OSRestoreInterrupts
+lbl_80275CFC:
+/* 80275CFC 0027195C 7F 83 E3 78 */ mr r3, r28
+/* 80275D00 00271960 4B FF 8A 85 */ bl OSRestoreInterrupts
+/* 80275D04 00271964 2C 19 00 02 */ cmpwi r25, 2
+/* 80275D08 00271968 40 80 00 C4 */ bge lbl_80275DCC
+/* 80275D0C 0027196C 2C 1A 00 00 */ cmpwi r26, 0
+/* 80275D10 00271970 40 82 00 BC */ bne lbl_80275DCC
+/* 80275D14 00271974 4B FF 8A 49 */ bl OSDisableInterrupts
+/* 80275D18 00271978 7C 77 1B 78 */ mr r23, r3
+/* 80275D1C 0027197C 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275D20 00271980 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80275D24 00271984 40 82 00 0C */ bne lbl_80275D30
+/* 80275D28 00271988 4B FF 8A 5D */ bl OSRestoreInterrupts
+/* 80275D2C 0027198C 48 00 00 4C */ b lbl_80275D78
+lbl_80275D30:
+/* 80275D30 00271990 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275D34 00271994 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
+/* 80275D38 00271998 41 82 00 18 */ beq lbl_80275D50
+/* 80275D3C 0027199C 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 80275D40 002719A0 2C 00 00 00 */ cmpwi r0, 0
+/* 80275D44 002719A4 40 82 00 0C */ bne lbl_80275D50
+/* 80275D48 002719A8 4B FF 8A 3D */ bl OSRestoreInterrupts
+/* 80275D4C 002719AC 48 00 00 2C */ b lbl_80275D78
+lbl_80275D50:
+/* 80275D50 002719B0 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80275D54 002719B4 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 80275D58 002719B8 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80275D5C 002719BC 3C 60 00 50 */ lis r3, 0x50
+/* 80275D60 002719C0 57 20 10 3A */ slwi r0, r25, 2
+/* 80275D64 002719C4 7C 19 00 50 */ subf r0, r25, r0
+/* 80275D68 002719C8 7C 63 04 30 */ srw r3, r3, r0
+/* 80275D6C 002719CC 4B FF 8D 81 */ bl __OSMaskInterrupts
+/* 80275D70 002719D0 7E E3 BB 78 */ mr r3, r23
+/* 80275D74 002719D4 4B FF 8A 11 */ bl OSRestoreInterrupts
+lbl_80275D78:
+/* 80275D78 002719D8 4B FF 89 E5 */ bl OSDisableInterrupts
+/* 80275D7C 002719DC 57 24 10 3A */ slwi r4, r25, 2
+/* 80275D80 002719E0 3C 00 80 00 */ lis r0, 0x8000
+/* 80275D84 002719E4 7C 80 22 14 */ add r4, r0, r4
+/* 80275D88 002719E8 80 04 30 C0 */ lwz r0, 0x30c0(r4)
+/* 80275D8C 002719EC 7C 9F 00 50 */ subf r4, r31, r0
+/* 80275D90 002719F0 7C 00 F8 50 */ subf r0, r0, r31
+/* 80275D94 002719F4 7C 80 03 78 */ or r0, r4, r0
+/* 80275D98 002719F8 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80275D9C 002719FC 7F DE 03 79 */ or. r30, r30, r0
+/* 80275DA0 00271A00 40 82 00 10 */ bne lbl_80275DB0
+/* 80275DA4 00271A04 80 1B 00 00 */ lwz r0, 0(r27)
+/* 80275DA8 00271A08 90 1D 00 1C */ stw r0, 0x1c(r29)
+/* 80275DAC 00271A0C 93 FD 00 20 */ stw r31, 0x20(r29)
+lbl_80275DB0:
+/* 80275DB0 00271A10 4B FF 89 D5 */ bl OSRestoreInterrupts
+/* 80275DB4 00271A14 2C 1E 00 00 */ cmpwi r30, 0
+/* 80275DB8 00271A18 41 82 00 0C */ beq lbl_80275DC4
+/* 80275DBC 00271A1C 38 60 00 00 */ li r3, 0
+/* 80275DC0 00271A20 48 00 00 14 */ b lbl_80275DD4
+lbl_80275DC4:
+/* 80275DC4 00271A24 80 7D 00 20 */ lwz r3, 0x20(r29)
+/* 80275DC8 00271A28 48 00 00 0C */ b lbl_80275DD4
+lbl_80275DCC:
+/* 80275DCC 00271A2C 7F C0 00 34 */ cntlzw r0, r30
+/* 80275DD0 00271A30 54 03 D9 7E */ srwi r3, r0, 5
+lbl_80275DD4:
+/* 80275DD4 00271A34 39 61 00 40 */ addi r11, r1, 0x40
+/* 80275DD8 00271A38 4B F5 13 8D */ bl _restgpr_23
+/* 80275DDC 00271A3C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80275DE0 00271A40 7C 08 03 A6 */ mtlr r0
+/* 80275DE4 00271A44 38 21 00 40 */ addi r1, r1, 0x40
+/* 80275DE8 00271A48 4E 80 00 20 */ blr
diff --git a/asm/SDK/EXI/EXICommon.s b/asm/SDK/EXI/EXICommon.s new file mode 100644 index 0000000..d5d9595 --- /dev/null +++ b/asm/SDK/EXI/EXICommon.s @@ -0,0 +1,112 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global EXIWriteReg
+EXIWriteReg:
+/* 80276120 00271D80 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80276124 00271D84 7C 08 02 A6 */ mflr r0
+/* 80276128 00271D88 2C 07 00 02 */ cmpwi r7, 2
+/* 8027612C 00271D8C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80276130 00271D90 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80276134 00271D94 7C 7F 1B 78 */ mr r31, r3
+/* 80276138 00271D98 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027613C 00271D9C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80276140 00271DA0 7C 9D 23 78 */ mr r29, r4
+/* 80276144 00271DA4 90 A1 00 08 */ stw r5, 8(r1)
+/* 80276148 00271DA8 41 82 00 24 */ beq lbl_8027616C
+/* 8027614C 00271DAC 40 80 00 34 */ bge lbl_80276180
+/* 80276150 00271DB0 2C 07 00 01 */ cmpwi r7, 1
+/* 80276154 00271DB4 40 80 00 08 */ bge lbl_8027615C
+/* 80276158 00271DB8 48 00 00 28 */ b lbl_80276180
+lbl_8027615C:
+/* 8027615C 00271DBC 88 06 00 00 */ lbz r0, 0(r6)
+/* 80276160 00271DC0 54 00 C0 0E */ slwi r0, r0, 0x18
+/* 80276164 00271DC4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80276168 00271DC8 48 00 00 34 */ b lbl_8027619C
+lbl_8027616C:
+/* 8027616C 00271DCC A0 66 00 00 */ lhz r3, 0(r6)
+/* 80276170 00271DD0 54 60 42 1E */ rlwinm r0, r3, 8, 8, 0xf
+/* 80276174 00271DD4 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7
+/* 80276178 00271DD8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8027617C 00271DDC 48 00 00 20 */ b lbl_8027619C
+lbl_80276180:
+/* 80276180 00271DE0 80 86 00 00 */ lwz r4, 0(r6)
+/* 80276184 00271DE4 54 83 42 1E */ rlwinm r3, r4, 8, 8, 0xf
+/* 80276188 00271DE8 54 80 C4 2E */ rlwinm r0, r4, 0x18, 0x10, 0x17
+/* 8027618C 00271DEC 50 83 C0 0E */ rlwimi r3, r4, 0x18, 0, 7
+/* 80276190 00271DF0 50 80 46 3E */ rlwimi r0, r4, 8, 0x18, 0x1f
+/* 80276194 00271DF4 7C 60 03 78 */ or r0, r3, r0
+/* 80276198 00271DF8 90 01 00 0C */ stw r0, 0xc(r1)
+lbl_8027619C:
+/* 8027619C 00271DFC 7F E3 FB 78 */ mr r3, r31
+/* 802761A0 00271E00 7F A4 EB 78 */ mr r4, r29
+/* 802761A4 00271E04 38 A0 00 00 */ li r5, 0
+/* 802761A8 00271E08 4B FF F6 9D */ bl EXILock
+/* 802761AC 00271E0C 7C 60 00 34 */ cntlzw r0, r3
+/* 802761B0 00271E10 54 1E D9 7F */ rlwinm. r30, r0, 0x1b, 5, 0x1f
+/* 802761B4 00271E14 41 82 00 0C */ beq lbl_802761C0
+/* 802761B8 00271E18 38 60 00 00 */ li r3, 0
+/* 802761BC 00271E1C 48 00 00 D4 */ b lbl_80276290
+lbl_802761C0:
+/* 802761C0 00271E20 7F E3 FB 78 */ mr r3, r31
+/* 802761C4 00271E24 7F A4 EB 78 */ mr r4, r29
+/* 802761C8 00271E28 38 A0 00 04 */ li r5, 4
+/* 802761CC 00271E2C 4B FF EE E5 */ bl EXISelect
+/* 802761D0 00271E30 7C 60 00 34 */ cntlzw r0, r3
+/* 802761D4 00271E34 54 00 D9 7E */ srwi r0, r0, 5
+/* 802761D8 00271E38 7F DE 03 79 */ or. r30, r30, r0
+/* 802761DC 00271E3C 41 82 00 14 */ beq lbl_802761F0
+/* 802761E0 00271E40 7F E3 FB 78 */ mr r3, r31
+/* 802761E4 00271E44 4B FF F7 5D */ bl EXIUnlock
+/* 802761E8 00271E48 38 60 00 00 */ li r3, 0
+/* 802761EC 00271E4C 48 00 00 A4 */ b lbl_80276290
+lbl_802761F0:
+/* 802761F0 00271E50 7F E3 FB 78 */ mr r3, r31
+/* 802761F4 00271E54 38 81 00 08 */ addi r4, r1, 8
+/* 802761F8 00271E58 38 A0 00 04 */ li r5, 4
+/* 802761FC 00271E5C 38 C0 00 01 */ li r6, 1
+/* 80276200 00271E60 38 E0 00 00 */ li r7, 0
+/* 80276204 00271E64 4B FF E4 45 */ bl EXIImm
+/* 80276208 00271E68 7C 60 00 34 */ cntlzw r0, r3
+/* 8027620C 00271E6C 7F E3 FB 78 */ mr r3, r31
+/* 80276210 00271E70 54 00 D9 7E */ srwi r0, r0, 5
+/* 80276214 00271E74 7F DE 03 78 */ or r30, r30, r0
+/* 80276218 00271E78 4B FF E8 49 */ bl EXISync
+/* 8027621C 00271E7C 7C 60 00 34 */ cntlzw r0, r3
+/* 80276220 00271E80 7F E3 FB 78 */ mr r3, r31
+/* 80276224 00271E84 54 00 D9 7E */ srwi r0, r0, 5
+/* 80276228 00271E88 38 81 00 0C */ addi r4, r1, 0xc
+/* 8027622C 00271E8C 7F DE 03 78 */ or r30, r30, r0
+/* 80276230 00271E90 38 A0 00 04 */ li r5, 4
+/* 80276234 00271E94 38 C0 00 01 */ li r6, 1
+/* 80276238 00271E98 38 E0 00 00 */ li r7, 0
+/* 8027623C 00271E9C 4B FF E4 0D */ bl EXIImm
+/* 80276240 00271EA0 7C 60 00 34 */ cntlzw r0, r3
+/* 80276244 00271EA4 7F E3 FB 78 */ mr r3, r31
+/* 80276248 00271EA8 54 00 D9 7E */ srwi r0, r0, 5
+/* 8027624C 00271EAC 7F DE 03 78 */ or r30, r30, r0
+/* 80276250 00271EB0 4B FF E8 11 */ bl EXISync
+/* 80276254 00271EB4 7C 60 00 34 */ cntlzw r0, r3
+/* 80276258 00271EB8 7F E3 FB 78 */ mr r3, r31
+/* 8027625C 00271EBC 54 00 D9 7E */ srwi r0, r0, 5
+/* 80276260 00271EC0 7F DE 03 78 */ or r30, r30, r0
+/* 80276264 00271EC4 4B FF EF 7D */ bl EXIDeselect
+/* 80276268 00271EC8 7C 60 00 34 */ cntlzw r0, r3
+/* 8027626C 00271ECC 7F E3 FB 78 */ mr r3, r31
+/* 80276270 00271ED0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80276274 00271ED4 7F DE 03 78 */ or r30, r30, r0
+/* 80276278 00271ED8 4B FF F6 C9 */ bl EXIUnlock
+/* 8027627C 00271EDC 7C 60 00 34 */ cntlzw r0, r3
+/* 80276280 00271EE0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80276284 00271EE4 7F DE 03 78 */ or r30, r30, r0
+/* 80276288 00271EE8 7F C0 00 34 */ cntlzw r0, r30
+/* 8027628C 00271EEC 54 03 D9 7E */ srwi r3, r0, 5
+lbl_80276290:
+/* 80276290 00271EF0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80276294 00271EF4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80276298 00271EF8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027629C 00271EFC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802762A0 00271F00 7C 08 03 A6 */ mtlr r0
+/* 802762A4 00271F04 38 21 00 20 */ addi r1, r1, 0x20
+/* 802762A8 00271F08 4E 80 00 20 */ blr
diff --git a/asm/SDK/EXI/EXIUart.s b/asm/SDK/EXI/EXIUart.s new file mode 100644 index 0000000..ec4a8dc --- /dev/null +++ b/asm/SDK/EXI/EXIUart.s @@ -0,0 +1,229 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ProbeBarnacle
+ProbeBarnacle:
+/* 80275DEC 00271A4C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80275DF0 00271A50 7C 08 02 A6 */ mflr r0
+/* 80275DF4 00271A54 2C 03 00 02 */ cmpwi r3, 2
+/* 80275DF8 00271A58 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80275DFC 00271A5C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80275E00 00271A60 7C BF 2B 78 */ mr r31, r5
+/* 80275E04 00271A64 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80275E08 00271A68 7C 9E 23 78 */ mr r30, r4
+/* 80275E0C 00271A6C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80275E10 00271A70 7C 7D 1B 78 */ mr r29, r3
+/* 80275E14 00271A74 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80275E18 00271A78 41 82 00 24 */ beq lbl_80275E3C
+/* 80275E1C 00271A7C 2C 04 00 00 */ cmpwi r4, 0
+/* 80275E20 00271A80 40 82 00 1C */ bne lbl_80275E3C
+/* 80275E24 00271A84 38 80 00 00 */ li r4, 0
+/* 80275E28 00271A88 4B FF F0 B9 */ bl EXIAttach
+/* 80275E2C 00271A8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80275E30 00271A90 40 82 00 0C */ bne lbl_80275E3C
+/* 80275E34 00271A94 38 60 00 00 */ li r3, 0
+/* 80275E38 00271A98 48 00 01 0C */ b lbl_80275F44
+lbl_80275E3C:
+/* 80275E3C 00271A9C 7F A3 EB 78 */ mr r3, r29
+/* 80275E40 00271AA0 7F C4 F3 78 */ mr r4, r30
+/* 80275E44 00271AA4 38 A0 00 00 */ li r5, 0
+/* 80275E48 00271AA8 4B FF F9 FD */ bl EXILock
+/* 80275E4C 00271AAC 7C 60 00 34 */ cntlzw r0, r3
+/* 80275E50 00271AB0 54 1C D9 7F */ rlwinm. r28, r0, 0x1b, 5, 0x1f
+/* 80275E54 00271AB4 40 82 00 B4 */ bne lbl_80275F08
+/* 80275E58 00271AB8 7F A3 EB 78 */ mr r3, r29
+/* 80275E5C 00271ABC 7F C4 F3 78 */ mr r4, r30
+/* 80275E60 00271AC0 38 A0 00 00 */ li r5, 0
+/* 80275E64 00271AC4 4B FF F2 4D */ bl EXISelect
+/* 80275E68 00271AC8 7C 60 00 34 */ cntlzw r0, r3
+/* 80275E6C 00271ACC 54 1C D9 7F */ rlwinm. r28, r0, 0x1b, 5, 0x1f
+/* 80275E70 00271AD0 40 82 00 90 */ bne lbl_80275F00
+/* 80275E74 00271AD4 3C 80 20 01 */ lis r4, 0x20011300@ha
+/* 80275E78 00271AD8 7F A3 EB 78 */ mr r3, r29
+/* 80275E7C 00271ADC 38 04 13 00 */ addi r0, r4, 0x20011300@l
+/* 80275E80 00271AE0 38 A0 00 04 */ li r5, 4
+/* 80275E84 00271AE4 90 01 00 08 */ stw r0, 8(r1)
+/* 80275E88 00271AE8 38 81 00 08 */ addi r4, r1, 8
+/* 80275E8C 00271AEC 38 C0 00 01 */ li r6, 1
+/* 80275E90 00271AF0 38 E0 00 00 */ li r7, 0
+/* 80275E94 00271AF4 4B FF E7 B5 */ bl EXIImm
+/* 80275E98 00271AF8 7C 60 00 34 */ cntlzw r0, r3
+/* 80275E9C 00271AFC 7F A3 EB 78 */ mr r3, r29
+/* 80275EA0 00271B00 54 1C D9 7E */ srwi r28, r0, 5
+/* 80275EA4 00271B04 4B FF EB BD */ bl EXISync
+/* 80275EA8 00271B08 7C 60 00 34 */ cntlzw r0, r3
+/* 80275EAC 00271B0C 7F A3 EB 78 */ mr r3, r29
+/* 80275EB0 00271B10 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275EB4 00271B14 7F E4 FB 78 */ mr r4, r31
+/* 80275EB8 00271B18 7F 9C 03 78 */ or r28, r28, r0
+/* 80275EBC 00271B1C 38 A0 00 04 */ li r5, 4
+/* 80275EC0 00271B20 38 C0 00 00 */ li r6, 0
+/* 80275EC4 00271B24 38 E0 00 00 */ li r7, 0
+/* 80275EC8 00271B28 4B FF E7 81 */ bl EXIImm
+/* 80275ECC 00271B2C 7C 60 00 34 */ cntlzw r0, r3
+/* 80275ED0 00271B30 7F A3 EB 78 */ mr r3, r29
+/* 80275ED4 00271B34 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275ED8 00271B38 7F 9C 03 78 */ or r28, r28, r0
+/* 80275EDC 00271B3C 4B FF EB 85 */ bl EXISync
+/* 80275EE0 00271B40 7C 60 00 34 */ cntlzw r0, r3
+/* 80275EE4 00271B44 7F A3 EB 78 */ mr r3, r29
+/* 80275EE8 00271B48 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275EEC 00271B4C 7F 9C 03 78 */ or r28, r28, r0
+/* 80275EF0 00271B50 4B FF F2 F1 */ bl EXIDeselect
+/* 80275EF4 00271B54 7C 60 00 34 */ cntlzw r0, r3
+/* 80275EF8 00271B58 54 00 D9 7E */ srwi r0, r0, 5
+/* 80275EFC 00271B5C 7F 9C 03 78 */ or r28, r28, r0
+lbl_80275F00:
+/* 80275F00 00271B60 7F A3 EB 78 */ mr r3, r29
+/* 80275F04 00271B64 4B FF FA 3D */ bl EXIUnlock
+lbl_80275F08:
+/* 80275F08 00271B68 2C 1D 00 02 */ cmpwi r29, 2
+/* 80275F0C 00271B6C 41 82 00 14 */ beq lbl_80275F20
+/* 80275F10 00271B70 2C 1E 00 00 */ cmpwi r30, 0
+/* 80275F14 00271B74 40 82 00 0C */ bne lbl_80275F20
+/* 80275F18 00271B78 7F A3 EB 78 */ mr r3, r29
+/* 80275F1C 00271B7C 4B FF F0 DD */ bl EXIDetach
+lbl_80275F20:
+/* 80275F20 00271B80 2C 1C 00 00 */ cmpwi r28, 0
+/* 80275F24 00271B84 41 82 00 0C */ beq lbl_80275F30
+/* 80275F28 00271B88 38 60 00 00 */ li r3, 0
+/* 80275F2C 00271B8C 48 00 00 18 */ b lbl_80275F44
+lbl_80275F30:
+/* 80275F30 00271B90 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80275F34 00271B94 20 64 FF FF */ subfic r3, r4, -1
+/* 80275F38 00271B98 38 04 00 01 */ addi r0, r4, 1
+/* 80275F3C 00271B9C 7C 60 03 78 */ or r0, r3, r0
+/* 80275F40 00271BA0 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_80275F44:
+/* 80275F44 00271BA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80275F48 00271BA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80275F4C 00271BAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80275F50 00271BB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80275F54 00271BB4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80275F58 00271BB8 7C 08 03 A6 */ mtlr r0
+/* 80275F5C 00271BBC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80275F60 00271BC0 4E 80 00 20 */ blr
+
+.global __OSEnableBarnacle
+__OSEnableBarnacle:
+/* 80275F64 00271BC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80275F68 00271BC8 7C 08 02 A6 */ mflr r0
+/* 80275F6C 00271BCC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80275F70 00271BD0 38 A1 00 08 */ addi r5, r1, 8
+/* 80275F74 00271BD4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80275F78 00271BD8 7C 9F 23 78 */ mr r31, r4
+/* 80275F7C 00271BDC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80275F80 00271BE0 7C 7E 1B 78 */ mr r30, r3
+/* 80275F84 00271BE4 4B FF FA BD */ bl EXIGetID
+/* 80275F88 00271BE8 2C 03 00 00 */ cmpwi r3, 0
+/* 80275F8C 00271BEC 41 82 01 7C */ beq lbl_80276108
+/* 80275F90 00271BF0 80 81 00 08 */ lwz r4, 8(r1)
+/* 80275F94 00271BF4 3C 00 01 02 */ lis r0, 0x102
+/* 80275F98 00271BF8 7C 04 00 00 */ cmpw r4, r0
+/* 80275F9C 00271BFC 41 82 01 6C */ beq lbl_80276108
+/* 80275FA0 00271C00 40 80 00 94 */ bge lbl_80276034
+/* 80275FA4 00271C04 2C 04 00 04 */ cmpwi r4, 4
+/* 80275FA8 00271C08 41 82 01 60 */ beq lbl_80276108
+/* 80275FAC 00271C0C 40 80 00 54 */ bge lbl_80276000
+/* 80275FB0 00271C10 3C 60 80 00 */ lis r3, 0x80000010@ha
+/* 80275FB4 00271C14 38 03 00 10 */ addi r0, r3, 0x80000010@l
+/* 80275FB8 00271C18 7C 04 00 00 */ cmpw r4, r0
+/* 80275FBC 00271C1C 41 82 01 4C */ beq lbl_80276108
+/* 80275FC0 00271C20 40 80 00 24 */ bge lbl_80275FE4
+/* 80275FC4 00271C24 38 03 00 08 */ addi r0, r3, 8
+/* 80275FC8 00271C28 7C 04 00 00 */ cmpw r4, r0
+/* 80275FCC 00271C2C 41 82 01 3C */ beq lbl_80276108
+/* 80275FD0 00271C30 40 80 01 08 */ bge lbl_802760D8
+/* 80275FD4 00271C34 38 03 00 04 */ addi r0, r3, 4
+/* 80275FD8 00271C38 7C 04 00 00 */ cmpw r4, r0
+/* 80275FDC 00271C3C 41 82 01 2C */ beq lbl_80276108
+/* 80275FE0 00271C40 48 00 00 F8 */ b lbl_802760D8
+lbl_80275FE4:
+/* 80275FE4 00271C44 2C 04 FF FF */ cmpwi r4, -1
+/* 80275FE8 00271C48 41 82 01 20 */ beq lbl_80276108
+/* 80275FEC 00271C4C 40 80 00 EC */ bge lbl_802760D8
+/* 80275FF0 00271C50 38 03 00 20 */ addi r0, r3, 0x20
+/* 80275FF4 00271C54 7C 04 00 00 */ cmpw r4, r0
+/* 80275FF8 00271C58 41 82 01 10 */ beq lbl_80276108
+/* 80275FFC 00271C5C 48 00 00 DC */ b lbl_802760D8
+lbl_80276000:
+/* 80276000 00271C60 2C 04 00 20 */ cmpwi r4, 0x20
+/* 80276004 00271C64 41 82 01 04 */ beq lbl_80276108
+/* 80276008 00271C68 40 80 00 1C */ bge lbl_80276024
+/* 8027600C 00271C6C 2C 04 00 10 */ cmpwi r4, 0x10
+/* 80276010 00271C70 41 82 00 F8 */ beq lbl_80276108
+/* 80276014 00271C74 40 80 00 C4 */ bge lbl_802760D8
+/* 80276018 00271C78 2C 04 00 08 */ cmpwi r4, 8
+/* 8027601C 00271C7C 41 82 00 EC */ beq lbl_80276108
+/* 80276020 00271C80 48 00 00 B8 */ b lbl_802760D8
+lbl_80276024:
+/* 80276024 00271C84 3C 00 01 01 */ lis r0, 0x101
+/* 80276028 00271C88 7C 04 00 00 */ cmpw r4, r0
+/* 8027602C 00271C8C 41 82 00 DC */ beq lbl_80276108
+/* 80276030 00271C90 48 00 00 A8 */ b lbl_802760D8
+lbl_80276034:
+/* 80276034 00271C94 3C 60 04 04 */ lis r3, 0x04040404@ha
+/* 80276038 00271C98 38 03 04 04 */ addi r0, r3, 0x04040404@l
+/* 8027603C 00271C9C 7C 04 00 00 */ cmpw r4, r0
+/* 80276040 00271CA0 41 82 00 C8 */ beq lbl_80276108
+/* 80276044 00271CA4 40 80 00 58 */ bge lbl_8027609C
+/* 80276048 00271CA8 3C 60 04 02 */ lis r3, 0x04020100@ha
+/* 8027604C 00271CAC 38 03 01 00 */ addi r0, r3, 0x04020100@l
+/* 80276050 00271CB0 7C 04 00 00 */ cmpw r4, r0
+/* 80276054 00271CB4 41 82 00 B4 */ beq lbl_80276108
+/* 80276058 00271CB8 40 80 00 24 */ bge lbl_8027607C
+/* 8027605C 00271CBC 3C 00 03 01 */ lis r0, 0x301
+/* 80276060 00271CC0 7C 04 00 00 */ cmpw r4, r0
+/* 80276064 00271CC4 41 82 00 A4 */ beq lbl_80276108
+/* 80276068 00271CC8 40 80 00 70 */ bge lbl_802760D8
+/* 8027606C 00271CCC 3C 00 02 02 */ lis r0, 0x202
+/* 80276070 00271CD0 7C 04 00 00 */ cmpw r4, r0
+/* 80276074 00271CD4 41 82 00 94 */ beq lbl_80276108
+/* 80276078 00271CD8 48 00 00 60 */ b lbl_802760D8
+lbl_8027607C:
+/* 8027607C 00271CDC 38 03 03 00 */ addi r0, r3, 0x300
+/* 80276080 00271CE0 7C 04 00 00 */ cmpw r4, r0
+/* 80276084 00271CE4 41 82 00 84 */ beq lbl_80276108
+/* 80276088 00271CE8 40 80 00 50 */ bge lbl_802760D8
+/* 8027608C 00271CEC 38 03 02 00 */ addi r0, r3, 0x200
+/* 80276090 00271CF0 7C 04 00 00 */ cmpw r4, r0
+/* 80276094 00271CF4 41 82 00 74 */ beq lbl_80276108
+/* 80276098 00271CF8 48 00 00 40 */ b lbl_802760D8
+lbl_8027609C:
+/* 8027609C 00271CFC 3C 00 04 13 */ lis r0, 0x413
+/* 802760A0 00271D00 7C 04 00 00 */ cmpw r4, r0
+/* 802760A4 00271D04 41 82 00 64 */ beq lbl_80276108
+/* 802760A8 00271D08 40 80 00 24 */ bge lbl_802760CC
+/* 802760AC 00271D0C 3C 00 04 12 */ lis r0, 0x412
+/* 802760B0 00271D10 7C 04 00 00 */ cmpw r4, r0
+/* 802760B4 00271D14 41 82 00 54 */ beq lbl_80276108
+/* 802760B8 00271D18 40 80 00 20 */ bge lbl_802760D8
+/* 802760BC 00271D1C 3C 00 04 06 */ lis r0, 0x406
+/* 802760C0 00271D20 7C 04 00 00 */ cmpw r4, r0
+/* 802760C4 00271D24 41 82 00 44 */ beq lbl_80276108
+/* 802760C8 00271D28 48 00 00 10 */ b lbl_802760D8
+lbl_802760CC:
+/* 802760CC 00271D2C 3C 00 04 22 */ lis r0, 0x422
+/* 802760D0 00271D30 7C 04 00 00 */ cmpw r4, r0
+/* 802760D4 00271D34 41 82 00 34 */ beq lbl_80276108
+lbl_802760D8:
+/* 802760D8 00271D38 7F C3 F3 78 */ mr r3, r30
+/* 802760DC 00271D3C 7F E4 FB 78 */ mr r4, r31
+/* 802760E0 00271D40 38 A1 00 08 */ addi r5, r1, 8
+/* 802760E4 00271D44 4B FF FD 09 */ bl ProbeBarnacle
+/* 802760E8 00271D48 2C 03 00 00 */ cmpwi r3, 0
+/* 802760EC 00271D4C 41 82 00 1C */ beq lbl_80276108
+/* 802760F0 00271D50 3C 60 A5 FF */ lis r3, 0xA5FF005A@ha
+/* 802760F4 00271D54 93 CD A8 9C */ stw r30, lbl_8063FB5C-_SDA_BASE_(r13)
+/* 802760F8 00271D58 38 03 00 5A */ addi r0, r3, 0xA5FF005A@l
+/* 802760FC 00271D5C 93 ED A8 98 */ stw r31, lbl_8063FB58-_SDA_BASE_(r13)
+/* 80276100 00271D60 90 0D A8 94 */ stw r0, lbl_8063FB54-_SDA_BASE_(r13)
+/* 80276104 00271D64 90 0D A8 90 */ stw r0, lbl_8063FB50-_SDA_BASE_(r13)
+lbl_80276108:
+/* 80276108 00271D68 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027610C 00271D6C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80276110 00271D70 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80276114 00271D74 7C 08 03 A6 */ mtlr r0
+/* 80276118 00271D78 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027611C 00271D7C 4E 80 00 20 */ blr
diff --git a/asm/SDK/HBM/HBMBase.s b/asm/SDK/HBM/HBMBase.s index 30c1e56..49789c3 100644 --- a/asm/SDK/HBM/HBMBase.s +++ b/asm/SDK/HBM/HBMBase.s @@ -3807,8 +3807,8 @@ lbl_8039D658: /* 8039D658 003992B8 38 00 00 11 */ li r0, 0x11
/* 8039D65C 003992BC 38 60 00 01 */ li r3, 1
/* 8039D660 003992C0 90 1D 00 10 */ stw r0, 0x10(r29)
-/* 8039D664 003992C4 4B ED C1 C5 */ bl func_80279828
-/* 8039D668 003992C8 4B ED C0 41 */ bl func_802796A8
+/* 8039D664 003992C4 4B ED C1 C5 */ bl VISetBlack
+/* 8039D668 003992C8 4B ED C0 41 */ bl VIFlush
/* 8039D66C 003992CC 80 1D 00 B0 */ lwz r0, 0xb0(r29)
/* 8039D670 003992D0 2C 00 00 03 */ cmpwi r0, 3
/* 8039D674 003992D4 41 82 01 18 */ beq lbl_8039D78C
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s index 94499e4..859182a 100644 --- a/asm/SDK/OS/OS.s +++ b/asm/SDK/OS/OS.s @@ -935,8 +935,8 @@ lbl_8026905C: /* 80269070 00264CD0 48 00 57 5D */ bl __OSInterruptInit /* 80269074 00264CD4 48 00 23 E1 */ bl __OSContextInit /* 80269078 00264CD8 48 00 1A 65 */ bl __OSCacheInit -/* 8026907C 00264CDC 48 00 C6 05 */ bl func_80275680 -/* 80269080 00264CE0 48 00 D9 0D */ bl func_8027698C +/* 8026907C 00264CDC 48 00 C6 05 */ bl EXIInit +/* 80269080 00264CE0 48 00 D9 0D */ bl SIInit /* 80269084 00264CE4 48 00 74 91 */ bl __OSInitSram /* 80269088 00264CE8 48 00 7F DD */ bl __OSThreadInit /* 8026908C 00264CEC 48 00 12 F5 */ bl __OSInitAudioSystem @@ -1077,7 +1077,7 @@ OSExceptionInit: /* 80269270 00264ED0 40 82 00 4C */ bne lbl_802692BC /* 80269274 00264ED4 38 7E 03 54 */ addi r3, r30, 0x354 /* 80269278 00264ED8 4C C6 31 82 */ crclr 6 -/* 8026927C 00264EDC 48 00 E1 CD */ bl func_80277448 +/* 8026927C 00264EDC 48 00 E1 CD */ bl DBPrintf /* 80269280 00264EE0 3C 80 80 27 */ lis r4, __OSDBIntegrator@ha /* 80269284 00264EE4 3C A0 80 27 */ lis r5, __OSDBJump@ha /* 80269288 00264EE8 38 84 94 AC */ addi r4, r4, __OSDBIntegrator@l @@ -1111,25 +1111,25 @@ lbl_802692E0: /* 802692F0 00264F50 28 00 00 02 */ cmplwi r0, 2 /* 802692F4 00264F54 41 80 00 28 */ blt lbl_8026931C /* 802692F8 00264F58 57 A3 06 3E */ clrlwi r3, r29, 0x18 -/* 802692FC 00264F5C 48 00 E1 35 */ bl func_80277430 +/* 802692FC 00264F5C 48 00 E1 35 */ bl __DBIsExceptionMarked /* 80269300 00264F60 2C 03 00 00 */ cmpwi r3, 0 /* 80269304 00264F64 41 82 00 18 */ beq lbl_8026931C /* 80269308 00264F68 38 7E 03 70 */ addi r3, r30, 0x370 /* 8026930C 00264F6C 57 A4 06 3E */ clrlwi r4, r29, 0x18 /* 80269310 00264F70 4C C6 31 82 */ crclr 6 -/* 80269314 00264F74 48 00 E1 35 */ bl func_80277448 +/* 80269314 00264F74 48 00 E1 35 */ bl DBPrintf /* 80269318 00264F78 48 00 00 D8 */ b lbl_802693F0 lbl_8026931C: /* 8026931C 00264F7C 57 A3 06 3E */ clrlwi r3, r29, 0x18 /* 80269320 00264F80 7F 60 1B 78 */ or r0, r27, r3 /* 80269324 00264F84 90 1C 00 00 */ stw r0, 0(r28) -/* 80269328 00264F88 48 00 E1 09 */ bl func_80277430 +/* 80269328 00264F88 48 00 E1 09 */ bl __DBIsExceptionMarked /* 8026932C 00264F8C 2C 03 00 00 */ cmpwi r3, 0 /* 80269330 00264F90 41 82 00 28 */ beq lbl_80269358 /* 80269334 00264F94 38 7E 03 A0 */ addi r3, r30, 0x3a0 /* 80269338 00264F98 57 A4 06 3E */ clrlwi r4, r29, 0x18 /* 8026933C 00264F9C 4C C6 31 82 */ crclr 6 -/* 80269340 00264FA0 48 00 E1 09 */ bl func_80277448 +/* 80269340 00264FA0 48 00 E1 09 */ bl DBPrintf /* 80269344 00264FA4 7E A5 AB 78 */ mr r5, r21 /* 80269348 00264FA8 38 76 95 50 */ addi r3, r22, -27312 /* 8026934C 00264FAC 38 9F 94 D0 */ addi r4, r31, -27440 @@ -1219,7 +1219,7 @@ lbl_802693F0: /* 80269484 002650E4 90 A4 00 38 */ stw r5, 0x38(r4) /* 80269488 002650E8 93 7C 00 00 */ stw r27, 0(r28) /* 8026948C 002650EC 4C C6 31 82 */ crclr 6 -/* 80269490 002650F0 48 00 DF B9 */ bl func_80277448 +/* 80269490 002650F0 48 00 DF B9 */ bl DBPrintf /* 80269494 002650F4 39 61 00 40 */ addi r11, r1, 0x40 /* 80269498 002650F8 4B F5 DC C1 */ bl _restgpr_20 /* 8026949C 002650FC 80 01 00 44 */ lwz r0, 0x44(r1) diff --git a/asm/SDK/OS/OSCache.s b/asm/SDK/OS/OSCache.s index f06183c..b5a4b76 100644 --- a/asm/SDK/OS/OSCache.s +++ b/asm/SDK/OS/OSCache.s @@ -394,7 +394,7 @@ __OSCacheInit: /* 8026AB04 00266764 4B FF FC 79 */ bl ICEnable /* 8026AB08 00266768 38 7F 01 B4 */ addi r3, r31, 0x1b4 /* 8026AB0C 0026676C 4C C6 31 82 */ crclr 6 -/* 8026AB10 00266770 48 00 C9 39 */ bl func_80277448 +/* 8026AB10 00266770 48 00 C9 39 */ bl DBPrintf lbl_8026AB14: /* 8026AB14 00266774 4B FF D7 25 */ bl PPCMfhid0 /* 8026AB18 00266778 54 60 04 63 */ rlwinm. r0, r3, 0, 0x11, 0x11 @@ -402,7 +402,7 @@ lbl_8026AB14: /* 8026AB20 00266780 4B FF FA F5 */ bl DCEnable /* 8026AB24 00266784 38 7F 01 D0 */ addi r3, r31, 0x1d0 /* 8026AB28 00266788 4C C6 31 82 */ crclr 6 -/* 8026AB2C 0026678C 48 00 C9 1D */ bl func_80277448 +/* 8026AB2C 0026678C 48 00 C9 1D */ bl DBPrintf lbl_8026AB30: /* 8026AB30 00266790 4B FF D7 19 */ bl PPCMfl2cr /* 8026AB34 00266794 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 @@ -437,7 +437,7 @@ lbl_8026AB88: lbl_8026ABA4: /* 8026ABA4 00266804 38 7F 00 00 */ addi r3, r31, 0 /* 8026ABA8 00266808 4C C6 31 82 */ crclr 6 -/* 8026ABAC 0026680C 48 00 C8 9D */ bl func_80277448 +/* 8026ABAC 0026680C 48 00 C8 9D */ bl DBPrintf lbl_8026ABB0: /* 8026ABB0 00266810 4B FF D6 99 */ bl PPCMfl2cr /* 8026ABB4 00266814 54 60 07 FF */ clrlwi. r0, r3, 0x1f @@ -450,7 +450,7 @@ lbl_8026ABB0: /* 8026ABD0 00266830 4B FF D6 81 */ bl PPCMtl2cr /* 8026ABD4 00266834 38 7F 01 EC */ addi r3, r31, 0x1ec /* 8026ABD8 00266838 4C C6 31 82 */ crclr 6 -/* 8026ABDC 0026683C 48 00 C8 6D */ bl func_80277448 +/* 8026ABDC 0026683C 48 00 C8 6D */ bl DBPrintf lbl_8026ABE0: /* 8026ABE0 00266840 3C 80 80 27 */ lis r4, DMAErrorHandler@ha /* 8026ABE4 00266844 38 60 00 01 */ li r3, 1 @@ -458,7 +458,7 @@ lbl_8026ABE0: /* 8026ABEC 0026684C 48 00 09 DD */ bl OSSetErrorHandler /* 8026ABF0 00266850 38 7F 02 04 */ addi r3, r31, 0x204 /* 8026ABF4 00266854 4C C6 31 82 */ crclr 6 -/* 8026ABF8 00266858 48 00 C8 51 */ bl func_80277448 +/* 8026ABF8 00266858 48 00 C8 51 */ bl DBPrintf /* 8026ABFC 0026685C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8026AC00 00266860 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8026AC04 00266864 83 C1 00 08 */ lwz r30, 8(r1) diff --git a/asm/SDK/OS/OSContext.s b/asm/SDK/OS/OSContext.s index 5279d5a..6d1f3e7 100644 --- a/asm/SDK/OS/OSContext.s +++ b/asm/SDK/OS/OSContext.s @@ -606,7 +606,7 @@ __OSContextInit: /* 8026B47C 002670DC 90 04 00 D8 */ stw r0, 0x800000D8@l(r4) /* 8026B480 002670E0 38 63 6E 50 */ addi r3, r3, lbl_80426E50@l /* 8026B484 002670E4 4C C6 31 82 */ crclr 6 -/* 8026B488 002670E8 48 00 BF C1 */ bl func_80277448 +/* 8026B488 002670E8 48 00 BF C1 */ bl DBPrintf /* 8026B48C 002670EC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8026B490 002670F0 7C 08 03 A6 */ mtlr r0 /* 8026B494 002670F4 38 21 00 10 */ addi r1, r1, 0x10 diff --git a/asm/SDK/OS/OSFatal.s b/asm/SDK/OS/OSFatal.s index 9423b85..48724b9 100644 --- a/asm/SDK/OS/OSFatal.s +++ b/asm/SDK/OS/OSFatal.s @@ -231,7 +231,7 @@ ConfigureVideo: /* 8026D1B8 00268E18 B0 A1 00 12 */ sth r5, 0x12(r1)
/* 8026D1BC 00268E1C B0 01 00 16 */ sth r0, 0x16(r1)
/* 8026D1C0 00268E20 B0 81 00 18 */ sth r4, 0x18(r1)
-/* 8026D1C4 00268E24 48 00 C8 11 */ bl func_802799D4
+/* 8026D1C4 00268E24 48 00 C8 11 */ bl VIGetTvFormat
/* 8026D1C8 00268E28 2C 03 00 02 */ cmpwi r3, 2
/* 8026D1CC 00268E2C 41 82 00 24 */ beq lbl_8026D1F0
/* 8026D1D0 00268E30 40 80 00 14 */ bge lbl_8026D1E4
@@ -278,12 +278,12 @@ lbl_8026D24C: /* 8026D260 00268EC0 90 01 00 1C */ stw r0, 0x1c(r1)
lbl_8026D264:
/* 8026D264 00268EC4 38 61 00 08 */ addi r3, r1, 8
-/* 8026D268 00268EC8 48 00 B9 59 */ bl func_80278BC0
+/* 8026D268 00268EC8 48 00 B9 59 */ bl VIConfigure
/* 8026D26C 00268ECC 38 60 00 00 */ li r3, 0
/* 8026D270 00268ED0 38 80 00 00 */ li r4, 0
/* 8026D274 00268ED4 38 A0 02 80 */ li r5, 0x280
/* 8026D278 00268ED8 38 C0 01 E0 */ li r6, 0x1e0
-/* 8026D27C 00268EDC 48 00 C0 D9 */ bl func_80279354
+/* 8026D27C 00268EDC 48 00 C0 D9 */ bl VIConfigurePan
/* 8026D280 00268EE0 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8026D284 00268EE4 7C 08 03 A6 */ mtlr r0
/* 8026D288 00268EE8 38 21 00 50 */ addi r1, r1, 0x50
@@ -307,21 +307,21 @@ OSFatal: /* 8026D2C4 00268F24 38 78 44 A0 */ addi r3, r24, 0x44a0
/* 8026D2C8 00268F28 4B FF DB A1 */ bl OSSetCurrentContext
/* 8026D2CC 00268F2C 4B FF D2 7D */ bl __OSStopAudioSystem
-/* 8026D2D0 00268F30 48 00 AF 0D */ bl func_802781DC
+/* 8026D2D0 00268F30 48 00 AF 0D */ bl VIInit
/* 8026D2D4 00268F34 38 60 00 80 */ li r3, 0x80
/* 8026D2D8 00268F38 48 00 18 95 */ bl __OSUnmaskInterrupts
/* 8026D2DC 00268F3C 38 60 00 01 */ li r3, 1
-/* 8026D2E0 00268F40 48 00 C5 49 */ bl func_80279828
-/* 8026D2E4 00268F44 48 00 C3 C5 */ bl func_802796A8
+/* 8026D2E0 00268F40 48 00 C5 49 */ bl VISetBlack
+/* 8026D2E4 00268F44 48 00 C3 C5 */ bl VIFlush
/* 8026D2E8 00268F48 38 60 00 00 */ li r3, 0
-/* 8026D2EC 00268F4C 48 00 AB 51 */ bl func_80277E3C
+/* 8026D2EC 00268F4C 48 00 AB 51 */ bl VISetPreRetraceCallback
/* 8026D2F0 00268F50 38 60 00 00 */ li r3, 0
-/* 8026D2F4 00268F54 48 00 AB 8D */ bl func_80277E80
+/* 8026D2F4 00268F54 48 00 AB 8D */ bl VISetPostRetraceCallback
/* 8026D2F8 00268F58 48 00 14 79 */ bl OSEnableInterrupts
-/* 8026D2FC 00268F5C 48 00 C5 A5 */ bl func_802798A0
+/* 8026D2FC 00268F5C 48 00 C5 A5 */ bl VIGetRetraceCount
/* 8026D300 00268F60 7C 78 1B 78 */ mr r24, r3
lbl_8026D304:
-/* 8026D304 00268F64 48 00 C5 9D */ bl func_802798A0
+/* 8026D304 00268F64 48 00 C5 9D */ bl VIGetRetraceCount
/* 8026D308 00268F68 7C 18 18 50 */ subf r0, r24, r3
/* 8026D30C 00268F6C 2C 00 00 01 */ cmpwi r0, 1
/* 8026D310 00268F70 41 80 FF F4 */ blt lbl_8026D304
@@ -360,27 +360,27 @@ lbl_8026D380: /* 8026D38C 00268FEC 48 00 29 8D */ bl __OSCallShutdownFunctions
/* 8026D390 00268FF0 38 60 00 00 */ li r3, 0
/* 8026D394 00268FF4 38 80 00 00 */ li r4, 0
-/* 8026D398 00268FF8 48 00 79 45 */ bl func_80274CDC
+/* 8026D398 00268FF8 48 00 79 45 */ bl EXISetExiCallback
/* 8026D39C 00268FFC 38 60 00 02 */ li r3, 2
/* 8026D3A0 00269000 38 80 00 00 */ li r4, 0
-/* 8026D3A4 00269004 48 00 79 39 */ bl func_80274CDC
+/* 8026D3A4 00269004 48 00 79 39 */ bl EXISetExiCallback
/* 8026D3A8 00269008 48 00 00 1C */ b lbl_8026D3C4
lbl_8026D3AC:
/* 8026D3AC 0026900C 38 60 00 00 */ li r3, 0
-/* 8026D3B0 00269010 48 00 76 B1 */ bl func_80274A60
+/* 8026D3B0 00269010 48 00 76 B1 */ bl EXISync
/* 8026D3B4 00269014 38 60 00 00 */ li r3, 0
-/* 8026D3B8 00269018 48 00 7E 29 */ bl func_802751E0
+/* 8026D3B8 00269018 48 00 7E 29 */ bl EXIDeselect
/* 8026D3BC 0026901C 38 60 00 00 */ li r3, 0
-/* 8026D3C0 00269020 48 00 85 81 */ bl func_80275940
+/* 8026D3C0 00269020 48 00 85 81 */ bl EXIUnlock
lbl_8026D3C4:
/* 8026D3C4 00269024 38 60 00 00 */ li r3, 0
/* 8026D3C8 00269028 38 80 00 01 */ li r4, 1
/* 8026D3CC 0026902C 38 A0 00 00 */ li r5, 0
-/* 8026D3D0 00269030 48 00 84 75 */ bl func_80275844
+/* 8026D3D0 00269030 48 00 84 75 */ bl EXILock
/* 8026D3D4 00269034 2C 03 00 00 */ cmpwi r3, 0
/* 8026D3D8 00269038 41 82 FF D4 */ beq lbl_8026D3AC
/* 8026D3DC 0026903C 38 60 00 00 */ li r3, 0
-/* 8026D3E0 00269040 48 00 85 61 */ bl func_80275940
+/* 8026D3E0 00269040 48 00 85 61 */ bl EXIUnlock
/* 8026D3E4 00269044 3C 60 CD 00 */ lis r3, 0xCD00680C@ha
lbl_8026D3E8:
/* 8026D3E8 00269048 80 03 68 0C */ lwz r0, 0xCD00680C@l(r3)
@@ -667,15 +667,15 @@ lbl_8026D704: /* 8026D810 00269470 2C 05 01 E0 */ cmpwi r5, 0x1e0
/* 8026D814 00269474 41 80 FE EC */ blt lbl_8026D700
/* 8026D818 00269478 7F C3 F3 78 */ mr r3, r30
-/* 8026D81C 0026947C 48 00 BF A1 */ bl func_802797BC
+/* 8026D81C 0026947C 48 00 BF A1 */ bl VISetNextFrameBuffer
/* 8026D820 00269480 38 60 02 80 */ li r3, 0x280
/* 8026D824 00269484 38 80 01 E0 */ li r4, 0x1e0
/* 8026D828 00269488 4B FF F9 6D */ bl ConfigureVideo
-/* 8026D82C 0026948C 48 00 BE 7D */ bl func_802796A8
-/* 8026D830 00269490 48 00 C0 71 */ bl func_802798A0
+/* 8026D82C 0026948C 48 00 BE 7D */ bl VIFlush
+/* 8026D830 00269490 48 00 C0 71 */ bl VIGetRetraceCount
/* 8026D834 00269494 7C 7C 1B 78 */ mr r28, r3
lbl_8026D838:
-/* 8026D838 00269498 48 00 C0 69 */ bl func_802798A0
+/* 8026D838 00269498 48 00 C0 69 */ bl VIGetRetraceCount
/* 8026D83C 0026949C 7C 1C 18 50 */ subf r0, r28, r3
/* 8026D840 002694A0 2C 00 00 02 */ cmpwi r0, 2
/* 8026D844 002694A4 41 80 FF F4 */ blt lbl_8026D838
@@ -814,12 +814,12 @@ lbl_8026D9E4: /* 8026DA30 00269690 38 84 60 00 */ addi r4, r4, 0x00096000@l
/* 8026DA34 00269694 4B FF CC 21 */ bl DCFlushRange
/* 8026DA38 00269698 38 60 00 00 */ li r3, 0
-/* 8026DA3C 0026969C 48 00 BD ED */ bl func_80279828
-/* 8026DA40 002696A0 48 00 BC 69 */ bl func_802796A8
-/* 8026DA44 002696A4 48 00 BE 5D */ bl func_802798A0
+/* 8026DA3C 0026969C 48 00 BD ED */ bl VISetBlack
+/* 8026DA40 002696A0 48 00 BC 69 */ bl VIFlush
+/* 8026DA44 002696A4 48 00 BE 5D */ bl VIGetRetraceCount
/* 8026DA48 002696A8 7C 7E 1B 78 */ mr r30, r3
lbl_8026DA4C:
-/* 8026DA4C 002696AC 48 00 BE 55 */ bl func_802798A0
+/* 8026DA4C 002696AC 48 00 BE 55 */ bl VIGetRetraceCount
/* 8026DA50 002696B0 7C 1E 18 50 */ subf r0, r30, r3
/* 8026DA54 002696B4 2C 00 00 01 */ cmpwi r0, 1
/* 8026DA58 002696B8 41 80 FF F4 */ blt lbl_8026DA4C
diff --git a/asm/SDK/OS/OSMemory.s b/asm/SDK/OS/OSMemory.s index 0ab90cb..093bbf5 100644 --- a/asm/SDK/OS/OSMemory.s +++ b/asm/SDK/OS/OSMemory.s @@ -26,7 +26,6 @@ OSGetConsoleSimulatedMem2Size: /* 8026F124 0026AD84 80 63 31 1C */ lwz r3, 0x8000311C@l(r3)
/* 8026F128 0026AD88 4E 80 00 20 */ blr
-.global OnShutdown
OnShutdown:
/* 8026F12C 0026AD8C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8026F130 0026AD90 7C 08 02 A6 */ mflr r0
diff --git a/asm/SDK/OS/OSReset.s b/asm/SDK/OS/OSReset.s index 1c45e21..35ae487 100644 --- a/asm/SDK/OS/OSReset.s +++ b/asm/SDK/OS/OSReset.s @@ -483,7 +483,7 @@ lbl_802702C4: /* 802702E4 0026BF44 48 00 10 9D */ bl OSEnableScheduler
/* 802702E8 0026BF48 4B FF BF 45 */ bl __OSLaunchMenu
/* 802702EC 0026BF4C 48 00 10 59 */ bl OSDisableScheduler
-/* 802702F0 0026BF50 48 00 B7 C9 */ bl func_8027BAB8
+/* 802702F0 0026BF50 48 00 B7 C9 */ bl __VISetRGBModeImm
/* 802702F4 0026BF54 48 00 31 91 */ bl __OSHotReset
/* 802702F8 0026BF58 3C 60 80 42 */ lis r3, lbl_80427D18@ha
/* 802702FC 0026BF5C 3C A0 80 42 */ lis r5, lbl_80427D24@ha
@@ -513,7 +513,7 @@ __OSReturnToMenuForError: /* 80270350 0026BFB0 48 00 3B B5 */ bl __OSWriteStateFlags
/* 80270354 0026BFB4 4B FF BE D9 */ bl __OSLaunchMenu
/* 80270358 0026BFB8 48 00 0F ED */ bl OSDisableScheduler
-/* 8027035C 0026BFBC 48 00 B7 5D */ bl func_8027BAB8
+/* 8027035C 0026BFBC 48 00 B7 5D */ bl __VISetRGBModeImm
/* 80270360 0026BFC0 48 00 31 25 */ bl __OSHotReset
/* 80270364 0026BFC4 3C 60 80 42 */ lis r3, lbl_80427D18@ha
/* 80270368 0026BFC8 3C A0 80 42 */ lis r5, lbl_80427D54@ha
diff --git a/asm/SDK/OS/OSRtc.s b/asm/SDK/OS/OSRtc.s index 276030f..bbcc2f8 100644 --- a/asm/SDK/OS/OSRtc.s +++ b/asm/SDK/OS/OSRtc.s @@ -19,7 +19,7 @@ WriteSramCallback: /* 8027040C 0026C06C 83 E6 00 40 */ lwz r31, 0x40(r6)
/* 80270410 0026C070 23 BF 00 40 */ subfic r29, r31, 0x40
/* 80270414 0026C074 7F C6 FA 14 */ add r30, r6, r31
-/* 80270418 0026C078 48 00 54 2D */ bl func_80275844
+/* 80270418 0026C078 48 00 54 2D */ bl EXILock
/* 8027041C 0026C07C 2C 03 00 00 */ cmpwi r3, 0
/* 80270420 0026C080 40 82 00 0C */ bne lbl_8027042C
/* 80270424 0026C084 38 00 00 00 */ li r0, 0
@@ -28,11 +28,11 @@ lbl_8027042C: /* 8027042C 0026C08C 38 60 00 00 */ li r3, 0
/* 80270430 0026C090 38 80 00 01 */ li r4, 1
/* 80270434 0026C094 38 A0 00 03 */ li r5, 3
-/* 80270438 0026C098 48 00 4C 79 */ bl func_802750B0
+/* 80270438 0026C098 48 00 4C 79 */ bl EXISelect
/* 8027043C 0026C09C 2C 03 00 00 */ cmpwi r3, 0
/* 80270440 0026C0A0 40 82 00 14 */ bne lbl_80270454
/* 80270444 0026C0A4 38 60 00 00 */ li r3, 0
-/* 80270448 0026C0A8 48 00 54 F9 */ bl func_80275940
+/* 80270448 0026C0A8 48 00 54 F9 */ bl EXIUnlock
/* 8027044C 0026C0AC 38 00 00 00 */ li r0, 0
/* 80270450 0026C0B0 48 00 00 8C */ b lbl_802704DC
lbl_80270454:
@@ -45,11 +45,11 @@ lbl_80270454: /* 8027046C 0026C0CC 90 01 00 08 */ stw r0, 8(r1)
/* 80270470 0026C0D0 38 C0 00 01 */ li r6, 1
/* 80270474 0026C0D4 38 E0 00 00 */ li r7, 0
-/* 80270478 0026C0D8 48 00 41 D1 */ bl func_80274648
+/* 80270478 0026C0D8 48 00 41 D1 */ bl EXIImm
/* 8027047C 0026C0DC 7C 60 00 34 */ cntlzw r0, r3
/* 80270480 0026C0E0 38 60 00 00 */ li r3, 0
/* 80270484 0026C0E4 54 1F D9 7E */ srwi r31, r0, 5
-/* 80270488 0026C0E8 48 00 45 D9 */ bl func_80274A60
+/* 80270488 0026C0E8 48 00 45 D9 */ bl EXISync
/* 8027048C 0026C0EC 7C 60 00 34 */ cntlzw r0, r3
/* 80270490 0026C0F0 7F C4 F3 78 */ mr r4, r30
/* 80270494 0026C0F4 54 00 D9 7E */ srwi r0, r0, 5
@@ -57,17 +57,17 @@ lbl_80270454: /* 8027049C 0026C0FC 7F FD 03 78 */ or r29, r31, r0
/* 802704A0 0026C100 38 60 00 00 */ li r3, 0
/* 802704A4 0026C104 38 C0 00 01 */ li r6, 1
-/* 802704A8 0026C108 48 00 44 1D */ bl func_802748C4
+/* 802704A8 0026C108 48 00 44 1D */ bl EXIImmEx
/* 802704AC 0026C10C 7C 60 00 34 */ cntlzw r0, r3
/* 802704B0 0026C110 38 60 00 00 */ li r3, 0
/* 802704B4 0026C114 54 00 D9 7E */ srwi r0, r0, 5
/* 802704B8 0026C118 7F BD 03 78 */ or r29, r29, r0
-/* 802704BC 0026C11C 48 00 4D 25 */ bl func_802751E0
+/* 802704BC 0026C11C 48 00 4D 25 */ bl EXIDeselect
/* 802704C0 0026C120 7C 60 00 34 */ cntlzw r0, r3
/* 802704C4 0026C124 38 60 00 00 */ li r3, 0
/* 802704C8 0026C128 54 00 D9 7E */ srwi r0, r0, 5
/* 802704CC 0026C12C 7F BD 03 78 */ or r29, r29, r0
-/* 802704D0 0026C130 48 00 54 71 */ bl func_80275940
+/* 802704D0 0026C130 48 00 54 71 */ bl EXIUnlock
/* 802704D4 0026C134 7F A0 00 34 */ cntlzw r0, r29
/* 802704D8 0026C138 54 00 D9 7E */ srwi r0, r0, 5
lbl_802704DC:
@@ -105,7 +105,7 @@ __OSInitSram: /* 80270548 0026C1A8 38 60 00 00 */ li r3, 0
/* 8027054C 0026C1AC 38 80 00 01 */ li r4, 1
/* 80270550 0026C1B0 38 A0 00 00 */ li r5, 0
-/* 80270554 0026C1B4 48 00 52 F1 */ bl func_80275844
+/* 80270554 0026C1B4 48 00 52 F1 */ bl EXILock
/* 80270558 0026C1B8 2C 03 00 00 */ cmpwi r3, 0
/* 8027055C 0026C1BC 40 82 00 0C */ bne lbl_80270568
/* 80270560 0026C1C0 38 60 00 00 */ li r3, 0
@@ -114,11 +114,11 @@ lbl_80270568: /* 80270568 0026C1C8 38 60 00 00 */ li r3, 0
/* 8027056C 0026C1CC 38 80 00 01 */ li r4, 1
/* 80270570 0026C1D0 38 A0 00 03 */ li r5, 3
-/* 80270574 0026C1D4 48 00 4B 3D */ bl func_802750B0
+/* 80270574 0026C1D4 48 00 4B 3D */ bl EXISelect
/* 80270578 0026C1D8 2C 03 00 00 */ cmpwi r3, 0
/* 8027057C 0026C1DC 40 82 00 14 */ bne lbl_80270590
/* 80270580 0026C1E0 38 60 00 00 */ li r3, 0
-/* 80270584 0026C1E4 48 00 53 BD */ bl func_80275940
+/* 80270584 0026C1E4 48 00 53 BD */ bl EXIUnlock
/* 80270588 0026C1E8 38 60 00 00 */ li r3, 0
/* 8027058C 0026C1EC 48 00 00 A0 */ b lbl_8027062C
lbl_80270590:
@@ -130,11 +130,11 @@ lbl_80270590: /* 802705A4 0026C204 38 60 00 00 */ li r3, 0
/* 802705A8 0026C208 38 C0 00 01 */ li r6, 1
/* 802705AC 0026C20C 38 E0 00 00 */ li r7, 0
-/* 802705B0 0026C210 48 00 40 99 */ bl func_80274648
+/* 802705B0 0026C210 48 00 40 99 */ bl EXIImm
/* 802705B4 0026C214 7C 60 00 34 */ cntlzw r0, r3
/* 802705B8 0026C218 38 60 00 00 */ li r3, 0
/* 802705BC 0026C21C 54 1F D9 7E */ srwi r31, r0, 5
-/* 802705C0 0026C220 48 00 44 A1 */ bl func_80274A60
+/* 802705C0 0026C220 48 00 44 A1 */ bl EXISync
/* 802705C4 0026C224 7C 60 00 34 */ cntlzw r0, r3
/* 802705C8 0026C228 7F C4 F3 78 */ mr r4, r30
/* 802705CC 0026C22C 54 00 D9 7E */ srwi r0, r0, 5
@@ -143,22 +143,22 @@ lbl_80270590: /* 802705D8 0026C238 38 A0 00 40 */ li r5, 0x40
/* 802705DC 0026C23C 38 C0 00 00 */ li r6, 0
/* 802705E0 0026C240 38 E0 00 00 */ li r7, 0
-/* 802705E4 0026C244 48 00 43 85 */ bl func_80274968
+/* 802705E4 0026C244 48 00 43 85 */ bl EXIDma
/* 802705E8 0026C248 7C 60 00 34 */ cntlzw r0, r3
/* 802705EC 0026C24C 38 60 00 00 */ li r3, 0
/* 802705F0 0026C250 54 00 D9 7E */ srwi r0, r0, 5
/* 802705F4 0026C254 7F DE 03 78 */ or r30, r30, r0
-/* 802705F8 0026C258 48 00 44 69 */ bl func_80274A60
+/* 802705F8 0026C258 48 00 44 69 */ bl EXISync
/* 802705FC 0026C25C 7C 60 00 34 */ cntlzw r0, r3
/* 80270600 0026C260 38 60 00 00 */ li r3, 0
/* 80270604 0026C264 54 00 D9 7E */ srwi r0, r0, 5
/* 80270608 0026C268 7F DE 03 78 */ or r30, r30, r0
-/* 8027060C 0026C26C 48 00 4B D5 */ bl func_802751E0
+/* 8027060C 0026C26C 48 00 4B D5 */ bl EXIDeselect
/* 80270610 0026C270 7C 60 00 34 */ cntlzw r0, r3
/* 80270614 0026C274 38 60 00 00 */ li r3, 0
/* 80270618 0026C278 54 00 D9 7E */ srwi r0, r0, 5
/* 8027061C 0026C27C 7F DE 03 78 */ or r30, r30, r0
-/* 80270620 0026C280 48 00 53 21 */ bl func_80275940
+/* 80270620 0026C280 48 00 53 21 */ bl EXIUnlock
/* 80270624 0026C284 7F C0 00 34 */ cntlzw r0, r30
/* 80270628 0026C288 54 03 D9 7E */ srwi r3, r0, 5
lbl_8027062C:
@@ -353,7 +353,7 @@ lbl_802708B8: /* 802708D0 0026C530 38 80 00 01 */ li r4, 1
/* 802708D4 0026C534 23 BF 00 40 */ subfic r29, r31, 0x40
/* 802708D8 0026C538 7F C6 FA 14 */ add r30, r6, r31
-/* 802708DC 0026C53C 48 00 4F 69 */ bl func_80275844
+/* 802708DC 0026C53C 48 00 4F 69 */ bl EXILock
/* 802708E0 0026C540 2C 03 00 00 */ cmpwi r3, 0
/* 802708E4 0026C544 40 82 00 0C */ bne lbl_802708F0
/* 802708E8 0026C548 38 00 00 00 */ li r0, 0
@@ -362,11 +362,11 @@ lbl_802708F0: /* 802708F0 0026C550 38 60 00 00 */ li r3, 0
/* 802708F4 0026C554 38 80 00 01 */ li r4, 1
/* 802708F8 0026C558 38 A0 00 03 */ li r5, 3
-/* 802708FC 0026C55C 48 00 47 B5 */ bl func_802750B0
+/* 802708FC 0026C55C 48 00 47 B5 */ bl EXISelect
/* 80270900 0026C560 2C 03 00 00 */ cmpwi r3, 0
/* 80270904 0026C564 40 82 00 14 */ bne lbl_80270918
/* 80270908 0026C568 38 60 00 00 */ li r3, 0
-/* 8027090C 0026C56C 48 00 50 35 */ bl func_80275940
+/* 8027090C 0026C56C 48 00 50 35 */ bl EXIUnlock
/* 80270910 0026C570 38 00 00 00 */ li r0, 0
/* 80270914 0026C574 48 00 00 8C */ b lbl_802709A0
lbl_80270918:
@@ -379,11 +379,11 @@ lbl_80270918: /* 80270930 0026C590 90 01 00 08 */ stw r0, 8(r1)
/* 80270934 0026C594 38 C0 00 01 */ li r6, 1
/* 80270938 0026C598 38 E0 00 00 */ li r7, 0
-/* 8027093C 0026C59C 48 00 3D 0D */ bl func_80274648
+/* 8027093C 0026C59C 48 00 3D 0D */ bl EXIImm
/* 80270940 0026C5A0 7C 60 00 34 */ cntlzw r0, r3
/* 80270944 0026C5A4 38 60 00 00 */ li r3, 0
/* 80270948 0026C5A8 54 1F D9 7E */ srwi r31, r0, 5
-/* 8027094C 0026C5AC 48 00 41 15 */ bl func_80274A60
+/* 8027094C 0026C5AC 48 00 41 15 */ bl EXISync
/* 80270950 0026C5B0 7C 60 00 34 */ cntlzw r0, r3
/* 80270954 0026C5B4 7F C4 F3 78 */ mr r4, r30
/* 80270958 0026C5B8 54 00 D9 7E */ srwi r0, r0, 5
@@ -391,17 +391,17 @@ lbl_80270918: /* 80270960 0026C5C0 7F FD 03 78 */ or r29, r31, r0
/* 80270964 0026C5C4 38 60 00 00 */ li r3, 0
/* 80270968 0026C5C8 38 C0 00 01 */ li r6, 1
-/* 8027096C 0026C5CC 48 00 3F 59 */ bl func_802748C4
+/* 8027096C 0026C5CC 48 00 3F 59 */ bl EXIImmEx
/* 80270970 0026C5D0 7C 60 00 34 */ cntlzw r0, r3
/* 80270974 0026C5D4 38 60 00 00 */ li r3, 0
/* 80270978 0026C5D8 54 00 D9 7E */ srwi r0, r0, 5
/* 8027097C 0026C5DC 7F BD 03 78 */ or r29, r29, r0
-/* 80270980 0026C5E0 48 00 48 61 */ bl func_802751E0
+/* 80270980 0026C5E0 48 00 48 61 */ bl EXIDeselect
/* 80270984 0026C5E4 7C 60 00 34 */ cntlzw r0, r3
/* 80270988 0026C5E8 38 60 00 00 */ li r3, 0
/* 8027098C 0026C5EC 54 00 D9 7E */ srwi r0, r0, 5
/* 80270990 0026C5F0 7F BD 03 78 */ or r29, r29, r0
-/* 80270994 0026C5F4 48 00 4F AD */ bl func_80275940
+/* 80270994 0026C5F4 48 00 4F AD */ bl EXIUnlock
/* 80270998 0026C5F8 7F A0 00 34 */ cntlzw r0, r29
/* 8027099C 0026C5FC 54 00 D9 7E */ srwi r0, r0, 5
lbl_802709A0:
@@ -450,7 +450,7 @@ __OSReadROM: /* 80270A2C 0026C68C 38 60 00 00 */ li r3, 0
/* 80270A30 0026C690 38 80 00 01 */ li r4, 1
/* 80270A34 0026C694 38 A0 00 00 */ li r5, 0
-/* 80270A38 0026C698 48 00 4E 0D */ bl func_80275844
+/* 80270A38 0026C698 48 00 4E 0D */ bl EXILock
/* 80270A3C 0026C69C 2C 03 00 00 */ cmpwi r3, 0
/* 80270A40 0026C6A0 40 82 00 0C */ bne lbl_80270A4C
/* 80270A44 0026C6A4 38 60 00 00 */ li r3, 0
@@ -459,11 +459,11 @@ lbl_80270A4C: /* 80270A4C 0026C6AC 38 60 00 00 */ li r3, 0
/* 80270A50 0026C6B0 38 80 00 01 */ li r4, 1
/* 80270A54 0026C6B4 38 A0 00 03 */ li r5, 3
-/* 80270A58 0026C6B8 48 00 46 59 */ bl func_802750B0
+/* 80270A58 0026C6B8 48 00 46 59 */ bl EXISelect
/* 80270A5C 0026C6BC 2C 03 00 00 */ cmpwi r3, 0
/* 80270A60 0026C6C0 40 82 00 14 */ bne lbl_80270A74
/* 80270A64 0026C6C4 38 60 00 00 */ li r3, 0
-/* 80270A68 0026C6C8 48 00 4E D9 */ bl func_80275940
+/* 80270A68 0026C6C8 48 00 4E D9 */ bl EXIUnlock
/* 80270A6C 0026C6CC 38 60 00 00 */ li r3, 0
/* 80270A70 0026C6D0 48 00 00 9C */ b lbl_80270B0C
lbl_80270A74:
@@ -474,11 +474,11 @@ lbl_80270A74: /* 80270A84 0026C6E4 38 A0 00 04 */ li r5, 4
/* 80270A88 0026C6E8 38 C0 00 01 */ li r6, 1
/* 80270A8C 0026C6EC 38 E0 00 00 */ li r7, 0
-/* 80270A90 0026C6F0 48 00 3B B9 */ bl func_80274648
+/* 80270A90 0026C6F0 48 00 3B B9 */ bl EXIImm
/* 80270A94 0026C6F4 7C 60 00 34 */ cntlzw r0, r3
/* 80270A98 0026C6F8 38 60 00 00 */ li r3, 0
/* 80270A9C 0026C6FC 54 1F D9 7E */ srwi r31, r0, 5
-/* 80270AA0 0026C700 48 00 3F C1 */ bl func_80274A60
+/* 80270AA0 0026C700 48 00 3F C1 */ bl EXISync
/* 80270AA4 0026C704 7C 60 00 34 */ cntlzw r0, r3
/* 80270AA8 0026C708 7F A4 EB 78 */ mr r4, r29
/* 80270AAC 0026C70C 54 00 D9 7E */ srwi r0, r0, 5
@@ -487,22 +487,22 @@ lbl_80270A74: /* 80270AB8 0026C718 38 60 00 00 */ li r3, 0
/* 80270ABC 0026C71C 38 C0 00 00 */ li r6, 0
/* 80270AC0 0026C720 38 E0 00 00 */ li r7, 0
-/* 80270AC4 0026C724 48 00 3E A5 */ bl func_80274968
+/* 80270AC4 0026C724 48 00 3E A5 */ bl EXIDma
/* 80270AC8 0026C728 7C 60 00 34 */ cntlzw r0, r3
/* 80270ACC 0026C72C 38 60 00 00 */ li r3, 0
/* 80270AD0 0026C730 54 00 D9 7E */ srwi r0, r0, 5
/* 80270AD4 0026C734 7F FF 03 78 */ or r31, r31, r0
-/* 80270AD8 0026C738 48 00 3F 89 */ bl func_80274A60
+/* 80270AD8 0026C738 48 00 3F 89 */ bl EXISync
/* 80270ADC 0026C73C 7C 60 00 34 */ cntlzw r0, r3
/* 80270AE0 0026C740 38 60 00 00 */ li r3, 0
/* 80270AE4 0026C744 54 00 D9 7E */ srwi r0, r0, 5
/* 80270AE8 0026C748 7F FF 03 78 */ or r31, r31, r0
-/* 80270AEC 0026C74C 48 00 46 F5 */ bl func_802751E0
+/* 80270AEC 0026C74C 48 00 46 F5 */ bl EXIDeselect
/* 80270AF0 0026C750 7C 60 00 34 */ cntlzw r0, r3
/* 80270AF4 0026C754 38 60 00 00 */ li r3, 0
/* 80270AF8 0026C758 54 00 D9 7E */ srwi r0, r0, 5
/* 80270AFC 0026C75C 7F FF 03 78 */ or r31, r31, r0
-/* 80270B00 0026C760 48 00 4E 41 */ bl func_80275940
+/* 80270B00 0026C760 48 00 4E 41 */ bl EXIUnlock
/* 80270B04 0026C764 7F E0 00 34 */ cntlzw r0, r31
/* 80270B08 0026C768 54 03 D9 7E */ srwi r3, r0, 5
lbl_80270B0C:
@@ -606,7 +606,7 @@ __OSGetRTCFlags: /* 80270C54 0026C8B4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80270C58 0026C8B8 7C 7E 1B 78 */ mr r30, r3
/* 80270C5C 0026C8BC 38 60 00 00 */ li r3, 0
-/* 80270C60 0026C8C0 48 00 4B E5 */ bl func_80275844
+/* 80270C60 0026C8C0 48 00 4B E5 */ bl EXILock
/* 80270C64 0026C8C4 2C 03 00 00 */ cmpwi r3, 0
/* 80270C68 0026C8C8 40 82 00 0C */ bne lbl_80270C74
/* 80270C6C 0026C8CC 38 60 00 00 */ li r3, 0
@@ -615,11 +615,11 @@ lbl_80270C74: /* 80270C74 0026C8D4 38 60 00 00 */ li r3, 0
/* 80270C78 0026C8D8 38 80 00 01 */ li r4, 1
/* 80270C7C 0026C8DC 38 A0 00 03 */ li r5, 3
-/* 80270C80 0026C8E0 48 00 44 31 */ bl func_802750B0
+/* 80270C80 0026C8E0 48 00 44 31 */ bl EXISelect
/* 80270C84 0026C8E4 2C 03 00 00 */ cmpwi r3, 0
/* 80270C88 0026C8E8 40 82 00 14 */ bne lbl_80270C9C
/* 80270C8C 0026C8EC 38 60 00 00 */ li r3, 0
-/* 80270C90 0026C8F0 48 00 4C B1 */ bl func_80275940
+/* 80270C90 0026C8F0 48 00 4C B1 */ bl EXIUnlock
/* 80270C94 0026C8F4 38 60 00 00 */ li r3, 0
/* 80270C98 0026C8F8 48 00 00 A8 */ b lbl_80270D40
lbl_80270C9C:
@@ -631,11 +631,11 @@ lbl_80270C9C: /* 80270CB0 0026C910 38 60 00 00 */ li r3, 0
/* 80270CB4 0026C914 38 C0 00 01 */ li r6, 1
/* 80270CB8 0026C918 38 E0 00 00 */ li r7, 0
-/* 80270CBC 0026C91C 48 00 39 8D */ bl func_80274648
+/* 80270CBC 0026C91C 48 00 39 8D */ bl EXIImm
/* 80270CC0 0026C920 7C 60 00 34 */ cntlzw r0, r3
/* 80270CC4 0026C924 38 60 00 00 */ li r3, 0
/* 80270CC8 0026C928 54 1F D9 7E */ srwi r31, r0, 5
-/* 80270CCC 0026C92C 48 00 3D 95 */ bl func_80274A60
+/* 80270CCC 0026C92C 48 00 3D 95 */ bl EXISync
/* 80270CD0 0026C930 7C 60 00 34 */ cntlzw r0, r3
/* 80270CD4 0026C934 38 81 00 08 */ addi r4, r1, 8
/* 80270CD8 0026C938 54 00 D9 7E */ srwi r0, r0, 5
@@ -644,22 +644,22 @@ lbl_80270C9C: /* 80270CE4 0026C944 38 A0 00 04 */ li r5, 4
/* 80270CE8 0026C948 38 C0 00 00 */ li r6, 0
/* 80270CEC 0026C94C 38 E0 00 00 */ li r7, 0
-/* 80270CF0 0026C950 48 00 39 59 */ bl func_80274648
+/* 80270CF0 0026C950 48 00 39 59 */ bl EXIImm
/* 80270CF4 0026C954 7C 60 00 34 */ cntlzw r0, r3
/* 80270CF8 0026C958 38 60 00 00 */ li r3, 0
/* 80270CFC 0026C95C 54 00 D9 7E */ srwi r0, r0, 5
/* 80270D00 0026C960 7F FF 03 78 */ or r31, r31, r0
-/* 80270D04 0026C964 48 00 3D 5D */ bl func_80274A60
+/* 80270D04 0026C964 48 00 3D 5D */ bl EXISync
/* 80270D08 0026C968 7C 60 00 34 */ cntlzw r0, r3
/* 80270D0C 0026C96C 38 60 00 00 */ li r3, 0
/* 80270D10 0026C970 54 00 D9 7E */ srwi r0, r0, 5
/* 80270D14 0026C974 7F FF 03 78 */ or r31, r31, r0
-/* 80270D18 0026C978 48 00 44 C9 */ bl func_802751E0
+/* 80270D18 0026C978 48 00 44 C9 */ bl EXIDeselect
/* 80270D1C 0026C97C 7C 60 00 34 */ cntlzw r0, r3
/* 80270D20 0026C980 38 60 00 00 */ li r3, 0
/* 80270D24 0026C984 54 00 D9 7E */ srwi r0, r0, 5
/* 80270D28 0026C988 7F FF 03 78 */ or r31, r31, r0
-/* 80270D2C 0026C98C 48 00 4C 15 */ bl func_80275940
+/* 80270D2C 0026C98C 48 00 4C 15 */ bl EXIUnlock
/* 80270D30 0026C990 80 81 00 08 */ lwz r4, 8(r1)
/* 80270D34 0026C994 7F E0 00 34 */ cntlzw r0, r31
/* 80270D38 0026C998 54 03 D9 7E */ srwi r3, r0, 5
@@ -683,7 +683,7 @@ __OSClearRTCFlags: /* 80270D70 0026C9D0 38 A0 00 00 */ li r5, 0
/* 80270D74 0026C9D4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80270D78 0026C9D8 90 01 00 08 */ stw r0, 8(r1)
-/* 80270D7C 0026C9DC 48 00 4A C9 */ bl func_80275844
+/* 80270D7C 0026C9DC 48 00 4A C9 */ bl EXILock
/* 80270D80 0026C9E0 2C 03 00 00 */ cmpwi r3, 0
/* 80270D84 0026C9E4 40 82 00 0C */ bne lbl_80270D90
/* 80270D88 0026C9E8 38 60 00 00 */ li r3, 0
@@ -692,11 +692,11 @@ lbl_80270D90: /* 80270D90 0026C9F0 38 60 00 00 */ li r3, 0
/* 80270D94 0026C9F4 38 80 00 01 */ li r4, 1
/* 80270D98 0026C9F8 38 A0 00 03 */ li r5, 3
-/* 80270D9C 0026C9FC 48 00 43 15 */ bl func_802750B0
+/* 80270D9C 0026C9FC 48 00 43 15 */ bl EXISelect
/* 80270DA0 0026CA00 2C 03 00 00 */ cmpwi r3, 0
/* 80270DA4 0026CA04 40 82 00 14 */ bne lbl_80270DB8
/* 80270DA8 0026CA08 38 60 00 00 */ li r3, 0
-/* 80270DAC 0026CA0C 48 00 4B 95 */ bl func_80275940
+/* 80270DAC 0026CA0C 48 00 4B 95 */ bl EXIUnlock
/* 80270DB0 0026CA10 38 60 00 00 */ li r3, 0
/* 80270DB4 0026CA14 48 00 00 A0 */ b lbl_80270E54
lbl_80270DB8:
@@ -708,11 +708,11 @@ lbl_80270DB8: /* 80270DCC 0026CA2C 38 60 00 00 */ li r3, 0
/* 80270DD0 0026CA30 38 C0 00 01 */ li r6, 1
/* 80270DD4 0026CA34 38 E0 00 00 */ li r7, 0
-/* 80270DD8 0026CA38 48 00 38 71 */ bl func_80274648
+/* 80270DD8 0026CA38 48 00 38 71 */ bl EXIImm
/* 80270DDC 0026CA3C 7C 60 00 34 */ cntlzw r0, r3
/* 80270DE0 0026CA40 38 60 00 00 */ li r3, 0
/* 80270DE4 0026CA44 54 1F D9 7E */ srwi r31, r0, 5
-/* 80270DE8 0026CA48 48 00 3C 79 */ bl func_80274A60
+/* 80270DE8 0026CA48 48 00 3C 79 */ bl EXISync
/* 80270DEC 0026CA4C 7C 60 00 34 */ cntlzw r0, r3
/* 80270DF0 0026CA50 38 81 00 08 */ addi r4, r1, 8
/* 80270DF4 0026CA54 54 00 D9 7E */ srwi r0, r0, 5
@@ -721,22 +721,22 @@ lbl_80270DB8: /* 80270E00 0026CA60 38 A0 00 04 */ li r5, 4
/* 80270E04 0026CA64 38 C0 00 01 */ li r6, 1
/* 80270E08 0026CA68 38 E0 00 00 */ li r7, 0
-/* 80270E0C 0026CA6C 48 00 38 3D */ bl func_80274648
+/* 80270E0C 0026CA6C 48 00 38 3D */ bl EXIImm
/* 80270E10 0026CA70 7C 60 00 34 */ cntlzw r0, r3
/* 80270E14 0026CA74 38 60 00 00 */ li r3, 0
/* 80270E18 0026CA78 54 00 D9 7E */ srwi r0, r0, 5
/* 80270E1C 0026CA7C 7F FF 03 78 */ or r31, r31, r0
-/* 80270E20 0026CA80 48 00 3C 41 */ bl func_80274A60
+/* 80270E20 0026CA80 48 00 3C 41 */ bl EXISync
/* 80270E24 0026CA84 7C 60 00 34 */ cntlzw r0, r3
/* 80270E28 0026CA88 38 60 00 00 */ li r3, 0
/* 80270E2C 0026CA8C 54 00 D9 7E */ srwi r0, r0, 5
/* 80270E30 0026CA90 7F FF 03 78 */ or r31, r31, r0
-/* 80270E34 0026CA94 48 00 43 AD */ bl func_802751E0
+/* 80270E34 0026CA94 48 00 43 AD */ bl EXIDeselect
/* 80270E38 0026CA98 7C 60 00 34 */ cntlzw r0, r3
/* 80270E3C 0026CA9C 38 60 00 00 */ li r3, 0
/* 80270E40 0026CAA0 54 00 D9 7E */ srwi r0, r0, 5
/* 80270E44 0026CAA4 7F FF 03 78 */ or r31, r31, r0
-/* 80270E48 0026CAA8 48 00 4A F9 */ bl func_80275940
+/* 80270E48 0026CAA8 48 00 4A F9 */ bl EXIUnlock
/* 80270E4C 0026CAAC 7F E0 00 34 */ cntlzw r0, r31
/* 80270E50 0026CAB0 54 03 D9 7E */ srwi r3, r0, 5
lbl_80270E54:
diff --git a/asm/SDK/SI/SIBios.s b/asm/SDK/SI/SIBios.s new file mode 100644 index 0000000..60b41dd --- /dev/null +++ b/asm/SDK/SI/SIBios.s @@ -0,0 +1,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
diff --git a/asm/SDK/SI/SISamplingRate.s b/asm/SDK/SI/SISamplingRate.s new file mode 100644 index 0000000..a265fe8 --- /dev/null +++ b/asm/SDK/SI/SISamplingRate.s @@ -0,0 +1,71 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global SISetSamplingRate
+SISetSamplingRate:
+/* 802772B4 00272F14 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802772B8 00272F18 7C 08 02 A6 */ mflr r0
+/* 802772BC 00272F1C 28 03 00 0B */ cmplwi r3, 0xb
+/* 802772C0 00272F20 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802772C4 00272F24 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802772C8 00272F28 3F E0 80 43 */ lis r31, lbl_80433FE0@ha
+/* 802772CC 00272F2C 3B FF 3F E0 */ addi r31, r31, lbl_80433FE0@l
+/* 802772D0 00272F30 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802772D4 00272F34 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802772D8 00272F38 7C 7D 1B 78 */ mr r29, r3
+/* 802772DC 00272F3C 40 81 00 08 */ ble lbl_802772E4
+/* 802772E0 00272F40 3B A0 00 0B */ li r29, 0xb
+lbl_802772E4:
+/* 802772E4 00272F44 4B FF 74 79 */ bl OSDisableInterrupts
+/* 802772E8 00272F48 93 AD A8 B0 */ stw r29, lbl_8063FB70-_SDA_BASE_(r13)
+/* 802772EC 00272F4C 7C 7E 1B 78 */ mr r30, r3
+/* 802772F0 00272F50 48 00 26 E5 */ bl VIGetTvFormat
+/* 802772F4 00272F54 2C 03 00 02 */ cmpwi r3, 2
+/* 802772F8 00272F58 41 82 00 24 */ beq lbl_8027731C
+/* 802772FC 00272F5C 40 80 00 14 */ bge lbl_80277310
+/* 80277300 00272F60 2C 03 00 00 */ cmpwi r3, 0
+/* 80277304 00272F64 41 82 00 18 */ beq lbl_8027731C
+/* 80277308 00272F68 40 80 00 1C */ bge lbl_80277324
+/* 8027730C 00272F6C 48 00 00 20 */ b lbl_8027732C
+lbl_80277310:
+/* 80277310 00272F70 2C 03 00 05 */ cmpwi r3, 5
+/* 80277314 00272F74 41 82 00 08 */ beq lbl_8027731C
+/* 80277318 00272F78 48 00 00 14 */ b lbl_8027732C
+lbl_8027731C:
+/* 8027731C 00272F7C 38 BF 00 00 */ addi r5, r31, 0
+/* 80277320 00272F80 48 00 00 20 */ b lbl_80277340
+lbl_80277324:
+/* 80277324 00272F84 38 BF 00 30 */ addi r5, r31, 0x30
+/* 80277328 00272F88 48 00 00 18 */ b lbl_80277340
+lbl_8027732C:
+/* 8027732C 00272F8C 38 7F 00 60 */ addi r3, r31, 0x60
+/* 80277330 00272F90 4C C6 31 82 */ crclr 6
+/* 80277334 00272F94 4B D9 07 91 */ bl func_80007AC4
+/* 80277338 00272F98 3B A0 00 00 */ li r29, 0
+/* 8027733C 00272F9C 38 BF 00 00 */ addi r5, r31, 0
+lbl_80277340:
+/* 80277340 00272FA0 3C 60 CC 00 */ lis r3, 0xCC00206C@ha
+/* 80277344 00272FA4 57 A0 10 3A */ slwi r0, r29, 2
+/* 80277348 00272FA8 A0 83 20 6C */ lhz r4, 0xCC00206C@l(r3)
+/* 8027734C 00272FAC 7C 65 02 14 */ add r3, r5, r0
+/* 80277350 00272FB0 7C 05 02 2E */ lhzx r0, r5, r0
+/* 80277354 00272FB4 54 85 07 FE */ clrlwi r5, r4, 0x1f
+/* 80277358 00272FB8 88 83 00 02 */ lbz r4, 2(r3)
+/* 8027735C 00272FBC 38 65 00 01 */ addi r3, r5, 1
+/* 80277360 00272FC0 7C 63 01 D6 */ mullw r3, r3, r0
+/* 80277364 00272FC4 4B FF F8 99 */ bl SISetXY
+/* 80277368 00272FC8 7F C3 F3 78 */ mr r3, r30
+/* 8027736C 00272FCC 4B FF 74 19 */ bl OSRestoreInterrupts
+/* 80277370 00272FD0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80277374 00272FD4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80277378 00272FD8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027737C 00272FDC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80277380 00272FE0 7C 08 03 A6 */ mtlr r0
+/* 80277384 00272FE4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80277388 00272FE8 4E 80 00 20 */ blr
+
+.global SIRefreshSamplingRate
+SIRefreshSamplingRate:
+/* 8027738C 00272FEC 80 6D A8 B0 */ lwz r3, lbl_8063FB70-_SDA_BASE_(r13)
+/* 80277390 00272FF0 4B FF FF 24 */ b SISetSamplingRate
diff --git a/asm/SDK/VI/i2c.s b/asm/SDK/VI/i2c.s new file mode 100644 index 0000000..fd45ac5 --- /dev/null +++ b/asm/SDK/VI/i2c.s @@ -0,0 +1,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
diff --git a/asm/SDK/VI/vi.s b/asm/SDK/VI/vi.s new file mode 100644 index 0000000..1e742b0 --- /dev/null +++ b/asm/SDK/VI/vi.s @@ -0,0 +1,2952 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +OnShutdown: +/* 80277498 002730F8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8027749C 002730FC 7C 08 02 A6 */ mflr r0 +/* 802774A0 00273100 90 01 00 24 */ stw r0, 0x24(r1) +/* 802774A4 00273104 39 61 00 20 */ addi r11, r1, 0x20 +/* 802774A8 00273108 4B F4 FC 81 */ bl _savegpr_27 +/* 802774AC 0027310C 2C 03 00 00 */ cmpwi r3, 0 +/* 802774B0 00273110 3F E0 80 51 */ lis r31, lbl_805157A0@ha +/* 802774B4 00273114 3B FF 57 A0 */ addi r31, r31, lbl_805157A0@l +/* 802774B8 00273118 40 82 01 58 */ bne lbl_80277610 +/* 802774BC 0027311C 2C 04 00 04 */ cmpwi r4, 4 +/* 802774C0 00273120 40 80 00 14 */ bge lbl_802774D4 +/* 802774C4 00273124 2C 04 00 00 */ cmpwi r4, 0 +/* 802774C8 00273128 41 82 01 40 */ beq lbl_80277608 +/* 802774CC 0027312C 40 80 00 14 */ bge lbl_802774E0 +/* 802774D0 00273130 48 00 01 44 */ b lbl_80277614 +lbl_802774D4: +/* 802774D4 00273134 2C 04 00 07 */ cmpwi r4, 7 +/* 802774D8 00273138 40 80 01 3C */ bge lbl_80277614 +/* 802774DC 0027313C 48 00 01 2C */ b lbl_80277608 +lbl_802774E0: +/* 802774E0 00273140 80 0D 88 0C */ lwz r0, lbl_8063DACC-_SDA_BASE_(r13) +/* 802774E4 00273144 2C 00 00 00 */ cmpwi r0, 0 +/* 802774E8 00273148 41 82 01 00 */ beq lbl_802775E8 +/* 802774EC 0027314C 48 00 45 BD */ bl VISetRGBModeImm +/* 802774F0 00273150 4B FF 72 6D */ bl OSDisableInterrupts +/* 802774F4 00273154 80 AD A9 00 */ lwz r5, lbl_8063FBC0-_SDA_BASE_(r13) +/* 802774F8 00273158 38 00 00 00 */ li r0, 0 +/* 802774FC 0027315C 80 8D A8 F0 */ lwz r4, lbl_8063FBB0-_SDA_BASE_(r13) +/* 80277500 00273160 7C 7E 1B 78 */ mr r30, r3 +/* 80277504 00273164 3B 9F 00 78 */ addi r28, r31, 0x78 +/* 80277508 00273168 3B BF 00 00 */ addi r29, r31, 0 +/* 8027750C 0027316C 7C A3 23 78 */ or r3, r5, r4 +/* 80277510 00273170 3B 60 FF FF */ li r27, -1 +/* 80277514 00273174 90 6D A9 00 */ stw r3, lbl_8063FBC0-_SDA_BASE_(r13) +/* 80277518 00273178 90 0D A8 F0 */ stw r0, lbl_8063FBB0-_SDA_BASE_(r13) +/* 8027751C 0027317C 80 8D A9 08 */ lwz r4, lbl_8063FBC8-_SDA_BASE_(r13) +/* 80277520 00273180 80 AD A9 0C */ lwz r5, lbl_8063FBCC-_SDA_BASE_(r13) +/* 80277524 00273184 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80277528 00273188 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027752C 0027318C 7C 80 03 78 */ or r0, r4, r0 +/* 80277530 00273190 7C A3 1B 78 */ or r3, r5, r3 +/* 80277534 00273194 90 6D A9 0C */ stw r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 80277538 00273198 90 0D A9 08 */ stw r0, lbl_8063FBC8-_SDA_BASE_(r13) +/* 8027753C 0027319C 48 00 00 64 */ b lbl_802775A0 +lbl_80277540: +/* 80277540 002731A0 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80277544 002731A4 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80277548 002731A8 7C 04 00 34 */ cntlzw r4, r0 +/* 8027754C 002731AC 2C 04 00 20 */ cmpwi r4, 0x20 +/* 80277550 002731B0 7C 60 D8 38 */ and r0, r3, r27 +/* 80277554 002731B4 40 80 00 08 */ bge lbl_8027755C +/* 80277558 002731B8 48 00 00 0C */ b lbl_80277564 +lbl_8027755C: +/* 8027755C 002731BC 7C 03 00 34 */ cntlzw r3, r0 +/* 80277560 002731C0 38 83 00 20 */ addi r4, r3, 0x20 +lbl_80277564: +/* 80277564 002731C4 54 86 08 3C */ slwi r6, r4, 1 +/* 80277568 002731C8 20 A4 00 3F */ subfic r5, r4, 0x3f +/* 8027756C 002731CC 7C 1C 32 2E */ lhzx r0, r28, r6 +/* 80277570 002731D0 38 80 00 01 */ li r4, 1 +/* 80277574 002731D4 38 60 00 00 */ li r3, 0 +/* 80277578 002731D8 7C 1D 33 2E */ sthx r0, r29, r6 +/* 8027757C 002731DC 4B F5 00 25 */ bl __shl2i +/* 80277580 002731E0 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80277584 002731E4 7C 65 18 F8 */ nor r5, r3, r3 +/* 80277588 002731E8 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027758C 002731EC 7C 84 20 F8 */ nor r4, r4, r4 +/* 80277590 002731F0 7C 00 28 38 */ and r0, r0, r5 +/* 80277594 002731F4 7C 63 20 38 */ and r3, r3, r4 +/* 80277598 002731F8 90 6D A8 FC */ stw r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027759C 002731FC 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +lbl_802775A0: +/* 802775A0 00273200 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802775A4 00273204 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802775A8 00273208 7C 60 03 79 */ or. r0, r3, r0 +/* 802775AC 0027320C 40 82 FF 94 */ bne lbl_80277540 +/* 802775B0 00273210 38 7F 00 F0 */ addi r3, r31, 0xf0 +/* 802775B4 00273214 38 80 00 01 */ li r4, 1 +/* 802775B8 00273218 80 03 00 30 */ lwz r0, 0x30(r3) +/* 802775BC 0027321C 7F C3 F3 78 */ mr r3, r30 +/* 802775C0 00273220 90 8D A9 68 */ stw r4, lbl_8063FC28-_SDA_BASE_(r13) +/* 802775C4 00273224 90 8D A9 64 */ stw r4, lbl_8063FC24-_SDA_BASE_(r13) +/* 802775C8 00273228 90 0D A9 2C */ stw r0, lbl_8063FBEC-_SDA_BASE_(r13) +/* 802775CC 0027322C 4B FF 71 B9 */ bl OSRestoreInterrupts +/* 802775D0 00273230 80 8D A9 6C */ lwz r4, lbl_8063FC2C-_SDA_BASE_(r13) +/* 802775D4 00273234 38 00 00 00 */ li r0, 0 +/* 802775D8 00273238 90 0D 88 0C */ stw r0, lbl_8063DACC-_SDA_BASE_(r13) +/* 802775DC 0027323C 38 60 00 00 */ li r3, 0 +/* 802775E0 00273240 90 8D A9 18 */ stw r4, lbl_8063FBD8-_SDA_BASE_(r13) +/* 802775E4 00273244 48 00 00 30 */ b lbl_80277614 +lbl_802775E8: +/* 802775E8 00273248 80 6D A9 18 */ lwz r3, lbl_8063FBD8-_SDA_BASE_(r13) +/* 802775EC 0027324C 80 0D A9 6C */ lwz r0, lbl_8063FC2C-_SDA_BASE_(r13) +/* 802775F0 00273250 7C 03 00 40 */ cmplw r3, r0 +/* 802775F4 00273254 40 82 00 0C */ bne lbl_80277600 +/* 802775F8 00273258 38 60 00 00 */ li r3, 0 +/* 802775FC 0027325C 48 00 00 18 */ b lbl_80277614 +lbl_80277600: +/* 80277600 00273260 38 60 00 01 */ li r3, 1 +/* 80277604 00273264 48 00 00 10 */ b lbl_80277614 +lbl_80277608: +/* 80277608 00273268 38 60 00 01 */ li r3, 1 +/* 8027760C 0027326C 48 00 00 08 */ b lbl_80277614 +lbl_80277610: +/* 80277610 00273270 38 60 00 01 */ li r3, 1 +lbl_80277614: +/* 80277614 00273274 39 61 00 20 */ addi r11, r1, 0x20 +/* 80277618 00273278 4B F4 FB 5D */ bl _restgpr_27 +/* 8027761C 0027327C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80277620 00273280 7C 08 03 A6 */ mtlr r0 +/* 80277624 00273284 38 21 00 20 */ addi r1, r1, 0x20 +/* 80277628 00273288 4E 80 00 20 */ blr + +.global __VIRetraceHandler +__VIRetraceHandler: +/* 8027762C 0027328C 94 21 FD 10 */ stwu r1, -0x2f0(r1) +/* 80277630 00273290 7C 08 02 A6 */ mflr r0 +/* 80277634 00273294 90 01 02 F4 */ stw r0, 0x2f4(r1) +/* 80277638 00273298 39 61 02 F0 */ addi r11, r1, 0x2f0 +/* 8027763C 0027329C 4B F4 FA E9 */ bl _savegpr_26 +/* 80277640 002732A0 3C A0 CC 00 */ lis r5, 0xCC002030@ha +/* 80277644 002732A4 3F C0 80 51 */ lis r30, lbl_805157A0@ha +/* 80277648 002732A8 A0 65 20 30 */ lhz r3, 0xCC002030@l(r5) +/* 8027764C 002732AC 7C 9C 23 78 */ mr r28, r4 +/* 80277650 002732B0 3B DE 57 A0 */ addi r30, r30, lbl_805157A0@l +/* 80277654 002732B4 38 C0 00 00 */ li r6, 0 +/* 80277658 002732B8 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 8027765C 002732BC 41 82 00 10 */ beq lbl_8027766C +/* 80277660 002732C0 54 60 04 7E */ clrlwi r0, r3, 0x11 +/* 80277664 002732C4 60 C6 00 01 */ ori r6, r6, 1 +/* 80277668 002732C8 B0 05 20 30 */ sth r0, 0x2030(r5) +lbl_8027766C: +/* 8027766C 002732CC 3C 80 CC 00 */ lis r4, 0xCC002034@ha +/* 80277670 002732D0 A0 64 20 34 */ lhz r3, 0xCC002034@l(r4) +/* 80277674 002732D4 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 80277678 002732D8 41 82 00 10 */ beq lbl_80277688 +/* 8027767C 002732DC 54 60 04 7E */ clrlwi r0, r3, 0x11 +/* 80277680 002732E0 60 C6 00 02 */ ori r6, r6, 2 +/* 80277684 002732E4 B0 04 20 34 */ sth r0, 0x2034(r4) +lbl_80277688: +/* 80277688 002732E8 3C 80 CC 00 */ lis r4, 0xCC002038@ha +/* 8027768C 002732EC A0 64 20 38 */ lhz r3, 0xCC002038@l(r4) +/* 80277690 002732F0 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 80277694 002732F4 41 82 00 10 */ beq lbl_802776A4 +/* 80277698 002732F8 54 60 04 7E */ clrlwi r0, r3, 0x11 +/* 8027769C 002732FC 60 C6 00 04 */ ori r6, r6, 4 +/* 802776A0 00273300 B0 04 20 38 */ sth r0, 0x2038(r4) +lbl_802776A4: +/* 802776A4 00273304 3C 80 CC 00 */ lis r4, 0xCC00203C@ha +/* 802776A8 00273308 A0 64 20 3C */ lhz r3, 0xCC00203C@l(r4) +/* 802776AC 0027330C 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 802776B0 00273310 41 82 00 10 */ beq lbl_802776C0 +/* 802776B4 00273314 54 60 04 7E */ clrlwi r0, r3, 0x11 +/* 802776B8 00273318 60 C6 00 08 */ ori r6, r6, 8 +/* 802776BC 0027331C B0 04 20 3C */ sth r0, 0x203c(r4) +lbl_802776C0: +/* 802776C0 00273320 54 C0 07 7B */ rlwinm. r0, r6, 0, 0x1d, 0x1d +/* 802776C4 00273324 3C 60 CC 00 */ lis r3, 0xCC00203C@ha +/* 802776C8 00273328 A0 03 20 3C */ lhz r0, 0xCC00203C@l(r3) +/* 802776CC 0027332C 40 82 00 0C */ bne lbl_802776D8 +/* 802776D0 00273330 54 C0 07 39 */ rlwinm. r0, r6, 0, 0x1c, 0x1c +/* 802776D4 00273334 41 82 00 7C */ beq lbl_80277750 +lbl_802776D8: +/* 802776D8 00273338 38 61 00 10 */ addi r3, r1, 0x10 +/* 802776DC 0027333C 4B FF 39 B5 */ bl OSClearContext +/* 802776E0 00273340 38 61 00 10 */ addi r3, r1, 0x10 +/* 802776E4 00273344 4B FF 37 85 */ bl OSSetCurrentContext +/* 802776E8 00273348 80 0D A8 E8 */ lwz r0, lbl_8063FBA8-_SDA_BASE_(r13) +/* 802776EC 0027334C 2C 00 00 00 */ cmpwi r0, 0 +/* 802776F0 00273350 41 82 00 4C */ beq lbl_8027773C +/* 802776F4 00273354 3C A0 CC 00 */ lis r5, 0xCC00202C@ha +/* 802776F8 00273358 A0 05 20 2C */ lhz r0, 0xCC00202C@l(r5) +/* 802776FC 0027335C 54 04 05 7E */ clrlwi r4, r0, 0x15 +lbl_80277700: +/* 80277700 00273360 A0 65 20 2E */ lhz r3, 0x202e(r5) +/* 80277704 00273364 7C 86 23 78 */ mr r6, r4 +/* 80277708 00273368 A0 05 20 2C */ lhz r0, 0x202c(r5) +/* 8027770C 0027336C 54 63 05 7E */ clrlwi r3, r3, 0x15 +/* 80277710 00273370 54 04 05 7E */ clrlwi r4, r0, 0x15 +/* 80277714 00273374 7C 06 20 40 */ cmplw r6, r4 +/* 80277718 00273378 40 82 FF E8 */ bne lbl_80277700 +/* 8027771C 0027337C 38 A1 00 0A */ addi r5, r1, 0xa +/* 80277720 00273380 38 C1 00 08 */ addi r6, r1, 8 +/* 80277724 00273384 48 00 23 AD */ bl __VIDisplayPositionToXY +/* 80277728 00273388 81 8D A8 E8 */ lwz r12, lbl_8063FBA8-_SDA_BASE_(r13) +/* 8027772C 0027338C A8 61 00 0A */ lha r3, 0xa(r1) +/* 80277730 00273390 A8 81 00 08 */ lha r4, 8(r1) +/* 80277734 00273394 7D 89 03 A6 */ mtctr r12 +/* 80277738 00273398 4E 80 04 21 */ bctrl +lbl_8027773C: +/* 8027773C 0027339C 38 61 00 10 */ addi r3, r1, 0x10 +/* 80277740 002733A0 4B FF 39 51 */ bl OSClearContext +/* 80277744 002733A4 7F 83 E3 78 */ mr r3, r28 +/* 80277748 002733A8 4B FF 37 21 */ bl OSSetCurrentContext +/* 8027774C 002733AC 48 00 06 D8 */ b lbl_80277E24 +lbl_80277750: +/* 80277750 002733B0 80 8D A9 6C */ lwz r4, lbl_8063FC2C-_SDA_BASE_(r13) +/* 80277754 002733B4 38 61 00 10 */ addi r3, r1, 0x10 +/* 80277758 002733B8 38 04 00 01 */ addi r0, r4, 1 +/* 8027775C 002733BC 90 0D A9 6C */ stw r0, lbl_8063FC2C-_SDA_BASE_(r13) +/* 80277760 002733C0 4B FF 39 31 */ bl OSClearContext +/* 80277764 002733C4 38 61 00 10 */ addi r3, r1, 0x10 +/* 80277768 002733C8 4B FF 37 01 */ bl OSSetCurrentContext +/* 8027776C 002733CC 81 8D A9 40 */ lwz r12, lbl_8063FC00-_SDA_BASE_(r13) +/* 80277770 002733D0 2C 0C 00 00 */ cmpwi r12, 0 +/* 80277774 002733D4 41 82 00 10 */ beq lbl_80277784 +/* 80277778 002733D8 80 6D A9 6C */ lwz r3, lbl_8063FC2C-_SDA_BASE_(r13) +/* 8027777C 002733DC 7D 89 03 A6 */ mtctr r12 +/* 80277780 002733E0 4E 80 04 21 */ bctrl +lbl_80277784: +/* 80277784 002733E4 80 0D A8 C8 */ lwz r0, lbl_8063FB88-_SDA_BASE_(r13) +/* 80277788 002733E8 2C 00 00 00 */ cmpwi r0, 0 +/* 8027778C 002733EC 41 82 00 54 */ beq lbl_802777E0 +/* 80277790 002733F0 3C 60 CC 00 */ lis r3, 0xCC00202C@ha +/* 80277794 002733F4 A0 03 20 2C */ lhz r0, 0xCC00202C@l(r3) +/* 80277798 002733F8 54 04 05 7E */ clrlwi r4, r0, 0x15 +lbl_8027779C: +/* 8027779C 002733FC A0 03 20 2E */ lhz r0, 0x202e(r3) +/* 802777A0 00273400 7C 85 23 78 */ mr r5, r4 +/* 802777A4 00273404 A0 03 20 2C */ lhz r0, 0x202c(r3) +/* 802777A8 00273408 54 04 05 7E */ clrlwi r4, r0, 0x15 +/* 802777AC 0027340C 7C 05 20 40 */ cmplw r5, r4 +/* 802777B0 00273410 40 82 FF EC */ bne lbl_8027779C +/* 802777B4 00273414 28 04 00 01 */ cmplwi r4, 1 +/* 802777B8 00273418 41 82 00 28 */ beq lbl_802777E0 +/* 802777BC 0027341C 80 6D A9 34 */ lwz r3, lbl_8063FBF4-_SDA_BASE_(r13) +/* 802777C0 00273420 A0 03 00 18 */ lhz r0, 0x18(r3) +/* 802777C4 00273424 54 03 F8 7E */ srwi r3, r0, 1 +/* 802777C8 00273428 38 03 00 01 */ addi r0, r3, 1 +/* 802777CC 0027342C 7C 04 00 40 */ cmplw r4, r0 +/* 802777D0 00273430 41 82 00 10 */ beq lbl_802777E0 +/* 802777D4 00273434 80 6D A8 C4 */ lwz r3, lbl_8063FB84-_SDA_BASE_(r13) +/* 802777D8 00273438 38 03 00 01 */ addi r0, r3, 1 +/* 802777DC 0027343C 90 0D A8 C4 */ stw r0, lbl_8063FB84-_SDA_BASE_(r13) +lbl_802777E0: +/* 802777E0 00273440 80 0D A9 68 */ lwz r0, lbl_8063FC28-_SDA_BASE_(r13) +/* 802777E4 00273444 2C 00 00 00 */ cmpwi r0, 0 +/* 802777E8 00273448 41 82 01 34 */ beq lbl_8027791C +/* 802777EC 0027344C 80 0D A9 00 */ lwz r0, lbl_8063FBC0-_SDA_BASE_(r13) +/* 802777F0 00273450 28 00 00 01 */ cmplwi r0, 1 +/* 802777F4 00273454 40 82 00 60 */ bne lbl_80277854 +/* 802777F8 00273458 3C 80 CC 00 */ lis r4, 0xCC00202C@ha +/* 802777FC 0027345C A0 04 20 2C */ lhz r0, 0xCC00202C@l(r4) +/* 80277800 00273460 54 07 05 7E */ clrlwi r7, r0, 0x15 +lbl_80277804: +/* 80277804 00273464 A0 64 20 2E */ lhz r3, 0x202e(r4) +/* 80277808 00273468 7C E6 3B 78 */ mr r6, r7 +/* 8027780C 0027346C A0 04 20 2C */ lhz r0, 0x202c(r4) +/* 80277810 00273470 54 65 05 7E */ clrlwi r5, r3, 0x15 +/* 80277814 00273474 54 07 05 7E */ clrlwi r7, r0, 0x15 +/* 80277818 00273478 7C 06 38 40 */ cmplw r6, r7 +/* 8027781C 0027347C 40 82 FF E8 */ bne lbl_80277804 +/* 80277820 00273480 80 CD A9 34 */ lwz r6, lbl_8063FBF4-_SDA_BASE_(r13) +/* 80277824 00273484 38 85 FF FF */ addi r4, r5, -1 +/* 80277828 00273488 38 67 FF FF */ addi r3, r7, -1 +/* 8027782C 0027348C A0 06 00 1A */ lhz r0, 0x1a(r6) +/* 80277830 00273490 54 65 08 3C */ slwi r5, r3, 1 +/* 80277834 00273494 A0 66 00 18 */ lhz r3, 0x18(r6) +/* 80277838 00273498 7C 04 03 96 */ divwu r0, r4, r0 +/* 8027783C 0027349C 7C 05 02 14 */ add r0, r5, r0 +/* 80277840 002734A0 7C 60 02 78 */ xor r0, r3, r0 +/* 80277844 002734A4 7C 00 00 34 */ cntlzw r0, r0 +/* 80277848 002734A8 7C 60 00 30 */ slw r0, r3, r0 +/* 8027784C 002734AC 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f +/* 80277850 002734B0 41 82 00 B4 */ beq lbl_80277904 +lbl_80277854: +/* 80277854 002734B4 3B 5E 00 00 */ addi r26, r30, 0 +/* 80277858 002734B8 3B E0 FF FF */ li r31, -1 +/* 8027785C 002734BC 3F 60 CC 00 */ lis r27, 0xcc00 +/* 80277860 002734C0 48 00 00 68 */ b lbl_802778C8 +lbl_80277864: +/* 80277864 002734C4 80 0D A9 08 */ lwz r0, lbl_8063FBC8-_SDA_BASE_(r13) +/* 80277868 002734C8 80 6D A9 0C */ lwz r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 8027786C 002734CC 7C 04 00 34 */ cntlzw r4, r0 +/* 80277870 002734D0 2C 04 00 20 */ cmpwi r4, 0x20 +/* 80277874 002734D4 7C 60 F8 38 */ and r0, r3, r31 +/* 80277878 002734D8 40 80 00 08 */ bge lbl_80277880 +/* 8027787C 002734DC 48 00 00 0C */ b lbl_80277888 +lbl_80277880: +/* 80277880 002734E0 7C 03 00 34 */ cntlzw r3, r0 +/* 80277884 002734E4 38 83 00 20 */ addi r4, r3, 0x20 +lbl_80277888: +/* 80277888 002734E8 54 83 08 3C */ slwi r3, r4, 1 +/* 8027788C 002734EC 20 A4 00 3F */ subfic r5, r4, 0x3f +/* 80277890 002734F0 7C 1A 1A 2E */ lhzx r0, r26, r3 +/* 80277894 002734F4 7C DB 1A 14 */ add r6, r27, r3 +/* 80277898 002734F8 38 80 00 01 */ li r4, 1 +/* 8027789C 002734FC 38 60 00 00 */ li r3, 0 +/* 802778A0 00273500 B0 06 20 00 */ sth r0, 0x2000(r6) +/* 802778A4 00273504 4B F4 FC FD */ bl __shl2i +/* 802778A8 00273508 80 0D A9 08 */ lwz r0, lbl_8063FBC8-_SDA_BASE_(r13) +/* 802778AC 0027350C 7C 65 18 F8 */ nor r5, r3, r3 +/* 802778B0 00273510 80 6D A9 0C */ lwz r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 802778B4 00273514 7C 84 20 F8 */ nor r4, r4, r4 +/* 802778B8 00273518 7C 00 28 38 */ and r0, r0, r5 +/* 802778BC 0027351C 7C 63 20 38 */ and r3, r3, r4 +/* 802778C0 00273520 90 6D A9 0C */ stw r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 802778C4 00273524 90 0D A9 08 */ stw r0, lbl_8063FBC8-_SDA_BASE_(r13) +lbl_802778C8: +/* 802778C8 00273528 80 0D A9 08 */ lwz r0, lbl_8063FBC8-_SDA_BASE_(r13) +/* 802778CC 0027352C 80 6D A9 0C */ lwz r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 802778D0 00273530 7C 60 03 79 */ or. r0, r3, r0 +/* 802778D4 00273534 40 82 FF 90 */ bne lbl_80277864 +/* 802778D8 00273538 38 7E 00 F0 */ addi r3, r30, 0xf0 +/* 802778DC 0027353C 80 0D A9 2C */ lwz r0, lbl_8063FBEC-_SDA_BASE_(r13) +/* 802778E0 00273540 80 83 00 54 */ lwz r4, 0x54(r3) +/* 802778E4 00273544 38 A0 00 00 */ li r5, 0 +/* 802778E8 00273548 80 63 00 28 */ lwz r3, 0x28(r3) +/* 802778EC 0027354C 38 C0 00 01 */ li r6, 1 +/* 802778F0 00273550 90 AD A9 00 */ stw r5, lbl_8063FBC0-_SDA_BASE_(r13) +/* 802778F4 00273554 90 8D A9 34 */ stw r4, lbl_8063FBF4-_SDA_BASE_(r13) +/* 802778F8 00273558 90 6D A9 30 */ stw r3, lbl_8063FBF0-_SDA_BASE_(r13) +/* 802778FC 0027355C 90 0D A9 28 */ stw r0, lbl_8063FBE8-_SDA_BASE_(r13) +/* 80277900 00273560 48 00 00 08 */ b lbl_80277908 +lbl_80277904: +/* 80277904 00273564 38 C0 00 00 */ li r6, 0 +lbl_80277908: +/* 80277908 00273568 2C 06 00 00 */ cmpwi r6, 0 +/* 8027790C 0027356C 41 82 00 10 */ beq lbl_8027791C +/* 80277910 00273570 38 00 00 00 */ li r0, 0 +/* 80277914 00273574 90 0D A9 68 */ stw r0, lbl_8063FC28-_SDA_BASE_(r13) +/* 80277918 00273578 4B FF FA 75 */ bl SIRefreshSamplingRate +lbl_8027791C: +/* 8027791C 0027357C 4B FF 6E 41 */ bl OSDisableInterrupts +/* 80277920 00273580 3C 80 CC 00 */ lis r4, 0xCC00206E@ha +/* 80277924 00273584 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4) +/* 80277928 00273588 54 1A 07 BE */ clrlwi r26, r0, 0x1e +/* 8027792C 0027358C 4B FF 6E 59 */ bl OSRestoreInterrupts +/* 80277930 00273590 80 0D 88 10 */ lwz r0, lbl_8063DAD0-_SDA_BASE_(r13) +/* 80277934 00273594 57 5A 07 FE */ clrlwi r26, r26, 0x1f +/* 80277938 00273598 7C 1A 00 40 */ cmplw r26, r0 +/* 8027793C 0027359C 41 82 00 0C */ beq lbl_80277948 +/* 80277940 002735A0 7F 43 D3 78 */ mr r3, r26 +/* 80277944 002735A4 48 00 2F 45 */ bl __VISetYUVSEL +lbl_80277948: +/* 80277948 002735A8 93 4D 88 10 */ stw r26, lbl_8063DAD0-_SDA_BASE_(r13) +/* 8027794C 002735AC 4B FF 6E 11 */ bl OSDisableInterrupts +/* 80277950 002735B0 80 AD A9 30 */ lwz r5, lbl_8063FBF0-_SDA_BASE_(r13) +/* 80277954 002735B4 28 05 00 07 */ cmplwi r5, 7 +/* 80277958 002735B8 41 81 00 30 */ bgt lbl_80277988 +/* 8027795C 002735BC 3C 80 80 43 */ lis r4, lbl_804342C0@ha +/* 80277960 002735C0 54 A0 10 3A */ slwi r0, r5, 2 +/* 80277964 002735C4 38 84 42 C0 */ addi r4, r4, lbl_804342C0@l +/* 80277968 002735C8 7C 84 00 2E */ lwzx r4, r4, r0 +/* 8027796C 002735CC 7C 89 03 A6 */ mtctr r4 +/* 80277970 002735D0 4E 80 04 20 */ bctr +/* 80277974 002735D4 3B A0 00 00 */ li r29, 0 +/* 80277978 002735D8 48 00 00 10 */ b lbl_80277988 +/* 8027797C 002735DC 3B A0 00 01 */ li r29, 1 +/* 80277980 002735E0 48 00 00 08 */ b lbl_80277988 +/* 80277984 002735E4 7C BD 2B 78 */ mr r29, r5 +lbl_80277988: +/* 80277988 002735E8 4B FF 6D FD */ bl OSRestoreInterrupts +/* 8027798C 002735EC 80 0D 88 14 */ lwz r0, lbl_8063DAD4-_SDA_BASE_(r13) +/* 80277990 002735F0 7C 1D 00 40 */ cmplw r29, r0 +/* 80277994 002735F4 41 82 00 D8 */ beq lbl_80277A6C +/* 80277998 002735F8 28 1D 00 05 */ cmplwi r29, 5 +/* 8027799C 002735FC 40 82 00 10 */ bne lbl_802779AC +/* 802779A0 00273600 38 60 00 01 */ li r3, 1 +/* 802779A4 00273604 48 00 2F 89 */ bl __VISetFilter4EURGB60 +/* 802779A8 00273608 48 00 00 0C */ b lbl_802779B4 +lbl_802779AC: +/* 802779AC 0027360C 38 60 00 00 */ li r3, 0 +/* 802779B0 00273610 48 00 2F 7D */ bl __VISetFilter4EURGB60 +lbl_802779B4: +/* 802779B4 00273614 2C 1D 00 01 */ cmpwi r29, 1 +/* 802779B8 00273618 41 82 00 08 */ beq lbl_802779C0 +/* 802779BC 0027361C 48 00 00 54 */ b lbl_80277A10 +lbl_802779C0: +/* 802779C0 00273620 80 0D A9 58 */ lwz r0, lbl_8063FC18-_SDA_BASE_(r13) +/* 802779C4 00273624 2C 00 00 02 */ cmpwi r0, 2 +/* 802779C8 00273628 41 82 00 20 */ beq lbl_802779E8 +/* 802779CC 0027362C 40 80 00 2C */ bge lbl_802779F8 +/* 802779D0 00273630 2C 00 00 01 */ cmpwi r0, 1 +/* 802779D4 00273634 40 80 00 08 */ bge lbl_802779DC +/* 802779D8 00273638 48 00 00 20 */ b lbl_802779F8 +lbl_802779DC: +/* 802779DC 0027363C 38 00 75 30 */ li r0, 0x7530 +/* 802779E0 00273640 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 802779E4 00273644 48 00 00 1C */ b lbl_80277A00 +lbl_802779E8: +/* 802779E8 00273648 3C 60 00 01 */ lis r3, 0x0000AFC8@ha +/* 802779EC 0027364C 38 03 AF C8 */ addi r0, r3, 0x0000AFC8@l +/* 802779F0 00273650 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 802779F4 00273654 48 00 00 0C */ b lbl_80277A00 +lbl_802779F8: +/* 802779F8 00273658 38 00 3A 98 */ li r0, 0x3a98 +/* 802779FC 0027365C 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +lbl_80277A00: +/* 80277A00 00273660 3C 60 00 01 */ lis r3, 0x00015F90@ha +/* 80277A04 00273664 38 03 5F 90 */ addi r0, r3, 0x00015F90@l +/* 80277A08 00273668 90 0D A8 D8 */ stw r0, lbl_8063FB98-_SDA_BASE_(r13) +/* 80277A0C 0027366C 48 00 00 54 */ b lbl_80277A60 +lbl_80277A10: +/* 80277A10 00273670 80 0D A9 58 */ lwz r0, lbl_8063FC18-_SDA_BASE_(r13) +/* 80277A14 00273674 2C 00 00 02 */ cmpwi r0, 2 +/* 80277A18 00273678 41 82 00 24 */ beq lbl_80277A3C +/* 80277A1C 0027367C 40 80 00 30 */ bge lbl_80277A4C +/* 80277A20 00273680 2C 00 00 01 */ cmpwi r0, 1 +/* 80277A24 00273684 40 80 00 08 */ bge lbl_80277A2C +/* 80277A28 00273688 48 00 00 24 */ b lbl_80277A4C +lbl_80277A2C: +/* 80277A2C 0027368C 3C 60 00 01 */ lis r3, 0x00008CA0@ha +/* 80277A30 00273690 38 03 8C A0 */ addi r0, r3, 0x00008CA0@l +/* 80277A34 00273694 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277A38 00273698 48 00 00 1C */ b lbl_80277A54 +lbl_80277A3C: +/* 80277A3C 0027369C 3C 60 00 01 */ lis r3, 0x0000D2F0@ha +/* 80277A40 002736A0 38 03 D2 F0 */ addi r0, r3, 0x0000D2F0@l +/* 80277A44 002736A4 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277A48 002736A8 48 00 00 0C */ b lbl_80277A54 +lbl_80277A4C: +/* 80277A4C 002736AC 38 00 46 50 */ li r0, 0x4650 +/* 80277A50 002736B0 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +lbl_80277A54: +/* 80277A54 002736B4 3C 60 00 02 */ lis r3, 0x0001A5E0@ha +/* 80277A58 002736B8 38 03 A5 E0 */ addi r0, r3, 0x0001A5E0@l +/* 80277A5C 002736BC 90 0D A8 D8 */ stw r0, lbl_8063FB98-_SDA_BASE_(r13) +lbl_80277A60: +/* 80277A60 002736C0 38 00 00 00 */ li r0, 0 +/* 80277A64 002736C4 90 0D A8 DC */ stw r0, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277A68 002736C8 90 0D A8 E0 */ stw r0, lbl_8063FBA0-_SDA_BASE_(r13) +lbl_80277A6C: +/* 80277A6C 002736CC 80 0D A9 64 */ lwz r0, lbl_8063FC24-_SDA_BASE_(r13) +/* 80277A70 002736D0 93 AD 88 14 */ stw r29, lbl_8063DAD4-_SDA_BASE_(r13) +/* 80277A74 002736D4 2C 00 00 00 */ cmpwi r0, 0 +/* 80277A78 002736D8 41 82 00 D8 */ beq lbl_80277B50 +/* 80277A7C 002736DC 3B A0 00 01 */ li r29, 1 +/* 80277A80 002736E0 48 00 00 BC */ b lbl_80277B3C +lbl_80277A84: +/* 80277A84 002736E4 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13) +/* 80277A88 002736E8 7C 00 00 34 */ cntlzw r0, r0 +/* 80277A8C 002736EC 20 00 00 1F */ subfic r0, r0, 0x1f +/* 80277A90 002736F0 7F BA 00 30 */ slw r26, r29, r0 +/* 80277A94 002736F4 2C 1A 00 10 */ cmpwi r26, 0x10 +/* 80277A98 002736F8 41 82 00 7C */ beq lbl_80277B14 +/* 80277A9C 002736FC 40 80 00 34 */ bge lbl_80277AD0 +/* 80277AA0 00273700 2C 1A 00 04 */ cmpwi r26, 4 +/* 80277AA4 00273704 41 82 00 60 */ beq lbl_80277B04 +/* 80277AA8 00273708 40 80 00 1C */ bge lbl_80277AC4 +/* 80277AAC 0027370C 2C 1A 00 02 */ cmpwi r26, 2 +/* 80277AB0 00273710 41 82 00 4C */ beq lbl_80277AFC +/* 80277AB4 00273714 40 80 00 7C */ bge lbl_80277B30 +/* 80277AB8 00273718 2C 1A 00 01 */ cmpwi r26, 1 +/* 80277ABC 0027371C 40 80 00 38 */ bge lbl_80277AF4 +/* 80277AC0 00273720 48 00 00 70 */ b lbl_80277B30 +lbl_80277AC4: +/* 80277AC4 00273724 2C 1A 00 08 */ cmpwi r26, 8 +/* 80277AC8 00273728 41 82 00 44 */ beq lbl_80277B0C +/* 80277ACC 0027372C 48 00 00 64 */ b lbl_80277B30 +lbl_80277AD0: +/* 80277AD0 00273730 2C 1A 00 40 */ cmpwi r26, 0x40 +/* 80277AD4 00273734 41 82 00 50 */ beq lbl_80277B24 +/* 80277AD8 00273738 40 80 00 10 */ bge lbl_80277AE8 +/* 80277ADC 0027373C 2C 1A 00 20 */ cmpwi r26, 0x20 +/* 80277AE0 00273740 41 82 00 3C */ beq lbl_80277B1C +/* 80277AE4 00273744 48 00 00 4C */ b lbl_80277B30 +lbl_80277AE8: +/* 80277AE8 00273748 2C 1A 00 80 */ cmpwi r26, 0x80 +/* 80277AEC 0027374C 41 82 00 40 */ beq lbl_80277B2C +/* 80277AF0 00273750 48 00 00 40 */ b lbl_80277B30 +lbl_80277AF4: +/* 80277AF4 00273754 48 00 2E 79 */ bl __VISetCGMS +/* 80277AF8 00273758 48 00 00 38 */ b lbl_80277B30 +lbl_80277AFC: +/* 80277AFC 0027375C 48 00 2E C9 */ bl __VISetWSS +/* 80277B00 00273760 48 00 00 30 */ b lbl_80277B30 +lbl_80277B04: +/* 80277B04 00273764 48 00 2F 25 */ bl __VISetClosedCaption +/* 80277B08 00273768 48 00 00 28 */ b lbl_80277B30 +lbl_80277B0C: +/* 80277B0C 0027376C 48 00 2F 89 */ bl __VISetMacrovision +/* 80277B10 00273770 48 00 00 20 */ b lbl_80277B30 +lbl_80277B14: +/* 80277B14 00273774 48 00 3E 9D */ bl __VISetGamma +/* 80277B18 00273778 48 00 00 18 */ b lbl_80277B30 +lbl_80277B1C: +/* 80277B1C 0027377C 48 00 3E AD */ bl __VISetTrapFilter +/* 80277B20 00273780 48 00 00 10 */ b lbl_80277B30 +lbl_80277B24: +/* 80277B24 00273784 48 00 3F 01 */ bl __VISetRGBOverDrive +/* 80277B28 00273788 48 00 00 08 */ b lbl_80277B30 +lbl_80277B2C: +/* 80277B2C 0027378C 48 00 3F 8D */ bl __VISetRGBModeImm +lbl_80277B30: +/* 80277B30 00273790 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13) +/* 80277B34 00273794 7C 00 D0 78 */ andc r0, r0, r26 +/* 80277B38 00273798 90 0D A9 78 */ stw r0, lbl_8063FC38-_SDA_BASE_(r13) +lbl_80277B3C: +/* 80277B3C 0027379C 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13) +/* 80277B40 002737A0 2C 00 00 00 */ cmpwi r0, 0 +/* 80277B44 002737A4 40 82 FF 40 */ bne lbl_80277A84 +/* 80277B48 002737A8 38 00 00 00 */ li r0, 0 +/* 80277B4C 002737AC 90 0D A9 64 */ stw r0, lbl_8063FC24-_SDA_BASE_(r13) +lbl_80277B50: +/* 80277B50 002737B0 80 0D A9 3C */ lwz r0, lbl_8063FBFC-_SDA_BASE_(r13) +/* 80277B54 002737B4 2C 00 00 00 */ cmpwi r0, 0 +/* 80277B58 002737B8 41 82 00 1C */ beq lbl_80277B74 +/* 80277B5C 002737BC 38 61 00 10 */ addi r3, r1, 0x10 +/* 80277B60 002737C0 4B FF 35 31 */ bl OSClearContext +/* 80277B64 002737C4 81 8D A9 3C */ lwz r12, lbl_8063FBFC-_SDA_BASE_(r13) +/* 80277B68 002737C8 80 6D A9 6C */ lwz r3, lbl_8063FC2C-_SDA_BASE_(r13) +/* 80277B6C 002737CC 7D 89 03 A6 */ mtctr r12 +/* 80277B70 002737D0 4E 80 04 21 */ bctrl +lbl_80277B74: +/* 80277B74 002737D4 38 6D A9 48 */ addi r3, r13, lbl_8063FC08-_SDA_BASE_ +/* 80277B78 002737D8 4B FF A8 E9 */ bl OSWakeupThread +/* 80277B7C 002737DC 38 61 00 10 */ addi r3, r1, 0x10 +/* 80277B80 002737E0 4B FF 35 11 */ bl OSClearContext +/* 80277B84 002737E4 7F 83 E3 78 */ mr r3, r28 +/* 80277B88 002737E8 4B FF 32 E1 */ bl OSSetCurrentContext +/* 80277B8C 002737EC 80 0D A8 CC */ lwz r0, lbl_8063FB8C-_SDA_BASE_(r13) +/* 80277B90 002737F0 2C 00 00 01 */ cmpwi r0, 1 +/* 80277B94 002737F4 40 82 00 28 */ bne lbl_80277BBC +/* 80277B98 002737F8 38 60 00 00 */ li r3, 0 +/* 80277B9C 002737FC 38 80 00 00 */ li r4, 0 +/* 80277BA0 00273800 38 A0 00 00 */ li r5, 0 +/* 80277BA4 00273804 4B FF B9 51 */ bl __OSSetVIForceDimming +/* 80277BA8 00273808 2C 03 00 01 */ cmpwi r3, 1 +/* 80277BAC 0027380C 40 82 00 10 */ bne lbl_80277BBC +/* 80277BB0 00273810 38 00 00 00 */ li r0, 0 +/* 80277BB4 00273814 90 0D A8 CC */ stw r0, lbl_8063FB8C-_SDA_BASE_(r13) +/* 80277BB8 00273818 90 0D A8 DC */ stw r0, lbl_8063FB9C-_SDA_BASE_(r13) +lbl_80277BBC: +/* 80277BBC 0027381C 38 00 00 0A */ li r0, 0xa +/* 80277BC0 00273820 38 7E 01 48 */ addi r3, r30, 0x148 +/* 80277BC4 00273824 7C 09 03 A6 */ mtctr r0 +lbl_80277BC8: +/* 80277BC8 00273828 80 03 00 00 */ lwz r0, 0(r3) +/* 80277BCC 0027382C 2C 00 00 00 */ cmpwi r0, 0 +/* 80277BD0 00273830 40 82 00 10 */ bne lbl_80277BE0 +/* 80277BD4 00273834 38 00 00 00 */ li r0, 0 +/* 80277BD8 00273838 90 1E 01 48 */ stw r0, 0x148(r30) +/* 80277BDC 0027383C 48 00 00 0C */ b lbl_80277BE8 +lbl_80277BE0: +/* 80277BE0 00273840 38 63 00 04 */ addi r3, r3, 4 +/* 80277BE4 00273844 42 00 FF E4 */ bdnz lbl_80277BC8 +lbl_80277BE8: +/* 80277BE8 00273848 80 0D A9 54 */ lwz r0, lbl_8063FC14-_SDA_BASE_(r13) +/* 80277BEC 0027384C 2C 00 00 00 */ cmpwi r0, 0 +/* 80277BF0 00273850 41 82 00 70 */ beq lbl_80277C60 +/* 80277BF4 00273854 80 0D A9 50 */ lwz r0, lbl_8063FC10-_SDA_BASE_(r13) +/* 80277BF8 00273858 2C 00 00 00 */ cmpwi r0, 0 +/* 80277BFC 0027385C 41 82 00 64 */ beq lbl_80277C60 +/* 80277C00 00273860 80 1E 01 48 */ lwz r0, 0x148(r30) +/* 80277C04 00273864 2C 00 00 00 */ cmpwi r0, 0 +/* 80277C08 00273868 41 82 00 58 */ beq lbl_80277C60 +/* 80277C0C 0027386C 80 0D A9 60 */ lwz r0, lbl_8063FC20-_SDA_BASE_(r13) +/* 80277C10 00273870 2C 00 00 01 */ cmpwi r0, 1 +/* 80277C14 00273874 40 82 00 20 */ bne lbl_80277C34 +/* 80277C18 00273878 80 6D A8 DC */ lwz r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277C1C 0027387C 38 00 FF FF */ li r0, -1 +/* 80277C20 00273880 7C 03 00 40 */ cmplw r3, r0 +/* 80277C24 00273884 40 80 00 10 */ bge lbl_80277C34 +/* 80277C28 00273888 80 6D A8 DC */ lwz r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277C2C 0027388C 38 03 00 01 */ addi r0, r3, 1 +/* 80277C30 00273890 90 0D A8 DC */ stw r0, lbl_8063FB9C-_SDA_BASE_(r13) +lbl_80277C34: +/* 80277C34 00273894 80 0D A9 5C */ lwz r0, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80277C38 00273898 2C 00 00 01 */ cmpwi r0, 1 +/* 80277C3C 0027389C 40 82 00 64 */ bne lbl_80277CA0 +/* 80277C40 002738A0 80 6D A8 E0 */ lwz r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277C44 002738A4 38 00 FF FF */ li r0, -1 +/* 80277C48 002738A8 7C 03 00 40 */ cmplw r3, r0 +/* 80277C4C 002738AC 40 80 00 54 */ bge lbl_80277CA0 +/* 80277C50 002738B0 80 6D A8 E0 */ lwz r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277C54 002738B4 38 03 00 01 */ addi r0, r3, 1 +/* 80277C58 002738B8 90 0D A8 E0 */ stw r0, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277C5C 002738BC 48 00 00 44 */ b lbl_80277CA0 +lbl_80277C60: +/* 80277C60 002738C0 80 6D A8 DC */ lwz r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277C64 002738C4 80 0D A8 D0 */ lwz r0, lbl_8063FB90-_SDA_BASE_(r13) +/* 80277C68 002738C8 7C 03 00 40 */ cmplw r3, r0 +/* 80277C6C 002738CC 41 80 00 0C */ blt lbl_80277C78 +/* 80277C70 002738D0 38 00 00 01 */ li r0, 1 +/* 80277C74 002738D4 90 0D A9 20 */ stw r0, lbl_8063FBE0-_SDA_BASE_(r13) +lbl_80277C78: +/* 80277C78 002738D8 80 6D A8 E0 */ lwz r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277C7C 002738DC 80 0D A8 D8 */ lwz r0, lbl_8063FB98-_SDA_BASE_(r13) +/* 80277C80 002738E0 7C 03 00 40 */ cmplw r3, r0 +/* 80277C84 002738E4 41 80 00 08 */ blt lbl_80277C8C +/* 80277C88 002738E8 48 01 4D 01 */ bl func_8028C988 +lbl_80277C8C: +/* 80277C8C 002738EC 38 00 00 00 */ li r0, 0 +/* 80277C90 002738F0 90 0D A8 DC */ stw r0, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277C94 002738F4 90 0D A8 E0 */ stw r0, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277C98 002738F8 80 0D A8 D4 */ lwz r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277C9C 002738FC 90 0D A8 D0 */ stw r0, lbl_8063FB90-_SDA_BASE_(r13) +lbl_80277CA0: +/* 80277CA0 00273900 80 6D 88 18 */ lwz r3, lbl_8063DAD8-_SDA_BASE_(r13) +/* 80277CA4 00273904 80 0D A9 60 */ lwz r0, lbl_8063FC20-_SDA_BASE_(r13) +/* 80277CA8 00273908 7C 03 00 00 */ cmpw r3, r0 +/* 80277CAC 0027390C 41 82 00 38 */ beq lbl_80277CE4 +/* 80277CB0 00273910 80 0D A9 60 */ lwz r0, lbl_8063FC20-_SDA_BASE_(r13) +/* 80277CB4 00273914 2C 00 00 00 */ cmpwi r0, 0 +/* 80277CB8 00273918 40 82 00 1C */ bne lbl_80277CD4 +/* 80277CBC 0027391C 80 6D A8 DC */ lwz r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277CC0 00273920 80 0D A8 D0 */ lwz r0, lbl_8063FB90-_SDA_BASE_(r13) +/* 80277CC4 00273924 7C 03 00 40 */ cmplw r3, r0 +/* 80277CC8 00273928 41 80 00 0C */ blt lbl_80277CD4 +/* 80277CCC 0027392C 38 00 00 01 */ li r0, 1 +/* 80277CD0 00273930 90 0D A9 20 */ stw r0, lbl_8063FBE0-_SDA_BASE_(r13) +lbl_80277CD4: +/* 80277CD4 00273934 38 00 00 00 */ li r0, 0 +/* 80277CD8 00273938 90 0D A8 DC */ stw r0, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277CDC 0027393C 80 0D A8 D4 */ lwz r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277CE0 00273940 90 0D A8 D0 */ stw r0, lbl_8063FB90-_SDA_BASE_(r13) +lbl_80277CE4: +/* 80277CE4 00273944 80 6D A8 DC */ lwz r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277CE8 00273948 80 0D A8 D0 */ lwz r0, lbl_8063FB90-_SDA_BASE_(r13) +/* 80277CEC 0027394C 7C 03 00 40 */ cmplw r3, r0 +/* 80277CF0 00273950 40 82 00 0C */ bne lbl_80277CFC +/* 80277CF4 00273954 38 00 00 01 */ li r0, 1 +/* 80277CF8 00273958 90 0D A9 1C */ stw r0, lbl_8063FBDC-_SDA_BASE_(r13) +lbl_80277CFC: +/* 80277CFC 0027395C 80 0D A9 20 */ lwz r0, lbl_8063FBE0-_SDA_BASE_(r13) +/* 80277D00 00273960 2C 00 00 00 */ cmpwi r0, 0 +/* 80277D04 00273964 41 82 00 28 */ beq lbl_80277D2C +/* 80277D08 00273968 38 60 00 00 */ li r3, 0 +/* 80277D0C 0027396C 38 80 00 02 */ li r4, 2 +/* 80277D10 00273970 38 A0 00 02 */ li r5, 2 +/* 80277D14 00273974 4B FF B7 E1 */ bl __OSSetVIForceDimming +/* 80277D18 00273978 2C 03 00 01 */ cmpwi r3, 1 +/* 80277D1C 0027397C 40 82 00 10 */ bne lbl_80277D2C +/* 80277D20 00273980 38 00 00 00 */ li r0, 0 +/* 80277D24 00273984 90 0D A9 20 */ stw r0, lbl_8063FBE0-_SDA_BASE_(r13) +/* 80277D28 00273988 90 0D A8 E4 */ stw r0, lbl_8063FBA4-_SDA_BASE_(r13) +lbl_80277D2C: +/* 80277D2C 0027398C 80 0D A9 1C */ lwz r0, lbl_8063FBDC-_SDA_BASE_(r13) +/* 80277D30 00273990 2C 00 00 00 */ cmpwi r0, 0 +/* 80277D34 00273994 41 82 00 2C */ beq lbl_80277D60 +/* 80277D38 00273998 38 60 00 01 */ li r3, 1 +/* 80277D3C 0027399C 38 80 00 02 */ li r4, 2 +/* 80277D40 002739A0 38 A0 00 02 */ li r5, 2 +/* 80277D44 002739A4 4B FF B7 B1 */ bl __OSSetVIForceDimming +/* 80277D48 002739A8 2C 03 00 01 */ cmpwi r3, 1 +/* 80277D4C 002739AC 40 82 00 14 */ bne lbl_80277D60 +/* 80277D50 002739B0 38 60 00 00 */ li r3, 0 +/* 80277D54 002739B4 38 00 00 01 */ li r0, 1 +/* 80277D58 002739B8 90 6D A9 1C */ stw r3, lbl_8063FBDC-_SDA_BASE_(r13) +/* 80277D5C 002739BC 90 0D A8 E4 */ stw r0, lbl_8063FBA4-_SDA_BASE_(r13) +lbl_80277D60: +/* 80277D60 002739C0 80 6D 88 1C */ lwz r3, lbl_8063DADC-_SDA_BASE_(r13) +/* 80277D64 002739C4 80 0D A9 5C */ lwz r0, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80277D68 002739C8 7C 03 00 00 */ cmpw r3, r0 +/* 80277D6C 002739CC 41 82 00 2C */ beq lbl_80277D98 +/* 80277D70 002739D0 80 0D A9 5C */ lwz r0, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80277D74 002739D4 2C 00 00 00 */ cmpwi r0, 0 +/* 80277D78 002739D8 40 82 00 18 */ bne lbl_80277D90 +/* 80277D7C 002739DC 80 6D A8 E0 */ lwz r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277D80 002739E0 80 0D A8 D8 */ lwz r0, lbl_8063FB98-_SDA_BASE_(r13) +/* 80277D84 002739E4 7C 03 00 40 */ cmplw r3, r0 +/* 80277D88 002739E8 41 80 00 08 */ blt lbl_80277D90 +/* 80277D8C 002739EC 48 01 4B FD */ bl func_8028C988 +lbl_80277D90: +/* 80277D90 002739F0 38 00 00 00 */ li r0, 0 +/* 80277D94 002739F4 90 0D A8 E0 */ stw r0, lbl_8063FBA0-_SDA_BASE_(r13) +lbl_80277D98: +/* 80277D98 002739F8 80 6D A8 E0 */ lwz r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 80277D9C 002739FC 80 0D A8 D8 */ lwz r0, lbl_8063FB98-_SDA_BASE_(r13) +/* 80277DA0 00273A00 7C 03 00 40 */ cmplw r3, r0 +/* 80277DA4 00273A04 40 82 00 14 */ bne lbl_80277DB8 +/* 80277DA8 00273A08 3C 60 80 52 */ lis r3, lbl_8051B4F0@ha +/* 80277DAC 00273A0C 38 80 00 00 */ li r4, 0 +/* 80277DB0 00273A10 38 63 B4 F0 */ addi r3, r3, lbl_8051B4F0@l +/* 80277DB4 00273A14 48 01 4B CD */ bl func_8028C980 +lbl_80277DB8: +/* 80277DB8 00273A18 38 00 00 01 */ li r0, 1 +/* 80277DBC 00273A1C 38 7E 01 48 */ addi r3, r30, 0x148 +/* 80277DC0 00273A20 90 0D A9 54 */ stw r0, lbl_8063FC14-_SDA_BASE_(r13) +/* 80277DC4 00273A24 90 0D A9 50 */ stw r0, lbl_8063FC10-_SDA_BASE_(r13) +/* 80277DC8 00273A28 90 03 00 00 */ stw r0, 0(r3) +/* 80277DCC 00273A2C 90 03 00 04 */ stw r0, 4(r3) +/* 80277DD0 00273A30 90 03 00 08 */ stw r0, 8(r3) +/* 80277DD4 00273A34 90 03 00 0C */ stw r0, 0xc(r3) +/* 80277DD8 00273A38 90 03 00 10 */ stw r0, 0x10(r3) +/* 80277DDC 00273A3C 90 03 00 14 */ stw r0, 0x14(r3) +/* 80277DE0 00273A40 90 03 00 18 */ stw r0, 0x18(r3) +/* 80277DE4 00273A44 90 03 00 1C */ stw r0, 0x1c(r3) +/* 80277DE8 00273A48 90 03 00 20 */ stw r0, 0x20(r3) +/* 80277DEC 00273A4C 90 03 00 24 */ stw r0, 0x24(r3) +/* 80277DF0 00273A50 80 AD A9 60 */ lwz r5, lbl_8063FC20-_SDA_BASE_(r13) +/* 80277DF4 00273A54 80 8D A9 5C */ lwz r4, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80277DF8 00273A58 80 6D A8 D4 */ lwz r3, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277DFC 00273A5C 80 0D A8 DC */ lwz r0, lbl_8063FB9C-_SDA_BASE_(r13) +/* 80277E00 00273A60 90 AD 88 18 */ stw r5, lbl_8063DAD8-_SDA_BASE_(r13) +/* 80277E04 00273A64 7C 03 00 40 */ cmplw r3, r0 +/* 80277E08 00273A68 90 8D 88 1C */ stw r4, lbl_8063DADC-_SDA_BASE_(r13) +/* 80277E0C 00273A6C 40 81 00 18 */ ble lbl_80277E24 +/* 80277E10 00273A70 80 0D A8 E4 */ lwz r0, lbl_8063FBA4-_SDA_BASE_(r13) +/* 80277E14 00273A74 2C 00 00 00 */ cmpwi r0, 0 +/* 80277E18 00273A78 40 82 00 0C */ bne lbl_80277E24 +/* 80277E1C 00273A7C 80 0D A8 D4 */ lwz r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80277E20 00273A80 90 0D A8 D0 */ stw r0, lbl_8063FB90-_SDA_BASE_(r13) +lbl_80277E24: +/* 80277E24 00273A84 39 61 02 F0 */ addi r11, r1, 0x2f0 +/* 80277E28 00273A88 4B F4 F3 49 */ bl _restgpr_26 +/* 80277E2C 00273A8C 80 01 02 F4 */ lwz r0, 0x2f4(r1) +/* 80277E30 00273A90 7C 08 03 A6 */ mtlr r0 +/* 80277E34 00273A94 38 21 02 F0 */ addi r1, r1, 0x2f0 +/* 80277E38 00273A98 4E 80 00 20 */ blr + +.global VISetPreRetraceCallback +VISetPreRetraceCallback: +/* 80277E3C 00273A9C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80277E40 00273AA0 7C 08 02 A6 */ mflr r0 +/* 80277E44 00273AA4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80277E48 00273AA8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80277E4C 00273AAC 93 C1 00 08 */ stw r30, 8(r1) +/* 80277E50 00273AB0 7C 7E 1B 78 */ mr r30, r3 +/* 80277E54 00273AB4 83 ED A9 40 */ lwz r31, lbl_8063FC00-_SDA_BASE_(r13) +/* 80277E58 00273AB8 4B FF 69 05 */ bl OSDisableInterrupts +/* 80277E5C 00273ABC 93 CD A9 40 */ stw r30, lbl_8063FC00-_SDA_BASE_(r13) +/* 80277E60 00273AC0 4B FF 69 25 */ bl OSRestoreInterrupts +/* 80277E64 00273AC4 7F E3 FB 78 */ mr r3, r31 +/* 80277E68 00273AC8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80277E6C 00273ACC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80277E70 00273AD0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80277E74 00273AD4 7C 08 03 A6 */ mtlr r0 +/* 80277E78 00273AD8 38 21 00 10 */ addi r1, r1, 0x10 +/* 80277E7C 00273ADC 4E 80 00 20 */ blr + +.global VISetPostRetraceCallback +VISetPostRetraceCallback: +/* 80277E80 00273AE0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80277E84 00273AE4 7C 08 02 A6 */ mflr r0 +/* 80277E88 00273AE8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80277E8C 00273AEC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80277E90 00273AF0 93 C1 00 08 */ stw r30, 8(r1) +/* 80277E94 00273AF4 7C 7E 1B 78 */ mr r30, r3 +/* 80277E98 00273AF8 83 ED A9 3C */ lwz r31, lbl_8063FBFC-_SDA_BASE_(r13) +/* 80277E9C 00273AFC 4B FF 68 C1 */ bl OSDisableInterrupts +/* 80277EA0 00273B00 93 CD A9 3C */ stw r30, lbl_8063FBFC-_SDA_BASE_(r13) +/* 80277EA4 00273B04 4B FF 68 E1 */ bl OSRestoreInterrupts +/* 80277EA8 00273B08 7F E3 FB 78 */ mr r3, r31 +/* 80277EAC 00273B0C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80277EB0 00273B10 83 C1 00 08 */ lwz r30, 8(r1) +/* 80277EB4 00273B14 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80277EB8 00273B18 7C 08 03 A6 */ mtlr r0 +/* 80277EBC 00273B1C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80277EC0 00273B20 4E 80 00 20 */ blr + +.global getTiming +getTiming: +/* 80277EC4 00273B24 28 03 00 1E */ cmplwi r3, 0x1e +/* 80277EC8 00273B28 41 81 00 FC */ bgt lbl_80277FC4 +/* 80277ECC 00273B2C 3C 80 80 43 */ lis r4, lbl_804342E0@ha +/* 80277ED0 00273B30 54 60 10 3A */ slwi r0, r3, 2 +/* 80277ED4 00273B34 38 84 42 E0 */ addi r4, r4, lbl_804342E0@l +/* 80277ED8 00273B38 7C 84 00 2E */ lwzx r4, r4, r0 +/* 80277EDC 00273B3C 7C 89 03 A6 */ mtctr r4 +/* 80277EE0 00273B40 4E 80 04 20 */ bctr +/* 80277EE4 00273B44 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277EE8 00273B48 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277EEC 00273B4C 4E 80 00 20 */ blr +/* 80277EF0 00273B50 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277EF4 00273B54 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277EF8 00273B58 38 63 00 26 */ addi r3, r3, 0x26 +/* 80277EFC 00273B5C 4E 80 00 20 */ blr +/* 80277F00 00273B60 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F04 00273B64 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F08 00273B68 38 63 00 4C */ addi r3, r3, 0x4c +/* 80277F0C 00273B6C 4E 80 00 20 */ blr +/* 80277F10 00273B70 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F14 00273B74 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F18 00273B78 38 63 00 72 */ addi r3, r3, 0x72 +/* 80277F1C 00273B7C 4E 80 00 20 */ blr +/* 80277F20 00273B80 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F24 00273B84 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F28 00273B88 4E 80 00 20 */ blr +/* 80277F2C 00273B8C 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F30 00273B90 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F34 00273B94 38 63 00 26 */ addi r3, r3, 0x26 +/* 80277F38 00273B98 4E 80 00 20 */ blr +/* 80277F3C 00273B9C 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F40 00273BA0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F44 00273BA4 38 63 00 98 */ addi r3, r3, 0x98 +/* 80277F48 00273BA8 4E 80 00 20 */ blr +/* 80277F4C 00273BAC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F50 00273BB0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F54 00273BB4 38 63 00 BE */ addi r3, r3, 0xbe +/* 80277F58 00273BB8 4E 80 00 20 */ blr +/* 80277F5C 00273BBC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F60 00273BC0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F64 00273BC4 38 63 00 E4 */ addi r3, r3, 0xe4 +/* 80277F68 00273BC8 4E 80 00 20 */ blr +/* 80277F6C 00273BCC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F70 00273BD0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F74 00273BD4 38 63 01 0A */ addi r3, r3, 0x10a +/* 80277F78 00273BD8 4E 80 00 20 */ blr +/* 80277F7C 00273BDC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F80 00273BE0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F84 00273BE4 38 63 00 4C */ addi r3, r3, 0x4c +/* 80277F88 00273BE8 4E 80 00 20 */ blr +/* 80277F8C 00273BEC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277F90 00273BF0 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277F94 00273BF4 38 63 00 72 */ addi r3, r3, 0x72 +/* 80277F98 00273BF8 4E 80 00 20 */ blr +/* 80277F9C 00273BFC 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277FA0 00273C00 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277FA4 00273C04 38 63 01 30 */ addi r3, r3, 0x130 +/* 80277FA8 00273C08 4E 80 00 20 */ blr +/* 80277FAC 00273C0C 3C 60 80 43 */ lis r3, lbl_804340D8@ha +/* 80277FB0 00273C10 38 63 40 D8 */ addi r3, r3, lbl_804340D8@l +/* 80277FB4 00273C14 38 63 01 56 */ addi r3, r3, 0x156 +/* 80277FB8 00273C18 4E 80 00 20 */ blr +/* 80277FBC 00273C1C 80 6D A9 14 */ lwz r3, lbl_8063FBD4-_SDA_BASE_(r13) +/* 80277FC0 00273C20 4E 80 00 20 */ blr +lbl_80277FC4: +/* 80277FC4 00273C24 38 60 00 00 */ li r3, 0 +/* 80277FC8 00273C28 4E 80 00 20 */ blr + +.global __VIInit +__VIInit: +/* 80277FCC 00273C2C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80277FD0 00273C30 7C 08 02 A6 */ mflr r0 +/* 80277FD4 00273C34 3C 80 80 00 */ lis r4, 0x800000CC@ha +/* 80277FD8 00273C38 90 01 00 24 */ stw r0, 0x24(r1) +/* 80277FDC 00273C3C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80277FE0 00273C40 54 7F 07 BE */ clrlwi r31, r3, 0x1e +/* 80277FE4 00273C44 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80277FE8 00273C48 54 7E F0 BE */ srwi r30, r3, 2 +/* 80277FEC 00273C4C 93 C4 00 CC */ stw r30, 0x800000CC@l(r4) +/* 80277FF0 00273C50 4B FF FE D5 */ bl getTiming +/* 80277FF4 00273C54 38 A0 00 02 */ li r5, 2 +/* 80277FF8 00273C58 3C 80 CC 00 */ lis r4, 0xCC002002@ha +/* 80277FFC 00273C5C 38 00 00 00 */ li r0, 0 +/* 80278000 00273C60 B0 A4 20 02 */ sth r5, 0xCC002002@l(r4) +/* 80278004 00273C64 90 01 00 08 */ stw r0, 8(r1) +/* 80278008 00273C68 48 00 00 10 */ b lbl_80278018 +lbl_8027800C: +/* 8027800C 00273C6C 80 81 00 08 */ lwz r4, 8(r1) +/* 80278010 00273C70 38 04 00 01 */ addi r0, r4, 1 +/* 80278014 00273C74 90 01 00 08 */ stw r0, 8(r1) +lbl_80278018: +/* 80278018 00273C78 80 01 00 08 */ lwz r0, 8(r1) +/* 8027801C 00273C7C 28 00 03 E8 */ cmplwi r0, 0x3e8 +/* 80278020 00273C80 41 80 FF EC */ blt lbl_8027800C +/* 80278024 00273C84 3C A0 CC 00 */ lis r5, 0xCC002002@ha +/* 80278028 00273C88 38 00 00 00 */ li r0, 0 +/* 8027802C 00273C8C B0 05 20 02 */ sth r0, 0xCC002002@l(r5) +/* 80278030 00273C90 A0 03 00 1A */ lhz r0, 0x1a(r3) +/* 80278034 00273C94 B0 05 20 06 */ sth r0, 0x2006(r5) +/* 80278038 00273C98 88 83 00 1D */ lbz r4, 0x1d(r3) +/* 8027803C 00273C9C 88 03 00 1E */ lbz r0, 0x1e(r3) +/* 80278040 00273CA0 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 80278044 00273CA4 B0 05 20 04 */ sth r0, 0x2004(r5) +/* 80278048 00273CA8 88 03 00 1F */ lbz r0, 0x1f(r3) +/* 8027804C 00273CAC 88 83 00 1C */ lbz r4, 0x1c(r3) +/* 80278050 00273CB0 54 00 38 30 */ slwi r0, r0, 7 +/* 80278054 00273CB4 7C 80 03 78 */ or r0, r4, r0 +/* 80278058 00273CB8 B0 05 20 0A */ sth r0, 0x200a(r5) +/* 8027805C 00273CBC A0 03 00 20 */ lhz r0, 0x20(r3) +/* 80278060 00273CC0 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e +/* 80278064 00273CC4 B0 05 20 08 */ sth r0, 0x2008(r5) +/* 80278068 00273CC8 80 0D A9 38 */ lwz r0, lbl_8063FBF8-_SDA_BASE_(r13) +/* 8027806C 00273CCC 2C 00 00 00 */ cmpwi r0, 0 +/* 80278070 00273CD0 40 82 00 18 */ bne lbl_80278088 +/* 80278074 00273CD4 88 03 00 22 */ lbz r0, 0x22(r3) +/* 80278078 00273CD8 60 00 80 00 */ ori r0, r0, 0x8000 +/* 8027807C 00273CDC B0 05 20 72 */ sth r0, 0x2072(r5) +/* 80278080 00273CE0 A0 03 00 24 */ lhz r0, 0x24(r3) +/* 80278084 00273CE4 B0 05 20 74 */ sth r0, 0x2074(r5) +lbl_80278088: +/* 80278088 00273CE8 88 03 00 00 */ lbz r0, 0(r3) +/* 8027808C 00273CEC 3C 80 CC 00 */ lis r4, 0xCC002000@ha +/* 80278090 00273CF0 38 C0 28 28 */ li r6, 0x2828 +/* 80278094 00273CF4 38 A0 00 01 */ li r5, 1 +/* 80278098 00273CF8 B0 04 20 00 */ sth r0, 0xCC002000@l(r4) +/* 8027809C 00273CFC 38 00 10 01 */ li r0, 0x1001 +/* 802780A0 00273D00 2C 1E 00 04 */ cmpwi r30, 4 +/* 802780A4 00273D04 A1 03 00 02 */ lhz r8, 2(r3) +/* 802780A8 00273D08 A0 E3 00 04 */ lhz r7, 4(r3) +/* 802780AC 00273D0C 55 08 08 3C */ slwi r8, r8, 1 +/* 802780B0 00273D10 7C E7 42 14 */ add r7, r7, r8 +/* 802780B4 00273D14 38 E7 FF FE */ addi r7, r7, -2 +/* 802780B8 00273D18 B0 E4 20 0E */ sth r7, 0x200e(r4) +/* 802780BC 00273D1C A0 E3 00 08 */ lhz r7, 8(r3) +/* 802780C0 00273D20 38 E7 00 02 */ addi r7, r7, 2 +/* 802780C4 00273D24 B0 E4 20 0C */ sth r7, 0x200c(r4) +/* 802780C8 00273D28 A1 03 00 02 */ lhz r8, 2(r3) +/* 802780CC 00273D2C A0 E3 00 06 */ lhz r7, 6(r3) +/* 802780D0 00273D30 55 08 08 3C */ slwi r8, r8, 1 +/* 802780D4 00273D34 7C E7 42 14 */ add r7, r7, r8 +/* 802780D8 00273D38 38 E7 FF FE */ addi r7, r7, -2 +/* 802780DC 00273D3C B0 E4 20 12 */ sth r7, 0x2012(r4) +/* 802780E0 00273D40 A0 E3 00 0A */ lhz r7, 0xa(r3) +/* 802780E4 00273D44 38 E7 00 02 */ addi r7, r7, 2 +/* 802780E8 00273D48 B0 E4 20 10 */ sth r7, 0x2010(r4) +/* 802780EC 00273D4C A0 E3 00 10 */ lhz r7, 0x10(r3) +/* 802780F0 00273D50 89 03 00 0C */ lbz r8, 0xc(r3) +/* 802780F4 00273D54 54 E7 28 34 */ slwi r7, r7, 5 +/* 802780F8 00273D58 7D 07 3B 78 */ or r7, r8, r7 +/* 802780FC 00273D5C B0 E4 20 16 */ sth r7, 0x2016(r4) +/* 80278100 00273D60 A0 E3 00 14 */ lhz r7, 0x14(r3) +/* 80278104 00273D64 89 03 00 0E */ lbz r8, 0xe(r3) +/* 80278108 00273D68 54 E7 28 34 */ slwi r7, r7, 5 +/* 8027810C 00273D6C 7D 07 3B 78 */ or r7, r8, r7 +/* 80278110 00273D70 B0 E4 20 14 */ sth r7, 0x2014(r4) +/* 80278114 00273D74 A0 E3 00 12 */ lhz r7, 0x12(r3) +/* 80278118 00273D78 89 03 00 0D */ lbz r8, 0xd(r3) +/* 8027811C 00273D7C 54 E7 28 34 */ slwi r7, r7, 5 +/* 80278120 00273D80 7D 07 3B 78 */ or r7, r8, r7 +/* 80278124 00273D84 B0 E4 20 1A */ sth r7, 0x201a(r4) +/* 80278128 00273D88 A0 E3 00 16 */ lhz r7, 0x16(r3) +/* 8027812C 00273D8C 89 03 00 0F */ lbz r8, 0xf(r3) +/* 80278130 00273D90 54 E7 28 34 */ slwi r7, r7, 5 +/* 80278134 00273D94 7D 07 3B 78 */ or r7, r8, r7 +/* 80278138 00273D98 B0 E4 20 18 */ sth r7, 0x2018(r4) +/* 8027813C 00273D9C B0 C4 20 48 */ sth r6, 0x2048(r4) +/* 80278140 00273DA0 B0 A4 20 36 */ sth r5, 0x2036(r4) +/* 80278144 00273DA4 B0 04 20 34 */ sth r0, 0x2034(r4) +/* 80278148 00273DA8 A0 03 00 18 */ lhz r0, 0x18(r3) +/* 8027814C 00273DAC A0 63 00 1A */ lhz r3, 0x1a(r3) +/* 80278150 00273DB0 54 05 F8 7E */ srwi r5, r0, 1 +/* 80278154 00273DB4 38 03 00 01 */ addi r0, r3, 1 +/* 80278158 00273DB8 38 A5 00 01 */ addi r5, r5, 1 +/* 8027815C 00273DBC B0 04 20 32 */ sth r0, 0x2032(r4) +/* 80278160 00273DC0 54 A3 04 3E */ clrlwi r3, r5, 0x10 +/* 80278164 00273DC4 60 60 10 00 */ ori r0, r3, 0x1000 +/* 80278168 00273DC8 B0 04 20 30 */ sth r0, 0x2030(r4) +/* 8027816C 00273DCC 40 80 00 14 */ bge lbl_80278180 +/* 80278170 00273DD0 2C 1E 00 01 */ cmpwi r30, 1 +/* 80278174 00273DD4 40 80 00 10 */ bge lbl_80278184 +/* 80278178 00273DD8 48 00 00 08 */ b lbl_80278180 +/* 8027817C 00273DDC 48 00 00 08 */ b lbl_80278184 +lbl_80278180: +/* 80278180 00273DE0 3B C0 00 00 */ li r30, 0 +lbl_80278184: +/* 80278184 00273DE4 28 1F 00 01 */ cmplwi r31, 1 +/* 80278188 00273DE8 41 81 00 24 */ bgt lbl_802781AC +/* 8027818C 00273DEC 57 C0 40 2E */ slwi r0, r30, 8 +/* 80278190 00273DF0 3C 60 CC 00 */ lis r3, 0xCC002002@ha +/* 80278194 00273DF4 60 04 00 01 */ ori r4, r0, 1 +/* 80278198 00273DF8 53 E4 17 7A */ rlwimi r4, r31, 2, 0x1d, 0x1d +/* 8027819C 00273DFC 38 00 00 00 */ li r0, 0 +/* 802781A0 00273E00 B0 83 20 02 */ sth r4, 0xCC002002@l(r3) +/* 802781A4 00273E04 B0 03 20 6C */ sth r0, 0x206c(r3) +/* 802781A8 00273E08 48 00 00 1C */ b lbl_802781C4 +lbl_802781AC: +/* 802781AC 00273E0C 57 C0 40 2E */ slwi r0, r30, 8 +/* 802781B0 00273E10 3C 60 CC 00 */ lis r3, 0xCC002002@ha +/* 802781B4 00273E14 60 04 00 05 */ ori r4, r0, 5 +/* 802781B8 00273E18 B0 83 20 02 */ sth r4, 0xCC002002@l(r3) +/* 802781BC 00273E1C 38 00 00 01 */ li r0, 1 +/* 802781C0 00273E20 B0 03 20 6C */ sth r0, 0x206c(r3) +lbl_802781C4: +/* 802781C4 00273E24 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802781C8 00273E28 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802781CC 00273E2C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 802781D0 00273E30 7C 08 03 A6 */ mtlr r0 +/* 802781D4 00273E34 38 21 00 20 */ addi r1, r1, 0x20 +/* 802781D8 00273E38 4E 80 00 20 */ blr + +.global VIInit +VIInit: +/* 802781DC 00273E3C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802781E0 00273E40 7C 08 02 A6 */ mflr r0 +/* 802781E4 00273E44 90 01 00 34 */ stw r0, 0x34(r1) +/* 802781E8 00273E48 39 61 00 30 */ addi r11, r1, 0x30 +/* 802781EC 00273E4C 4B F4 EF 31 */ bl _savegpr_24 +/* 802781F0 00273E50 80 0D A8 C0 */ lwz r0, lbl_8063FB80-_SDA_BASE_(r13) +/* 802781F4 00273E54 2C 00 00 00 */ cmpwi r0, 0 +/* 802781F8 00273E58 40 82 05 14 */ bne lbl_8027870C +/* 802781FC 00273E5C 80 6D 88 08 */ lwz r3, lbl_8063DAC8-_SDA_BASE_(r13) +/* 80278200 00273E60 4B FF 14 51 */ bl OSRegisterVersion +/* 80278204 00273E64 38 00 00 01 */ li r0, 1 +/* 80278208 00273E68 3C 60 CC 00 */ lis r3, 0xCC002002@ha +/* 8027820C 00273E6C 90 0D A8 C0 */ stw r0, lbl_8063FB80-_SDA_BASE_(r13) +/* 80278210 00273E70 A0 03 20 02 */ lhz r0, 0xCC002002@l(r3) +/* 80278214 00273E74 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80278218 00273E78 40 82 00 0C */ bne lbl_80278224 +/* 8027821C 00273E7C 38 60 00 00 */ li r3, 0 +/* 80278220 00273E80 4B FF FD AD */ bl __VIInit +lbl_80278224: +/* 80278224 00273E84 3C 80 80 43 */ lis r4, lbl_8043427C@ha +/* 80278228 00273E88 3B A0 00 00 */ li r29, 0 +/* 8027822C 00273E8C 38 64 42 7C */ addi r3, r4, lbl_8043427C@l +/* 80278230 00273E90 93 AD A9 6C */ stw r29, lbl_8063FC2C-_SDA_BASE_(r13) +/* 80278234 00273E94 A0 A3 00 02 */ lhz r5, 2(r3) +/* 80278238 00273E98 3F C0 CC 00 */ lis r30, 0xCC00204E@ha +/* 8027823C 00273E9C A0 84 42 7C */ lhz r4, 0x427c(r4) +/* 80278240 00273EA0 54 A0 54 2A */ rlwinm r0, r5, 0xa, 0x10, 0x15 +/* 80278244 00273EA4 93 AD A8 FC */ stw r29, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278248 00273EA8 7C 80 03 78 */ or r0, r4, r0 +/* 8027824C 00273EAC 7C A4 36 70 */ srawi r4, r5, 6 +/* 80278250 00273EB0 93 AD A8 F8 */ stw r29, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278254 00273EB4 93 AD A9 0C */ stw r29, lbl_8063FBCC-_SDA_BASE_(r13) +/* 80278258 00273EB8 93 AD A9 08 */ stw r29, lbl_8063FBC8-_SDA_BASE_(r13) +/* 8027825C 00273EBC 93 AD A8 F0 */ stw r29, lbl_8063FBB0-_SDA_BASE_(r13) +/* 80278260 00273EC0 93 AD A9 00 */ stw r29, lbl_8063FBC0-_SDA_BASE_(r13) +/* 80278264 00273EC4 93 AD A9 68 */ stw r29, lbl_8063FC28-_SDA_BASE_(r13) +/* 80278268 00273EC8 93 AD A9 64 */ stw r29, lbl_8063FC24-_SDA_BASE_(r13) +/* 8027826C 00273ECC B0 1E 20 4E */ sth r0, 0xCC00204E@l(r30) +/* 80278270 00273ED0 A0 03 00 04 */ lhz r0, 4(r3) +/* 80278274 00273ED4 54 00 20 36 */ slwi r0, r0, 4 +/* 80278278 00273ED8 7C 80 03 78 */ or r0, r4, r0 +/* 8027827C 00273EDC B0 1E 20 4C */ sth r0, 0x204c(r30) +/* 80278280 00273EE0 A0 83 00 08 */ lhz r4, 8(r3) +/* 80278284 00273EE4 A0 A3 00 06 */ lhz r5, 6(r3) +/* 80278288 00273EE8 54 80 54 2A */ rlwinm r0, r4, 0xa, 0x10, 0x15 +/* 8027828C 00273EEC 7C 84 36 70 */ srawi r4, r4, 6 +/* 80278290 00273EF0 7C A0 03 78 */ or r0, r5, r0 +/* 80278294 00273EF4 B0 1E 20 52 */ sth r0, 0x2052(r30) +/* 80278298 00273EF8 A0 03 00 0A */ lhz r0, 0xa(r3) +/* 8027829C 00273EFC 54 00 20 36 */ slwi r0, r0, 4 +/* 802782A0 00273F00 7C 80 03 78 */ or r0, r4, r0 +/* 802782A4 00273F04 B0 1E 20 50 */ sth r0, 0x2050(r30) +/* 802782A8 00273F08 A0 83 00 0E */ lhz r4, 0xe(r3) +/* 802782AC 00273F0C A0 A3 00 0C */ lhz r5, 0xc(r3) +/* 802782B0 00273F10 54 80 54 2A */ rlwinm r0, r4, 0xa, 0x10, 0x15 +/* 802782B4 00273F14 7C 84 36 70 */ srawi r4, r4, 6 +/* 802782B8 00273F18 7C A0 03 78 */ or r0, r5, r0 +/* 802782BC 00273F1C B0 1E 20 56 */ sth r0, 0x2056(r30) +/* 802782C0 00273F20 A0 03 00 10 */ lhz r0, 0x10(r3) +/* 802782C4 00273F24 54 00 20 36 */ slwi r0, r0, 4 +/* 802782C8 00273F28 7C 80 03 78 */ or r0, r4, r0 +/* 802782CC 00273F2C B0 1E 20 54 */ sth r0, 0x2054(r30) +/* 802782D0 00273F30 A0 03 00 14 */ lhz r0, 0x14(r3) +/* 802782D4 00273F34 A0 83 00 12 */ lhz r4, 0x12(r3) +/* 802782D8 00273F38 54 00 40 2E */ slwi r0, r0, 8 +/* 802782DC 00273F3C 7C 80 03 78 */ or r0, r4, r0 +/* 802782E0 00273F40 B0 1E 20 5A */ sth r0, 0x205a(r30) +/* 802782E4 00273F44 A0 03 00 18 */ lhz r0, 0x18(r3) +/* 802782E8 00273F48 A0 83 00 16 */ lhz r4, 0x16(r3) +/* 802782EC 00273F4C 54 00 40 2E */ slwi r0, r0, 8 +/* 802782F0 00273F50 7C 80 03 78 */ or r0, r4, r0 +/* 802782F4 00273F54 B0 1E 20 58 */ sth r0, 0x2058(r30) +/* 802782F8 00273F58 A0 83 00 1C */ lhz r4, 0x1c(r3) +/* 802782FC 00273F5C 38 00 02 80 */ li r0, 0x280 +/* 80278300 00273F60 A0 A3 00 1A */ lhz r5, 0x1a(r3) +/* 80278304 00273F64 54 84 40 2E */ slwi r4, r4, 8 +/* 80278308 00273F68 7C A4 23 78 */ or r4, r5, r4 +/* 8027830C 00273F6C B0 9E 20 5E */ sth r4, 0x205e(r30) +/* 80278310 00273F70 A0 83 00 20 */ lhz r4, 0x20(r3) +/* 80278314 00273F74 A0 A3 00 1E */ lhz r5, 0x1e(r3) +/* 80278318 00273F78 54 84 40 2E */ slwi r4, r4, 8 +/* 8027831C 00273F7C 7C A4 23 78 */ or r4, r5, r4 +/* 80278320 00273F80 B0 9E 20 5C */ sth r4, 0x205c(r30) +/* 80278324 00273F84 A0 83 00 24 */ lhz r4, 0x24(r3) +/* 80278328 00273F88 A0 A3 00 22 */ lhz r5, 0x22(r3) +/* 8027832C 00273F8C 54 84 40 2E */ slwi r4, r4, 8 +/* 80278330 00273F90 7C A4 23 78 */ or r4, r5, r4 +/* 80278334 00273F94 B0 9E 20 62 */ sth r4, 0x2062(r30) +/* 80278338 00273F98 A0 83 00 28 */ lhz r4, 0x28(r3) +/* 8027833C 00273F9C A0 A3 00 26 */ lhz r5, 0x26(r3) +/* 80278340 00273FA0 54 84 40 2E */ slwi r4, r4, 8 +/* 80278344 00273FA4 7C A4 23 78 */ or r4, r5, r4 +/* 80278348 00273FA8 B0 9E 20 60 */ sth r4, 0x2060(r30) +/* 8027834C 00273FAC A0 83 00 2C */ lhz r4, 0x2c(r3) +/* 80278350 00273FB0 A0 A3 00 2A */ lhz r5, 0x2a(r3) +/* 80278354 00273FB4 54 84 40 2E */ slwi r4, r4, 8 +/* 80278358 00273FB8 7C A4 23 78 */ or r4, r5, r4 +/* 8027835C 00273FBC B0 9E 20 66 */ sth r4, 0x2066(r30) +/* 80278360 00273FC0 A0 83 00 30 */ lhz r4, 0x30(r3) +/* 80278364 00273FC4 A0 A3 00 2E */ lhz r5, 0x2e(r3) +/* 80278368 00273FC8 54 83 40 2E */ slwi r3, r4, 8 +/* 8027836C 00273FCC 7C A3 1B 78 */ or r3, r5, r3 +/* 80278370 00273FD0 B0 7E 20 64 */ sth r3, 0x2064(r30) +/* 80278374 00273FD4 B0 1E 20 70 */ sth r0, 0x2070(r30) +/* 80278378 00273FD8 48 07 3F FD */ bl func_802EC374 +/* 8027837C 00273FDC 7C 60 07 74 */ extsb r0, r3 +/* 80278380 00273FE0 B3 AD A8 EE */ sth r29, lbl_8063FBAE-_SDA_BASE_(r13) +/* 80278384 00273FE4 3C 60 80 00 */ lis r3, 0x800000CC@ha +/* 80278388 00273FE8 B0 0D A8 EC */ sth r0, lbl_8063FBAC-_SDA_BASE_(r13) +/* 8027838C 00273FEC 83 03 00 CC */ lwz r24, 0x800000CC@l(r3) +/* 80278390 00273FF0 A3 BE 20 02 */ lhz r29, 0x2002(r30) +/* 80278394 00273FF4 4B FF 63 C9 */ bl OSDisableInterrupts +/* 80278398 00273FF8 A0 1E 20 6C */ lhz r0, 0x206c(r30) +/* 8027839C 00273FFC 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 802783A0 00274000 28 00 00 01 */ cmplwi r0, 1 +/* 802783A4 00274004 40 82 00 0C */ bne lbl_802783B0 +/* 802783A8 00274008 3B 60 00 02 */ li r27, 2 +/* 802783AC 0027400C 48 00 00 18 */ b lbl_802783C4 +lbl_802783B0: +/* 802783B0 00274010 A0 1E 20 02 */ lhz r0, 0x2002(r30) +/* 802783B4 00274014 54 04 F7 FE */ rlwinm r4, r0, 0x1e, 0x1f, 0x1f +/* 802783B8 00274018 7C 04 00 D0 */ neg r0, r4 +/* 802783BC 0027401C 7C 00 23 78 */ or r0, r0, r4 +/* 802783C0 00274020 54 1B 0F FE */ srwi r27, r0, 0x1f +lbl_802783C4: +/* 802783C4 00274024 4B FF 63 C1 */ bl OSRestoreInterrupts +/* 802783C8 00274028 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 802783CC 0027402C 28 18 00 05 */ cmplwi r24, 5 +/* 802783D0 00274030 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 802783D4 00274034 57 A0 C7 BE */ rlwinm r0, r29, 0x18, 0x1e, 0x1f +/* 802783D8 00274038 93 63 00 24 */ stw r27, 0x24(r3) +/* 802783DC 0027403C 90 03 00 28 */ stw r0, 0x28(r3) +/* 802783E0 00274040 41 82 00 14 */ beq lbl_802783F4 +/* 802783E4 00274044 28 18 00 01 */ cmplwi r24, 1 +/* 802783E8 00274048 40 82 00 1C */ bne lbl_80278404 +/* 802783EC 0027404C 2C 00 00 00 */ cmpwi r0, 0 +/* 802783F0 00274050 40 82 00 14 */ bne lbl_80278404 +lbl_802783F4: +/* 802783F4 00274054 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 802783F8 00274058 38 00 00 05 */ li r0, 5 +/* 802783FC 0027405C 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 80278400 00274060 90 03 00 28 */ stw r0, 0x28(r3) +lbl_80278404: +/* 80278404 00274064 3F C0 80 51 */ lis r30, lbl_80515890@ha +/* 80278408 00274068 3B FE 58 90 */ addi r31, r30, lbl_80515890@l +/* 8027840C 0027406C 80 BF 00 28 */ lwz r5, 0x28(r31) +/* 80278410 00274070 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 80278414 00274074 38 85 FF FD */ addi r4, r5, -3 +/* 80278418 00274078 20 65 00 03 */ subfic r3, r5, 3 +/* 8027841C 0027407C 7C 83 18 F8 */ nor r3, r4, r3 +/* 80278420 00274080 7C 63 FE 70 */ srawi r3, r3, 0x1f +/* 80278424 00274084 7C A3 18 78 */ andc r3, r5, r3 +/* 80278428 00274088 54 63 10 3A */ slwi r3, r3, 2 +/* 8027842C 0027408C 7C 63 02 14 */ add r3, r3, r0 +/* 80278430 00274090 4B FF FA 95 */ bl getTiming +/* 80278434 00274094 38 E0 02 80 */ li r7, 0x280 +/* 80278438 00274098 81 1F 00 28 */ lwz r8, 0x28(r31) +/* 8027843C 0027409C 3C 80 80 51 */ lis r4, lbl_80515818@ha +/* 80278440 002740A0 90 7F 00 54 */ stw r3, 0x54(r31) +/* 80278444 002740A4 20 C7 02 D0 */ subfic r6, r7, 0x2d0 +/* 80278448 002740A8 A8 0D A8 EC */ lha r0, lbl_8063FBAC-_SDA_BASE_(r13) +/* 8027844C 002740AC 38 84 58 18 */ addi r4, r4, lbl_80515818@l +/* 80278450 002740B0 90 6D A9 34 */ stw r3, lbl_8063FBF4-_SDA_BASE_(r13) +/* 80278454 002740B4 54 C5 0F FE */ srwi r5, r6, 0x1f +/* 80278458 002740B8 B3 A4 00 02 */ sth r29, 2(r4) +/* 8027845C 002740BC 7C A5 32 14 */ add r5, r5, r6 +/* 80278460 002740C0 7C A5 0E 70 */ srawi r5, r5, 1 +/* 80278464 002740C4 38 80 00 00 */ li r4, 0 +/* 80278468 002740C8 91 0D A9 30 */ stw r8, lbl_8063FBF0-_SDA_BASE_(r13) +/* 8027846C 002740CC 7C C5 02 14 */ add r6, r5, r0 +/* 80278470 002740D0 21 27 02 D0 */ subfic r9, r7, 0x2d0 +/* 80278474 002740D4 B0 FF 00 04 */ sth r7, 4(r31) +/* 80278478 002740D8 7C 06 48 00 */ cmpw r6, r9 +/* 8027847C 002740DC A0 03 00 02 */ lhz r0, 2(r3) +/* 80278480 002740E0 54 00 0C 3C */ rlwinm r0, r0, 1, 0x10, 0x1e +/* 80278484 002740E4 B0 BE 58 90 */ sth r5, 0x5890(r30) +/* 80278488 002740E8 B0 1F 00 06 */ sth r0, 6(r31) +/* 8027848C 002740EC B0 9F 00 02 */ sth r4, 2(r31) +/* 80278490 002740F0 A0 E3 00 02 */ lhz r7, 2(r3) +/* 80278494 002740F4 40 81 00 08 */ ble lbl_8027849C +/* 80278498 002740F8 48 00 00 0C */ b lbl_802784A4 +lbl_8027849C: +/* 8027849C 002740FC 7C C0 FE 70 */ srawi r0, r6, 0x1f +/* 802784A0 00274100 7C C9 00 78 */ andc r9, r6, r0 +lbl_802784A4: +/* 802784A4 00274104 3C A0 80 51 */ lis r5, lbl_80515890@ha +/* 802784A8 00274108 A9 0D A8 EE */ lha r8, lbl_8063FBAE-_SDA_BASE_(r13) +/* 802784AC 0027410C 38 A5 58 90 */ addi r5, r5, lbl_80515890@l +/* 802784B0 00274110 A0 C5 00 02 */ lhz r6, 2(r5) +/* 802784B4 00274114 80 85 00 20 */ lwz r4, 0x20(r5) +/* 802784B8 00274118 7C C0 07 34 */ extsh r0, r6 +/* 802784BC 0027411C 54 C6 07 FE */ clrlwi r6, r6, 0x1f +/* 802784C0 00274120 7D 40 42 14 */ add r10, r0, r8 +/* 802784C4 00274124 B1 25 00 08 */ sth r9, 8(r5) +/* 802784C8 00274128 7C 80 00 34 */ cntlzw r0, r4 +/* 802784CC 0027412C 54 04 D9 7E */ srwi r4, r0, 5 +/* 802784D0 00274130 7C 0A 30 00 */ cmpw r10, r6 +/* 802784D4 00274134 7C C0 33 78 */ mr r0, r6 +/* 802784D8 00274138 38 A4 00 01 */ addi r5, r4, 1 +/* 802784DC 0027413C 40 81 00 08 */ ble lbl_802784E4 +/* 802784E0 00274140 7D 40 53 78 */ mr r0, r10 +lbl_802784E4: +/* 802784E4 00274144 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 802784E8 00274148 7C E7 07 34 */ extsh r7, r7 +/* 802784EC 0027414C 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 802784F0 00274150 39 20 02 80 */ li r9, 0x280 +/* 802784F4 00274154 A1 44 00 02 */ lhz r10, 2(r4) +/* 802784F8 00274158 54 FE 08 3C */ slwi r30, r7, 1 +/* 802784FC 0027415C A0 E4 00 06 */ lhz r7, 6(r4) +/* 80278500 00274160 7F 46 F0 50 */ subf r26, r6, r30 +/* 80278504 00274164 7D 4A 07 34 */ extsh r10, r10 +/* 80278508 00274168 A9 64 00 02 */ lha r11, 2(r4) +/* 8027850C 0027416C 7F 68 52 14 */ add r27, r8, r10 +/* 80278510 00274170 7C EC 07 34 */ extsh r12, r7 +/* 80278514 00274174 7D 8C DA 14 */ add r12, r12, r27 +/* 80278518 00274178 A9 44 00 06 */ lha r10, 6(r4) +/* 8027851C 0027417C 7D 6B 42 14 */ add r11, r11, r8 +/* 80278520 00274180 7F 26 D8 50 */ subf r25, r6, r27 +/* 80278524 00274184 7D 1A 60 50 */ subf r8, r26, r12 +/* 80278528 00274188 7D 4A DA 14 */ add r10, r10, r27 +/* 8027852C 0027418C 7D 88 00 D0 */ neg r12, r8 +/* 80278530 00274190 B0 04 00 0A */ sth r0, 0xa(r4) +/* 80278534 00274194 7D 8C 40 78 */ andc r12, r12, r8 +/* 80278538 00274198 7F 1A 50 50 */ subf r24, r26, r10 +/* 8027853C 0027419C 7D 9B FE 70 */ srawi r27, r12, 0x1f +/* 80278540 002741A0 7F 46 58 50 */ subf r26, r6, r11 +/* 80278544 002741A4 7F 2A FE 70 */ srawi r10, r25, 0x1f +/* 80278548 002741A8 7C D8 00 D0 */ neg r6, r24 +/* 8027854C 002741AC 7F 4C FE 70 */ srawi r12, r26, 0x1f +/* 80278550 002741B0 7D 08 D8 38 */ and r8, r8, r27 +/* 80278554 002741B4 7F 3F 50 38 */ and r31, r25, r10 +/* 80278558 002741B8 7C C6 C0 78 */ andc r6, r6, r24 +/* 8027855C 002741BC 7C CA FE 70 */ srawi r10, r6, 0x1f +/* 80278560 002741C0 7F 5E 60 38 */ and r30, r26, r12 +/* 80278564 002741C4 7F 26 FE 70 */ srawi r6, r25, 0x1f +/* 80278568 002741C8 7C E7 FA 14 */ add r7, r7, r31 +/* 8027856C 002741CC 7C 08 38 50 */ subf r0, r8, r7 +/* 80278570 002741D0 7F 1A 50 38 */ and r26, r24, r10 +/* 80278574 002741D4 7F 26 30 38 */ and r6, r25, r6 +/* 80278578 002741D8 B0 04 00 0C */ sth r0, 0xc(r4) +/* 8027857C 002741DC 7D 46 2B D6 */ divw r10, r6, r5 +/* 80278580 002741E0 A1 64 00 1C */ lhz r11, 0x1c(r4) +/* 80278584 002741E4 A1 84 00 18 */ lhz r12, 0x18(r4) +/* 80278588 002741E8 3B A0 00 00 */ li r29, 0 +/* 8027858C 002741EC B1 24 00 12 */ sth r9, 0x12(r4) +/* 80278590 002741F0 38 C0 00 28 */ li r6, 0x28 +/* 80278594 002741F4 7D 1E 2B D6 */ divw r8, r30, r5 +/* 80278598 002741F8 7C EB 52 14 */ add r7, r11, r10 +/* 8027859C 002741FC 38 00 00 01 */ li r0, 1 +/* 802785A0 00274200 7C BA 2B D6 */ divw r5, r26, r5 +/* 802785A4 00274204 7D 08 60 50 */ subf r8, r8, r12 +/* 802785A8 00274208 B1 04 00 0E */ sth r8, 0xe(r4) +/* 802785AC 0027420C 7C A5 38 50 */ subf r5, r5, r7 +/* 802785B0 00274210 B0 A4 00 10 */ sth r5, 0x10(r4) +/* 802785B4 00274214 A0 A3 00 02 */ lhz r5, 2(r3) +/* 802785B8 00274218 54 A5 0C 3C */ rlwinm r5, r5, 1, 0x10, 0x1e +/* 802785BC 0027421C B3 A4 00 16 */ sth r29, 0x16(r4) +/* 802785C0 00274220 B0 A4 00 14 */ sth r5, 0x14(r4) +/* 802785C4 00274224 B3 A4 00 18 */ sth r29, 0x18(r4) +/* 802785C8 00274228 B1 24 00 1A */ sth r9, 0x1a(r4) +/* 802785CC 0027422C A0 A3 00 02 */ lhz r5, 2(r3) +/* 802785D0 00274230 38 6D A9 48 */ addi r3, r13, lbl_8063FC08-_SDA_BASE_ +/* 802785D4 00274234 54 A5 0C 3C */ rlwinm r5, r5, 1, 0x10, 0x1e +/* 802785D8 00274238 93 A4 00 20 */ stw r29, 0x20(r4) +/* 802785DC 0027423C B0 A4 00 1C */ sth r5, 0x1c(r4) +/* 802785E0 00274240 98 C4 00 2C */ stb r6, 0x2c(r4) +/* 802785E4 00274244 98 C4 00 2D */ stb r6, 0x2d(r4) +/* 802785E8 00274248 98 C4 00 2E */ stb r6, 0x2e(r4) +/* 802785EC 0027424C 9B A4 00 3C */ stb r29, 0x3c(r4) +/* 802785F0 00274250 90 04 00 40 */ stw r0, 0x40(r4) +/* 802785F4 00274254 93 A4 00 44 */ stw r29, 0x44(r4) +/* 802785F8 00274258 4B FF 8C F1 */ bl OSInitThreadQueue +/* 802785FC 0027425C 3C A0 CC 00 */ lis r5, 0xCC002030@ha +/* 80278600 00274260 3C 80 80 27 */ lis r4, __VIRetraceHandler@ha +/* 80278604 00274264 A0 05 20 30 */ lhz r0, 0xCC002030@l(r5) +/* 80278608 00274268 38 84 76 2C */ addi r4, r4, __VIRetraceHandler@l +/* 8027860C 0027426C 38 60 00 18 */ li r3, 0x18 +/* 80278610 00274270 54 00 04 7E */ clrlwi r0, r0, 0x11 +/* 80278614 00274274 B0 05 20 30 */ sth r0, 0x2030(r5) +/* 80278618 00274278 A0 05 20 34 */ lhz r0, 0x2034(r5) +/* 8027861C 0027427C 54 00 04 7E */ clrlwi r0, r0, 0x11 +/* 80278620 00274280 B0 05 20 34 */ sth r0, 0x2034(r5) +/* 80278624 00274284 93 AD A9 40 */ stw r29, lbl_8063FC00-_SDA_BASE_(r13) +/* 80278628 00274288 93 AD A9 3C */ stw r29, lbl_8063FBFC-_SDA_BASE_(r13) +/* 8027862C 0027428C 4B FF 61 7D */ bl __OSSetInterruptHandler +/* 80278630 00274290 38 60 00 80 */ li r3, 0x80 +/* 80278634 00274294 4B FF 65 39 */ bl __OSUnmaskInterrupts +/* 80278638 00274298 3C 60 80 43 */ lis r3, lbl_804342B0@ha +/* 8027863C 0027429C 38 63 42 B0 */ addi r3, r3, lbl_804342B0@l +/* 80278640 002742A0 4B FF 76 51 */ bl OSRegisterShutdownFunction +/* 80278644 002742A4 4B FF 61 19 */ bl OSDisableInterrupts +/* 80278648 002742A8 80 AD A9 30 */ lwz r5, lbl_8063FBF0-_SDA_BASE_(r13) +/* 8027864C 002742AC 28 05 00 07 */ cmplwi r5, 7 +/* 80278650 002742B0 41 81 00 30 */ bgt lbl_80278680 +/* 80278654 002742B4 3C 80 80 43 */ lis r4, lbl_8043435C@ha +/* 80278658 002742B8 54 A0 10 3A */ slwi r0, r5, 2 +/* 8027865C 002742BC 38 84 43 5C */ addi r4, r4, lbl_8043435C@l +/* 80278660 002742C0 7C 84 00 2E */ lwzx r4, r4, r0 +/* 80278664 002742C4 7C 89 03 A6 */ mtctr r4 +/* 80278668 002742C8 4E 80 04 20 */ bctr +/* 8027866C 002742CC 3B 80 00 00 */ li r28, 0 +/* 80278670 002742D0 48 00 00 10 */ b lbl_80278680 +/* 80278674 002742D4 3B 80 00 01 */ li r28, 1 +/* 80278678 002742D8 48 00 00 08 */ b lbl_80278680 +/* 8027867C 002742DC 7C BC 2B 78 */ mr r28, r5 +lbl_80278680: +/* 80278680 002742E0 4B FF 61 05 */ bl OSRestoreInterrupts +/* 80278684 002742E4 2C 1C 00 01 */ cmpwi r28, 1 +/* 80278688 002742E8 41 82 00 08 */ beq lbl_80278690 +/* 8027868C 002742EC 48 00 00 20 */ b lbl_802786AC +lbl_80278690: +/* 80278690 002742F0 3C 60 00 01 */ lis r3, 0x00015F90@ha +/* 80278694 002742F4 38 80 3A 98 */ li r4, 0x3a98 +/* 80278698 002742F8 38 03 5F 90 */ addi r0, r3, 0x00015F90@l +/* 8027869C 002742FC 90 8D A8 D0 */ stw r4, lbl_8063FB90-_SDA_BASE_(r13) +/* 802786A0 00274300 90 8D A8 D4 */ stw r4, lbl_8063FB94-_SDA_BASE_(r13) +/* 802786A4 00274304 90 0D A8 D8 */ stw r0, lbl_8063FB98-_SDA_BASE_(r13) +/* 802786A8 00274308 48 00 00 1C */ b lbl_802786C4 +lbl_802786AC: +/* 802786AC 0027430C 3C 60 00 02 */ lis r3, 0x0001A5E0@ha +/* 802786B0 00274310 38 80 46 50 */ li r4, 0x4650 +/* 802786B4 00274314 38 03 A5 E0 */ addi r0, r3, 0x0001A5E0@l +/* 802786B8 00274318 90 8D A8 D0 */ stw r4, lbl_8063FB90-_SDA_BASE_(r13) +/* 802786BC 0027431C 90 8D A8 D4 */ stw r4, lbl_8063FB94-_SDA_BASE_(r13) +/* 802786C0 00274320 90 0D A8 D8 */ stw r0, lbl_8063FB98-_SDA_BASE_(r13) +lbl_802786C4: +/* 802786C4 00274324 38 60 00 00 */ li r3, 0 +/* 802786C8 00274328 38 00 00 01 */ li r0, 1 +/* 802786CC 0027432C 90 6D A8 DC */ stw r3, lbl_8063FB9C-_SDA_BASE_(r13) +/* 802786D0 00274330 3B 60 00 01 */ li r27, 1 +/* 802786D4 00274334 90 6D A8 E0 */ stw r3, lbl_8063FBA0-_SDA_BASE_(r13) +/* 802786D8 00274338 90 6D A9 58 */ stw r3, lbl_8063FC18-_SDA_BASE_(r13) +/* 802786DC 0027433C 90 0D A8 CC */ stw r0, lbl_8063FB8C-_SDA_BASE_(r13) +/* 802786E0 00274340 90 6D A8 E4 */ stw r3, lbl_8063FBA4-_SDA_BASE_(r13) +/* 802786E4 00274344 80 0D A9 60 */ lwz r0, lbl_8063FC20-_SDA_BASE_(r13) +/* 802786E8 00274348 48 07 3E 21 */ bl func_802EC508 +/* 802786EC 0027434C 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802786F0 00274350 40 82 00 08 */ bne lbl_802786F8 +/* 802786F4 00274354 3B 60 00 00 */ li r27, 0 +lbl_802786F8: +/* 802786F8 00274358 93 6D A9 60 */ stw r27, lbl_8063FC20-_SDA_BASE_(r13) +/* 802786FC 0027435C 38 00 00 00 */ li r0, 0 +/* 80278700 00274360 80 6D A9 5C */ lwz r3, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80278704 00274364 90 0D A9 5C */ stw r0, lbl_8063FC1C-_SDA_BASE_(r13) +/* 80278708 00274368 48 00 33 F9 */ bl __VISetRevolutionModeSimple +lbl_8027870C: +/* 8027870C 0027436C 39 61 00 30 */ addi r11, r1, 0x30 +/* 80278710 00274370 4B F4 EA 59 */ bl _restgpr_24 +/* 80278714 00274374 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80278718 00274378 7C 08 03 A6 */ mtlr r0 +/* 8027871C 0027437C 38 21 00 30 */ addi r1, r1, 0x30 +/* 80278720 00274380 4E 80 00 20 */ blr + +.global VIWaitForRetrace +VIWaitForRetrace: +/* 80278724 00274384 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80278728 00274388 7C 08 02 A6 */ mflr r0 +/* 8027872C 0027438C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80278730 00274390 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80278734 00274394 93 C1 00 08 */ stw r30, 8(r1) +/* 80278738 00274398 4B FF 60 25 */ bl OSDisableInterrupts +/* 8027873C 0027439C 7C 7F 1B 78 */ mr r31, r3 +/* 80278740 002743A0 83 CD A9 6C */ lwz r30, lbl_8063FC2C-_SDA_BASE_(r13) +lbl_80278744: +/* 80278744 002743A4 38 6D A9 48 */ addi r3, r13, lbl_8063FC08-_SDA_BASE_ +/* 80278748 002743A8 4B FF 9C 2D */ bl OSSleepThread +/* 8027874C 002743AC 80 0D A9 6C */ lwz r0, lbl_8063FC2C-_SDA_BASE_(r13) +/* 80278750 002743B0 7C 1E 00 40 */ cmplw r30, r0 +/* 80278754 002743B4 41 82 FF F0 */ beq lbl_80278744 +/* 80278758 002743B8 7F E3 FB 78 */ mr r3, r31 +/* 8027875C 002743BC 4B FF 60 29 */ bl OSRestoreInterrupts +/* 80278760 002743C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80278764 002743C4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80278768 002743C8 83 C1 00 08 */ lwz r30, 8(r1) +/* 8027876C 002743CC 7C 08 03 A6 */ mtlr r0 +/* 80278770 002743D0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80278774 002743D4 4E 80 00 20 */ blr + +.global setFbbRegs +setFbbRegs: +/* 80278778 002743D8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8027877C 002743DC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80278780 002743E0 89 03 00 2C */ lbz r8, 0x2c(r3) +/* 80278784 002743E4 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 80278788 002743E8 55 1F 28 34 */ slwi r31, r8, 5 +/* 8027878C 002743EC 81 63 00 20 */ lwz r11, 0x20(r3) +/* 80278790 002743F0 7D 1F 01 D6 */ mullw r8, r31, r0 +/* 80278794 002743F4 A1 23 00 16 */ lhz r9, 0x16(r3) +/* 80278798 002743F8 81 43 00 30 */ lwz r10, 0x30(r3) +/* 8027879C 002743FC 2C 0B 00 00 */ cmpwi r11, 0 +/* 802787A0 00274400 55 20 08 34 */ rlwinm r0, r9, 1, 0, 0x1a +/* 802787A4 00274404 A1 83 00 0A */ lhz r12, 0xa(r3) +/* 802787A8 00274408 7C 0A 02 14 */ add r0, r10, r0 +/* 802787AC 0027440C 7D 28 02 14 */ add r9, r8, r0 +/* 802787B0 00274410 91 24 00 00 */ stw r9, 0(r4) +/* 802787B4 00274414 40 82 00 08 */ bne lbl_802787BC +/* 802787B8 00274418 48 00 00 08 */ b lbl_802787C0 +lbl_802787BC: +/* 802787BC 0027441C 7D 29 FA 14 */ add r9, r9, r31 +lbl_802787C0: +/* 802787C0 00274420 55 88 0F FE */ srwi r8, r12, 0x1f +/* 802787C4 00274424 55 80 07 FE */ clrlwi r0, r12, 0x1f +/* 802787C8 00274428 7C 00 42 78 */ xor r0, r0, r8 +/* 802787CC 0027442C 91 25 00 00 */ stw r9, 0(r5) +/* 802787D0 00274430 7C 08 00 50 */ subf r0, r8, r0 +/* 802787D4 00274434 2C 00 00 01 */ cmpwi r0, 1 +/* 802787D8 00274438 40 82 00 10 */ bne lbl_802787E8 +/* 802787DC 0027443C 80 04 00 00 */ lwz r0, 0(r4) +/* 802787E0 00274440 91 24 00 00 */ stw r9, 0(r4) +/* 802787E4 00274444 90 05 00 00 */ stw r0, 0(r5) +lbl_802787E8: +/* 802787E8 00274448 80 04 00 00 */ lwz r0, 0(r4) +/* 802787EC 0027444C 54 00 00 BE */ clrlwi r0, r0, 2 +/* 802787F0 00274450 90 04 00 00 */ stw r0, 0(r4) +/* 802787F4 00274454 80 05 00 00 */ lwz r0, 0(r5) +/* 802787F8 00274458 54 00 00 BE */ clrlwi r0, r0, 2 +/* 802787FC 0027445C 90 05 00 00 */ stw r0, 0(r5) +/* 80278800 00274460 80 03 00 44 */ lwz r0, 0x44(r3) +/* 80278804 00274464 2C 00 00 00 */ cmpwi r0, 0 +/* 80278808 00274468 41 82 00 84 */ beq lbl_8027888C +/* 8027880C 0027446C 89 03 00 2C */ lbz r8, 0x2c(r3) +/* 80278810 00274470 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 80278814 00274474 55 1F 28 34 */ slwi r31, r8, 5 +/* 80278818 00274478 81 63 00 20 */ lwz r11, 0x20(r3) +/* 8027881C 0027447C 7D 1F 01 D6 */ mullw r8, r31, r0 +/* 80278820 00274480 A1 23 00 16 */ lhz r9, 0x16(r3) +/* 80278824 00274484 81 43 00 48 */ lwz r10, 0x48(r3) +/* 80278828 00274488 2C 0B 00 00 */ cmpwi r11, 0 +/* 8027882C 0027448C 55 20 08 34 */ rlwinm r0, r9, 1, 0, 0x1a +/* 80278830 00274490 A1 83 00 0A */ lhz r12, 0xa(r3) +/* 80278834 00274494 7C 0A 02 14 */ add r0, r10, r0 +/* 80278838 00274498 7D 28 02 14 */ add r9, r8, r0 +/* 8027883C 0027449C 91 26 00 00 */ stw r9, 0(r6) +/* 80278840 002744A0 40 82 00 08 */ bne lbl_80278848 +/* 80278844 002744A4 48 00 00 08 */ b lbl_8027884C +lbl_80278848: +/* 80278848 002744A8 7D 29 FA 14 */ add r9, r9, r31 +lbl_8027884C: +/* 8027884C 002744AC 55 88 0F FE */ srwi r8, r12, 0x1f +/* 80278850 002744B0 55 80 07 FE */ clrlwi r0, r12, 0x1f +/* 80278854 002744B4 7C 00 42 78 */ xor r0, r0, r8 +/* 80278858 002744B8 91 27 00 00 */ stw r9, 0(r7) +/* 8027885C 002744BC 7C 08 00 50 */ subf r0, r8, r0 +/* 80278860 002744C0 2C 00 00 01 */ cmpwi r0, 1 +/* 80278864 002744C4 40 82 00 10 */ bne lbl_80278874 +/* 80278868 002744C8 80 06 00 00 */ lwz r0, 0(r6) +/* 8027886C 002744CC 91 26 00 00 */ stw r9, 0(r6) +/* 80278870 002744D0 90 07 00 00 */ stw r0, 0(r7) +lbl_80278874: +/* 80278874 002744D4 80 06 00 00 */ lwz r0, 0(r6) +/* 80278878 002744D8 54 00 00 BE */ clrlwi r0, r0, 2 +/* 8027887C 002744DC 90 06 00 00 */ stw r0, 0(r6) +/* 80278880 002744E0 80 07 00 00 */ lwz r0, 0(r7) +/* 80278884 002744E4 54 00 00 BE */ clrlwi r0, r0, 2 +/* 80278888 002744E8 90 07 00 00 */ stw r0, 0(r7) +lbl_8027888C: +/* 8027888C 002744EC 80 04 00 00 */ lwz r0, 0(r4) +/* 80278890 002744F0 3D 00 01 00 */ lis r8, 0x100 +/* 80278894 002744F4 7C 00 40 40 */ cmplw r0, r8 +/* 80278898 002744F8 40 80 00 30 */ bge lbl_802788C8 +/* 8027889C 002744FC 80 05 00 00 */ lwz r0, 0(r5) +/* 802788A0 00274500 7C 00 40 40 */ cmplw r0, r8 +/* 802788A4 00274504 40 80 00 24 */ bge lbl_802788C8 +/* 802788A8 00274508 80 06 00 00 */ lwz r0, 0(r6) +/* 802788AC 0027450C 7C 00 40 40 */ cmplw r0, r8 +/* 802788B0 00274510 40 80 00 18 */ bge lbl_802788C8 +/* 802788B4 00274514 80 07 00 00 */ lwz r0, 0(r7) +/* 802788B8 00274518 7C 00 40 40 */ cmplw r0, r8 +/* 802788BC 0027451C 40 80 00 0C */ bge lbl_802788C8 +/* 802788C0 00274520 39 60 00 00 */ li r11, 0 +/* 802788C4 00274524 48 00 00 08 */ b lbl_802788CC +lbl_802788C8: +/* 802788C8 00274528 39 60 00 01 */ li r11, 1 +lbl_802788CC: +/* 802788CC 0027452C 2C 0B 00 00 */ cmpwi r11, 0 +/* 802788D0 00274530 41 82 00 34 */ beq lbl_80278904 +/* 802788D4 00274534 80 04 00 00 */ lwz r0, 0(r4) +/* 802788D8 00274538 54 00 D9 7E */ srwi r0, r0, 5 +/* 802788DC 0027453C 90 04 00 00 */ stw r0, 0(r4) +/* 802788E0 00274540 80 05 00 00 */ lwz r0, 0(r5) +/* 802788E4 00274544 54 00 D9 7E */ srwi r0, r0, 5 +/* 802788E8 00274548 90 05 00 00 */ stw r0, 0(r5) +/* 802788EC 0027454C 80 06 00 00 */ lwz r0, 0(r6) +/* 802788F0 00274550 54 00 D9 7E */ srwi r0, r0, 5 +/* 802788F4 00274554 90 06 00 00 */ stw r0, 0(r6) +/* 802788F8 00274558 80 07 00 00 */ lwz r0, 0(r7) +/* 802788FC 0027455C 54 00 D9 7E */ srwi r0, r0, 5 +/* 80278900 00274560 90 07 00 00 */ stw r0, 0(r7) +lbl_80278904: +/* 80278904 00274564 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278908 00274568 3D 00 80 51 */ lis r8, lbl_80515818@ha +/* 8027890C 0027456C 81 44 00 00 */ lwz r10, 0(r4) +/* 80278910 00274570 39 08 58 18 */ addi r8, r8, lbl_80515818@l +/* 80278914 00274574 81 2D A8 FC */ lwz r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278918 00274578 64 00 00 01 */ oris r0, r0, 1 +/* 8027891C 0027457C B1 48 00 1E */ sth r10, 0x1e(r8) +/* 80278920 00274580 55 6B 60 26 */ slwi r11, r11, 0xc +/* 80278924 00274584 91 2D A8 FC */ stw r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278928 00274588 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027892C 0027458C 80 84 00 00 */ lwz r4, 0(r4) +/* 80278930 00274590 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278934 00274594 54 8A 84 3E */ srwi r10, r4, 0x10 +/* 80278938 00274598 89 23 00 3C */ lbz r9, 0x3c(r3) +/* 8027893C 0027459C 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278940 002745A0 64 00 00 02 */ oris r0, r0, 2 +/* 80278944 002745A4 7D 6A 53 78 */ or r10, r11, r10 +/* 80278948 002745A8 55 29 40 2E */ slwi r9, r9, 8 +/* 8027894C 002745AC 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278950 002745B0 7D 44 4B 78 */ or r4, r10, r9 +/* 80278954 002745B4 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278958 002745B8 B0 88 00 1C */ sth r4, 0x1c(r8) +/* 8027895C 002745BC 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278960 002745C0 81 25 00 00 */ lwz r9, 0(r5) +/* 80278964 002745C4 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278968 002745C8 60 00 10 00 */ ori r0, r0, 0x1000 +/* 8027896C 002745CC B1 28 00 26 */ sth r9, 0x26(r8) +/* 80278970 002745D0 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278974 002745D4 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278978 002745D8 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027897C 002745DC 80 A5 00 00 */ lwz r5, 0(r5) +/* 80278980 002745E0 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278984 002745E4 60 00 20 00 */ ori r0, r0, 0x2000 +/* 80278988 002745E8 54 A5 84 3E */ srwi r5, r5, 0x10 +/* 8027898C 002745EC 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278990 002745F0 B0 A8 00 24 */ sth r5, 0x24(r8) +/* 80278994 002745F4 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278998 002745F8 80 03 00 44 */ lwz r0, 0x44(r3) +/* 8027899C 002745FC 2C 00 00 00 */ cmpwi r0, 0 +/* 802789A0 00274600 41 82 00 84 */ beq lbl_80278A24 +/* 802789A4 00274604 80 8D A8 F8 */ lwz r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802789A8 00274608 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 802789AC 0027460C 81 26 00 00 */ lwz r9, 0(r6) +/* 802789B0 00274610 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 802789B4 00274614 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802789B8 00274618 60 83 40 00 */ ori r3, r4, 0x4000 +/* 802789BC 0027461C B1 28 00 22 */ sth r9, 0x22(r8) +/* 802789C0 00274620 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802789C4 00274624 90 6D A8 F8 */ stw r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802789C8 00274628 80 6D A8 F8 */ lwz r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802789CC 0027462C 80 A6 00 00 */ lwz r5, 0(r6) +/* 802789D0 00274630 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802789D4 00274634 7C 60 03 78 */ or r0, r3, r0 +/* 802789D8 00274638 54 A3 84 3E */ srwi r3, r5, 0x10 +/* 802789DC 0027463C 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802789E0 00274640 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802789E4 00274644 B0 68 00 20 */ sth r3, 0x20(r8) +/* 802789E8 00274648 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802789EC 0027464C 80 87 00 00 */ lwz r4, 0(r7) +/* 802789F0 00274650 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802789F4 00274654 60 00 04 00 */ ori r0, r0, 0x400 +/* 802789F8 00274658 B0 88 00 2A */ sth r4, 0x2a(r8) +/* 802789FC 0027465C 90 6D A8 FC */ stw r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278A00 00274660 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278A04 00274664 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278A08 00274668 80 87 00 00 */ lwz r4, 0(r7) +/* 80278A0C 0027466C 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278A10 00274670 60 00 08 00 */ ori r0, r0, 0x800 +/* 80278A14 00274674 54 84 84 3E */ srwi r4, r4, 0x10 +/* 80278A18 00274678 90 6D A8 FC */ stw r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278A1C 0027467C B0 88 00 28 */ sth r4, 0x28(r8) +/* 80278A20 00274680 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +lbl_80278A24: +/* 80278A24 00274684 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80278A28 00274688 38 21 00 10 */ addi r1, r1, 0x10 +/* 80278A2C 0027468C 4E 80 00 20 */ blr + +.global setVerticalRegs +setVerticalRegs: +/* 80278A30 00274690 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80278A34 00274694 3D 60 80 51 */ lis r11, lbl_80515818@ha +/* 80278A38 00274698 39 6B 58 18 */ addi r11, r11, lbl_80515818@l +/* 80278A3C 0027469C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80278A40 002746A0 81 81 00 18 */ lwz r12, 0x18(r1) +/* 80278A44 002746A4 93 C1 00 08 */ stw r30, 8(r1) +/* 80278A48 002746A8 A0 0B 00 6C */ lhz r0, 0x6c(r11) +/* 80278A4C 002746AC 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80278A50 002746B0 41 82 00 10 */ beq lbl_80278A60 +/* 80278A54 002746B4 39 60 00 01 */ li r11, 1 +/* 80278A58 002746B8 3B C0 00 02 */ li r30, 2 +/* 80278A5C 002746BC 48 00 00 0C */ b lbl_80278A68 +lbl_80278A60: +/* 80278A60 002746C0 39 60 00 02 */ li r11, 2 +/* 80278A64 002746C4 3B C0 00 01 */ li r30, 1 +lbl_80278A68: +/* 80278A68 002746C8 54 7F 0F FE */ srwi r31, r3, 0x1f +/* 80278A6C 002746CC 54 60 07 FE */ clrlwi r0, r3, 0x1f +/* 80278A70 002746D0 7C 00 FA 78 */ xor r0, r0, r31 +/* 80278A74 002746D4 7C 1F 00 51 */ subf. r0, r31, r0 +/* 80278A78 002746D8 40 82 00 3C */ bne lbl_80278AB4 +/* 80278A7C 002746DC 7C 0B 31 D6 */ mullw r0, r11, r6 +/* 80278A80 002746E0 7C 04 00 50 */ subf r0, r4, r0 +/* 80278A84 002746E4 7C 03 00 50 */ subf r0, r3, r0 +/* 80278A88 002746E8 7F FE 01 D6 */ mullw r31, r30, r0 +/* 80278A8C 002746EC 7C 7E 19 D6 */ mullw r3, r30, r3 +/* 80278A90 002746F0 7C C9 FA 14 */ add r6, r9, r31 +/* 80278A94 002746F4 54 C6 04 3E */ clrlwi r6, r6, 0x10 +/* 80278A98 002746F8 7C 07 1A 14 */ add r0, r7, r3 +/* 80278A9C 002746FC 7C EA FA 14 */ add r7, r10, r31 +/* 80278AA0 00274700 7C 68 1A 14 */ add r3, r8, r3 +/* 80278AA4 00274704 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 80278AA8 00274708 54 E7 04 3E */ clrlwi r7, r7, 0x10 +/* 80278AAC 0027470C 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 80278AB0 00274710 48 00 00 38 */ b lbl_80278AE8 +lbl_80278AB4: +/* 80278AB4 00274714 7C 0B 31 D6 */ mullw r0, r11, r6 +/* 80278AB8 00274718 7C 04 00 50 */ subf r0, r4, r0 +/* 80278ABC 0027471C 7C 03 00 50 */ subf r0, r3, r0 +/* 80278AC0 00274720 7F FE 01 D6 */ mullw r31, r30, r0 +/* 80278AC4 00274724 7C 7E 19 D6 */ mullw r3, r30, r3 +/* 80278AC8 00274728 7C CA FA 14 */ add r6, r10, r31 +/* 80278ACC 0027472C 54 C6 04 3E */ clrlwi r6, r6, 0x10 +/* 80278AD0 00274730 7C 08 1A 14 */ add r0, r8, r3 +/* 80278AD4 00274734 7C 67 1A 14 */ add r3, r7, r3 +/* 80278AD8 00274738 7C E9 FA 14 */ add r7, r9, r31 +/* 80278ADC 0027473C 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 80278AE0 00274740 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 80278AE4 00274744 54 E7 04 3E */ clrlwi r7, r7, 0x10 +lbl_80278AE8: +/* 80278AE8 00274748 7C 84 5B D6 */ divw r4, r4, r11 +/* 80278AEC 0027474C 2C 0C 00 00 */ cmpwi r12, 0 +/* 80278AF0 00274750 54 8A 04 3E */ clrlwi r10, r4, 0x10 +/* 80278AF4 00274754 41 82 00 30 */ beq lbl_80278B24 +/* 80278AF8 00274758 55 44 0B FC */ rlwinm r4, r10, 1, 0xf, 0x1e +/* 80278AFC 0027475C 38 C6 00 02 */ addi r6, r6, 2 +/* 80278B00 00274760 39 04 FF FE */ addi r8, r4, -2 +/* 80278B04 00274764 39 40 00 00 */ li r10, 0 +/* 80278B08 00274768 38 87 00 02 */ addi r4, r7, 2 +/* 80278B0C 0027476C 54 C6 04 3E */ clrlwi r6, r6, 0x10 +/* 80278B10 00274770 7C 00 42 14 */ add r0, r0, r8 +/* 80278B14 00274774 7C 63 42 14 */ add r3, r3, r8 +/* 80278B18 00274778 54 87 04 3E */ clrlwi r7, r4, 0x10 +/* 80278B1C 0027477C 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 80278B20 00274780 54 63 04 3E */ clrlwi r3, r3, 0x10 +lbl_80278B24: +/* 80278B24 00274784 81 0D A8 F8 */ lwz r8, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B28 00274788 3C 80 80 00 */ lis r4, 0x8000 +/* 80278B2C 0027478C 81 2D A8 FC */ lwz r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B30 00274790 55 4B 23 36 */ rlwinm r11, r10, 4, 0xc, 0x1b +/* 80278B34 00274794 7D 04 23 78 */ or r4, r8, r4 +/* 80278B38 00274798 3D 40 80 51 */ lis r10, lbl_80515818@ha +/* 80278B3C 0027479C 91 2D A8 FC */ stw r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B40 002747A0 39 0A 58 18 */ addi r8, r10, lbl_80515818@l +/* 80278B44 002747A4 7C A9 5B 78 */ or r9, r5, r11 +/* 80278B48 002747A8 90 8D A8 F8 */ stw r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B4C 002747AC 80 8D A8 F8 */ lwz r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B50 002747B0 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B54 002747B4 64 84 01 00 */ oris r4, r4, 0x100 +/* 80278B58 002747B8 B0 08 00 0E */ sth r0, 0xe(r8) +/* 80278B5C 002747BC 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B60 002747C0 90 8D A8 F8 */ stw r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B64 002747C4 80 8D A8 F8 */ lwz r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B68 002747C8 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B6C 002747CC 64 84 02 00 */ oris r4, r4, 0x200 +/* 80278B70 002747D0 B1 2A 58 18 */ sth r9, 0x5818(r10) +/* 80278B74 002747D4 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B78 002747D8 90 8D A8 F8 */ stw r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B7C 002747DC 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B80 002747E0 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B84 002747E4 64 00 00 40 */ oris r0, r0, 0x40 +/* 80278B88 002747E8 B0 C8 00 0C */ sth r6, 0xc(r8) +/* 80278B8C 002747EC 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B90 002747F0 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B94 002747F4 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278B98 002747F8 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278B9C 002747FC 64 00 00 80 */ oris r0, r0, 0x80 +/* 80278BA0 00274800 B0 68 00 12 */ sth r3, 0x12(r8) +/* 80278BA4 00274804 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278BA8 00274808 B0 E8 00 10 */ sth r7, 0x10(r8) +/* 80278BAC 0027480C 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278BB0 00274810 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80278BB4 00274814 83 C1 00 08 */ lwz r30, 8(r1) +/* 80278BB8 00274818 38 21 00 10 */ addi r1, r1, 0x10 +/* 80278BBC 0027481C 4E 80 00 20 */ blr + +.global VIConfigure +VIConfigure: +/* 80278BC0 00274820 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80278BC4 00274824 7C 08 02 A6 */ mflr r0 +/* 80278BC8 00274828 90 01 00 34 */ stw r0, 0x34(r1) +/* 80278BCC 0027482C 39 61 00 30 */ addi r11, r1, 0x30 +/* 80278BD0 00274830 4B F4 E5 51 */ bl _savegpr_25 +/* 80278BD4 00274834 3F 80 80 43 */ lis r28, lbl_80434090@ha +/* 80278BD8 00274838 7C 7F 1B 78 */ mr r31, r3 +/* 80278BDC 0027483C 3B 9C 40 90 */ addi r28, r28, lbl_80434090@l +/* 80278BE0 00274840 4B FF 5B 7D */ bl OSDisableInterrupts +/* 80278BE4 00274844 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80278BE8 00274848 80 BF 00 00 */ lwz r5, 0(r31) +/* 80278BEC 0027484C 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80278BF0 00274850 7C 7E 1B 78 */ mr r30, r3 +/* 80278BF4 00274854 80 04 00 24 */ lwz r0, 0x24(r4) +/* 80278BF8 00274858 54 A3 07 BE */ clrlwi r3, r5, 0x1e +/* 80278BFC 0027485C 7C 00 18 40 */ cmplw r0, r3 +/* 80278C00 00274860 41 82 00 10 */ beq lbl_80278C10 +/* 80278C04 00274864 38 00 00 01 */ li r0, 1 +/* 80278C08 00274868 90 64 00 24 */ stw r3, 0x24(r4) +/* 80278C0C 0027486C 90 0D A8 F0 */ stw r0, lbl_8063FBB0-_SDA_BASE_(r13) +lbl_80278C10: +/* 80278C10 00274870 80 1F 00 00 */ lwz r0, 0(r31) +/* 80278C14 00274874 3C 60 80 00 */ lis r3, 0x800000CC@ha +/* 80278C18 00274878 83 23 00 CC */ lwz r25, 0x800000CC@l(r3) +/* 80278C1C 0027487C 54 1A F0 BE */ srwi r26, r0, 2 +/* 80278C20 00274880 28 1A 00 04 */ cmplwi r26, 4 +/* 80278C24 00274884 40 82 00 6C */ bne lbl_80278C90 +/* 80278C28 00274888 80 0D A9 24 */ lwz r0, lbl_8063FBE4-_SDA_BASE_(r13) +/* 80278C2C 0027488C 2C 00 00 00 */ cmpwi r0, 0 +/* 80278C30 00274890 40 82 00 60 */ bne lbl_80278C90 +/* 80278C34 00274894 38 00 00 01 */ li r0, 1 +/* 80278C38 00274898 38 7C 02 EC */ addi r3, r28, 0x2ec +/* 80278C3C 0027489C 90 0D A9 24 */ stw r0, lbl_8063FBE4-_SDA_BASE_(r13) +/* 80278C40 002748A0 4C C6 31 82 */ crclr 6 +/* 80278C44 002748A4 4B D8 EE 81 */ bl func_80007AC4 +/* 80278C48 002748A8 38 7C 03 18 */ addi r3, r28, 0x318 +/* 80278C4C 002748AC 4C C6 31 82 */ crclr 6 +/* 80278C50 002748B0 4B D8 EE 75 */ bl func_80007AC4 +/* 80278C54 002748B4 38 7C 03 44 */ addi r3, r28, 0x344 +/* 80278C58 002748B8 4C C6 31 82 */ crclr 6 +/* 80278C5C 002748BC 4B D8 EE 69 */ bl func_80007AC4 +/* 80278C60 002748C0 38 7C 03 70 */ addi r3, r28, 0x370 +/* 80278C64 002748C4 4C C6 31 82 */ crclr 6 +/* 80278C68 002748C8 4B D8 EE 5D */ bl func_80007AC4 +/* 80278C6C 002748CC 38 7C 03 9C */ addi r3, r28, 0x39c +/* 80278C70 002748D0 4C C6 31 82 */ crclr 6 +/* 80278C74 002748D4 4B D8 EE 51 */ bl func_80007AC4 +/* 80278C78 002748D8 38 7C 03 C8 */ addi r3, r28, 0x3c8 +/* 80278C7C 002748DC 4C C6 31 82 */ crclr 6 +/* 80278C80 002748E0 4B D8 EE 45 */ bl func_80007AC4 +/* 80278C84 002748E4 38 7C 02 EC */ addi r3, r28, 0x2ec +/* 80278C88 002748E8 4C C6 31 82 */ crclr 6 +/* 80278C8C 002748EC 4B D8 EE 39 */ bl func_80007AC4 +lbl_80278C90: +/* 80278C90 002748F0 2C 19 00 02 */ cmpwi r25, 2 +/* 80278C94 002748F4 41 82 00 2C */ beq lbl_80278CC0 +/* 80278C98 002748F8 40 80 00 14 */ bge lbl_80278CAC +/* 80278C9C 002748FC 2C 19 00 00 */ cmpwi r25, 0 +/* 80278CA0 00274900 41 82 00 20 */ beq lbl_80278CC0 +/* 80278CA4 00274904 40 80 00 40 */ bge lbl_80278CE4 +/* 80278CA8 00274908 48 00 00 4C */ b lbl_80278CF4 +lbl_80278CAC: +/* 80278CAC 0027490C 2C 19 00 05 */ cmpwi r25, 5 +/* 80278CB0 00274910 41 82 00 34 */ beq lbl_80278CE4 +/* 80278CB4 00274914 41 80 00 40 */ blt lbl_80278CF4 +/* 80278CB8 00274918 2C 19 00 08 */ cmpwi r25, 8 +/* 80278CBC 0027491C 40 80 00 38 */ bge lbl_80278CF4 +lbl_80278CC0: +/* 80278CC0 00274920 2C 1A 00 00 */ cmpwi r26, 0 +/* 80278CC4 00274924 41 82 00 4C */ beq lbl_80278D10 +/* 80278CC8 00274928 28 1A 00 02 */ cmplwi r26, 2 +/* 80278CCC 0027492C 41 82 00 44 */ beq lbl_80278D10 +/* 80278CD0 00274930 28 1A 00 06 */ cmplwi r26, 6 +/* 80278CD4 00274934 41 82 00 3C */ beq lbl_80278D10 +/* 80278CD8 00274938 28 1A 00 07 */ cmplwi r26, 7 +/* 80278CDC 0027493C 40 82 00 18 */ bne lbl_80278CF4 +/* 80278CE0 00274940 48 00 00 30 */ b lbl_80278D10 +lbl_80278CE4: +/* 80278CE4 00274944 28 1A 00 01 */ cmplwi r26, 1 +/* 80278CE8 00274948 41 82 00 28 */ beq lbl_80278D10 +/* 80278CEC 0027494C 28 1A 00 05 */ cmplwi r26, 5 +/* 80278CF0 00274950 41 82 00 20 */ beq lbl_80278D10 +lbl_80278CF4: +/* 80278CF4 00274954 7F 26 CB 78 */ mr r6, r25 +/* 80278CF8 00274958 7F 47 D3 78 */ mr r7, r26 +/* 80278CFC 0027495C 38 BC 03 F4 */ addi r5, r28, 0x3f4 +/* 80278D00 00274960 38 6D 88 20 */ addi r3, r13, lbl_8063DAE0-_SDA_BASE_ +/* 80278D04 00274964 38 80 09 F0 */ li r4, 0x9f0 +/* 80278D08 00274968 4C C6 31 82 */ crclr 6 +/* 80278D0C 0027496C 4B FF 27 91 */ bl OSPanic +lbl_80278D10: +/* 80278D10 00274970 2C 1A 00 00 */ cmpwi r26, 0 +/* 80278D14 00274974 41 82 00 0C */ beq lbl_80278D20 +/* 80278D18 00274978 28 1A 00 02 */ cmplwi r26, 2 +/* 80278D1C 0027497C 40 82 00 14 */ bne lbl_80278D30 +lbl_80278D20: +/* 80278D20 00274980 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 80278D24 00274984 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 80278D28 00274988 93 23 00 28 */ stw r25, 0x28(r3) +/* 80278D2C 0027498C 48 00 00 10 */ b lbl_80278D3C +lbl_80278D30: +/* 80278D30 00274990 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 80278D34 00274994 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 80278D38 00274998 93 43 00 28 */ stw r26, 0x28(r3) +lbl_80278D3C: +/* 80278D3C 0027499C 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80278D40 002749A0 A0 BF 00 0A */ lhz r5, 0xa(r31) +/* 80278D44 002749A4 38 64 58 90 */ addi r3, r4, lbl_80515890@l +/* 80278D48 002749A8 80 03 00 24 */ lwz r0, 0x24(r3) +/* 80278D4C 002749AC B0 A4 58 90 */ sth r5, 0x5890(r4) +/* 80278D50 002749B0 28 00 00 01 */ cmplwi r0, 1 +/* 80278D54 002749B4 40 82 00 10 */ bne lbl_80278D64 +/* 80278D58 002749B8 A0 1F 00 0C */ lhz r0, 0xc(r31) +/* 80278D5C 002749BC 54 08 0C 3C */ rlwinm r8, r0, 1, 0x10, 0x1e +/* 80278D60 002749C0 48 00 00 08 */ b lbl_80278D68 +lbl_80278D64: +/* 80278D64 002749C4 A1 1F 00 0C */ lhz r8, 0xc(r31) +lbl_80278D68: +/* 80278D68 002749C8 3C E0 80 51 */ lis r7, lbl_80515890@ha +/* 80278D6C 002749CC A0 DF 00 0E */ lhz r6, 0xe(r31) +/* 80278D70 002749D0 38 E7 58 90 */ addi r7, r7, lbl_80515890@l +/* 80278D74 002749D4 A0 9F 00 04 */ lhz r4, 4(r31) +/* 80278D78 002749D8 81 27 00 24 */ lwz r9, 0x24(r7) +/* 80278D7C 002749DC 38 00 00 00 */ li r0, 0 +/* 80278D80 002749E0 A0 BF 00 08 */ lhz r5, 8(r31) +/* 80278D84 002749E4 80 7F 00 14 */ lwz r3, 0x14(r31) +/* 80278D88 002749E8 28 09 00 02 */ cmplwi r9, 2 +/* 80278D8C 002749EC B1 07 00 02 */ sth r8, 2(r7) +/* 80278D90 002749F0 B0 C7 00 04 */ sth r6, 4(r7) +/* 80278D94 002749F4 B0 87 00 12 */ sth r4, 0x12(r7) +/* 80278D98 002749F8 B0 A7 00 14 */ sth r5, 0x14(r7) +/* 80278D9C 002749FC 90 67 00 20 */ stw r3, 0x20(r7) +/* 80278DA0 00274A00 B0 87 00 1A */ sth r4, 0x1a(r7) +/* 80278DA4 00274A04 B0 A7 00 1C */ sth r5, 0x1c(r7) +/* 80278DA8 00274A08 B0 07 00 16 */ sth r0, 0x16(r7) +/* 80278DAC 00274A0C B0 07 00 18 */ sth r0, 0x18(r7) +/* 80278DB0 00274A10 40 82 00 08 */ bne lbl_80278DB8 +/* 80278DB4 00274A14 48 00 00 1C */ b lbl_80278DD0 +lbl_80278DB8: +/* 80278DB8 00274A18 28 09 00 03 */ cmplwi r9, 3 +/* 80278DBC 00274A1C 40 82 00 08 */ bne lbl_80278DC4 +/* 80278DC0 00274A20 48 00 00 10 */ b lbl_80278DD0 +lbl_80278DC4: +/* 80278DC4 00274A24 2C 03 00 00 */ cmpwi r3, 0 +/* 80278DC8 00274A28 40 82 00 08 */ bne lbl_80278DD0 +/* 80278DCC 00274A2C 54 A5 0C 3C */ rlwinm r5, r5, 1, 0x10, 0x1e +lbl_80278DD0: +/* 80278DD0 00274A30 3F A0 80 51 */ lis r29, lbl_80515890@ha +/* 80278DD4 00274A34 3B 9D 58 90 */ addi r28, r29, lbl_80515890@l +/* 80278DD8 00274A38 80 9C 00 24 */ lwz r4, 0x24(r28) +/* 80278DDC 00274A3C 80 1C 00 28 */ lwz r0, 0x28(r28) +/* 80278DE0 00274A40 38 64 FF FD */ addi r3, r4, -3 +/* 80278DE4 00274A44 B0 BC 00 06 */ sth r5, 6(r28) +/* 80278DE8 00274A48 7C 63 00 34 */ cntlzw r3, r3 +/* 80278DEC 00274A4C 54 00 10 3A */ slwi r0, r0, 2 +/* 80278DF0 00274A50 54 63 D9 7E */ srwi r3, r3, 5 +/* 80278DF4 00274A54 90 7C 00 44 */ stw r3, 0x44(r28) +/* 80278DF8 00274A58 7C 60 22 14 */ add r3, r0, r4 +/* 80278DFC 00274A5C 4B FF F0 C9 */ bl getTiming +/* 80278E00 00274A60 A0 1C 00 04 */ lhz r0, 4(r28) +/* 80278E04 00274A64 7C 7F 1B 78 */ mr r31, r3 +/* 80278E08 00274A68 A8 BD 58 90 */ lha r5, 0x5890(r29) +/* 80278E0C 00274A6C A8 8D A8 EC */ lha r4, lbl_8063FBAC-_SDA_BASE_(r13) +/* 80278E10 00274A70 21 00 02 D0 */ subfic r8, r0, 0x2d0 +/* 80278E14 00274A74 90 7C 00 54 */ stw r3, 0x54(r28) +/* 80278E18 00274A78 7C 85 22 14 */ add r4, r5, r4 +/* 80278E1C 00274A7C 7C 04 40 00 */ cmpw r4, r8 +/* 80278E20 00274A80 A0 E3 00 02 */ lhz r7, 2(r3) +/* 80278E24 00274A84 40 81 00 08 */ ble lbl_80278E2C +/* 80278E28 00274A88 48 00 00 0C */ b lbl_80278E34 +lbl_80278E2C: +/* 80278E2C 00274A8C 7C 80 FE 70 */ srawi r0, r4, 0x1f +/* 80278E30 00274A90 7C 88 00 78 */ andc r8, r4, r0 +lbl_80278E34: +/* 80278E34 00274A94 3C A0 80 51 */ lis r5, lbl_80515890@ha +/* 80278E38 00274A98 A9 2D A8 EE */ lha r9, lbl_8063FBAE-_SDA_BASE_(r13) +/* 80278E3C 00274A9C 38 A5 58 90 */ addi r5, r5, lbl_80515890@l +/* 80278E40 00274AA0 A0 C5 00 02 */ lhz r6, 2(r5) +/* 80278E44 00274AA4 80 85 00 20 */ lwz r4, 0x20(r5) +/* 80278E48 00274AA8 7C C0 07 34 */ extsh r0, r6 +/* 80278E4C 00274AAC 54 C6 07 FE */ clrlwi r6, r6, 0x1f +/* 80278E50 00274AB0 7D 40 4A 14 */ add r10, r0, r9 +/* 80278E54 00274AB4 B1 05 00 08 */ sth r8, 8(r5) +/* 80278E58 00274AB8 7C 80 00 34 */ cntlzw r0, r4 +/* 80278E5C 00274ABC 54 04 D9 7E */ srwi r4, r0, 5 +/* 80278E60 00274AC0 7C 0A 30 00 */ cmpw r10, r6 +/* 80278E64 00274AC4 7C C0 33 78 */ mr r0, r6 +/* 80278E68 00274AC8 38 A4 00 01 */ addi r5, r4, 1 +/* 80278E6C 00274ACC 40 81 00 08 */ ble lbl_80278E74 +/* 80278E70 00274AD0 7D 40 53 78 */ mr r0, r10 +lbl_80278E74: +/* 80278E74 00274AD4 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80278E78 00274AD8 7C E7 07 34 */ extsh r7, r7 +/* 80278E7C 00274ADC 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80278E80 00274AE0 A1 44 00 02 */ lhz r10, 2(r4) +/* 80278E84 00274AE4 54 E8 08 3C */ slwi r8, r7, 1 +/* 80278E88 00274AE8 A0 E4 00 06 */ lhz r7, 6(r4) +/* 80278E8C 00274AEC 7F A6 40 50 */ subf r29, r6, r8 +/* 80278E90 00274AF0 7D 48 07 34 */ extsh r8, r10 +/* 80278E94 00274AF4 A9 64 00 02 */ lha r11, 2(r4) +/* 80278E98 00274AF8 7F 89 42 14 */ add r28, r9, r8 +/* 80278E9C 00274AFC A9 44 00 06 */ lha r10, 6(r4) +/* 80278EA0 00274B00 7C E8 07 34 */ extsh r8, r7 +/* 80278EA4 00274B04 7D 6B 4A 14 */ add r11, r11, r9 +/* 80278EA8 00274B08 7D 08 E2 14 */ add r8, r8, r28 +/* 80278EAC 00274B0C 7D 2A E2 14 */ add r9, r10, r28 +/* 80278EB0 00274B10 7D 1D 40 50 */ subf r8, r29, r8 +/* 80278EB4 00274B14 7F 46 58 50 */ subf r26, r6, r11 +/* 80278EB8 00274B18 7D 88 00 D0 */ neg r12, r8 +/* 80278EBC 00274B1C 7F 3D 48 50 */ subf r25, r29, r9 +/* 80278EC0 00274B20 7F 66 E0 50 */ subf r27, r6, r28 +/* 80278EC4 00274B24 B0 04 00 0A */ sth r0, 0xa(r4) +/* 80278EC8 00274B28 7D 8A 40 78 */ andc r10, r12, r8 +/* 80278ECC 00274B2C 7C D9 00 D0 */ neg r6, r25 +/* 80278ED0 00274B30 7D 5C FE 70 */ srawi r28, r10, 0x1f +/* 80278ED4 00274B34 A1 24 00 1C */ lhz r9, 0x1c(r4) +/* 80278ED8 00274B38 7F 6A FE 70 */ srawi r10, r27, 0x1f +/* 80278EDC 00274B3C 7C C6 C8 78 */ andc r6, r6, r25 +/* 80278EE0 00274B40 7F 4C FE 70 */ srawi r12, r26, 0x1f +/* 80278EE4 00274B44 7D 08 E0 38 */ and r8, r8, r28 +/* 80278EE8 00274B48 7F 7D 50 38 */ and r29, r27, r10 +/* 80278EEC 00274B4C 7C CA FE 70 */ srawi r10, r6, 0x1f +/* 80278EF0 00274B50 7F 66 FE 70 */ srawi r6, r27, 0x1f +/* 80278EF4 00274B54 7F 4C 60 38 */ and r12, r26, r12 +/* 80278EF8 00274B58 7F 66 30 38 */ and r6, r27, r6 +/* 80278EFC 00274B5C 7C E7 EA 14 */ add r7, r7, r29 +/* 80278F00 00274B60 7C 08 38 50 */ subf r0, r8, r7 +/* 80278F04 00274B64 7F 2A 50 38 */ and r10, r25, r10 +/* 80278F08 00274B68 7C C6 2B D6 */ divw r6, r6, r5 +/* 80278F0C 00274B6C B0 04 00 0C */ sth r0, 0xc(r4) +/* 80278F10 00274B70 A1 64 00 18 */ lhz r11, 0x18(r4) +/* 80278F14 00274B74 7C EC 2B D6 */ divw r7, r12, r5 +/* 80278F18 00274B78 7C 09 32 14 */ add r0, r9, r6 +/* 80278F1C 00274B7C 7C AA 2B D6 */ divw r5, r10, r5 +/* 80278F20 00274B80 7C C7 58 50 */ subf r6, r7, r11 +/* 80278F24 00274B84 B0 C4 00 0E */ sth r6, 0xe(r4) +/* 80278F28 00274B88 7C 05 00 50 */ subf r0, r5, r0 +/* 80278F2C 00274B8C B0 04 00 10 */ sth r0, 0x10(r4) +/* 80278F30 00274B90 A0 A3 00 18 */ lhz r5, 0x18(r3) +/* 80278F34 00274B94 54 A4 0F FE */ srwi r4, r5, 0x1f +/* 80278F38 00274B98 54 A0 07 FE */ clrlwi r0, r5, 0x1f +/* 80278F3C 00274B9C 7C 00 22 78 */ xor r0, r0, r4 +/* 80278F40 00274BA0 54 A7 FC 3E */ rlwinm r7, r5, 0x1f, 0x10, 0x1f +/* 80278F44 00274BA4 7C 04 00 50 */ subf r0, r4, r0 +/* 80278F48 00274BA8 54 00 04 3F */ clrlwi. r0, r0, 0x10 +/* 80278F4C 00274BAC 41 82 00 0C */ beq lbl_80278F58 +/* 80278F50 00274BB0 A1 03 00 1A */ lhz r8, 0x1a(r3) +/* 80278F54 00274BB4 48 00 00 08 */ b lbl_80278F5C +lbl_80278F58: +/* 80278F58 00274BB8 39 00 00 00 */ li r8, 0 +lbl_80278F5C: +/* 80278F5C 00274BBC 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278F60 00274BC0 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80278F64 00274BC4 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278F68 00274BC8 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80278F6C 00274BCC 60 06 00 40 */ ori r6, r0, 0x40 +/* 80278F70 00274BD0 38 07 00 01 */ addi r0, r7, 1 +/* 80278F74 00274BD4 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278F78 00274BD8 3C E0 80 51 */ lis r7, lbl_80515818@ha +/* 80278F7C 00274BDC 81 24 00 24 */ lwz r9, 0x24(r4) +/* 80278F80 00274BE0 54 05 04 3E */ clrlwi r5, r0, 0x10 +/* 80278F84 00274BE4 90 CD A8 F8 */ stw r6, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278F88 00274BE8 60 A6 10 00 */ ori r6, r5, 0x1000 +/* 80278F8C 00274BEC 38 09 FF FE */ addi r0, r9, -2 +/* 80278F90 00274BF0 38 E7 58 18 */ addi r7, r7, lbl_80515818@l +/* 80278F94 00274BF4 80 8D A8 F8 */ lwz r4, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278F98 00274BF8 39 08 00 01 */ addi r8, r8, 1 +/* 80278F9C 00274BFC 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278FA0 00274C00 28 00 00 01 */ cmplwi r0, 1 +/* 80278FA4 00274C04 60 80 00 80 */ ori r0, r4, 0x80 +/* 80278FA8 00274C08 B1 07 00 32 */ sth r8, 0x32(r7) +/* 80278FAC 00274C0C A0 87 00 02 */ lhz r4, 2(r7) +/* 80278FB0 00274C10 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80278FB4 00274C14 A1 07 00 6C */ lhz r8, 0x6c(r7) +/* 80278FB8 00274C18 B0 C7 00 30 */ sth r6, 0x30(r7) +/* 80278FBC 00274C1C 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80278FC0 00274C20 41 81 00 18 */ bgt lbl_80278FD8 +/* 80278FC4 00274C24 54 84 07 B8 */ rlwinm r4, r4, 0, 0x1e, 0x1c +/* 80278FC8 00274C28 55 00 00 3C */ rlwinm r0, r8, 0, 0, 0x1e +/* 80278FCC 00274C2C 60 85 00 04 */ ori r5, r4, 4 +/* 80278FD0 00274C30 60 0A 00 01 */ ori r10, r0, 1 +/* 80278FD4 00274C34 48 00 00 10 */ b lbl_80278FE4 +lbl_80278FD8: +/* 80278FD8 00274C38 54 85 07 B8 */ rlwinm r5, r4, 0, 0x1e, 0x1c +/* 80278FDC 00274C3C 55 0A 00 3C */ rlwinm r10, r8, 0, 0, 0x1e +/* 80278FE0 00274C40 51 25 17 7A */ rlwimi r5, r9, 2, 0x1d, 0x1d +lbl_80278FE4: +/* 80278FE4 00274C44 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80278FE8 00274C48 54 A5 07 76 */ rlwinm r5, r5, 0, 0x1d, 0x1b +/* 80278FEC 00274C4C 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80278FF0 00274C50 80 C4 00 28 */ lwz r6, 0x28(r4) +/* 80278FF4 00274C54 80 E4 00 44 */ lwz r7, 0x44(r4) +/* 80278FF8 00274C58 38 06 FF FF */ addi r0, r6, -1 +/* 80278FFC 00274C5C 54 E4 18 38 */ slwi r4, r7, 3 +/* 80279000 00274C60 7C A4 23 78 */ or r4, r5, r4 +/* 80279004 00274C64 28 00 00 02 */ cmplwi r0, 2 +/* 80279008 00274C68 54 89 06 2A */ rlwinm r9, r4, 0, 0x18, 0x15 +/* 8027900C 00274C6C 41 81 00 0C */ bgt lbl_80279018 +/* 80279010 00274C70 54 C0 40 2E */ slwi r0, r6, 8 +/* 80279014 00274C74 7D 29 03 78 */ or r9, r9, r0 +lbl_80279018: +/* 80279018 00274C78 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027901C 00274C7C 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279020 00274C80 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279024 00274C84 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80279028 00274C88 64 00 40 00 */ oris r0, r0, 0x4000 +/* 8027902C 00274C8C 3D 00 80 51 */ lis r8, lbl_80515818@ha +/* 80279030 00274C90 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279034 00274C94 39 08 58 18 */ addi r8, r8, lbl_80515818@l +/* 80279038 00274C98 2C 07 00 00 */ cmpwi r7, 0 +/* 8027903C 00274C9C A0 C4 00 1A */ lhz r6, 0x1a(r4) +/* 80279040 00274CA0 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279044 00274CA4 A0 04 00 04 */ lhz r0, 4(r4) +/* 80279048 00274CA8 7C C4 33 78 */ mr r4, r6 +/* 8027904C 00274CAC 80 ED A8 F8 */ lwz r7, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279050 00274CB0 80 AD A8 FC */ lwz r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279054 00274CB4 B1 28 00 02 */ sth r9, 2(r8) +/* 80279058 00274CB8 60 A5 02 00 */ ori r5, r5, 0x200 +/* 8027905C 00274CBC 90 AD A8 FC */ stw r5, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279060 00274CC0 B1 48 00 6C */ sth r10, 0x6c(r8) +/* 80279064 00274CC4 90 ED A8 F8 */ stw r7, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279068 00274CC8 41 82 00 08 */ beq lbl_80279070 +/* 8027906C 00274CCC 54 C4 0B FC */ rlwinm r4, r6, 1, 0xf, 0x1e +lbl_80279070: +/* 80279070 00274CD0 54 89 04 3E */ clrlwi r9, r4, 0x10 +/* 80279074 00274CD4 7C 09 00 40 */ cmplw r9, r0 +/* 80279078 00274CD8 40 80 00 54 */ bge lbl_802790CC +/* 8027907C 00274CDC 55 24 42 2E */ rlwinm r4, r9, 8, 8, 0x17 +/* 80279080 00274CE0 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279084 00274CE4 7C E0 22 14 */ add r7, r0, r4 +/* 80279088 00274CE8 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027908C 00274CEC 39 07 FF FF */ addi r8, r7, -1 +/* 80279090 00274CF0 7D 08 03 96 */ divwu r8, r8, r0 +/* 80279094 00274CF4 64 84 04 00 */ oris r4, r4, 0x400 +/* 80279098 00274CF8 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027909C 00274CFC 3C E0 80 51 */ lis r7, lbl_80515818@ha +/* 802790A0 00274D00 90 AD A8 F8 */ stw r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802790A4 00274D04 38 E7 58 18 */ addi r7, r7, lbl_80515818@l +/* 802790A8 00274D08 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802790AC 00274D0C 61 08 10 00 */ ori r8, r8, 0x1000 +/* 802790B0 00274D10 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802790B4 00274D14 B1 07 00 4A */ sth r8, 0x4a(r7) +/* 802790B8 00274D18 60 84 00 80 */ ori r4, r4, 0x80 +/* 802790BC 00274D1C 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802790C0 00274D20 B1 27 00 70 */ sth r9, 0x70(r7) +/* 802790C4 00274D24 90 AD A8 F8 */ stw r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802790C8 00274D28 48 00 00 28 */ b lbl_802790F0 +lbl_802790CC: +/* 802790CC 00274D2C 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802790D0 00274D30 3C E0 80 51 */ lis r7, lbl_80515818@ha +/* 802790D4 00274D34 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802790D8 00274D38 38 E7 58 18 */ addi r7, r7, lbl_80515818@l +/* 802790DC 00274D3C 39 00 01 00 */ li r8, 0x100 +/* 802790E0 00274D40 64 84 04 00 */ oris r4, r4, 0x400 +/* 802790E4 00274D44 B1 07 00 4A */ sth r8, 0x4a(r7) +/* 802790E8 00274D48 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802790EC 00274D4C 90 AD A8 F8 */ stw r5, lbl_8063FBB8-_SDA_BASE_(r13) +lbl_802790F0: +/* 802790F0 00274D50 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802790F4 00274D54 3C 80 80 51 */ lis r4, lbl_80515818@ha +/* 802790F8 00274D58 A1 23 00 1A */ lhz r9, 0x1a(r3) +/* 802790FC 00274D5C 38 84 58 18 */ addi r4, r4, lbl_80515818@l +/* 80279100 00274D60 81 0D A8 FC */ lwz r8, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279104 00274D64 64 A7 10 00 */ oris r7, r5, 0x1000 +/* 80279108 00274D68 B1 24 00 06 */ sth r9, 6(r4) +/* 8027910C 00274D6C 3C A0 80 51 */ lis r5, lbl_80515890@ha +/* 80279110 00274D70 38 A5 58 90 */ addi r5, r5, lbl_80515890@l +/* 80279114 00274D74 21 40 02 D0 */ subfic r10, r0, 0x2d0 +/* 80279118 00274D78 91 0D A8 FC */ stw r8, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027911C 00274D7C A1 65 00 08 */ lhz r11, 8(r5) +/* 80279120 00274D80 90 ED A8 F8 */ stw r7, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279124 00274D84 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279128 00274D88 89 23 00 1D */ lbz r9, 0x1d(r3) +/* 8027912C 00274D8C 89 03 00 1E */ lbz r8, 0x1e(r3) +/* 80279130 00274D90 64 00 20 00 */ oris r0, r0, 0x2000 +/* 80279134 00274D94 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279138 00274D98 51 28 44 2E */ rlwimi r8, r9, 8, 0x10, 0x17 +/* 8027913C 00274D9C B1 04 00 04 */ sth r8, 4(r4) +/* 80279140 00274DA0 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279144 00274DA4 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279148 00274DA8 88 E3 00 1F */ lbz r7, 0x1f(r3) +/* 8027914C 00274DAC 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279150 00274DB0 A1 23 00 20 */ lhz r9, 0x20(r3) +/* 80279154 00274DB4 7C EB 3A 14 */ add r7, r11, r7 +/* 80279158 00274DB8 39 87 FF D8 */ addi r12, r7, -40 +/* 8027915C 00274DBC 89 03 00 1C */ lbz r8, 0x1c(r3) +/* 80279160 00274DC0 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279164 00274DC4 64 00 04 00 */ oris r0, r0, 0x400 +/* 80279168 00274DC8 7D 2B 4A 14 */ add r9, r11, r9 +/* 8027916C 00274DCC 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279170 00274DD0 38 E9 00 28 */ addi r7, r9, 0x28 +/* 80279174 00274DD4 7D 4A 38 50 */ subf r10, r10, r7 +/* 80279178 00274DD8 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027917C 00274DDC 55 87 3C 30 */ rlwinm r7, r12, 7, 0x10, 0x18 +/* 80279180 00274DE0 7D 09 3B 78 */ or r9, r8, r7 +/* 80279184 00274DE4 55 88 BA 7E */ srwi r8, r12, 9 +/* 80279188 00274DE8 55 47 08 3C */ slwi r7, r10, 1 +/* 8027918C 00274DEC 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279190 00274DF0 7D 08 3B 78 */ or r8, r8, r7 +/* 80279194 00274DF4 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279198 00274DF8 64 00 08 00 */ oris r0, r0, 0x800 +/* 8027919C 00274DFC B1 24 00 0A */ sth r9, 0xa(r4) +/* 802791A0 00274E00 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802791A4 00274E04 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802791A8 00274E08 B1 04 00 08 */ sth r8, 8(r4) +/* 802791AC 00274E0C 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802791B0 00274E10 A0 E3 00 10 */ lhz r7, 0x10(r3) +/* 802791B4 00274E14 89 23 00 0C */ lbz r9, 0xc(r3) +/* 802791B8 00274E18 64 00 00 10 */ oris r0, r0, 0x10 +/* 802791BC 00274E1C 54 E8 28 34 */ slwi r8, r7, 5 +/* 802791C0 00274E20 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802791C4 00274E24 7D 28 43 78 */ or r8, r9, r8 +/* 802791C8 00274E28 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802791CC 00274E2C 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802791D0 00274E30 B1 04 00 16 */ sth r8, 0x16(r4) +/* 802791D4 00274E34 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802791D8 00274E38 A0 E3 00 14 */ lhz r7, 0x14(r3) +/* 802791DC 00274E3C 89 23 00 0E */ lbz r9, 0xe(r3) +/* 802791E0 00274E40 64 00 00 20 */ oris r0, r0, 0x20 +/* 802791E4 00274E44 54 E8 28 34 */ slwi r8, r7, 5 +/* 802791E8 00274E48 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802791EC 00274E4C 7D 28 43 78 */ or r8, r9, r8 +/* 802791F0 00274E50 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802791F4 00274E54 B1 04 00 14 */ sth r8, 0x14(r4) +/* 802791F8 00274E58 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802791FC 00274E5C A0 E3 00 12 */ lhz r7, 0x12(r3) +/* 80279200 00274E60 89 43 00 0D */ lbz r10, 0xd(r3) +/* 80279204 00274E64 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279208 00274E68 54 E7 28 34 */ slwi r7, r7, 5 +/* 8027920C 00274E6C 7D 4A 3B 78 */ or r10, r10, r7 +/* 80279210 00274E70 81 2D A8 FC */ lwz r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279214 00274E74 A0 E5 00 12 */ lhz r7, 0x12(r5) +/* 80279218 00274E78 64 08 00 04 */ oris r8, r0, 4 +/* 8027921C 00274E7C 91 2D A8 FC */ stw r9, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279220 00274E80 38 07 00 0F */ addi r0, r7, 0xf +/* 80279224 00274E84 80 E5 00 20 */ lwz r7, 0x20(r5) +/* 80279228 00274E88 91 0D A8 F8 */ stw r8, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027922C 00274E8C 7C 00 26 70 */ srawi r0, r0, 4 +/* 80279230 00274E90 2C 07 00 00 */ cmpwi r7, 0 +/* 80279234 00274E94 A1 65 00 16 */ lhz r11, 0x16(r5) +/* 80279238 00274E98 B1 44 00 1A */ sth r10, 0x1a(r4) +/* 8027923C 00274E9C 7C 00 01 94 */ addze r0, r0 +/* 80279240 00274EA0 80 ED A8 F8 */ lwz r7, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279244 00274EA4 A1 03 00 16 */ lhz r8, 0x16(r3) +/* 80279248 00274EA8 89 23 00 0F */ lbz r9, 0xf(r3) +/* 8027924C 00274EAC 64 E3 00 08 */ oris r3, r7, 8 +/* 80279250 00274EB0 55 08 28 34 */ slwi r8, r8, 5 +/* 80279254 00274EB4 80 ED A8 FC */ lwz r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279258 00274EB8 7D 28 43 78 */ or r8, r9, r8 +/* 8027925C 00274EBC 98 05 00 2C */ stb r0, 0x2c(r5) +/* 80279260 00274EC0 90 ED A8 FC */ stw r7, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279264 00274EC4 B1 04 00 18 */ sth r8, 0x18(r4) +/* 80279268 00274EC8 90 6D A8 F8 */ stw r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027926C 00274ECC 40 82 00 0C */ bne lbl_80279278 +/* 80279270 00274ED0 54 09 06 3E */ clrlwi r9, r0, 0x18 +/* 80279274 00274ED4 48 00 00 08 */ b lbl_8027927C +lbl_80279278: +/* 80279278 00274ED8 54 09 0E 3C */ rlwinm r9, r0, 1, 0x18, 0x1e +lbl_8027927C: +/* 8027927C 00274EDC 55 60 E0 06 */ slwi r0, r11, 0x1c +/* 80279280 00274EE0 55 63 0F FE */ srwi r3, r11, 0x1f +/* 80279284 00274EE4 7C 03 00 50 */ subf r0, r3, r0 +/* 80279288 00274EE8 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027928C 00274EEC 54 00 20 3E */ rotlwi r0, r0, 4 +/* 80279290 00274EF0 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279294 00274EF4 7D 00 1A 14 */ add r8, r0, r3 +/* 80279298 00274EF8 80 0D A9 10 */ lwz r0, lbl_8063FBD0-_SDA_BASE_(r13) +/* 8027929C 00274EFC 55 07 06 3E */ clrlwi r7, r8, 0x18 +/* 802792A0 00274F00 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 802792A4 00274F04 7C E6 3A 14 */ add r7, r6, r7 +/* 802792A8 00274F08 3C C0 80 51 */ lis r6, lbl_80515818@ha +/* 802792AC 00274F0C 38 E7 00 0F */ addi r7, r7, 0xf +/* 802792B0 00274F10 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 802792B4 00274F14 7C E7 26 70 */ srawi r7, r7, 4 +/* 802792B8 00274F18 64 84 08 00 */ oris r4, r4, 0x800 +/* 802792BC 00274F1C 7C E7 01 94 */ addze r7, r7 +/* 802792C0 00274F20 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802792C4 00274F24 7D 24 4B 78 */ mr r4, r9 +/* 802792C8 00274F28 2C 00 00 00 */ cmpwi r0, 0 +/* 802792CC 00274F2C 38 C6 58 18 */ addi r6, r6, lbl_80515818@l +/* 802792D0 00274F30 99 23 00 2D */ stb r9, 0x2d(r3) +/* 802792D4 00274F34 50 E4 44 2E */ rlwimi r4, r7, 8, 0x10, 0x17 +/* 802792D8 00274F38 99 03 00 3C */ stb r8, 0x3c(r3) +/* 802792DC 00274F3C 98 E3 00 2E */ stb r7, 0x2e(r3) +/* 802792E0 00274F40 B0 86 00 48 */ sth r4, 0x48(r6) +/* 802792E4 00274F44 90 AD A8 F8 */ stw r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802792E8 00274F48 41 82 00 18 */ beq lbl_80279300 +/* 802792EC 00274F4C 38 83 00 34 */ addi r4, r3, 0x34 +/* 802792F0 00274F50 38 A3 00 38 */ addi r5, r3, 0x38 +/* 802792F4 00274F54 38 C3 00 4C */ addi r6, r3, 0x4c +/* 802792F8 00274F58 38 E3 00 50 */ addi r7, r3, 0x50 +/* 802792FC 00274F5C 4B FF F4 7D */ bl setFbbRegs +lbl_80279300: +/* 80279300 00274F60 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279304 00274F64 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80279308 00274F68 80 04 00 40 */ lwz r0, 0x40(r4) +/* 8027930C 00274F6C 90 01 00 08 */ stw r0, 8(r1) +/* 80279310 00274F70 A0 64 00 0A */ lhz r3, 0xa(r4) +/* 80279314 00274F74 A0 84 00 0C */ lhz r4, 0xc(r4) +/* 80279318 00274F78 88 BF 00 00 */ lbz r5, 0(r31) +/* 8027931C 00274F7C A0 DF 00 02 */ lhz r6, 2(r31) +/* 80279320 00274F80 A0 FF 00 04 */ lhz r7, 4(r31) +/* 80279324 00274F84 A1 1F 00 06 */ lhz r8, 6(r31) +/* 80279328 00274F88 A1 3F 00 08 */ lhz r9, 8(r31) +/* 8027932C 00274F8C A1 5F 00 0A */ lhz r10, 0xa(r31) +/* 80279330 00274F90 4B FF F7 01 */ bl setVerticalRegs +/* 80279334 00274F94 7F C3 F3 78 */ mr r3, r30 +/* 80279338 00274F98 4B FF 54 4D */ bl OSRestoreInterrupts +/* 8027933C 00274F9C 39 61 00 30 */ addi r11, r1, 0x30 +/* 80279340 00274FA0 4B F4 DE 2D */ bl _restgpr_25 +/* 80279344 00274FA4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80279348 00274FA8 7C 08 03 A6 */ mtlr r0 +/* 8027934C 00274FAC 38 21 00 30 */ addi r1, r1, 0x30 +/* 80279350 00274FB0 4E 80 00 20 */ blr + +.global VIConfigurePan +VIConfigurePan: +/* 80279354 00274FB4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80279358 00274FB8 7C 08 02 A6 */ mflr r0 +/* 8027935C 00274FBC 90 01 00 34 */ stw r0, 0x34(r1) +/* 80279360 00274FC0 39 61 00 30 */ addi r11, r1, 0x30 +/* 80279364 00274FC4 4B F4 DD C1 */ bl _savegpr_26 +/* 80279368 00274FC8 7C 7D 1B 78 */ mr r29, r3 +/* 8027936C 00274FCC 7C 9C 23 78 */ mr r28, r4 +/* 80279370 00274FD0 7C BB 2B 78 */ mr r27, r5 +/* 80279374 00274FD4 7C DA 33 78 */ mr r26, r6 +/* 80279378 00274FD8 4B FF 53 E5 */ bl OSDisableInterrupts +/* 8027937C 00274FDC 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279380 00274FE0 7C 7F 1B 78 */ mr r31, r3 +/* 80279384 00274FE4 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80279388 00274FE8 80 04 00 24 */ lwz r0, 0x24(r4) +/* 8027938C 00274FEC B3 A4 00 16 */ sth r29, 0x16(r4) +/* 80279390 00274FF0 28 00 00 02 */ cmplwi r0, 2 +/* 80279394 00274FF4 B3 84 00 18 */ sth r28, 0x18(r4) +/* 80279398 00274FF8 B3 64 00 1A */ sth r27, 0x1a(r4) +/* 8027939C 00274FFC B3 44 00 1C */ sth r26, 0x1c(r4) +/* 802793A0 00275000 40 82 00 08 */ bne lbl_802793A8 +/* 802793A4 00275004 48 00 00 20 */ b lbl_802793C4 +lbl_802793A8: +/* 802793A8 00275008 28 00 00 03 */ cmplwi r0, 3 +/* 802793AC 0027500C 40 82 00 08 */ bne lbl_802793B4 +/* 802793B0 00275010 48 00 00 14 */ b lbl_802793C4 +lbl_802793B4: +/* 802793B4 00275014 80 04 00 20 */ lwz r0, 0x20(r4) +/* 802793B8 00275018 2C 00 00 00 */ cmpwi r0, 0 +/* 802793BC 0027501C 40 82 00 08 */ bne lbl_802793C4 +/* 802793C0 00275020 57 5A 0C 3C */ rlwinm r26, r26, 1, 0x10, 0x1e +lbl_802793C4: +/* 802793C4 00275024 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 802793C8 00275028 A8 6D A8 EC */ lha r3, lbl_8063FBAC-_SDA_BASE_(r13) +/* 802793CC 0027502C 38 A4 58 90 */ addi r5, r4, lbl_80515890@l +/* 802793D0 00275030 A8 84 58 90 */ lha r4, 0x5890(r4) +/* 802793D4 00275034 A0 05 00 04 */ lhz r0, 4(r5) +/* 802793D8 00275038 B3 45 00 06 */ sth r26, 6(r5) +/* 802793DC 0027503C 7C 64 1A 14 */ add r3, r4, r3 +/* 802793E0 00275040 20 C0 02 D0 */ subfic r6, r0, 0x2d0 +/* 802793E4 00275044 83 C5 00 54 */ lwz r30, 0x54(r5) +/* 802793E8 00275048 7C 03 30 00 */ cmpw r3, r6 +/* 802793EC 0027504C A0 BE 00 02 */ lhz r5, 2(r30) +/* 802793F0 00275050 40 81 00 08 */ ble lbl_802793F8 +/* 802793F4 00275054 48 00 00 0C */ b lbl_80279400 +lbl_802793F8: +/* 802793F8 00275058 7C 60 FE 70 */ srawi r0, r3, 0x1f +/* 802793FC 0027505C 7C 66 00 78 */ andc r6, r3, r0 +lbl_80279400: +/* 80279400 00275060 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279404 00275064 A9 2D A8 EE */ lha r9, lbl_8063FBAE-_SDA_BASE_(r13) +/* 80279408 00275068 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 8027940C 0027506C A0 E4 00 02 */ lhz r7, 2(r4) +/* 80279410 00275070 80 64 00 20 */ lwz r3, 0x20(r4) +/* 80279414 00275074 7C E0 07 34 */ extsh r0, r7 +/* 80279418 00275078 54 EC 07 FE */ clrlwi r12, r7, 0x1f +/* 8027941C 0027507C 7C E0 4A 14 */ add r7, r0, r9 +/* 80279420 00275080 B0 C4 00 08 */ sth r6, 8(r4) +/* 80279424 00275084 7C 60 00 34 */ cntlzw r0, r3 +/* 80279428 00275088 54 03 D9 7E */ srwi r3, r0, 5 +/* 8027942C 0027508C 7C 07 60 00 */ cmpw r7, r12 +/* 80279430 00275090 7D 80 63 78 */ mr r0, r12 +/* 80279434 00275094 38 83 00 01 */ addi r4, r3, 1 +/* 80279438 00275098 40 81 00 08 */ ble lbl_80279440 +/* 8027943C 0027509C 7C E0 3B 78 */ mr r0, r7 +lbl_80279440: +/* 80279440 002750A0 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 80279444 002750A4 7C A5 07 34 */ extsh r5, r5 +/* 80279448 002750A8 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 8027944C 002750AC A0 E3 00 02 */ lhz r7, 2(r3) +/* 80279450 002750B0 54 A6 08 3C */ slwi r6, r5, 1 +/* 80279454 002750B4 A0 A3 00 06 */ lhz r5, 6(r3) +/* 80279458 002750B8 7F 4C 30 50 */ subf r26, r12, r6 +/* 8027945C 002750BC 7C E6 07 34 */ extsh r6, r7 +/* 80279460 002750C0 A9 03 00 02 */ lha r8, 2(r3) +/* 80279464 002750C4 7D 69 32 14 */ add r11, r9, r6 +/* 80279468 002750C8 A8 E3 00 06 */ lha r7, 6(r3) +/* 8027946C 002750CC 7C A6 07 34 */ extsh r6, r5 +/* 80279470 002750D0 7D 28 4A 14 */ add r9, r8, r9 +/* 80279474 002750D4 7C C6 5A 14 */ add r6, r6, r11 +/* 80279478 002750D8 7F 6C 58 50 */ subf r27, r12, r11 +/* 8027947C 002750DC 7C DA 30 50 */ subf r6, r26, r6 +/* 80279480 002750E0 7C E7 5A 14 */ add r7, r7, r11 +/* 80279484 002750E4 7D 06 00 D0 */ neg r8, r6 +/* 80279488 002750E8 7D 8C 48 50 */ subf r12, r12, r9 +/* 8027948C 002750EC 7D 0A 30 78 */ andc r10, r8, r6 +/* 80279490 002750F0 7F 5A 38 50 */ subf r26, r26, r7 +/* 80279494 002750F4 7D 5C FE 70 */ srawi r28, r10, 0x1f +/* 80279498 002750F8 81 03 00 44 */ lwz r8, 0x44(r3) +/* 8027949C 002750FC 7F 6B FE 70 */ srawi r11, r27, 0x1f +/* 802794A0 00275100 7D 3A 00 D0 */ neg r9, r26 +/* 802794A4 00275104 7D 8A FE 70 */ srawi r10, r12, 0x1f +/* 802794A8 00275108 B0 03 00 0A */ sth r0, 0xa(r3) +/* 802794AC 0027510C 7F 7D 58 38 */ and r29, r27, r11 +/* 802794B0 00275110 7D 29 D0 78 */ andc r9, r9, r26 +/* 802794B4 00275114 7D 2B FE 70 */ srawi r11, r9, 0x1f +/* 802794B8 00275118 7D 8C 50 38 */ and r12, r12, r10 +/* 802794BC 0027511C 7F 69 FE 70 */ srawi r9, r27, 0x1f +/* 802794C0 00275120 A1 43 00 1C */ lhz r10, 0x1c(r3) +/* 802794C4 00275124 7F 69 48 38 */ and r9, r27, r9 +/* 802794C8 00275128 7C DB E0 38 */ and r27, r6, r28 +/* 802794CC 0027512C 7F 5A 58 38 */ and r26, r26, r11 +/* 802794D0 00275130 7C 05 EA 14 */ add r0, r5, r29 +/* 802794D4 00275134 7D 29 23 D6 */ divw r9, r9, r4 +/* 802794D8 00275138 A1 63 00 18 */ lhz r11, 0x18(r3) +/* 802794DC 0027513C 7C 1B 00 50 */ subf r0, r27, r0 +/* 802794E0 00275140 A0 E3 00 1A */ lhz r7, 0x1a(r3) +/* 802794E4 00275144 B0 03 00 0C */ sth r0, 0xc(r3) +/* 802794E8 00275148 2C 08 00 00 */ cmpwi r8, 0 +/* 802794EC 0027514C 7C CC 23 D6 */ divw r6, r12, r4 +/* 802794F0 00275150 7C AA 4A 14 */ add r5, r10, r9 +/* 802794F4 00275154 A3 83 00 04 */ lhz r28, 4(r3) +/* 802794F8 00275158 7C E0 3B 78 */ mr r0, r7 +/* 802794FC 0027515C 7C 9A 23 D6 */ divw r4, r26, r4 +/* 80279500 00275160 7C C6 58 50 */ subf r6, r6, r11 +/* 80279504 00275164 B0 C3 00 0E */ sth r6, 0xe(r3) +/* 80279508 00275168 7C 84 28 50 */ subf r4, r4, r5 +/* 8027950C 0027516C B0 83 00 10 */ sth r4, 0x10(r3) +/* 80279510 00275170 41 82 00 08 */ beq lbl_80279518 +/* 80279514 00275174 54 E0 0B FC */ rlwinm r0, r7, 1, 0xf, 0x1e +lbl_80279518: +/* 80279518 00275178 54 06 04 3E */ clrlwi r6, r0, 0x10 +/* 8027951C 0027517C 7C 06 E0 40 */ cmplw r6, r28 +/* 80279520 00275180 40 80 00 54 */ bge lbl_80279574 +/* 80279524 00275184 54 C0 42 2E */ rlwinm r0, r6, 8, 8, 0x17 +/* 80279528 00275188 80 6D A8 F8 */ lwz r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027952C 0027518C 7C 9C 02 14 */ add r4, r28, r0 +/* 80279530 00275190 80 0D A8 FC */ lwz r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279534 00275194 38 A4 FF FF */ addi r5, r4, -1 +/* 80279538 00275198 7C A5 E3 96 */ divwu r5, r5, r28 +/* 8027953C 0027519C 64 00 04 00 */ oris r0, r0, 0x400 +/* 80279540 002751A0 90 0D A8 FC */ stw r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279544 002751A4 3C 80 80 51 */ lis r4, lbl_80515818@ha +/* 80279548 002751A8 90 6D A8 F8 */ stw r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027954C 002751AC 38 84 58 18 */ addi r4, r4, lbl_80515818@l +/* 80279550 002751B0 80 6D A8 F8 */ lwz r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279554 002751B4 60 A5 10 00 */ ori r5, r5, 0x1000 +/* 80279558 002751B8 80 0D A8 FC */ lwz r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027955C 002751BC B0 A4 00 4A */ sth r5, 0x4a(r4) +/* 80279560 002751C0 60 00 00 80 */ ori r0, r0, 0x80 +/* 80279564 002751C4 90 0D A8 FC */ stw r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279568 002751C8 B0 C4 00 70 */ sth r6, 0x70(r4) +/* 8027956C 002751CC 90 6D A8 F8 */ stw r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279570 002751D0 48 00 00 28 */ b lbl_80279598 +lbl_80279574: +/* 80279574 002751D4 80 6D A8 F8 */ lwz r3, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279578 002751D8 3C 80 80 51 */ lis r4, lbl_80515818@ha +/* 8027957C 002751DC 80 0D A8 FC */ lwz r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279580 002751E0 38 84 58 18 */ addi r4, r4, lbl_80515818@l +/* 80279584 002751E4 38 A0 01 00 */ li r5, 0x100 +/* 80279588 002751E8 64 00 04 00 */ oris r0, r0, 0x400 +/* 8027958C 002751EC B0 A4 00 4A */ sth r5, 0x4a(r4) +/* 80279590 002751F0 90 0D A8 FC */ stw r0, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279594 002751F4 90 6D A8 F8 */ stw r3, lbl_8063FBB8-_SDA_BASE_(r13) +lbl_80279598: +/* 80279598 002751F8 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 8027959C 002751FC 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 802795A0 00275200 A0 64 00 12 */ lhz r3, 0x12(r4) +/* 802795A4 00275204 80 A4 00 20 */ lwz r5, 0x20(r4) +/* 802795A8 00275208 38 03 00 0F */ addi r0, r3, 0xf +/* 802795AC 0027520C A0 64 00 16 */ lhz r3, 0x16(r4) +/* 802795B0 00275210 7C 00 26 70 */ srawi r0, r0, 4 +/* 802795B4 00275214 2C 05 00 00 */ cmpwi r5, 0 +/* 802795B8 00275218 7C 00 01 94 */ addze r0, r0 +/* 802795BC 0027521C 98 04 00 2C */ stb r0, 0x2c(r4) +/* 802795C0 00275220 40 82 00 0C */ bne lbl_802795CC +/* 802795C4 00275224 54 09 06 3E */ clrlwi r9, r0, 0x18 +/* 802795C8 00275228 48 00 00 08 */ b lbl_802795D0 +lbl_802795CC: +/* 802795CC 0027522C 54 09 0E 3C */ rlwinm r9, r0, 1, 0x18, 0x1e +lbl_802795D0: +/* 802795D0 00275230 54 60 E0 06 */ slwi r0, r3, 0x1c +/* 802795D4 00275234 54 63 0F FE */ srwi r3, r3, 0x1f +/* 802795D8 00275238 7C 03 00 50 */ subf r0, r3, r0 +/* 802795DC 0027523C 80 AD A8 F8 */ lwz r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802795E0 00275240 54 00 20 3E */ rotlwi r0, r0, 4 +/* 802795E4 00275244 80 8D A8 FC */ lwz r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 802795E8 00275248 7D 00 1A 14 */ add r8, r0, r3 +/* 802795EC 0027524C 80 0D A9 10 */ lwz r0, lbl_8063FBD0-_SDA_BASE_(r13) +/* 802795F0 00275250 55 06 06 3E */ clrlwi r6, r8, 0x18 +/* 802795F4 00275254 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 802795F8 00275258 7C E7 32 14 */ add r7, r7, r6 +/* 802795FC 0027525C 64 84 08 00 */ oris r4, r4, 0x800 +/* 80279600 00275260 38 E7 00 0F */ addi r7, r7, 0xf +/* 80279604 00275264 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 80279608 00275268 7C E7 26 70 */ srawi r7, r7, 4 +/* 8027960C 0027526C 90 8D A8 FC */ stw r4, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279610 00275270 3C C0 80 51 */ lis r6, lbl_80515818@ha +/* 80279614 00275274 7D 24 4B 78 */ mr r4, r9 +/* 80279618 00275278 7C E7 01 94 */ addze r7, r7 +/* 8027961C 0027527C 2C 00 00 00 */ cmpwi r0, 0 +/* 80279620 00275280 38 C6 58 18 */ addi r6, r6, lbl_80515818@l +/* 80279624 00275284 99 23 00 2D */ stb r9, 0x2d(r3) +/* 80279628 00275288 50 E4 44 2E */ rlwimi r4, r7, 8, 0x10, 0x17 +/* 8027962C 0027528C 99 03 00 3C */ stb r8, 0x3c(r3) +/* 80279630 00275290 98 E3 00 2E */ stb r7, 0x2e(r3) +/* 80279634 00275294 B0 86 00 48 */ sth r4, 0x48(r6) +/* 80279638 00275298 90 AD A8 F8 */ stw r5, lbl_8063FBB8-_SDA_BASE_(r13) +/* 8027963C 0027529C 41 82 00 18 */ beq lbl_80279654 +/* 80279640 002752A0 38 83 00 34 */ addi r4, r3, 0x34 +/* 80279644 002752A4 38 A3 00 38 */ addi r5, r3, 0x38 +/* 80279648 002752A8 38 C3 00 4C */ addi r6, r3, 0x4c +/* 8027964C 002752AC 38 E3 00 50 */ addi r7, r3, 0x50 +/* 80279650 002752B0 4B FF F1 29 */ bl setFbbRegs +lbl_80279654: +/* 80279654 002752B4 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279658 002752B8 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 8027965C 002752BC 80 04 00 40 */ lwz r0, 0x40(r4) +/* 80279660 002752C0 90 01 00 08 */ stw r0, 8(r1) +/* 80279664 002752C4 A0 64 00 0A */ lhz r3, 0xa(r4) +/* 80279668 002752C8 A0 84 00 06 */ lhz r4, 6(r4) +/* 8027966C 002752CC 88 BE 00 00 */ lbz r5, 0(r30) +/* 80279670 002752D0 A0 DE 00 02 */ lhz r6, 2(r30) +/* 80279674 002752D4 A0 FE 00 04 */ lhz r7, 4(r30) +/* 80279678 002752D8 A1 1E 00 06 */ lhz r8, 6(r30) +/* 8027967C 002752DC A1 3E 00 08 */ lhz r9, 8(r30) +/* 80279680 002752E0 A1 5E 00 0A */ lhz r10, 0xa(r30) +/* 80279684 002752E4 4B FF F3 AD */ bl setVerticalRegs +/* 80279688 002752E8 7F E3 FB 78 */ mr r3, r31 +/* 8027968C 002752EC 4B FF 50 F9 */ bl OSRestoreInterrupts +/* 80279690 002752F0 39 61 00 30 */ addi r11, r1, 0x30 +/* 80279694 002752F4 4B F4 DA DD */ bl _restgpr_26 +/* 80279698 002752F8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8027969C 002752FC 7C 08 03 A6 */ mtlr r0 +/* 802796A0 00275300 38 21 00 30 */ addi r1, r1, 0x30 +/* 802796A4 00275304 4E 80 00 20 */ blr + +.global VIFlush +VIFlush: +/* 802796A8 00275308 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802796AC 0027530C 7C 08 02 A6 */ mflr r0 +/* 802796B0 00275310 90 01 00 24 */ stw r0, 0x24(r1) +/* 802796B4 00275314 39 61 00 20 */ addi r11, r1, 0x20 +/* 802796B8 00275318 4B F4 DA 71 */ bl _savegpr_27 +/* 802796BC 0027531C 3F E0 80 51 */ lis r31, lbl_805157A0@ha +/* 802796C0 00275320 3B FF 57 A0 */ addi r31, r31, lbl_805157A0@l +/* 802796C4 00275324 4B FF 50 99 */ bl OSDisableInterrupts +/* 802796C8 00275328 80 AD A9 00 */ lwz r5, lbl_8063FBC0-_SDA_BASE_(r13) +/* 802796CC 0027532C 38 00 00 00 */ li r0, 0 +/* 802796D0 00275330 80 8D A8 F0 */ lwz r4, lbl_8063FBB0-_SDA_BASE_(r13) +/* 802796D4 00275334 7C 7E 1B 78 */ mr r30, r3 +/* 802796D8 00275338 3B 9F 00 78 */ addi r28, r31, 0x78 +/* 802796DC 0027533C 3B BF 00 00 */ addi r29, r31, 0 +/* 802796E0 00275340 7C A3 23 78 */ or r3, r5, r4 +/* 802796E4 00275344 3B 60 FF FF */ li r27, -1 +/* 802796E8 00275348 90 6D A9 00 */ stw r3, lbl_8063FBC0-_SDA_BASE_(r13) +/* 802796EC 0027534C 90 0D A8 F0 */ stw r0, lbl_8063FBB0-_SDA_BASE_(r13) +/* 802796F0 00275350 80 8D A9 08 */ lwz r4, lbl_8063FBC8-_SDA_BASE_(r13) +/* 802796F4 00275354 80 AD A9 0C */ lwz r5, lbl_8063FBCC-_SDA_BASE_(r13) +/* 802796F8 00275358 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 802796FC 0027535C 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279700 00275360 7C 80 03 78 */ or r0, r4, r0 +/* 80279704 00275364 7C A3 1B 78 */ or r3, r5, r3 +/* 80279708 00275368 90 6D A9 0C */ stw r3, lbl_8063FBCC-_SDA_BASE_(r13) +/* 8027970C 0027536C 90 0D A9 08 */ stw r0, lbl_8063FBC8-_SDA_BASE_(r13) +/* 80279710 00275370 48 00 00 64 */ b lbl_80279774 +lbl_80279714: +/* 80279714 00275374 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279718 00275378 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027971C 0027537C 7C 00 00 34 */ cntlzw r0, r0 +/* 80279720 00275380 2C 00 00 20 */ cmpwi r0, 0x20 +/* 80279724 00275384 7C 63 D8 38 */ and r3, r3, r27 +/* 80279728 00275388 40 80 00 08 */ bge lbl_80279730 +/* 8027972C 0027538C 48 00 00 0C */ b lbl_80279738 +lbl_80279730: +/* 80279730 00275390 7C 63 00 34 */ cntlzw r3, r3 +/* 80279734 00275394 38 03 00 20 */ addi r0, r3, 0x20 +lbl_80279738: +/* 80279738 00275398 54 06 08 3C */ slwi r6, r0, 1 +/* 8027973C 0027539C 20 A0 00 3F */ subfic r5, r0, 0x3f +/* 80279740 002753A0 7C 1C 32 2E */ lhzx r0, r28, r6 +/* 80279744 002753A4 38 80 00 01 */ li r4, 1 +/* 80279748 002753A8 38 60 00 00 */ li r3, 0 +/* 8027974C 002753AC 7C 1D 33 2E */ sthx r0, r29, r6 +/* 80279750 002753B0 4B F4 DE 51 */ bl __shl2i +/* 80279754 002753B4 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279758 002753B8 7C 65 18 F8 */ nor r5, r3, r3 +/* 8027975C 002753BC 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279760 002753C0 7C 84 20 F8 */ nor r4, r4, r4 +/* 80279764 002753C4 7C 00 28 38 */ and r0, r0, r5 +/* 80279768 002753C8 7C 63 20 38 */ and r3, r3, r4 +/* 8027976C 002753CC 90 6D A8 FC */ stw r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 80279770 002753D0 90 0D A8 F8 */ stw r0, lbl_8063FBB8-_SDA_BASE_(r13) +lbl_80279774: +/* 80279774 002753D4 80 0D A8 F8 */ lwz r0, lbl_8063FBB8-_SDA_BASE_(r13) +/* 80279778 002753D8 80 6D A8 FC */ lwz r3, lbl_8063FBBC-_SDA_BASE_(r13) +/* 8027977C 002753DC 7C 60 03 79 */ or. r0, r3, r0 +/* 80279780 002753E0 40 82 FF 94 */ bne lbl_80279714 +/* 80279784 002753E4 38 7F 00 F0 */ addi r3, r31, 0xf0 +/* 80279788 002753E8 38 80 00 01 */ li r4, 1 +/* 8027978C 002753EC 80 03 00 30 */ lwz r0, 0x30(r3) +/* 80279790 002753F0 7F C3 F3 78 */ mr r3, r30 +/* 80279794 002753F4 90 8D A9 68 */ stw r4, lbl_8063FC28-_SDA_BASE_(r13) +/* 80279798 002753F8 90 8D A9 64 */ stw r4, lbl_8063FC24-_SDA_BASE_(r13) +/* 8027979C 002753FC 90 0D A9 2C */ stw r0, lbl_8063FBEC-_SDA_BASE_(r13) +/* 802797A0 00275400 4B FF 4F E5 */ bl OSRestoreInterrupts +/* 802797A4 00275404 39 61 00 20 */ addi r11, r1, 0x20 +/* 802797A8 00275408 4B F4 D9 CD */ bl _restgpr_27 +/* 802797AC 0027540C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802797B0 00275410 7C 08 03 A6 */ mtlr r0 +/* 802797B4 00275414 38 21 00 20 */ addi r1, r1, 0x20 +/* 802797B8 00275418 4E 80 00 20 */ blr + +.global VISetNextFrameBuffer +VISetNextFrameBuffer: +/* 802797BC 0027541C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802797C0 00275420 7C 08 02 A6 */ mflr r0 +/* 802797C4 00275424 90 01 00 14 */ stw r0, 0x14(r1) +/* 802797C8 00275428 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802797CC 0027542C 93 C1 00 08 */ stw r30, 8(r1) +/* 802797D0 00275430 7C 7E 1B 78 */ mr r30, r3 +/* 802797D4 00275434 4B FF 4F 89 */ bl OSDisableInterrupts +/* 802797D8 00275438 3C E0 80 51 */ lis r7, lbl_80515890@ha +/* 802797DC 0027543C 38 00 00 01 */ li r0, 1 +/* 802797E0 00275440 38 E7 58 90 */ addi r7, r7, lbl_80515890@l +/* 802797E4 00275444 7C 7F 1B 78 */ mr r31, r3 +/* 802797E8 00275448 93 C7 00 30 */ stw r30, 0x30(r7) +/* 802797EC 0027544C 7C E3 3B 78 */ mr r3, r7 +/* 802797F0 00275450 38 87 00 34 */ addi r4, r7, 0x34 +/* 802797F4 00275454 38 A7 00 38 */ addi r5, r7, 0x38 +/* 802797F8 00275458 38 C7 00 4C */ addi r6, r7, 0x4c +/* 802797FC 0027545C 90 0D A9 10 */ stw r0, lbl_8063FBD0-_SDA_BASE_(r13) +/* 80279800 00275460 38 E7 00 50 */ addi r7, r7, 0x50 +/* 80279804 00275464 4B FF EF 75 */ bl setFbbRegs +/* 80279808 00275468 7F E3 FB 78 */ mr r3, r31 +/* 8027980C 0027546C 4B FF 4F 79 */ bl OSRestoreInterrupts +/* 80279810 00275470 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279814 00275474 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279818 00275478 83 C1 00 08 */ lwz r30, 8(r1) +/* 8027981C 0027547C 7C 08 03 A6 */ mtlr r0 +/* 80279820 00275480 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279824 00275484 4E 80 00 20 */ blr + +.global VISetBlack +VISetBlack: +/* 80279828 00275488 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8027982C 0027548C 7C 08 02 A6 */ mflr r0 +/* 80279830 00275490 90 01 00 24 */ stw r0, 0x24(r1) +/* 80279834 00275494 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80279838 00275498 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8027983C 0027549C 7C 7E 1B 78 */ mr r30, r3 +/* 80279840 002754A0 4B FF 4F 1D */ bl OSDisableInterrupts +/* 80279844 002754A4 3C 80 80 51 */ lis r4, lbl_80515890@ha +/* 80279848 002754A8 7C 7F 1B 78 */ mr r31, r3 +/* 8027984C 002754AC 38 84 58 90 */ addi r4, r4, lbl_80515890@l +/* 80279850 002754B0 93 C4 00 40 */ stw r30, 0x40(r4) +/* 80279854 002754B4 81 44 00 54 */ lwz r10, 0x54(r4) +/* 80279858 002754B8 93 C1 00 08 */ stw r30, 8(r1) +/* 8027985C 002754BC A0 64 00 0A */ lhz r3, 0xa(r4) +/* 80279860 002754C0 A0 84 00 06 */ lhz r4, 6(r4) +/* 80279864 002754C4 88 AA 00 00 */ lbz r5, 0(r10) +/* 80279868 002754C8 A0 CA 00 02 */ lhz r6, 2(r10) +/* 8027986C 002754CC A0 EA 00 04 */ lhz r7, 4(r10) +/* 80279870 002754D0 A1 0A 00 06 */ lhz r8, 6(r10) +/* 80279874 002754D4 A1 2A 00 08 */ lhz r9, 8(r10) +/* 80279878 002754D8 A1 4A 00 0A */ lhz r10, 0xa(r10) +/* 8027987C 002754DC 4B FF F1 B5 */ bl setVerticalRegs +/* 80279880 002754E0 7F E3 FB 78 */ mr r3, r31 +/* 80279884 002754E4 4B FF 4F 01 */ bl OSRestoreInterrupts +/* 80279888 002754E8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8027988C 002754EC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80279890 002754F0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80279894 002754F4 7C 08 03 A6 */ mtlr r0 +/* 80279898 002754F8 38 21 00 20 */ addi r1, r1, 0x20 +/* 8027989C 002754FC 4E 80 00 20 */ blr + +.global VIGetRetraceCount +VIGetRetraceCount: +/* 802798A0 00275500 80 6D A9 6C */ lwz r3, lbl_8063FC2C-_SDA_BASE_(r13) +/* 802798A4 00275504 4E 80 00 20 */ blr + +.global VIGetNextField +VIGetNextField: +/* 802798A8 00275508 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802798AC 0027550C 7C 08 02 A6 */ mflr r0 +/* 802798B0 00275510 90 01 00 14 */ stw r0, 0x14(r1) +/* 802798B4 00275514 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802798B8 00275518 4B FF 4E A5 */ bl OSDisableInterrupts +/* 802798BC 0027551C 3C A0 CC 00 */ lis r5, 0xCC00202C@ha +/* 802798C0 00275520 A0 05 20 2C */ lhz r0, 0xCC00202C@l(r5) +/* 802798C4 00275524 54 06 05 7E */ clrlwi r6, r0, 0x15 +lbl_802798C8: +/* 802798C8 00275528 A0 85 20 2E */ lhz r4, 0x202e(r5) +/* 802798CC 0027552C 7C C7 33 78 */ mr r7, r6 +/* 802798D0 00275530 A0 05 20 2C */ lhz r0, 0x202c(r5) +/* 802798D4 00275534 54 88 05 7E */ clrlwi r8, r4, 0x15 +/* 802798D8 00275538 54 06 05 7E */ clrlwi r6, r0, 0x15 +/* 802798DC 0027553C 7C 07 30 40 */ cmplw r7, r6 +/* 802798E0 00275540 40 82 FF E8 */ bne lbl_802798C8 +/* 802798E4 00275544 80 ED A9 34 */ lwz r7, lbl_8063FBF4-_SDA_BASE_(r13) +/* 802798E8 00275548 38 86 FF FF */ addi r4, r6, -1 +/* 802798EC 0027554C 54 86 08 3C */ slwi r6, r4, 1 +/* 802798F0 00275550 38 A8 FF FF */ addi r5, r8, -1 +/* 802798F4 00275554 A0 07 00 1A */ lhz r0, 0x1a(r7) +/* 802798F8 00275558 A0 87 00 18 */ lhz r4, 0x18(r7) +/* 802798FC 0027555C 7C 05 03 96 */ divwu r0, r5, r0 +/* 80279900 00275560 7C 06 02 14 */ add r0, r6, r0 +/* 80279904 00275564 7C 80 02 78 */ xor r0, r4, r0 +/* 80279908 00275568 7C 00 00 34 */ cntlzw r0, r0 +/* 8027990C 0027556C 7C 80 00 30 */ slw r0, r4, r0 +/* 80279910 00275570 54 1F 0F FE */ srwi r31, r0, 0x1f +/* 80279914 00275574 4B FF 4E 71 */ bl OSRestoreInterrupts +/* 80279918 00275578 3C 60 80 51 */ lis r3, lbl_80515890@ha +/* 8027991C 0027557C 6B E4 00 01 */ xori r4, r31, 1 +/* 80279920 00275580 38 63 58 90 */ addi r3, r3, lbl_80515890@l +/* 80279924 00275584 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279928 00275588 A0 03 00 0A */ lhz r0, 0xa(r3) +/* 8027992C 0027558C 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 80279930 00275590 7C 83 02 78 */ xor r3, r4, r0 +/* 80279934 00275594 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279938 00275598 7C 08 03 A6 */ mtlr r0 +/* 8027993C 0027559C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279940 002755A0 4E 80 00 20 */ blr + +.global VIGetCurrentLine +VIGetCurrentLine: +/* 80279944 002755A4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80279948 002755A8 7C 08 02 A6 */ mflr r0 +/* 8027994C 002755AC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80279950 002755B0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80279954 002755B4 93 C1 00 08 */ stw r30, 8(r1) +/* 80279958 002755B8 83 CD A9 34 */ lwz r30, lbl_8063FBF4-_SDA_BASE_(r13) +/* 8027995C 002755BC 4B FF 4E 01 */ bl OSDisableInterrupts +/* 80279960 002755C0 3C A0 CC 00 */ lis r5, 0xCC00202C@ha +/* 80279964 002755C4 A0 05 20 2C */ lhz r0, 0xCC00202C@l(r5) +/* 80279968 002755C8 54 08 05 7E */ clrlwi r8, r0, 0x15 +lbl_8027996C: +/* 8027996C 002755CC A0 85 20 2E */ lhz r4, 0x202e(r5) +/* 80279970 002755D0 7D 06 43 78 */ mr r6, r8 +/* 80279974 002755D4 A0 05 20 2C */ lhz r0, 0x202c(r5) +/* 80279978 002755D8 54 87 05 7E */ clrlwi r7, r4, 0x15 +/* 8027997C 002755DC 54 08 05 7E */ clrlwi r8, r0, 0x15 +/* 80279980 002755E0 7C 06 40 40 */ cmplw r6, r8 +/* 80279984 002755E4 40 82 FF E8 */ bne lbl_8027996C +/* 80279988 002755E8 80 8D A9 34 */ lwz r4, lbl_8063FBF4-_SDA_BASE_(r13) +/* 8027998C 002755EC 38 A7 FF FF */ addi r5, r7, -1 +/* 80279990 002755F0 38 C8 FF FF */ addi r6, r8, -1 +/* 80279994 002755F4 A0 04 00 1A */ lhz r0, 0x1a(r4) +/* 80279998 002755F8 54 C4 08 3C */ slwi r4, r6, 1 +/* 8027999C 002755FC 7C 05 03 96 */ divwu r0, r5, r0 +/* 802799A0 00275600 7F E4 02 14 */ add r31, r4, r0 +/* 802799A4 00275604 4B FF 4D E1 */ bl OSRestoreInterrupts +/* 802799A8 00275608 A0 1E 00 18 */ lhz r0, 0x18(r30) +/* 802799AC 0027560C 7C 1F 00 40 */ cmplw r31, r0 +/* 802799B0 00275610 41 80 00 08 */ blt lbl_802799B8 +/* 802799B4 00275614 7F E0 F8 50 */ subf r31, r0, r31 +lbl_802799B8: +/* 802799B8 00275618 57 E3 F8 7E */ srwi r3, r31, 1 +/* 802799BC 0027561C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802799C0 00275620 83 C1 00 08 */ lwz r30, 8(r1) +/* 802799C4 00275624 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802799C8 00275628 7C 08 03 A6 */ mtlr r0 +/* 802799CC 0027562C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802799D0 00275630 4E 80 00 20 */ blr + +.global VIGetTvFormat +VIGetTvFormat: +/* 802799D4 00275634 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802799D8 00275638 7C 08 02 A6 */ mflr r0 +/* 802799DC 0027563C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802799E0 00275640 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802799E4 00275644 4B FF 4D 79 */ bl OSDisableInterrupts +/* 802799E8 00275648 83 ED A9 30 */ lwz r31, lbl_8063FBF0-_SDA_BASE_(r13) +/* 802799EC 0027564C 28 1F 00 07 */ cmplwi r31, 7 +/* 802799F0 00275650 41 81 00 28 */ bgt lbl_80279A18 +/* 802799F4 00275654 3C 80 80 43 */ lis r4, lbl_804344D0@ha +/* 802799F8 00275658 57 E0 10 3A */ slwi r0, r31, 2 +/* 802799FC 0027565C 38 84 44 D0 */ addi r4, r4, lbl_804344D0@l +/* 80279A00 00275660 7C 84 00 2E */ lwzx r4, r4, r0 +/* 80279A04 00275664 7C 89 03 A6 */ mtctr r4 +/* 80279A08 00275668 4E 80 04 20 */ bctr +/* 80279A0C 0027566C 3B E0 00 00 */ li r31, 0 +/* 80279A10 00275670 48 00 00 08 */ b lbl_80279A18 +/* 80279A14 00275674 3B E0 00 01 */ li r31, 1 +lbl_80279A18: +/* 80279A18 00275678 4B FF 4D 6D */ bl OSRestoreInterrupts +/* 80279A1C 0027567C 7F E3 FB 78 */ mr r3, r31 +/* 80279A20 00275680 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279A24 00275684 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279A28 00275688 7C 08 03 A6 */ mtlr r0 +/* 80279A2C 0027568C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279A30 00275690 4E 80 00 20 */ blr + +.global VIGetScanMode +VIGetScanMode: +/* 80279A34 00275694 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80279A38 00275698 7C 08 02 A6 */ mflr r0 +/* 80279A3C 0027569C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80279A40 002756A0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80279A44 002756A4 4B FF 4D 19 */ bl OSDisableInterrupts +/* 80279A48 002756A8 3C 80 CC 00 */ lis r4, 0xCC00206C@ha +/* 80279A4C 002756AC A0 04 20 6C */ lhz r0, 0xCC00206C@l(r4) +/* 80279A50 002756B0 54 00 07 FE */ clrlwi r0, r0, 0x1f +/* 80279A54 002756B4 28 00 00 01 */ cmplwi r0, 1 +/* 80279A58 002756B8 40 82 00 0C */ bne lbl_80279A64 +/* 80279A5C 002756BC 3B E0 00 02 */ li r31, 2 +/* 80279A60 002756C0 48 00 00 18 */ b lbl_80279A78 +lbl_80279A64: +/* 80279A64 002756C4 A0 04 20 02 */ lhz r0, 0x2002(r4) +/* 80279A68 002756C8 54 04 F7 FE */ rlwinm r4, r0, 0x1e, 0x1f, 0x1f +/* 80279A6C 002756CC 7C 04 00 D0 */ neg r0, r4 +/* 80279A70 002756D0 7C 00 23 78 */ or r0, r0, r4 +/* 80279A74 002756D4 54 1F 0F FE */ srwi r31, r0, 0x1f +lbl_80279A78: +/* 80279A78 002756D8 4B FF 4D 0D */ bl OSRestoreInterrupts +/* 80279A7C 002756DC 7F E3 FB 78 */ mr r3, r31 +/* 80279A80 002756E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279A84 002756E4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279A88 002756E8 7C 08 03 A6 */ mtlr r0 +/* 80279A8C 002756EC 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279A90 002756F0 4E 80 00 20 */ blr + +.global VIGetDTVStatus +VIGetDTVStatus: +/* 80279A94 002756F4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80279A98 002756F8 7C 08 02 A6 */ mflr r0 +/* 80279A9C 002756FC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80279AA0 00275700 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80279AA4 00275704 4B FF 4C B9 */ bl OSDisableInterrupts +/* 80279AA8 00275708 3C 80 CC 00 */ lis r4, 0xCC00206E@ha +/* 80279AAC 0027570C A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4) +/* 80279AB0 00275710 54 1F 07 BE */ clrlwi r31, r0, 0x1e +/* 80279AB4 00275714 4B FF 4C D1 */ bl OSRestoreInterrupts +/* 80279AB8 00275718 57 E3 07 FE */ clrlwi r3, r31, 0x1f +/* 80279ABC 0027571C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279AC0 00275720 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279AC4 00275724 7C 08 03 A6 */ mtlr r0 +/* 80279AC8 00275728 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279ACC 0027572C 4E 80 00 20 */ blr + +.global __VIDisplayPositionToXY +__VIDisplayPositionToXY: +/* 80279AD0 00275730 80 ED A9 34 */ lwz r7, lbl_8063FBF4-_SDA_BASE_(r13) +/* 80279AD4 00275734 39 24 FF FF */ addi r9, r4, -1 +/* 80279AD8 00275738 3D 00 80 51 */ lis r8, lbl_80515890@ha +/* 80279ADC 0027573C 38 83 FF FF */ addi r4, r3, -1 +/* 80279AE0 00275740 A0 07 00 1A */ lhz r0, 0x1a(r7) +/* 80279AE4 00275744 39 08 58 90 */ addi r8, r8, lbl_80515890@l +/* 80279AE8 00275748 81 48 00 24 */ lwz r10, 0x24(r8) +/* 80279AEC 0027574C 55 28 08 3C */ slwi r8, r9, 1 +/* 80279AF0 00275750 7C 04 03 96 */ divwu r0, r4, r0 +/* 80279AF4 00275754 2C 0A 00 00 */ cmpwi r10, 0 +/* 80279AF8 00275758 7C 08 02 14 */ add r0, r8, r0 +/* 80279AFC 0027575C 40 82 00 C8 */ bne lbl_80279BC4 +/* 80279B00 00275760 A1 27 00 18 */ lhz r9, 0x18(r7) +/* 80279B04 00275764 7C 00 48 40 */ cmplw r0, r9 +/* 80279B08 00275768 40 80 00 5C */ bge lbl_80279B64 +/* 80279B0C 0027576C 89 07 00 00 */ lbz r8, 0(r7) +/* 80279B10 00275770 A1 47 00 04 */ lhz r10, 4(r7) +/* 80279B14 00275774 55 04 10 3A */ slwi r4, r8, 2 +/* 80279B18 00275778 7D 08 20 50 */ subf r8, r8, r4 +/* 80279B1C 0027577C 7C 8A 42 14 */ add r4, r10, r8 +/* 80279B20 00275780 7C 00 20 40 */ cmplw r0, r4 +/* 80279B24 00275784 40 80 00 10 */ bge lbl_80279B34 +/* 80279B28 00275788 38 00 FF FF */ li r0, -1 +/* 80279B2C 0027578C B0 06 00 00 */ sth r0, 0(r6) +/* 80279B30 00275790 48 00 01 C8 */ b lbl_80279CF8 +lbl_80279B34: +/* 80279B34 00275794 A0 87 00 08 */ lhz r4, 8(r7) +/* 80279B38 00275798 7C 84 48 50 */ subf r4, r4, r9 +/* 80279B3C 0027579C 7C 00 20 40 */ cmplw r0, r4 +/* 80279B40 002757A0 41 80 00 10 */ blt lbl_80279B50 +/* 80279B44 002757A4 38 00 FF FF */ li r0, -1 +/* 80279B48 002757A8 B0 06 00 00 */ sth r0, 0(r6) +/* 80279B4C 002757AC 48 00 01 AC */ b lbl_80279CF8 +lbl_80279B50: +/* 80279B50 002757B0 7C 08 00 50 */ subf r0, r8, r0 +/* 80279B54 002757B4 7C 0A 00 50 */ subf r0, r10, r0 +/* 80279B58 002757B8 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 80279B5C 002757BC B0 06 00 00 */ sth r0, 0(r6) +/* 80279B60 002757C0 48 00 01 98 */ b lbl_80279CF8 +lbl_80279B64: +/* 80279B64 002757C4 89 07 00 00 */ lbz r8, 0(r7) +/* 80279B68 002757C8 7C 09 00 50 */ subf r0, r9, r0 +/* 80279B6C 002757CC A1 47 00 06 */ lhz r10, 6(r7) +/* 80279B70 002757D0 55 04 10 3A */ slwi r4, r8, 2 +/* 80279B74 002757D4 7D 08 20 50 */ subf r8, r8, r4 +/* 80279B78 002757D8 7C 8A 42 14 */ add r4, r10, r8 +/* 80279B7C 002757DC 7C 00 20 40 */ cmplw r0, r4 +/* 80279B80 002757E0 40 80 00 10 */ bge lbl_80279B90 +/* 80279B84 002757E4 38 00 FF FF */ li r0, -1 +/* 80279B88 002757E8 B0 06 00 00 */ sth r0, 0(r6) +/* 80279B8C 002757EC 48 00 01 6C */ b lbl_80279CF8 +lbl_80279B90: +/* 80279B90 002757F0 A0 87 00 0A */ lhz r4, 0xa(r7) +/* 80279B94 002757F4 7C 84 48 50 */ subf r4, r4, r9 +/* 80279B98 002757F8 7C 00 20 40 */ cmplw r0, r4 +/* 80279B9C 002757FC 41 80 00 10 */ blt lbl_80279BAC +/* 80279BA0 00275800 38 00 FF FF */ li r0, -1 +/* 80279BA4 00275804 B0 06 00 00 */ sth r0, 0(r6) +/* 80279BA8 00275808 48 00 01 50 */ b lbl_80279CF8 +lbl_80279BAC: +/* 80279BAC 0027580C 7C 08 00 50 */ subf r0, r8, r0 +/* 80279BB0 00275810 7C 0A 00 50 */ subf r0, r10, r0 +/* 80279BB4 00275814 54 04 00 3C */ rlwinm r4, r0, 0, 0, 0x1e +/* 80279BB8 00275818 38 04 00 01 */ addi r0, r4, 1 +/* 80279BBC 0027581C B0 06 00 00 */ sth r0, 0(r6) +/* 80279BC0 00275820 48 00 01 38 */ b lbl_80279CF8 +lbl_80279BC4: +/* 80279BC4 00275824 28 0A 00 01 */ cmplwi r10, 1 +/* 80279BC8 00275828 40 82 00 70 */ bne lbl_80279C38 +/* 80279BCC 0027582C A1 27 00 18 */ lhz r9, 0x18(r7) +/* 80279BD0 00275830 7C 00 48 40 */ cmplw r0, r9 +/* 80279BD4 00275834 41 80 00 08 */ blt lbl_80279BDC +/* 80279BD8 00275838 7C 09 00 50 */ subf r0, r9, r0 +lbl_80279BDC: +/* 80279BDC 0027583C 80 8D A9 34 */ lwz r4, lbl_8063FBF4-_SDA_BASE_(r13) +/* 80279BE0 00275840 89 04 00 00 */ lbz r8, 0(r4) +/* 80279BE4 00275844 A1 44 00 04 */ lhz r10, 4(r4) +/* 80279BE8 00275848 55 04 10 3A */ slwi r4, r8, 2 +/* 80279BEC 0027584C 7D 08 20 50 */ subf r8, r8, r4 +/* 80279BF0 00275850 7C 8A 42 14 */ add r4, r10, r8 +/* 80279BF4 00275854 7C 00 20 40 */ cmplw r0, r4 +/* 80279BF8 00275858 40 80 00 10 */ bge lbl_80279C08 +/* 80279BFC 0027585C 38 00 FF FF */ li r0, -1 +/* 80279C00 00275860 B0 06 00 00 */ sth r0, 0(r6) +/* 80279C04 00275864 48 00 00 F4 */ b lbl_80279CF8 +lbl_80279C08: +/* 80279C08 00275868 A0 87 00 08 */ lhz r4, 8(r7) +/* 80279C0C 0027586C 7C 84 48 50 */ subf r4, r4, r9 +/* 80279C10 00275870 7C 00 20 40 */ cmplw r0, r4 +/* 80279C14 00275874 41 80 00 10 */ blt lbl_80279C24 +/* 80279C18 00275878 38 00 FF FF */ li r0, -1 +/* 80279C1C 0027587C B0 06 00 00 */ sth r0, 0(r6) +/* 80279C20 00275880 48 00 00 D8 */ b lbl_80279CF8 +lbl_80279C24: +/* 80279C24 00275884 7C 08 00 50 */ subf r0, r8, r0 +/* 80279C28 00275888 7C 0A 00 50 */ subf r0, r10, r0 +/* 80279C2C 0027588C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 80279C30 00275890 B0 06 00 00 */ sth r0, 0(r6) +/* 80279C34 00275894 48 00 00 C4 */ b lbl_80279CF8 +lbl_80279C38: +/* 80279C38 00275898 28 0A 00 02 */ cmplwi r10, 2 +/* 80279C3C 0027589C 40 82 00 BC */ bne lbl_80279CF8 +/* 80279C40 002758A0 A1 27 00 18 */ lhz r9, 0x18(r7) +/* 80279C44 002758A4 7C 00 48 40 */ cmplw r0, r9 +/* 80279C48 002758A8 40 80 00 58 */ bge lbl_80279CA0 +/* 80279C4C 002758AC 89 07 00 00 */ lbz r8, 0(r7) +/* 80279C50 002758B0 A1 47 00 04 */ lhz r10, 4(r7) +/* 80279C54 002758B4 55 04 10 3A */ slwi r4, r8, 2 +/* 80279C58 002758B8 7D 08 20 50 */ subf r8, r8, r4 +/* 80279C5C 002758BC 7C 8A 42 14 */ add r4, r10, r8 +/* 80279C60 002758C0 7C 00 20 40 */ cmplw r0, r4 +/* 80279C64 002758C4 40 80 00 10 */ bge lbl_80279C74 +/* 80279C68 002758C8 38 00 FF FF */ li r0, -1 +/* 80279C6C 002758CC B0 06 00 00 */ sth r0, 0(r6) +/* 80279C70 002758D0 48 00 00 88 */ b lbl_80279CF8 +lbl_80279C74: +/* 80279C74 002758D4 A0 87 00 08 */ lhz r4, 8(r7) +/* 80279C78 002758D8 7C 84 48 50 */ subf r4, r4, r9 +/* 80279C7C 002758DC 7C 00 20 40 */ cmplw r0, r4 +/* 80279C80 002758E0 41 80 00 10 */ blt lbl_80279C90 +/* 80279C84 002758E4 38 00 FF FF */ li r0, -1 +/* 80279C88 002758E8 B0 06 00 00 */ sth r0, 0(r6) +/* 80279C8C 002758EC 48 00 00 6C */ b lbl_80279CF8 +lbl_80279C90: +/* 80279C90 002758F0 7C 08 00 50 */ subf r0, r8, r0 +/* 80279C94 002758F4 7C 0A 00 50 */ subf r0, r10, r0 +/* 80279C98 002758F8 B0 06 00 00 */ sth r0, 0(r6) +/* 80279C9C 002758FC 48 00 00 5C */ b lbl_80279CF8 +lbl_80279CA0: +/* 80279CA0 00275900 89 07 00 00 */ lbz r8, 0(r7) +/* 80279CA4 00275904 7C 09 00 50 */ subf r0, r9, r0 +/* 80279CA8 00275908 A1 47 00 06 */ lhz r10, 6(r7) +/* 80279CAC 0027590C 55 04 10 3A */ slwi r4, r8, 2 +/* 80279CB0 00275910 7D 08 20 50 */ subf r8, r8, r4 +/* 80279CB4 00275914 7C 8A 42 14 */ add r4, r10, r8 +/* 80279CB8 00275918 7C 00 20 40 */ cmplw r0, r4 +/* 80279CBC 0027591C 40 80 00 10 */ bge lbl_80279CCC +/* 80279CC0 00275920 38 00 FF FF */ li r0, -1 +/* 80279CC4 00275924 B0 06 00 00 */ sth r0, 0(r6) +/* 80279CC8 00275928 48 00 00 30 */ b lbl_80279CF8 +lbl_80279CCC: +/* 80279CCC 0027592C A0 87 00 0A */ lhz r4, 0xa(r7) +/* 80279CD0 00275930 7C 84 48 50 */ subf r4, r4, r9 +/* 80279CD4 00275934 7C 00 20 40 */ cmplw r0, r4 +/* 80279CD8 00275938 41 80 00 10 */ blt lbl_80279CE8 +/* 80279CDC 0027593C 38 00 FF FF */ li r0, -1 +/* 80279CE0 00275940 B0 06 00 00 */ sth r0, 0(r6) +/* 80279CE4 00275944 48 00 00 14 */ b lbl_80279CF8 +lbl_80279CE8: +/* 80279CE8 00275948 7C 08 00 50 */ subf r0, r8, r0 +/* 80279CEC 0027594C 7C 0A 00 50 */ subf r0, r10, r0 +/* 80279CF0 00275950 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 80279CF4 00275954 B0 06 00 00 */ sth r0, 0(r6) +lbl_80279CF8: +/* 80279CF8 00275958 38 03 FF FF */ addi r0, r3, -1 +/* 80279CFC 0027595C B0 05 00 00 */ sth r0, 0(r5) +/* 80279D00 00275960 4E 80 00 20 */ blr + +.global VIEnableDimming +VIEnableDimming: +/* 80279D04 00275964 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80279D08 00275968 7C 08 02 A6 */ mflr r0 +/* 80279D0C 0027596C 2C 03 00 01 */ cmpwi r3, 1 +/* 80279D10 00275970 90 01 00 14 */ stw r0, 0x14(r1) +/* 80279D14 00275974 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80279D18 00275978 93 C1 00 08 */ stw r30, 8(r1) +/* 80279D1C 0027597C 7C 7E 1B 78 */ mr r30, r3 +/* 80279D20 00275980 83 ED A9 60 */ lwz r31, lbl_8063FC20-_SDA_BASE_(r13) +/* 80279D24 00275984 40 82 00 14 */ bne lbl_80279D38 +/* 80279D28 00275988 48 07 27 E1 */ bl func_802EC508 +/* 80279D2C 0027598C 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 80279D30 00275990 40 82 00 08 */ bne lbl_80279D38 +/* 80279D34 00275994 3B C0 00 00 */ li r30, 0 +lbl_80279D38: +/* 80279D38 00275998 93 CD A9 60 */ stw r30, lbl_8063FC20-_SDA_BASE_(r13) +/* 80279D3C 0027599C 7F E3 FB 78 */ mr r3, r31 +/* 80279D40 002759A0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279D44 002759A4 83 C1 00 08 */ lwz r30, 8(r1) +/* 80279D48 002759A8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279D4C 002759AC 7C 08 03 A6 */ mtlr r0 +/* 80279D50 002759B0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279D54 002759B4 4E 80 00 20 */ blr + +.global VISetTimeToDimming +VISetTimeToDimming: +/* 80279D58 002759B8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80279D5C 002759BC 7C 08 02 A6 */ mflr r0 +/* 80279D60 002759C0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80279D64 002759C4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80279D68 002759C8 93 C1 00 08 */ stw r30, 8(r1) +/* 80279D6C 002759CC 83 CD A9 58 */ lwz r30, lbl_8063FC18-_SDA_BASE_(r13) +/* 80279D70 002759D0 90 6D A9 58 */ stw r3, lbl_8063FC18-_SDA_BASE_(r13) +/* 80279D74 002759D4 4B FF 49 E9 */ bl OSDisableInterrupts +/* 80279D78 002759D8 83 ED A9 30 */ lwz r31, lbl_8063FBF0-_SDA_BASE_(r13) +/* 80279D7C 002759DC 28 1F 00 07 */ cmplwi r31, 7 +/* 80279D80 002759E0 41 81 00 28 */ bgt lbl_80279DA8 +/* 80279D84 002759E4 3C 80 80 43 */ lis r4, lbl_804344F0@ha +/* 80279D88 002759E8 57 E0 10 3A */ slwi r0, r31, 2 +/* 80279D8C 002759EC 38 84 44 F0 */ addi r4, r4, lbl_804344F0@l +/* 80279D90 002759F0 7C 84 00 2E */ lwzx r4, r4, r0 +/* 80279D94 002759F4 7C 89 03 A6 */ mtctr r4 +/* 80279D98 002759F8 4E 80 04 20 */ bctr +/* 80279D9C 002759FC 3B E0 00 00 */ li r31, 0 +/* 80279DA0 00275A00 48 00 00 08 */ b lbl_80279DA8 +/* 80279DA4 00275A04 3B E0 00 01 */ li r31, 1 +lbl_80279DA8: +/* 80279DA8 00275A08 4B FF 49 DD */ bl OSRestoreInterrupts +/* 80279DAC 00275A0C 2C 1F 00 01 */ cmpwi r31, 1 +/* 80279DB0 00275A10 41 82 00 08 */ beq lbl_80279DB8 +/* 80279DB4 00275A14 48 00 00 48 */ b lbl_80279DFC +lbl_80279DB8: +/* 80279DB8 00275A18 80 0D A9 58 */ lwz r0, lbl_8063FC18-_SDA_BASE_(r13) +/* 80279DBC 00275A1C 2C 00 00 02 */ cmpwi r0, 2 +/* 80279DC0 00275A20 41 82 00 20 */ beq lbl_80279DE0 +/* 80279DC4 00275A24 40 80 00 2C */ bge lbl_80279DF0 +/* 80279DC8 00275A28 2C 00 00 01 */ cmpwi r0, 1 +/* 80279DCC 00275A2C 40 80 00 08 */ bge lbl_80279DD4 +/* 80279DD0 00275A30 48 00 00 20 */ b lbl_80279DF0 +lbl_80279DD4: +/* 80279DD4 00275A34 38 00 75 30 */ li r0, 0x7530 +/* 80279DD8 00275A38 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80279DDC 00275A3C 48 00 00 64 */ b lbl_80279E40 +lbl_80279DE0: +/* 80279DE0 00275A40 3C 60 00 01 */ lis r3, 0x0000AFC8@ha +/* 80279DE4 00275A44 38 03 AF C8 */ addi r0, r3, 0x0000AFC8@l +/* 80279DE8 00275A48 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80279DEC 00275A4C 48 00 00 54 */ b lbl_80279E40 +lbl_80279DF0: +/* 80279DF0 00275A50 38 00 3A 98 */ li r0, 0x3a98 +/* 80279DF4 00275A54 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80279DF8 00275A58 48 00 00 48 */ b lbl_80279E40 +lbl_80279DFC: +/* 80279DFC 00275A5C 80 0D A9 58 */ lwz r0, lbl_8063FC18-_SDA_BASE_(r13) +/* 80279E00 00275A60 2C 00 00 02 */ cmpwi r0, 2 +/* 80279E04 00275A64 41 82 00 24 */ beq lbl_80279E28 +/* 80279E08 00275A68 40 80 00 30 */ bge lbl_80279E38 +/* 80279E0C 00275A6C 2C 00 00 01 */ cmpwi r0, 1 +/* 80279E10 00275A70 40 80 00 08 */ bge lbl_80279E18 +/* 80279E14 00275A74 48 00 00 24 */ b lbl_80279E38 +lbl_80279E18: +/* 80279E18 00275A78 3C 60 00 01 */ lis r3, 0x00008CA0@ha +/* 80279E1C 00275A7C 38 03 8C A0 */ addi r0, r3, 0x00008CA0@l +/* 80279E20 00275A80 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80279E24 00275A84 48 00 00 1C */ b lbl_80279E40 +lbl_80279E28: +/* 80279E28 00275A88 3C 60 00 01 */ lis r3, 0x0000D2F0@ha +/* 80279E2C 00275A8C 38 03 D2 F0 */ addi r0, r3, 0x0000D2F0@l +/* 80279E30 00275A90 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +/* 80279E34 00275A94 48 00 00 0C */ b lbl_80279E40 +lbl_80279E38: +/* 80279E38 00275A98 38 00 46 50 */ li r0, 0x4650 +/* 80279E3C 00275A9C 90 0D A8 D4 */ stw r0, lbl_8063FB94-_SDA_BASE_(r13) +lbl_80279E40: +/* 80279E40 00275AA0 7F C3 F3 78 */ mr r3, r30 +/* 80279E44 00275AA4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80279E48 00275AA8 83 C1 00 08 */ lwz r30, 8(r1) +/* 80279E4C 00275AAC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80279E50 00275AB0 7C 08 03 A6 */ mtlr r0 +/* 80279E54 00275AB4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80279E58 00275AB8 4E 80 00 20 */ blr + +.global __VIResetRFIdle +__VIResetRFIdle: +/* 80279E5C 00275ABC 38 00 00 00 */ li r0, 0 +/* 80279E60 00275AC0 38 60 00 01 */ li r3, 1 +/* 80279E64 00275AC4 90 0D A9 54 */ stw r0, lbl_8063FC14-_SDA_BASE_(r13) +/* 80279E68 00275AC8 4E 80 00 20 */ blr diff --git a/asm/SDK/VI/vi3in1.s b/asm/SDK/VI/vi3in1.s new file mode 100644 index 0000000..1d45c9f --- /dev/null +++ b/asm/SDK/VI/vi3in1.s @@ -0,0 +1,1529 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __VISetYUVSEL
+__VISetYUVSEL:
+/* 8027A888 002764E8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027A88C 002764EC 7C 08 02 A6 */ mflr r0
+/* 8027A890 002764F0 3C 80 80 00 */ lis r4, 0x800000CC@ha
+/* 8027A894 002764F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027A898 002764F8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
+/* 8027A89C 002764FC 2C 00 00 02 */ cmpwi r0, 2
+/* 8027A8A0 00276500 41 82 00 30 */ beq lbl_8027A8D0
+/* 8027A8A4 00276504 40 80 00 14 */ bge lbl_8027A8B8
+/* 8027A8A8 00276508 2C 00 00 00 */ cmpwi r0, 0
+/* 8027A8AC 0027650C 41 82 00 30 */ beq lbl_8027A8DC
+/* 8027A8B0 00276510 40 80 00 14 */ bge lbl_8027A8C4
+/* 8027A8B4 00276514 48 00 00 34 */ b lbl_8027A8E8
+lbl_8027A8B8:
+/* 8027A8B8 00276518 2C 00 00 05 */ cmpwi r0, 5
+/* 8027A8BC 0027651C 41 82 00 08 */ beq lbl_8027A8C4
+/* 8027A8C0 00276520 48 00 00 28 */ b lbl_8027A8E8
+lbl_8027A8C4:
+/* 8027A8C4 00276524 38 00 00 02 */ li r0, 2
+/* 8027A8C8 00276528 90 0D A9 88 */ stw r0, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027A8CC 0027652C 48 00 00 24 */ b lbl_8027A8F0
+lbl_8027A8D0:
+/* 8027A8D0 00276530 38 00 00 01 */ li r0, 1
+/* 8027A8D4 00276534 90 0D A9 88 */ stw r0, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027A8D8 00276538 48 00 00 18 */ b lbl_8027A8F0
+lbl_8027A8DC:
+/* 8027A8DC 0027653C 38 00 00 00 */ li r0, 0
+/* 8027A8E0 00276540 90 0D A9 88 */ stw r0, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027A8E4 00276544 48 00 00 0C */ b lbl_8027A8F0
+lbl_8027A8E8:
+/* 8027A8E8 00276548 38 00 00 00 */ li r0, 0
+/* 8027A8EC 0027654C 90 0D A9 88 */ stw r0, lbl_8063FC48-_SDA_BASE_(r13)
+lbl_8027A8F0:
+/* 8027A8F0 00276550 54 63 2C F4 */ rlwinm r3, r3, 5, 0x13, 0x1a
+/* 8027A8F4 00276554 38 80 00 01 */ li r4, 1
+/* 8027A8F8 00276558 7C 60 03 78 */ or r0, r3, r0
+/* 8027A8FC 0027655C 98 81 00 08 */ stb r4, 8(r1)
+/* 8027A900 00276560 38 81 00 08 */ addi r4, r1, 8
+/* 8027A904 00276564 38 60 00 E0 */ li r3, 0xe0
+/* 8027A908 00276568 98 01 00 09 */ stb r0, 9(r1)
+/* 8027A90C 0027656C 38 A0 00 02 */ li r5, 2
+/* 8027A910 00276570 4B FF F9 A9 */ bl __VISendI2CData
+/* 8027A914 00276574 38 60 00 02 */ li r3, 2
+/* 8027A918 00276578 4B FF F5 55 */ bl WaitMicroTime
+/* 8027A91C 0027657C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027A920 00276580 7C 08 03 A6 */ mtlr r0
+/* 8027A924 00276584 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027A928 00276588 4E 80 00 20 */ blr
+
+.global __VISetFilter4EURGB60
+__VISetFilter4EURGB60:
+/* 8027A92C 0027658C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027A930 00276590 7C 08 02 A6 */ mflr r0
+/* 8027A934 00276594 38 A0 00 02 */ li r5, 2
+/* 8027A938 00276598 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027A93C 0027659C 38 00 00 6E */ li r0, 0x6e
+/* 8027A940 002765A0 38 81 00 08 */ addi r4, r1, 8
+/* 8027A944 002765A4 98 61 00 09 */ stb r3, 9(r1)
+/* 8027A948 002765A8 38 60 00 E0 */ li r3, 0xe0
+/* 8027A94C 002765AC 98 01 00 08 */ stb r0, 8(r1)
+/* 8027A950 002765B0 4B FF F9 69 */ bl __VISendI2CData
+/* 8027A954 002765B4 38 60 00 02 */ li r3, 2
+/* 8027A958 002765B8 4B FF F5 15 */ bl WaitMicroTime
+/* 8027A95C 002765BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027A960 002765C0 7C 08 03 A6 */ mtlr r0
+/* 8027A964 002765C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027A968 002765C8 4E 80 00 20 */ blr
+
+.global __VISetCGMS
+__VISetCGMS:
+/* 8027A96C 002765CC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027A970 002765D0 7C 08 02 A6 */ mflr r0
+/* 8027A974 002765D4 38 E0 00 05 */ li r7, 5
+/* 8027A978 002765D8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027A97C 002765DC 38 81 00 08 */ addi r4, r1, 8
+/* 8027A980 002765E0 88 6D 88 30 */ lbz r3, lbl_8063DAF0-_SDA_BASE_(r13)
+/* 8027A984 002765E4 88 0D 88 32 */ lbz r0, lbl_8063DAF2-_SDA_BASE_(r13)
+/* 8027A988 002765E8 54 66 07 BE */ clrlwi r6, r3, 0x1e
+/* 8027A98C 002765EC 88 AD 88 31 */ lbz r5, lbl_8063DAF1-_SDA_BASE_(r13)
+/* 8027A990 002765F0 98 E1 00 08 */ stb r7, 8(r1)
+/* 8027A994 002765F4 38 60 00 E0 */ li r3, 0xe0
+/* 8027A998 002765F8 50 A6 16 BA */ rlwimi r6, r5, 2, 0x1a, 0x1d
+/* 8027A99C 002765FC 38 A0 00 03 */ li r5, 3
+/* 8027A9A0 00276600 98 C1 00 09 */ stb r6, 9(r1)
+/* 8027A9A4 00276604 98 01 00 0A */ stb r0, 0xa(r1)
+/* 8027A9A8 00276608 4B FF F9 11 */ bl __VISendI2CData
+/* 8027A9AC 0027660C 38 60 00 02 */ li r3, 2
+/* 8027A9B0 00276610 4B FF F4 BD */ bl WaitMicroTime
+/* 8027A9B4 00276614 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027A9B8 00276618 7C 08 03 A6 */ mtlr r0
+/* 8027A9BC 0027661C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027A9C0 00276620 4E 80 00 20 */ blr
+
+.global __VISetWSS
+__VISetWSS:
+/* 8027A9C4 00276624 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027A9C8 00276628 7C 08 02 A6 */ mflr r0
+/* 8027A9CC 0027662C 38 E0 00 08 */ li r7, 8
+/* 8027A9D0 00276630 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027A9D4 00276634 38 81 00 08 */ addi r4, r1, 8
+/* 8027A9D8 00276638 88 6D 88 33 */ lbz r3, lbl_8063DAF3-_SDA_BASE_(r13)
+/* 8027A9DC 0027663C 88 0D 88 35 */ lbz r0, lbl_8063DAF5-_SDA_BASE_(r13)
+/* 8027A9E0 00276640 54 65 07 3E */ clrlwi r5, r3, 0x1c
+/* 8027A9E4 00276644 88 CD 88 34 */ lbz r6, lbl_8063DAF4-_SDA_BASE_(r13)
+/* 8027A9E8 00276648 88 6D 88 36 */ lbz r3, lbl_8063DAF6-_SDA_BASE_(r13)
+/* 8027A9EC 0027664C 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 8027A9F0 00276650 50 C5 26 36 */ rlwimi r5, r6, 4, 0x18, 0x1b
+/* 8027A9F4 00276654 98 E1 00 08 */ stb r7, 8(r1)
+/* 8027A9F8 00276658 50 60 1E B8 */ rlwimi r0, r3, 3, 0x1a, 0x1c
+/* 8027A9FC 0027665C 38 60 00 E0 */ li r3, 0xe0
+/* 8027AA00 00276660 98 A1 00 09 */ stb r5, 9(r1)
+/* 8027AA04 00276664 38 A0 00 03 */ li r5, 3
+/* 8027AA08 00276668 98 01 00 0A */ stb r0, 0xa(r1)
+/* 8027AA0C 0027666C 4B FF F8 AD */ bl __VISendI2CData
+/* 8027AA10 00276670 38 60 00 02 */ li r3, 2
+/* 8027AA14 00276674 4B FF F4 59 */ bl WaitMicroTime
+/* 8027AA18 00276678 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027AA1C 0027667C 7C 08 03 A6 */ mtlr r0
+/* 8027AA20 00276680 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027AA24 00276684 4E 80 00 20 */ blr
+
+.global __VISetClosedCaption
+__VISetClosedCaption:
+/* 8027AA28 00276688 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027AA2C 0027668C 7C 08 02 A6 */ mflr r0
+/* 8027AA30 00276690 39 20 00 7A */ li r9, 0x7a
+/* 8027AA34 00276694 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027AA38 00276698 38 81 00 08 */ addi r4, r1, 8
+/* 8027AA3C 0027669C 88 0D 88 37 */ lbz r0, lbl_8063DAF7-_SDA_BASE_(r13)
+/* 8027AA40 002766A0 88 AD 88 38 */ lbz r5, lbl_8063DAF8-_SDA_BASE_(r13)
+/* 8027AA44 002766A4 54 08 06 7E */ clrlwi r8, r0, 0x19
+/* 8027AA48 002766A8 88 6D 88 39 */ lbz r3, lbl_8063DAF9-_SDA_BASE_(r13)
+/* 8027AA4C 002766AC 88 0D 88 3A */ lbz r0, lbl_8063DAFA-_SDA_BASE_(r13)
+/* 8027AA50 002766B0 54 A7 06 7E */ clrlwi r7, r5, 0x19
+/* 8027AA54 002766B4 54 66 06 7E */ clrlwi r6, r3, 0x19
+/* 8027AA58 002766B8 99 21 00 08 */ stb r9, 8(r1)
+/* 8027AA5C 002766BC 54 00 06 7E */ clrlwi r0, r0, 0x19
+/* 8027AA60 002766C0 38 60 00 E0 */ li r3, 0xe0
+/* 8027AA64 002766C4 99 01 00 09 */ stb r8, 9(r1)
+/* 8027AA68 002766C8 38 A0 00 05 */ li r5, 5
+/* 8027AA6C 002766CC 98 E1 00 0A */ stb r7, 0xa(r1)
+/* 8027AA70 002766D0 98 C1 00 0B */ stb r6, 0xb(r1)
+/* 8027AA74 002766D4 98 01 00 0C */ stb r0, 0xc(r1)
+/* 8027AA78 002766D8 4B FF F8 41 */ bl __VISendI2CData
+/* 8027AA7C 002766DC 38 60 00 02 */ li r3, 2
+/* 8027AA80 002766E0 4B FF F3 ED */ bl WaitMicroTime
+/* 8027AA84 002766E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027AA88 002766E8 7C 08 03 A6 */ mtlr r0
+/* 8027AA8C 002766EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027AA90 002766F0 4E 80 00 20 */ blr
+
+.global __VISetMacrovision
+__VISetMacrovision:
+/* 8027AA94 002766F4 94 21 FE 70 */ stwu r1, -0x190(r1)
+/* 8027AA98 002766F8 7C 08 02 A6 */ mflr r0
+/* 8027AA9C 002766FC 3C 60 80 43 */ lis r3, lbl_80434510@ha
+/* 8027AAA0 00276700 90 01 01 94 */ stw r0, 0x194(r1)
+/* 8027AAA4 00276704 38 63 45 10 */ addi r3, r3, lbl_80434510@l
+/* 8027AAA8 00276708 93 E1 01 8C */ stw r31, 0x18c(r1)
+/* 8027AAAC 0027670C 93 C1 01 88 */ stw r30, 0x188(r1)
+/* 8027AAB0 00276710 93 A1 01 84 */ stw r29, 0x184(r1)
+/* 8027AAB4 00276714 93 81 01 80 */ stw r28, 0x180(r1)
+/* 8027AAB8 00276718 80 0D A9 84 */ lwz r0, lbl_8063FC44-_SDA_BASE_(r13)
+/* 8027AABC 0027671C 2C 00 00 03 */ cmpwi r0, 3
+/* 8027AAC0 00276720 41 82 04 30 */ beq lbl_8027AEF0
+/* 8027AAC4 00276724 40 80 00 14 */ bge lbl_8027AAD8
+/* 8027AAC8 00276728 2C 00 00 01 */ cmpwi r0, 1
+/* 8027AACC 0027672C 41 82 0C 3C */ beq lbl_8027B708
+/* 8027AAD0 00276730 40 80 00 14 */ bge lbl_8027AAE4
+/* 8027AAD4 00276734 48 00 0D 28 */ b lbl_8027B7FC
+lbl_8027AAD8:
+/* 8027AAD8 00276738 2C 00 00 05 */ cmpwi r0, 5
+/* 8027AADC 0027673C 40 80 0D 20 */ bge lbl_8027B7FC
+/* 8027AAE0 00276740 48 00 08 1C */ b lbl_8027B2FC
+lbl_8027AAE4:
+/* 8027AAE4 00276744 80 0D 88 3C */ lwz r0, lbl_8063DAFC-_SDA_BASE_(r13)
+/* 8027AAE8 00276748 2C 00 00 02 */ cmpwi r0, 2
+/* 8027AAEC 0027674C 41 82 02 14 */ beq lbl_8027AD00
+/* 8027AAF0 00276750 40 80 00 14 */ bge lbl_8027AB04
+/* 8027AAF4 00276754 2C 00 00 00 */ cmpwi r0, 0
+/* 8027AAF8 00276758 41 82 00 18 */ beq lbl_8027AB10
+/* 8027AAFC 0027675C 40 80 01 0C */ bge lbl_8027AC08
+/* 8027AB00 00276760 48 00 0C FC */ b lbl_8027B7FC
+lbl_8027AB04:
+/* 8027AB04 00276764 2C 00 00 05 */ cmpwi r0, 5
+/* 8027AB08 00276768 41 82 02 F0 */ beq lbl_8027ADF8
+/* 8027AB0C 0027676C 48 00 0C F0 */ b lbl_8027B7FC
+lbl_8027AB10:
+/* 8027AB10 00276770 3B C3 04 20 */ addi r30, r3, 0x420
+/* 8027AB14 00276774 3B E0 00 40 */ li r31, 0x40
+/* 8027AB18 00276778 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027AB1C 0027677C 38 81 01 58 */ addi r4, r1, 0x158
+/* 8027AB20 00276780 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027AB24 00276784 38 60 00 E0 */ li r3, 0xe0
+/* 8027AB28 00276788 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027AB2C 0027678C 38 A0 00 1B */ li r5, 0x1b
+/* 8027AB30 00276790 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027AB34 00276794 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027AB38 00276798 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027AB3C 0027679C 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027AB40 002767A0 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027AB44 002767A4 9B A1 01 59 */ stb r29, 0x159(r1)
+/* 8027AB48 002767A8 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027AB4C 002767AC 9B 81 01 5A */ stb r28, 0x15a(r1)
+/* 8027AB50 002767B0 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027AB54 002767B4 99 81 01 5B */ stb r12, 0x15b(r1)
+/* 8027AB58 002767B8 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027AB5C 002767BC 99 61 01 5C */ stb r11, 0x15c(r1)
+/* 8027AB60 002767C0 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027AB64 002767C4 99 41 01 5D */ stb r10, 0x15d(r1)
+/* 8027AB68 002767C8 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027AB6C 002767CC 99 21 01 5E */ stb r9, 0x15e(r1)
+/* 8027AB70 002767D0 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027AB74 002767D4 99 01 01 5F */ stb r8, 0x15f(r1)
+/* 8027AB78 002767D8 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027AB7C 002767DC 98 E1 01 60 */ stb r7, 0x160(r1)
+/* 8027AB80 002767E0 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027AB84 002767E4 9B A1 01 61 */ stb r29, 0x161(r1)
+/* 8027AB88 002767E8 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027AB8C 002767EC 9B 81 01 62 */ stb r28, 0x162(r1)
+/* 8027AB90 002767F0 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027AB94 002767F4 99 81 01 63 */ stb r12, 0x163(r1)
+/* 8027AB98 002767F8 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027AB9C 002767FC 99 61 01 64 */ stb r11, 0x164(r1)
+/* 8027ABA0 00276800 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027ABA4 00276804 99 41 01 65 */ stb r10, 0x165(r1)
+/* 8027ABA8 00276808 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027ABAC 0027680C 99 21 01 66 */ stb r9, 0x166(r1)
+/* 8027ABB0 00276810 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027ABB4 00276814 99 01 01 67 */ stb r8, 0x167(r1)
+/* 8027ABB8 00276818 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027ABBC 0027681C 98 E1 01 68 */ stb r7, 0x168(r1)
+/* 8027ABC0 00276820 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027ABC4 00276824 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027ABC8 00276828 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027ABCC 0027682C 9B E1 01 58 */ stb r31, 0x158(r1)
+/* 8027ABD0 00276830 9B A1 01 69 */ stb r29, 0x169(r1)
+/* 8027ABD4 00276834 9B 81 01 6A */ stb r28, 0x16a(r1)
+/* 8027ABD8 00276838 99 81 01 6B */ stb r12, 0x16b(r1)
+/* 8027ABDC 0027683C 99 61 01 6C */ stb r11, 0x16c(r1)
+/* 8027ABE0 00276840 99 41 01 6D */ stb r10, 0x16d(r1)
+/* 8027ABE4 00276844 99 21 01 6E */ stb r9, 0x16e(r1)
+/* 8027ABE8 00276848 99 01 01 6F */ stb r8, 0x16f(r1)
+/* 8027ABEC 0027684C 98 E1 01 70 */ stb r7, 0x170(r1)
+/* 8027ABF0 00276850 98 C1 01 71 */ stb r6, 0x171(r1)
+/* 8027ABF4 00276854 98 01 01 72 */ stb r0, 0x172(r1)
+/* 8027ABF8 00276858 4B FF F6 C1 */ bl __VISendI2CData
+/* 8027ABFC 0027685C 38 60 00 02 */ li r3, 2
+/* 8027AC00 00276860 4B FF F2 6D */ bl WaitMicroTime
+/* 8027AC04 00276864 48 00 0B F8 */ b lbl_8027B7FC
+lbl_8027AC08:
+/* 8027AC08 00276868 3B C3 04 74 */ addi r30, r3, 0x474
+/* 8027AC0C 0027686C 3B E0 00 40 */ li r31, 0x40
+/* 8027AC10 00276870 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027AC14 00276874 38 81 01 3C */ addi r4, r1, 0x13c
+/* 8027AC18 00276878 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027AC1C 0027687C 38 60 00 E0 */ li r3, 0xe0
+/* 8027AC20 00276880 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027AC24 00276884 38 A0 00 1B */ li r5, 0x1b
+/* 8027AC28 00276888 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027AC2C 0027688C 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027AC30 00276890 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027AC34 00276894 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027AC38 00276898 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027AC3C 0027689C 9B A1 01 3D */ stb r29, 0x13d(r1)
+/* 8027AC40 002768A0 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027AC44 002768A4 9B 81 01 3E */ stb r28, 0x13e(r1)
+/* 8027AC48 002768A8 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027AC4C 002768AC 99 81 01 3F */ stb r12, 0x13f(r1)
+/* 8027AC50 002768B0 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027AC54 002768B4 99 61 01 40 */ stb r11, 0x140(r1)
+/* 8027AC58 002768B8 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027AC5C 002768BC 99 41 01 41 */ stb r10, 0x141(r1)
+/* 8027AC60 002768C0 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027AC64 002768C4 99 21 01 42 */ stb r9, 0x142(r1)
+/* 8027AC68 002768C8 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027AC6C 002768CC 99 01 01 43 */ stb r8, 0x143(r1)
+/* 8027AC70 002768D0 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027AC74 002768D4 98 E1 01 44 */ stb r7, 0x144(r1)
+/* 8027AC78 002768D8 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027AC7C 002768DC 9B A1 01 45 */ stb r29, 0x145(r1)
+/* 8027AC80 002768E0 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027AC84 002768E4 9B 81 01 46 */ stb r28, 0x146(r1)
+/* 8027AC88 002768E8 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027AC8C 002768EC 99 81 01 47 */ stb r12, 0x147(r1)
+/* 8027AC90 002768F0 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027AC94 002768F4 99 61 01 48 */ stb r11, 0x148(r1)
+/* 8027AC98 002768F8 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027AC9C 002768FC 99 41 01 49 */ stb r10, 0x149(r1)
+/* 8027ACA0 00276900 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027ACA4 00276904 99 21 01 4A */ stb r9, 0x14a(r1)
+/* 8027ACA8 00276908 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027ACAC 0027690C 99 01 01 4B */ stb r8, 0x14b(r1)
+/* 8027ACB0 00276910 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027ACB4 00276914 98 E1 01 4C */ stb r7, 0x14c(r1)
+/* 8027ACB8 00276918 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027ACBC 0027691C 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027ACC0 00276920 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027ACC4 00276924 9B E1 01 3C */ stb r31, 0x13c(r1)
+/* 8027ACC8 00276928 9B A1 01 4D */ stb r29, 0x14d(r1)
+/* 8027ACCC 0027692C 9B 81 01 4E */ stb r28, 0x14e(r1)
+/* 8027ACD0 00276930 99 81 01 4F */ stb r12, 0x14f(r1)
+/* 8027ACD4 00276934 99 61 01 50 */ stb r11, 0x150(r1)
+/* 8027ACD8 00276938 99 41 01 51 */ stb r10, 0x151(r1)
+/* 8027ACDC 0027693C 99 21 01 52 */ stb r9, 0x152(r1)
+/* 8027ACE0 00276940 99 01 01 53 */ stb r8, 0x153(r1)
+/* 8027ACE4 00276944 98 E1 01 54 */ stb r7, 0x154(r1)
+/* 8027ACE8 00276948 98 C1 01 55 */ stb r6, 0x155(r1)
+/* 8027ACEC 0027694C 98 01 01 56 */ stb r0, 0x156(r1)
+/* 8027ACF0 00276950 4B FF F5 C9 */ bl __VISendI2CData
+/* 8027ACF4 00276954 38 60 00 02 */ li r3, 2
+/* 8027ACF8 00276958 4B FF F1 75 */ bl WaitMicroTime
+/* 8027ACFC 0027695C 48 00 0B 00 */ b lbl_8027B7FC
+lbl_8027AD00:
+/* 8027AD00 00276960 3B C3 05 1C */ addi r30, r3, 0x51c
+/* 8027AD04 00276964 3B E0 00 40 */ li r31, 0x40
+/* 8027AD08 00276968 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027AD0C 0027696C 38 81 01 20 */ addi r4, r1, 0x120
+/* 8027AD10 00276970 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027AD14 00276974 38 60 00 E0 */ li r3, 0xe0
+/* 8027AD18 00276978 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027AD1C 0027697C 38 A0 00 1B */ li r5, 0x1b
+/* 8027AD20 00276980 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027AD24 00276984 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027AD28 00276988 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027AD2C 0027698C 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027AD30 00276990 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027AD34 00276994 9B A1 01 21 */ stb r29, 0x121(r1)
+/* 8027AD38 00276998 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027AD3C 0027699C 9B 81 01 22 */ stb r28, 0x122(r1)
+/* 8027AD40 002769A0 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027AD44 002769A4 99 81 01 23 */ stb r12, 0x123(r1)
+/* 8027AD48 002769A8 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027AD4C 002769AC 99 61 01 24 */ stb r11, 0x124(r1)
+/* 8027AD50 002769B0 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027AD54 002769B4 99 41 01 25 */ stb r10, 0x125(r1)
+/* 8027AD58 002769B8 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027AD5C 002769BC 99 21 01 26 */ stb r9, 0x126(r1)
+/* 8027AD60 002769C0 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027AD64 002769C4 99 01 01 27 */ stb r8, 0x127(r1)
+/* 8027AD68 002769C8 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027AD6C 002769CC 98 E1 01 28 */ stb r7, 0x128(r1)
+/* 8027AD70 002769D0 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027AD74 002769D4 9B A1 01 29 */ stb r29, 0x129(r1)
+/* 8027AD78 002769D8 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027AD7C 002769DC 9B 81 01 2A */ stb r28, 0x12a(r1)
+/* 8027AD80 002769E0 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027AD84 002769E4 99 81 01 2B */ stb r12, 0x12b(r1)
+/* 8027AD88 002769E8 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027AD8C 002769EC 99 61 01 2C */ stb r11, 0x12c(r1)
+/* 8027AD90 002769F0 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027AD94 002769F4 99 41 01 2D */ stb r10, 0x12d(r1)
+/* 8027AD98 002769F8 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027AD9C 002769FC 99 21 01 2E */ stb r9, 0x12e(r1)
+/* 8027ADA0 00276A00 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027ADA4 00276A04 99 01 01 2F */ stb r8, 0x12f(r1)
+/* 8027ADA8 00276A08 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027ADAC 00276A0C 98 E1 01 30 */ stb r7, 0x130(r1)
+/* 8027ADB0 00276A10 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027ADB4 00276A14 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027ADB8 00276A18 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027ADBC 00276A1C 9B E1 01 20 */ stb r31, 0x120(r1)
+/* 8027ADC0 00276A20 9B A1 01 31 */ stb r29, 0x131(r1)
+/* 8027ADC4 00276A24 9B 81 01 32 */ stb r28, 0x132(r1)
+/* 8027ADC8 00276A28 99 81 01 33 */ stb r12, 0x133(r1)
+/* 8027ADCC 00276A2C 99 61 01 34 */ stb r11, 0x134(r1)
+/* 8027ADD0 00276A30 99 41 01 35 */ stb r10, 0x135(r1)
+/* 8027ADD4 00276A34 99 21 01 36 */ stb r9, 0x136(r1)
+/* 8027ADD8 00276A38 99 01 01 37 */ stb r8, 0x137(r1)
+/* 8027ADDC 00276A3C 98 E1 01 38 */ stb r7, 0x138(r1)
+/* 8027ADE0 00276A40 98 C1 01 39 */ stb r6, 0x139(r1)
+/* 8027ADE4 00276A44 98 01 01 3A */ stb r0, 0x13a(r1)
+/* 8027ADE8 00276A48 4B FF F4 D1 */ bl __VISendI2CData
+/* 8027ADEC 00276A4C 38 60 00 02 */ li r3, 2
+/* 8027ADF0 00276A50 4B FF F0 7D */ bl WaitMicroTime
+/* 8027ADF4 00276A54 48 00 0A 08 */ b lbl_8027B7FC
+lbl_8027ADF8:
+/* 8027ADF8 00276A58 3B C3 04 C8 */ addi r30, r3, 0x4c8
+/* 8027ADFC 00276A5C 3B E0 00 40 */ li r31, 0x40
+/* 8027AE00 00276A60 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027AE04 00276A64 38 81 01 04 */ addi r4, r1, 0x104
+/* 8027AE08 00276A68 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027AE0C 00276A6C 38 60 00 E0 */ li r3, 0xe0
+/* 8027AE10 00276A70 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027AE14 00276A74 38 A0 00 1B */ li r5, 0x1b
+/* 8027AE18 00276A78 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027AE1C 00276A7C 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027AE20 00276A80 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027AE24 00276A84 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027AE28 00276A88 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027AE2C 00276A8C 9B A1 01 05 */ stb r29, 0x105(r1)
+/* 8027AE30 00276A90 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027AE34 00276A94 9B 81 01 06 */ stb r28, 0x106(r1)
+/* 8027AE38 00276A98 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027AE3C 00276A9C 99 81 01 07 */ stb r12, 0x107(r1)
+/* 8027AE40 00276AA0 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027AE44 00276AA4 99 61 01 08 */ stb r11, 0x108(r1)
+/* 8027AE48 00276AA8 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027AE4C 00276AAC 99 41 01 09 */ stb r10, 0x109(r1)
+/* 8027AE50 00276AB0 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027AE54 00276AB4 99 21 01 0A */ stb r9, 0x10a(r1)
+/* 8027AE58 00276AB8 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027AE5C 00276ABC 99 01 01 0B */ stb r8, 0x10b(r1)
+/* 8027AE60 00276AC0 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027AE64 00276AC4 98 E1 01 0C */ stb r7, 0x10c(r1)
+/* 8027AE68 00276AC8 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027AE6C 00276ACC 9B A1 01 0D */ stb r29, 0x10d(r1)
+/* 8027AE70 00276AD0 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027AE74 00276AD4 9B 81 01 0E */ stb r28, 0x10e(r1)
+/* 8027AE78 00276AD8 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027AE7C 00276ADC 99 81 01 0F */ stb r12, 0x10f(r1)
+/* 8027AE80 00276AE0 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027AE84 00276AE4 99 61 01 10 */ stb r11, 0x110(r1)
+/* 8027AE88 00276AE8 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027AE8C 00276AEC 99 41 01 11 */ stb r10, 0x111(r1)
+/* 8027AE90 00276AF0 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027AE94 00276AF4 99 21 01 12 */ stb r9, 0x112(r1)
+/* 8027AE98 00276AF8 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027AE9C 00276AFC 99 01 01 13 */ stb r8, 0x113(r1)
+/* 8027AEA0 00276B00 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027AEA4 00276B04 98 E1 01 14 */ stb r7, 0x114(r1)
+/* 8027AEA8 00276B08 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027AEAC 00276B0C 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027AEB0 00276B10 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027AEB4 00276B14 9B E1 01 04 */ stb r31, 0x104(r1)
+/* 8027AEB8 00276B18 9B A1 01 15 */ stb r29, 0x115(r1)
+/* 8027AEBC 00276B1C 9B 81 01 16 */ stb r28, 0x116(r1)
+/* 8027AEC0 00276B20 99 81 01 17 */ stb r12, 0x117(r1)
+/* 8027AEC4 00276B24 99 61 01 18 */ stb r11, 0x118(r1)
+/* 8027AEC8 00276B28 99 41 01 19 */ stb r10, 0x119(r1)
+/* 8027AECC 00276B2C 99 21 01 1A */ stb r9, 0x11a(r1)
+/* 8027AED0 00276B30 99 01 01 1B */ stb r8, 0x11b(r1)
+/* 8027AED4 00276B34 98 E1 01 1C */ stb r7, 0x11c(r1)
+/* 8027AED8 00276B38 98 C1 01 1D */ stb r6, 0x11d(r1)
+/* 8027AEDC 00276B3C 98 01 01 1E */ stb r0, 0x11e(r1)
+/* 8027AEE0 00276B40 4B FF F3 D9 */ bl __VISendI2CData
+/* 8027AEE4 00276B44 38 60 00 02 */ li r3, 2
+/* 8027AEE8 00276B48 4B FF EF 85 */ bl WaitMicroTime
+/* 8027AEEC 00276B4C 48 00 09 10 */ b lbl_8027B7FC
+lbl_8027AEF0:
+/* 8027AEF0 00276B50 80 0D 88 3C */ lwz r0, lbl_8063DAFC-_SDA_BASE_(r13)
+/* 8027AEF4 00276B54 2C 00 00 02 */ cmpwi r0, 2
+/* 8027AEF8 00276B58 41 82 02 14 */ beq lbl_8027B10C
+/* 8027AEFC 00276B5C 40 80 00 14 */ bge lbl_8027AF10
+/* 8027AF00 00276B60 2C 00 00 00 */ cmpwi r0, 0
+/* 8027AF04 00276B64 41 82 00 18 */ beq lbl_8027AF1C
+/* 8027AF08 00276B68 40 80 01 0C */ bge lbl_8027B014
+/* 8027AF0C 00276B6C 48 00 08 F0 */ b lbl_8027B7FC
+lbl_8027AF10:
+/* 8027AF10 00276B70 2C 00 00 05 */ cmpwi r0, 5
+/* 8027AF14 00276B74 41 82 02 F0 */ beq lbl_8027B204
+/* 8027AF18 00276B78 48 00 08 E4 */ b lbl_8027B7FC
+lbl_8027AF1C:
+/* 8027AF1C 00276B7C 3B C3 04 3C */ addi r30, r3, 0x43c
+/* 8027AF20 00276B80 3B E0 00 40 */ li r31, 0x40
+/* 8027AF24 00276B84 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027AF28 00276B88 38 81 00 E8 */ addi r4, r1, 0xe8
+/* 8027AF2C 00276B8C 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027AF30 00276B90 38 60 00 E0 */ li r3, 0xe0
+/* 8027AF34 00276B94 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027AF38 00276B98 38 A0 00 1B */ li r5, 0x1b
+/* 8027AF3C 00276B9C 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027AF40 00276BA0 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027AF44 00276BA4 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027AF48 00276BA8 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027AF4C 00276BAC 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027AF50 00276BB0 9B A1 00 E9 */ stb r29, 0xe9(r1)
+/* 8027AF54 00276BB4 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027AF58 00276BB8 9B 81 00 EA */ stb r28, 0xea(r1)
+/* 8027AF5C 00276BBC 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027AF60 00276BC0 99 81 00 EB */ stb r12, 0xeb(r1)
+/* 8027AF64 00276BC4 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027AF68 00276BC8 99 61 00 EC */ stb r11, 0xec(r1)
+/* 8027AF6C 00276BCC 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027AF70 00276BD0 99 41 00 ED */ stb r10, 0xed(r1)
+/* 8027AF74 00276BD4 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027AF78 00276BD8 99 21 00 EE */ stb r9, 0xee(r1)
+/* 8027AF7C 00276BDC 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027AF80 00276BE0 99 01 00 EF */ stb r8, 0xef(r1)
+/* 8027AF84 00276BE4 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027AF88 00276BE8 98 E1 00 F0 */ stb r7, 0xf0(r1)
+/* 8027AF8C 00276BEC 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027AF90 00276BF0 9B A1 00 F1 */ stb r29, 0xf1(r1)
+/* 8027AF94 00276BF4 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027AF98 00276BF8 9B 81 00 F2 */ stb r28, 0xf2(r1)
+/* 8027AF9C 00276BFC 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027AFA0 00276C00 99 81 00 F3 */ stb r12, 0xf3(r1)
+/* 8027AFA4 00276C04 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027AFA8 00276C08 99 61 00 F4 */ stb r11, 0xf4(r1)
+/* 8027AFAC 00276C0C 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027AFB0 00276C10 99 41 00 F5 */ stb r10, 0xf5(r1)
+/* 8027AFB4 00276C14 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027AFB8 00276C18 99 21 00 F6 */ stb r9, 0xf6(r1)
+/* 8027AFBC 00276C1C 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027AFC0 00276C20 99 01 00 F7 */ stb r8, 0xf7(r1)
+/* 8027AFC4 00276C24 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027AFC8 00276C28 98 E1 00 F8 */ stb r7, 0xf8(r1)
+/* 8027AFCC 00276C2C 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027AFD0 00276C30 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027AFD4 00276C34 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027AFD8 00276C38 9B E1 00 E8 */ stb r31, 0xe8(r1)
+/* 8027AFDC 00276C3C 9B A1 00 F9 */ stb r29, 0xf9(r1)
+/* 8027AFE0 00276C40 9B 81 00 FA */ stb r28, 0xfa(r1)
+/* 8027AFE4 00276C44 99 81 00 FB */ stb r12, 0xfb(r1)
+/* 8027AFE8 00276C48 99 61 00 FC */ stb r11, 0xfc(r1)
+/* 8027AFEC 00276C4C 99 41 00 FD */ stb r10, 0xfd(r1)
+/* 8027AFF0 00276C50 99 21 00 FE */ stb r9, 0xfe(r1)
+/* 8027AFF4 00276C54 99 01 00 FF */ stb r8, 0xff(r1)
+/* 8027AFF8 00276C58 98 E1 01 00 */ stb r7, 0x100(r1)
+/* 8027AFFC 00276C5C 98 C1 01 01 */ stb r6, 0x101(r1)
+/* 8027B000 00276C60 98 01 01 02 */ stb r0, 0x102(r1)
+/* 8027B004 00276C64 4B FF F2 B5 */ bl __VISendI2CData
+/* 8027B008 00276C68 38 60 00 02 */ li r3, 2
+/* 8027B00C 00276C6C 4B FF EE 61 */ bl WaitMicroTime
+/* 8027B010 00276C70 48 00 07 EC */ b lbl_8027B7FC
+lbl_8027B014:
+/* 8027B014 00276C74 3B C3 04 90 */ addi r30, r3, 0x490
+/* 8027B018 00276C78 3B E0 00 40 */ li r31, 0x40
+/* 8027B01C 00276C7C 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B020 00276C80 38 81 00 CC */ addi r4, r1, 0xcc
+/* 8027B024 00276C84 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B028 00276C88 38 60 00 E0 */ li r3, 0xe0
+/* 8027B02C 00276C8C 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B030 00276C90 38 A0 00 1B */ li r5, 0x1b
+/* 8027B034 00276C94 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B038 00276C98 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B03C 00276C9C 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B040 00276CA0 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B044 00276CA4 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B048 00276CA8 9B A1 00 CD */ stb r29, 0xcd(r1)
+/* 8027B04C 00276CAC 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B050 00276CB0 9B 81 00 CE */ stb r28, 0xce(r1)
+/* 8027B054 00276CB4 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B058 00276CB8 99 81 00 CF */ stb r12, 0xcf(r1)
+/* 8027B05C 00276CBC 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B060 00276CC0 99 61 00 D0 */ stb r11, 0xd0(r1)
+/* 8027B064 00276CC4 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B068 00276CC8 99 41 00 D1 */ stb r10, 0xd1(r1)
+/* 8027B06C 00276CCC 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B070 00276CD0 99 21 00 D2 */ stb r9, 0xd2(r1)
+/* 8027B074 00276CD4 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B078 00276CD8 99 01 00 D3 */ stb r8, 0xd3(r1)
+/* 8027B07C 00276CDC 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B080 00276CE0 98 E1 00 D4 */ stb r7, 0xd4(r1)
+/* 8027B084 00276CE4 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B088 00276CE8 9B A1 00 D5 */ stb r29, 0xd5(r1)
+/* 8027B08C 00276CEC 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B090 00276CF0 9B 81 00 D6 */ stb r28, 0xd6(r1)
+/* 8027B094 00276CF4 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B098 00276CF8 99 81 00 D7 */ stb r12, 0xd7(r1)
+/* 8027B09C 00276CFC 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B0A0 00276D00 99 61 00 D8 */ stb r11, 0xd8(r1)
+/* 8027B0A4 00276D04 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B0A8 00276D08 99 41 00 D9 */ stb r10, 0xd9(r1)
+/* 8027B0AC 00276D0C 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B0B0 00276D10 99 21 00 DA */ stb r9, 0xda(r1)
+/* 8027B0B4 00276D14 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B0B8 00276D18 99 01 00 DB */ stb r8, 0xdb(r1)
+/* 8027B0BC 00276D1C 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B0C0 00276D20 98 E1 00 DC */ stb r7, 0xdc(r1)
+/* 8027B0C4 00276D24 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B0C8 00276D28 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B0CC 00276D2C 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B0D0 00276D30 9B E1 00 CC */ stb r31, 0xcc(r1)
+/* 8027B0D4 00276D34 9B A1 00 DD */ stb r29, 0xdd(r1)
+/* 8027B0D8 00276D38 9B 81 00 DE */ stb r28, 0xde(r1)
+/* 8027B0DC 00276D3C 99 81 00 DF */ stb r12, 0xdf(r1)
+/* 8027B0E0 00276D40 99 61 00 E0 */ stb r11, 0xe0(r1)
+/* 8027B0E4 00276D44 99 41 00 E1 */ stb r10, 0xe1(r1)
+/* 8027B0E8 00276D48 99 21 00 E2 */ stb r9, 0xe2(r1)
+/* 8027B0EC 00276D4C 99 01 00 E3 */ stb r8, 0xe3(r1)
+/* 8027B0F0 00276D50 98 E1 00 E4 */ stb r7, 0xe4(r1)
+/* 8027B0F4 00276D54 98 C1 00 E5 */ stb r6, 0xe5(r1)
+/* 8027B0F8 00276D58 98 01 00 E6 */ stb r0, 0xe6(r1)
+/* 8027B0FC 00276D5C 4B FF F1 BD */ bl __VISendI2CData
+/* 8027B100 00276D60 38 60 00 02 */ li r3, 2
+/* 8027B104 00276D64 4B FF ED 69 */ bl WaitMicroTime
+/* 8027B108 00276D68 48 00 06 F4 */ b lbl_8027B7FC
+lbl_8027B10C:
+/* 8027B10C 00276D6C 3B C3 05 38 */ addi r30, r3, 0x538
+/* 8027B110 00276D70 3B E0 00 40 */ li r31, 0x40
+/* 8027B114 00276D74 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B118 00276D78 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 8027B11C 00276D7C 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B120 00276D80 38 60 00 E0 */ li r3, 0xe0
+/* 8027B124 00276D84 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B128 00276D88 38 A0 00 1B */ li r5, 0x1b
+/* 8027B12C 00276D8C 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B130 00276D90 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B134 00276D94 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B138 00276D98 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B13C 00276D9C 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B140 00276DA0 9B A1 00 B1 */ stb r29, 0xb1(r1)
+/* 8027B144 00276DA4 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B148 00276DA8 9B 81 00 B2 */ stb r28, 0xb2(r1)
+/* 8027B14C 00276DAC 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B150 00276DB0 99 81 00 B3 */ stb r12, 0xb3(r1)
+/* 8027B154 00276DB4 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B158 00276DB8 99 61 00 B4 */ stb r11, 0xb4(r1)
+/* 8027B15C 00276DBC 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B160 00276DC0 99 41 00 B5 */ stb r10, 0xb5(r1)
+/* 8027B164 00276DC4 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B168 00276DC8 99 21 00 B6 */ stb r9, 0xb6(r1)
+/* 8027B16C 00276DCC 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B170 00276DD0 99 01 00 B7 */ stb r8, 0xb7(r1)
+/* 8027B174 00276DD4 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B178 00276DD8 98 E1 00 B8 */ stb r7, 0xb8(r1)
+/* 8027B17C 00276DDC 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B180 00276DE0 9B A1 00 B9 */ stb r29, 0xb9(r1)
+/* 8027B184 00276DE4 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B188 00276DE8 9B 81 00 BA */ stb r28, 0xba(r1)
+/* 8027B18C 00276DEC 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B190 00276DF0 99 81 00 BB */ stb r12, 0xbb(r1)
+/* 8027B194 00276DF4 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B198 00276DF8 99 61 00 BC */ stb r11, 0xbc(r1)
+/* 8027B19C 00276DFC 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B1A0 00276E00 99 41 00 BD */ stb r10, 0xbd(r1)
+/* 8027B1A4 00276E04 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B1A8 00276E08 99 21 00 BE */ stb r9, 0xbe(r1)
+/* 8027B1AC 00276E0C 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B1B0 00276E10 99 01 00 BF */ stb r8, 0xbf(r1)
+/* 8027B1B4 00276E14 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B1B8 00276E18 98 E1 00 C0 */ stb r7, 0xc0(r1)
+/* 8027B1BC 00276E1C 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B1C0 00276E20 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B1C4 00276E24 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B1C8 00276E28 9B E1 00 B0 */ stb r31, 0xb0(r1)
+/* 8027B1CC 00276E2C 9B A1 00 C1 */ stb r29, 0xc1(r1)
+/* 8027B1D0 00276E30 9B 81 00 C2 */ stb r28, 0xc2(r1)
+/* 8027B1D4 00276E34 99 81 00 C3 */ stb r12, 0xc3(r1)
+/* 8027B1D8 00276E38 99 61 00 C4 */ stb r11, 0xc4(r1)
+/* 8027B1DC 00276E3C 99 41 00 C5 */ stb r10, 0xc5(r1)
+/* 8027B1E0 00276E40 99 21 00 C6 */ stb r9, 0xc6(r1)
+/* 8027B1E4 00276E44 99 01 00 C7 */ stb r8, 0xc7(r1)
+/* 8027B1E8 00276E48 98 E1 00 C8 */ stb r7, 0xc8(r1)
+/* 8027B1EC 00276E4C 98 C1 00 C9 */ stb r6, 0xc9(r1)
+/* 8027B1F0 00276E50 98 01 00 CA */ stb r0, 0xca(r1)
+/* 8027B1F4 00276E54 4B FF F0 C5 */ bl __VISendI2CData
+/* 8027B1F8 00276E58 38 60 00 02 */ li r3, 2
+/* 8027B1FC 00276E5C 4B FF EC 71 */ bl WaitMicroTime
+/* 8027B200 00276E60 48 00 05 FC */ b lbl_8027B7FC
+lbl_8027B204:
+/* 8027B204 00276E64 3B C3 04 E4 */ addi r30, r3, 0x4e4
+/* 8027B208 00276E68 3B E0 00 40 */ li r31, 0x40
+/* 8027B20C 00276E6C 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B210 00276E70 38 81 00 94 */ addi r4, r1, 0x94
+/* 8027B214 00276E74 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B218 00276E78 38 60 00 E0 */ li r3, 0xe0
+/* 8027B21C 00276E7C 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B220 00276E80 38 A0 00 1B */ li r5, 0x1b
+/* 8027B224 00276E84 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B228 00276E88 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B22C 00276E8C 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B230 00276E90 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B234 00276E94 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B238 00276E98 9B A1 00 95 */ stb r29, 0x95(r1)
+/* 8027B23C 00276E9C 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B240 00276EA0 9B 81 00 96 */ stb r28, 0x96(r1)
+/* 8027B244 00276EA4 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B248 00276EA8 99 81 00 97 */ stb r12, 0x97(r1)
+/* 8027B24C 00276EAC 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B250 00276EB0 99 61 00 98 */ stb r11, 0x98(r1)
+/* 8027B254 00276EB4 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B258 00276EB8 99 41 00 99 */ stb r10, 0x99(r1)
+/* 8027B25C 00276EBC 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B260 00276EC0 99 21 00 9A */ stb r9, 0x9a(r1)
+/* 8027B264 00276EC4 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B268 00276EC8 99 01 00 9B */ stb r8, 0x9b(r1)
+/* 8027B26C 00276ECC 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B270 00276ED0 98 E1 00 9C */ stb r7, 0x9c(r1)
+/* 8027B274 00276ED4 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B278 00276ED8 9B A1 00 9D */ stb r29, 0x9d(r1)
+/* 8027B27C 00276EDC 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B280 00276EE0 9B 81 00 9E */ stb r28, 0x9e(r1)
+/* 8027B284 00276EE4 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B288 00276EE8 99 81 00 9F */ stb r12, 0x9f(r1)
+/* 8027B28C 00276EEC 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B290 00276EF0 99 61 00 A0 */ stb r11, 0xa0(r1)
+/* 8027B294 00276EF4 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B298 00276EF8 99 41 00 A1 */ stb r10, 0xa1(r1)
+/* 8027B29C 00276EFC 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B2A0 00276F00 99 21 00 A2 */ stb r9, 0xa2(r1)
+/* 8027B2A4 00276F04 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B2A8 00276F08 99 01 00 A3 */ stb r8, 0xa3(r1)
+/* 8027B2AC 00276F0C 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B2B0 00276F10 98 E1 00 A4 */ stb r7, 0xa4(r1)
+/* 8027B2B4 00276F14 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B2B8 00276F18 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B2BC 00276F1C 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B2C0 00276F20 9B E1 00 94 */ stb r31, 0x94(r1)
+/* 8027B2C4 00276F24 9B A1 00 A5 */ stb r29, 0xa5(r1)
+/* 8027B2C8 00276F28 9B 81 00 A6 */ stb r28, 0xa6(r1)
+/* 8027B2CC 00276F2C 99 81 00 A7 */ stb r12, 0xa7(r1)
+/* 8027B2D0 00276F30 99 61 00 A8 */ stb r11, 0xa8(r1)
+/* 8027B2D4 00276F34 99 41 00 A9 */ stb r10, 0xa9(r1)
+/* 8027B2D8 00276F38 99 21 00 AA */ stb r9, 0xaa(r1)
+/* 8027B2DC 00276F3C 99 01 00 AB */ stb r8, 0xab(r1)
+/* 8027B2E0 00276F40 98 E1 00 AC */ stb r7, 0xac(r1)
+/* 8027B2E4 00276F44 98 C1 00 AD */ stb r6, 0xad(r1)
+/* 8027B2E8 00276F48 98 01 00 AE */ stb r0, 0xae(r1)
+/* 8027B2EC 00276F4C 4B FF EF CD */ bl __VISendI2CData
+/* 8027B2F0 00276F50 38 60 00 02 */ li r3, 2
+/* 8027B2F4 00276F54 4B FF EB 79 */ bl WaitMicroTime
+/* 8027B2F8 00276F58 48 00 05 04 */ b lbl_8027B7FC
+lbl_8027B2FC:
+/* 8027B2FC 00276F5C 80 0D 88 3C */ lwz r0, lbl_8063DAFC-_SDA_BASE_(r13)
+/* 8027B300 00276F60 2C 00 00 02 */ cmpwi r0, 2
+/* 8027B304 00276F64 41 82 02 14 */ beq lbl_8027B518
+/* 8027B308 00276F68 40 80 00 14 */ bge lbl_8027B31C
+/* 8027B30C 00276F6C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027B310 00276F70 41 82 00 18 */ beq lbl_8027B328
+/* 8027B314 00276F74 40 80 01 0C */ bge lbl_8027B420
+/* 8027B318 00276F78 48 00 04 E4 */ b lbl_8027B7FC
+lbl_8027B31C:
+/* 8027B31C 00276F7C 2C 00 00 05 */ cmpwi r0, 5
+/* 8027B320 00276F80 41 82 02 F0 */ beq lbl_8027B610
+/* 8027B324 00276F84 48 00 04 D8 */ b lbl_8027B7FC
+lbl_8027B328:
+/* 8027B328 00276F88 3B C3 04 58 */ addi r30, r3, 0x458
+/* 8027B32C 00276F8C 3B E0 00 40 */ li r31, 0x40
+/* 8027B330 00276F90 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B334 00276F94 38 81 00 78 */ addi r4, r1, 0x78
+/* 8027B338 00276F98 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B33C 00276F9C 38 60 00 E0 */ li r3, 0xe0
+/* 8027B340 00276FA0 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B344 00276FA4 38 A0 00 1B */ li r5, 0x1b
+/* 8027B348 00276FA8 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B34C 00276FAC 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B350 00276FB0 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B354 00276FB4 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B358 00276FB8 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B35C 00276FBC 9B A1 00 79 */ stb r29, 0x79(r1)
+/* 8027B360 00276FC0 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B364 00276FC4 9B 81 00 7A */ stb r28, 0x7a(r1)
+/* 8027B368 00276FC8 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B36C 00276FCC 99 81 00 7B */ stb r12, 0x7b(r1)
+/* 8027B370 00276FD0 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B374 00276FD4 99 61 00 7C */ stb r11, 0x7c(r1)
+/* 8027B378 00276FD8 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B37C 00276FDC 99 41 00 7D */ stb r10, 0x7d(r1)
+/* 8027B380 00276FE0 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B384 00276FE4 99 21 00 7E */ stb r9, 0x7e(r1)
+/* 8027B388 00276FE8 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B38C 00276FEC 99 01 00 7F */ stb r8, 0x7f(r1)
+/* 8027B390 00276FF0 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B394 00276FF4 98 E1 00 80 */ stb r7, 0x80(r1)
+/* 8027B398 00276FF8 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B39C 00276FFC 9B A1 00 81 */ stb r29, 0x81(r1)
+/* 8027B3A0 00277000 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B3A4 00277004 9B 81 00 82 */ stb r28, 0x82(r1)
+/* 8027B3A8 00277008 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B3AC 0027700C 99 81 00 83 */ stb r12, 0x83(r1)
+/* 8027B3B0 00277010 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B3B4 00277014 99 61 00 84 */ stb r11, 0x84(r1)
+/* 8027B3B8 00277018 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B3BC 0027701C 99 41 00 85 */ stb r10, 0x85(r1)
+/* 8027B3C0 00277020 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B3C4 00277024 99 21 00 86 */ stb r9, 0x86(r1)
+/* 8027B3C8 00277028 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B3CC 0027702C 99 01 00 87 */ stb r8, 0x87(r1)
+/* 8027B3D0 00277030 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B3D4 00277034 98 E1 00 88 */ stb r7, 0x88(r1)
+/* 8027B3D8 00277038 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B3DC 0027703C 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B3E0 00277040 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B3E4 00277044 9B E1 00 78 */ stb r31, 0x78(r1)
+/* 8027B3E8 00277048 9B A1 00 89 */ stb r29, 0x89(r1)
+/* 8027B3EC 0027704C 9B 81 00 8A */ stb r28, 0x8a(r1)
+/* 8027B3F0 00277050 99 81 00 8B */ stb r12, 0x8b(r1)
+/* 8027B3F4 00277054 99 61 00 8C */ stb r11, 0x8c(r1)
+/* 8027B3F8 00277058 99 41 00 8D */ stb r10, 0x8d(r1)
+/* 8027B3FC 0027705C 99 21 00 8E */ stb r9, 0x8e(r1)
+/* 8027B400 00277060 99 01 00 8F */ stb r8, 0x8f(r1)
+/* 8027B404 00277064 98 E1 00 90 */ stb r7, 0x90(r1)
+/* 8027B408 00277068 98 C1 00 91 */ stb r6, 0x91(r1)
+/* 8027B40C 0027706C 98 01 00 92 */ stb r0, 0x92(r1)
+/* 8027B410 00277070 4B FF EE A9 */ bl __VISendI2CData
+/* 8027B414 00277074 38 60 00 02 */ li r3, 2
+/* 8027B418 00277078 4B FF EA 55 */ bl WaitMicroTime
+/* 8027B41C 0027707C 48 00 03 E0 */ b lbl_8027B7FC
+lbl_8027B420:
+/* 8027B420 00277080 3B C3 04 AC */ addi r30, r3, 0x4ac
+/* 8027B424 00277084 3B E0 00 40 */ li r31, 0x40
+/* 8027B428 00277088 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B42C 0027708C 38 81 00 5C */ addi r4, r1, 0x5c
+/* 8027B430 00277090 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B434 00277094 38 60 00 E0 */ li r3, 0xe0
+/* 8027B438 00277098 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B43C 0027709C 38 A0 00 1B */ li r5, 0x1b
+/* 8027B440 002770A0 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B444 002770A4 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B448 002770A8 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B44C 002770AC 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B450 002770B0 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B454 002770B4 9B A1 00 5D */ stb r29, 0x5d(r1)
+/* 8027B458 002770B8 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B45C 002770BC 9B 81 00 5E */ stb r28, 0x5e(r1)
+/* 8027B460 002770C0 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B464 002770C4 99 81 00 5F */ stb r12, 0x5f(r1)
+/* 8027B468 002770C8 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B46C 002770CC 99 61 00 60 */ stb r11, 0x60(r1)
+/* 8027B470 002770D0 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B474 002770D4 99 41 00 61 */ stb r10, 0x61(r1)
+/* 8027B478 002770D8 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B47C 002770DC 99 21 00 62 */ stb r9, 0x62(r1)
+/* 8027B480 002770E0 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B484 002770E4 99 01 00 63 */ stb r8, 0x63(r1)
+/* 8027B488 002770E8 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B48C 002770EC 98 E1 00 64 */ stb r7, 0x64(r1)
+/* 8027B490 002770F0 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B494 002770F4 9B A1 00 65 */ stb r29, 0x65(r1)
+/* 8027B498 002770F8 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B49C 002770FC 9B 81 00 66 */ stb r28, 0x66(r1)
+/* 8027B4A0 00277100 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B4A4 00277104 99 81 00 67 */ stb r12, 0x67(r1)
+/* 8027B4A8 00277108 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B4AC 0027710C 99 61 00 68 */ stb r11, 0x68(r1)
+/* 8027B4B0 00277110 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B4B4 00277114 99 41 00 69 */ stb r10, 0x69(r1)
+/* 8027B4B8 00277118 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B4BC 0027711C 99 21 00 6A */ stb r9, 0x6a(r1)
+/* 8027B4C0 00277120 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B4C4 00277124 99 01 00 6B */ stb r8, 0x6b(r1)
+/* 8027B4C8 00277128 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B4CC 0027712C 98 E1 00 6C */ stb r7, 0x6c(r1)
+/* 8027B4D0 00277130 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B4D4 00277134 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B4D8 00277138 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B4DC 0027713C 9B E1 00 5C */ stb r31, 0x5c(r1)
+/* 8027B4E0 00277140 9B A1 00 6D */ stb r29, 0x6d(r1)
+/* 8027B4E4 00277144 9B 81 00 6E */ stb r28, 0x6e(r1)
+/* 8027B4E8 00277148 99 81 00 6F */ stb r12, 0x6f(r1)
+/* 8027B4EC 0027714C 99 61 00 70 */ stb r11, 0x70(r1)
+/* 8027B4F0 00277150 99 41 00 71 */ stb r10, 0x71(r1)
+/* 8027B4F4 00277154 99 21 00 72 */ stb r9, 0x72(r1)
+/* 8027B4F8 00277158 99 01 00 73 */ stb r8, 0x73(r1)
+/* 8027B4FC 0027715C 98 E1 00 74 */ stb r7, 0x74(r1)
+/* 8027B500 00277160 98 C1 00 75 */ stb r6, 0x75(r1)
+/* 8027B504 00277164 98 01 00 76 */ stb r0, 0x76(r1)
+/* 8027B508 00277168 4B FF ED B1 */ bl __VISendI2CData
+/* 8027B50C 0027716C 38 60 00 02 */ li r3, 2
+/* 8027B510 00277170 4B FF E9 5D */ bl WaitMicroTime
+/* 8027B514 00277174 48 00 02 E8 */ b lbl_8027B7FC
+lbl_8027B518:
+/* 8027B518 00277178 3B C3 05 54 */ addi r30, r3, 0x554
+/* 8027B51C 0027717C 3B E0 00 40 */ li r31, 0x40
+/* 8027B520 00277180 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B524 00277184 38 81 00 40 */ addi r4, r1, 0x40
+/* 8027B528 00277188 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B52C 0027718C 38 60 00 E0 */ li r3, 0xe0
+/* 8027B530 00277190 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B534 00277194 38 A0 00 1B */ li r5, 0x1b
+/* 8027B538 00277198 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B53C 0027719C 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B540 002771A0 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B544 002771A4 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B548 002771A8 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B54C 002771AC 9B A1 00 41 */ stb r29, 0x41(r1)
+/* 8027B550 002771B0 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B554 002771B4 9B 81 00 42 */ stb r28, 0x42(r1)
+/* 8027B558 002771B8 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B55C 002771BC 99 81 00 43 */ stb r12, 0x43(r1)
+/* 8027B560 002771C0 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B564 002771C4 99 61 00 44 */ stb r11, 0x44(r1)
+/* 8027B568 002771C8 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B56C 002771CC 99 41 00 45 */ stb r10, 0x45(r1)
+/* 8027B570 002771D0 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B574 002771D4 99 21 00 46 */ stb r9, 0x46(r1)
+/* 8027B578 002771D8 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B57C 002771DC 99 01 00 47 */ stb r8, 0x47(r1)
+/* 8027B580 002771E0 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B584 002771E4 98 E1 00 48 */ stb r7, 0x48(r1)
+/* 8027B588 002771E8 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B58C 002771EC 9B A1 00 49 */ stb r29, 0x49(r1)
+/* 8027B590 002771F0 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B594 002771F4 9B 81 00 4A */ stb r28, 0x4a(r1)
+/* 8027B598 002771F8 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B59C 002771FC 99 81 00 4B */ stb r12, 0x4b(r1)
+/* 8027B5A0 00277200 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B5A4 00277204 99 61 00 4C */ stb r11, 0x4c(r1)
+/* 8027B5A8 00277208 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B5AC 0027720C 99 41 00 4D */ stb r10, 0x4d(r1)
+/* 8027B5B0 00277210 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B5B4 00277214 99 21 00 4E */ stb r9, 0x4e(r1)
+/* 8027B5B8 00277218 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B5BC 0027721C 99 01 00 4F */ stb r8, 0x4f(r1)
+/* 8027B5C0 00277220 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B5C4 00277224 98 E1 00 50 */ stb r7, 0x50(r1)
+/* 8027B5C8 00277228 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B5CC 0027722C 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B5D0 00277230 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B5D4 00277234 9B E1 00 40 */ stb r31, 0x40(r1)
+/* 8027B5D8 00277238 9B A1 00 51 */ stb r29, 0x51(r1)
+/* 8027B5DC 0027723C 9B 81 00 52 */ stb r28, 0x52(r1)
+/* 8027B5E0 00277240 99 81 00 53 */ stb r12, 0x53(r1)
+/* 8027B5E4 00277244 99 61 00 54 */ stb r11, 0x54(r1)
+/* 8027B5E8 00277248 99 41 00 55 */ stb r10, 0x55(r1)
+/* 8027B5EC 0027724C 99 21 00 56 */ stb r9, 0x56(r1)
+/* 8027B5F0 00277250 99 01 00 57 */ stb r8, 0x57(r1)
+/* 8027B5F4 00277254 98 E1 00 58 */ stb r7, 0x58(r1)
+/* 8027B5F8 00277258 98 C1 00 59 */ stb r6, 0x59(r1)
+/* 8027B5FC 0027725C 98 01 00 5A */ stb r0, 0x5a(r1)
+/* 8027B600 00277260 4B FF EC B9 */ bl __VISendI2CData
+/* 8027B604 00277264 38 60 00 02 */ li r3, 2
+/* 8027B608 00277268 4B FF E8 65 */ bl WaitMicroTime
+/* 8027B60C 0027726C 48 00 01 F0 */ b lbl_8027B7FC
+lbl_8027B610:
+/* 8027B610 00277270 3B C3 05 00 */ addi r30, r3, 0x500
+/* 8027B614 00277274 3B E0 00 40 */ li r31, 0x40
+/* 8027B618 00277278 8B BE 00 00 */ lbz r29, 0(r30)
+/* 8027B61C 0027727C 38 81 00 24 */ addi r4, r1, 0x24
+/* 8027B620 00277280 8B 9E 00 01 */ lbz r28, 1(r30)
+/* 8027B624 00277284 38 60 00 E0 */ li r3, 0xe0
+/* 8027B628 00277288 89 9E 00 02 */ lbz r12, 2(r30)
+/* 8027B62C 0027728C 38 A0 00 1B */ li r5, 0x1b
+/* 8027B630 00277290 89 7E 00 03 */ lbz r11, 3(r30)
+/* 8027B634 00277294 89 5E 00 04 */ lbz r10, 4(r30)
+/* 8027B638 00277298 89 3E 00 05 */ lbz r9, 5(r30)
+/* 8027B63C 0027729C 89 1E 00 06 */ lbz r8, 6(r30)
+/* 8027B640 002772A0 88 FE 00 07 */ lbz r7, 7(r30)
+/* 8027B644 002772A4 9B A1 00 25 */ stb r29, 0x25(r1)
+/* 8027B648 002772A8 8B BE 00 08 */ lbz r29, 8(r30)
+/* 8027B64C 002772AC 9B 81 00 26 */ stb r28, 0x26(r1)
+/* 8027B650 002772B0 8B 9E 00 09 */ lbz r28, 9(r30)
+/* 8027B654 002772B4 99 81 00 27 */ stb r12, 0x27(r1)
+/* 8027B658 002772B8 89 9E 00 0A */ lbz r12, 0xa(r30)
+/* 8027B65C 002772BC 99 61 00 28 */ stb r11, 0x28(r1)
+/* 8027B660 002772C0 89 7E 00 0B */ lbz r11, 0xb(r30)
+/* 8027B664 002772C4 99 41 00 29 */ stb r10, 0x29(r1)
+/* 8027B668 002772C8 89 5E 00 0C */ lbz r10, 0xc(r30)
+/* 8027B66C 002772CC 99 21 00 2A */ stb r9, 0x2a(r1)
+/* 8027B670 002772D0 89 3E 00 0D */ lbz r9, 0xd(r30)
+/* 8027B674 002772D4 99 01 00 2B */ stb r8, 0x2b(r1)
+/* 8027B678 002772D8 89 1E 00 0E */ lbz r8, 0xe(r30)
+/* 8027B67C 002772DC 98 E1 00 2C */ stb r7, 0x2c(r1)
+/* 8027B680 002772E0 88 FE 00 0F */ lbz r7, 0xf(r30)
+/* 8027B684 002772E4 9B A1 00 2D */ stb r29, 0x2d(r1)
+/* 8027B688 002772E8 8B BE 00 10 */ lbz r29, 0x10(r30)
+/* 8027B68C 002772EC 9B 81 00 2E */ stb r28, 0x2e(r1)
+/* 8027B690 002772F0 8B 9E 00 11 */ lbz r28, 0x11(r30)
+/* 8027B694 002772F4 99 81 00 2F */ stb r12, 0x2f(r1)
+/* 8027B698 002772F8 89 9E 00 12 */ lbz r12, 0x12(r30)
+/* 8027B69C 002772FC 99 61 00 30 */ stb r11, 0x30(r1)
+/* 8027B6A0 00277300 89 7E 00 13 */ lbz r11, 0x13(r30)
+/* 8027B6A4 00277304 99 41 00 31 */ stb r10, 0x31(r1)
+/* 8027B6A8 00277308 89 5E 00 14 */ lbz r10, 0x14(r30)
+/* 8027B6AC 0027730C 99 21 00 32 */ stb r9, 0x32(r1)
+/* 8027B6B0 00277310 89 3E 00 15 */ lbz r9, 0x15(r30)
+/* 8027B6B4 00277314 99 01 00 33 */ stb r8, 0x33(r1)
+/* 8027B6B8 00277318 89 1E 00 16 */ lbz r8, 0x16(r30)
+/* 8027B6BC 0027731C 98 E1 00 34 */ stb r7, 0x34(r1)
+/* 8027B6C0 00277320 88 FE 00 17 */ lbz r7, 0x17(r30)
+/* 8027B6C4 00277324 88 DE 00 18 */ lbz r6, 0x18(r30)
+/* 8027B6C8 00277328 88 1E 00 19 */ lbz r0, 0x19(r30)
+/* 8027B6CC 0027732C 9B E1 00 24 */ stb r31, 0x24(r1)
+/* 8027B6D0 00277330 9B A1 00 35 */ stb r29, 0x35(r1)
+/* 8027B6D4 00277334 9B 81 00 36 */ stb r28, 0x36(r1)
+/* 8027B6D8 00277338 99 81 00 37 */ stb r12, 0x37(r1)
+/* 8027B6DC 0027733C 99 61 00 38 */ stb r11, 0x38(r1)
+/* 8027B6E0 00277340 99 41 00 39 */ stb r10, 0x39(r1)
+/* 8027B6E4 00277344 99 21 00 3A */ stb r9, 0x3a(r1)
+/* 8027B6E8 00277348 99 01 00 3B */ stb r8, 0x3b(r1)
+/* 8027B6EC 0027734C 98 E1 00 3C */ stb r7, 0x3c(r1)
+/* 8027B6F0 00277350 98 C1 00 3D */ stb r6, 0x3d(r1)
+/* 8027B6F4 00277354 98 01 00 3E */ stb r0, 0x3e(r1)
+/* 8027B6F8 00277358 4B FF EB C1 */ bl __VISendI2CData
+/* 8027B6FC 0027735C 38 60 00 02 */ li r3, 2
+/* 8027B700 00277360 4B FF E7 6D */ bl WaitMicroTime
+/* 8027B704 00277364 48 00 00 F8 */ b lbl_8027B7FC
+lbl_8027B708:
+/* 8027B708 00277368 3F A0 80 51 */ lis r29, lbl_80515910@ha
+/* 8027B70C 0027736C 8F DD 59 10 */ lbzu r30, lbl_80515910@l(r29)
+/* 8027B710 00277370 3B 80 00 40 */ li r28, 0x40
+/* 8027B714 00277374 38 81 00 08 */ addi r4, r1, 8
+/* 8027B718 00277378 8B FD 00 01 */ lbz r31, 1(r29)
+/* 8027B71C 0027737C 38 60 00 E0 */ li r3, 0xe0
+/* 8027B720 00277380 89 9D 00 02 */ lbz r12, 2(r29)
+/* 8027B724 00277384 38 A0 00 1B */ li r5, 0x1b
+/* 8027B728 00277388 89 7D 00 03 */ lbz r11, 3(r29)
+/* 8027B72C 0027738C 89 5D 00 04 */ lbz r10, 4(r29)
+/* 8027B730 00277390 89 3D 00 05 */ lbz r9, 5(r29)
+/* 8027B734 00277394 89 1D 00 06 */ lbz r8, 6(r29)
+/* 8027B738 00277398 88 FD 00 07 */ lbz r7, 7(r29)
+/* 8027B73C 0027739C 9B C1 00 09 */ stb r30, 9(r1)
+/* 8027B740 002773A0 8B DD 00 08 */ lbz r30, 8(r29)
+/* 8027B744 002773A4 9B E1 00 0A */ stb r31, 0xa(r1)
+/* 8027B748 002773A8 8B FD 00 09 */ lbz r31, 9(r29)
+/* 8027B74C 002773AC 99 81 00 0B */ stb r12, 0xb(r1)
+/* 8027B750 002773B0 89 9D 00 0A */ lbz r12, 0xa(r29)
+/* 8027B754 002773B4 99 61 00 0C */ stb r11, 0xc(r1)
+/* 8027B758 002773B8 89 7D 00 0B */ lbz r11, 0xb(r29)
+/* 8027B75C 002773BC 99 41 00 0D */ stb r10, 0xd(r1)
+/* 8027B760 002773C0 89 5D 00 0C */ lbz r10, 0xc(r29)
+/* 8027B764 002773C4 99 21 00 0E */ stb r9, 0xe(r1)
+/* 8027B768 002773C8 89 3D 00 0D */ lbz r9, 0xd(r29)
+/* 8027B76C 002773CC 99 01 00 0F */ stb r8, 0xf(r1)
+/* 8027B770 002773D0 89 1D 00 0E */ lbz r8, 0xe(r29)
+/* 8027B774 002773D4 98 E1 00 10 */ stb r7, 0x10(r1)
+/* 8027B778 002773D8 88 FD 00 0F */ lbz r7, 0xf(r29)
+/* 8027B77C 002773DC 9B C1 00 11 */ stb r30, 0x11(r1)
+/* 8027B780 002773E0 8B DD 00 10 */ lbz r30, 0x10(r29)
+/* 8027B784 002773E4 9B E1 00 12 */ stb r31, 0x12(r1)
+/* 8027B788 002773E8 8B FD 00 11 */ lbz r31, 0x11(r29)
+/* 8027B78C 002773EC 99 81 00 13 */ stb r12, 0x13(r1)
+/* 8027B790 002773F0 89 9D 00 12 */ lbz r12, 0x12(r29)
+/* 8027B794 002773F4 99 61 00 14 */ stb r11, 0x14(r1)
+/* 8027B798 002773F8 89 7D 00 13 */ lbz r11, 0x13(r29)
+/* 8027B79C 002773FC 99 41 00 15 */ stb r10, 0x15(r1)
+/* 8027B7A0 00277400 89 5D 00 14 */ lbz r10, 0x14(r29)
+/* 8027B7A4 00277404 99 21 00 16 */ stb r9, 0x16(r1)
+/* 8027B7A8 00277408 89 3D 00 15 */ lbz r9, 0x15(r29)
+/* 8027B7AC 0027740C 99 01 00 17 */ stb r8, 0x17(r1)
+/* 8027B7B0 00277410 89 1D 00 16 */ lbz r8, 0x16(r29)
+/* 8027B7B4 00277414 98 E1 00 18 */ stb r7, 0x18(r1)
+/* 8027B7B8 00277418 88 FD 00 17 */ lbz r7, 0x17(r29)
+/* 8027B7BC 0027741C 88 DD 00 18 */ lbz r6, 0x18(r29)
+/* 8027B7C0 00277420 88 1D 00 19 */ lbz r0, 0x19(r29)
+/* 8027B7C4 00277424 9B 81 00 08 */ stb r28, 8(r1)
+/* 8027B7C8 00277428 9B C1 00 19 */ stb r30, 0x19(r1)
+/* 8027B7CC 0027742C 9B E1 00 1A */ stb r31, 0x1a(r1)
+/* 8027B7D0 00277430 99 81 00 1B */ stb r12, 0x1b(r1)
+/* 8027B7D4 00277434 99 61 00 1C */ stb r11, 0x1c(r1)
+/* 8027B7D8 00277438 99 41 00 1D */ stb r10, 0x1d(r1)
+/* 8027B7DC 0027743C 99 21 00 1E */ stb r9, 0x1e(r1)
+/* 8027B7E0 00277440 99 01 00 1F */ stb r8, 0x1f(r1)
+/* 8027B7E4 00277444 98 E1 00 20 */ stb r7, 0x20(r1)
+/* 8027B7E8 00277448 98 C1 00 21 */ stb r6, 0x21(r1)
+/* 8027B7EC 0027744C 98 01 00 22 */ stb r0, 0x22(r1)
+/* 8027B7F0 00277450 4B FF EA C9 */ bl __VISendI2CData
+/* 8027B7F4 00277454 38 60 00 02 */ li r3, 2
+/* 8027B7F8 00277458 4B FF E6 75 */ bl WaitMicroTime
+lbl_8027B7FC:
+/* 8027B7FC 0027745C 80 01 01 94 */ lwz r0, 0x194(r1)
+/* 8027B800 00277460 83 E1 01 8C */ lwz r31, 0x18c(r1)
+/* 8027B804 00277464 83 C1 01 88 */ lwz r30, 0x188(r1)
+/* 8027B808 00277468 83 A1 01 84 */ lwz r29, 0x184(r1)
+/* 8027B80C 0027746C 83 81 01 80 */ lwz r28, 0x180(r1)
+/* 8027B810 00277470 7C 08 03 A6 */ mtlr r0
+/* 8027B814 00277474 38 21 01 90 */ addi r1, r1, 0x190
+/* 8027B818 00277478 4E 80 00 20 */ blr
+
+.global __VISetGammaImm
+__VISetGammaImm:
+/* 8027B81C 0027747C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8027B820 00277480 7C 08 02 A6 */ mflr r0
+/* 8027B824 00277484 38 A0 00 22 */ li r5, 0x22
+/* 8027B828 00277488 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8027B82C 0027748C 38 00 00 10 */ li r0, 0x10
+/* 8027B830 00277490 38 81 00 08 */ addi r4, r1, 8
+/* 8027B834 00277494 98 01 00 08 */ stb r0, 8(r1)
+/* 8027B838 00277498 A0 03 00 00 */ lhz r0, 0(r3)
+/* 8027B83C 0027749C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B840 002774A0 98 01 00 09 */ stb r0, 9(r1)
+/* 8027B844 002774A4 A0 03 00 00 */ lhz r0, 0(r3)
+/* 8027B848 002774A8 98 01 00 0A */ stb r0, 0xa(r1)
+/* 8027B84C 002774AC A0 03 00 02 */ lhz r0, 2(r3)
+/* 8027B850 002774B0 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B854 002774B4 98 01 00 0B */ stb r0, 0xb(r1)
+/* 8027B858 002774B8 A0 03 00 02 */ lhz r0, 2(r3)
+/* 8027B85C 002774BC 98 01 00 0C */ stb r0, 0xc(r1)
+/* 8027B860 002774C0 A0 03 00 04 */ lhz r0, 4(r3)
+/* 8027B864 002774C4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B868 002774C8 98 01 00 0D */ stb r0, 0xd(r1)
+/* 8027B86C 002774CC A0 03 00 04 */ lhz r0, 4(r3)
+/* 8027B870 002774D0 98 01 00 0E */ stb r0, 0xe(r1)
+/* 8027B874 002774D4 A0 03 00 06 */ lhz r0, 6(r3)
+/* 8027B878 002774D8 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B87C 002774DC 98 01 00 0F */ stb r0, 0xf(r1)
+/* 8027B880 002774E0 A0 03 00 06 */ lhz r0, 6(r3)
+/* 8027B884 002774E4 98 01 00 10 */ stb r0, 0x10(r1)
+/* 8027B888 002774E8 A0 03 00 08 */ lhz r0, 8(r3)
+/* 8027B88C 002774EC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B890 002774F0 98 01 00 11 */ stb r0, 0x11(r1)
+/* 8027B894 002774F4 A0 03 00 08 */ lhz r0, 8(r3)
+/* 8027B898 002774F8 98 01 00 12 */ stb r0, 0x12(r1)
+/* 8027B89C 002774FC A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 8027B8A0 00277500 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B8A4 00277504 98 01 00 13 */ stb r0, 0x13(r1)
+/* 8027B8A8 00277508 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 8027B8AC 0027750C 98 01 00 14 */ stb r0, 0x14(r1)
+/* 8027B8B0 00277510 88 03 00 0C */ lbz r0, 0xc(r3)
+/* 8027B8B4 00277514 98 01 00 15 */ stb r0, 0x15(r1)
+/* 8027B8B8 00277518 88 03 00 0D */ lbz r0, 0xd(r3)
+/* 8027B8BC 0027751C 98 01 00 16 */ stb r0, 0x16(r1)
+/* 8027B8C0 00277520 88 03 00 0E */ lbz r0, 0xe(r3)
+/* 8027B8C4 00277524 98 01 00 17 */ stb r0, 0x17(r1)
+/* 8027B8C8 00277528 88 03 00 0F */ lbz r0, 0xf(r3)
+/* 8027B8CC 0027752C 98 01 00 18 */ stb r0, 0x18(r1)
+/* 8027B8D0 00277530 88 03 00 10 */ lbz r0, 0x10(r3)
+/* 8027B8D4 00277534 98 01 00 19 */ stb r0, 0x19(r1)
+/* 8027B8D8 00277538 88 03 00 11 */ lbz r0, 0x11(r3)
+/* 8027B8DC 0027753C 98 01 00 1A */ stb r0, 0x1a(r1)
+/* 8027B8E0 00277540 88 03 00 12 */ lbz r0, 0x12(r3)
+/* 8027B8E4 00277544 98 01 00 1B */ stb r0, 0x1b(r1)
+/* 8027B8E8 00277548 A0 03 00 14 */ lhz r0, 0x14(r3)
+/* 8027B8EC 0027754C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B8F0 00277550 98 01 00 1C */ stb r0, 0x1c(r1)
+/* 8027B8F4 00277554 A0 03 00 14 */ lhz r0, 0x14(r3)
+/* 8027B8F8 00277558 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B8FC 0027755C 98 01 00 1D */ stb r0, 0x1d(r1)
+/* 8027B900 00277560 A0 03 00 16 */ lhz r0, 0x16(r3)
+/* 8027B904 00277564 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B908 00277568 98 01 00 1E */ stb r0, 0x1e(r1)
+/* 8027B90C 0027756C A0 03 00 16 */ lhz r0, 0x16(r3)
+/* 8027B910 00277570 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B914 00277574 98 01 00 1F */ stb r0, 0x1f(r1)
+/* 8027B918 00277578 A0 03 00 18 */ lhz r0, 0x18(r3)
+/* 8027B91C 0027757C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B920 00277580 98 01 00 20 */ stb r0, 0x20(r1)
+/* 8027B924 00277584 A0 03 00 18 */ lhz r0, 0x18(r3)
+/* 8027B928 00277588 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B92C 0027758C 98 01 00 21 */ stb r0, 0x21(r1)
+/* 8027B930 00277590 A0 03 00 1A */ lhz r0, 0x1a(r3)
+/* 8027B934 00277594 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B938 00277598 98 01 00 22 */ stb r0, 0x22(r1)
+/* 8027B93C 0027759C A0 03 00 1A */ lhz r0, 0x1a(r3)
+/* 8027B940 002775A0 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B944 002775A4 98 01 00 23 */ stb r0, 0x23(r1)
+/* 8027B948 002775A8 A0 03 00 1C */ lhz r0, 0x1c(r3)
+/* 8027B94C 002775AC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B950 002775B0 98 01 00 24 */ stb r0, 0x24(r1)
+/* 8027B954 002775B4 A0 03 00 1C */ lhz r0, 0x1c(r3)
+/* 8027B958 002775B8 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B95C 002775BC 98 01 00 25 */ stb r0, 0x25(r1)
+/* 8027B960 002775C0 A0 03 00 1E */ lhz r0, 0x1e(r3)
+/* 8027B964 002775C4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B968 002775C8 98 01 00 26 */ stb r0, 0x26(r1)
+/* 8027B96C 002775CC A0 03 00 1E */ lhz r0, 0x1e(r3)
+/* 8027B970 002775D0 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B974 002775D4 98 01 00 27 */ stb r0, 0x27(r1)
+/* 8027B978 002775D8 A0 03 00 20 */ lhz r0, 0x20(r3)
+/* 8027B97C 002775DC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 8027B980 002775E0 98 01 00 28 */ stb r0, 0x28(r1)
+/* 8027B984 002775E4 A0 03 00 20 */ lhz r0, 0x20(r3)
+/* 8027B988 002775E8 38 60 00 E0 */ li r3, 0xe0
+/* 8027B98C 002775EC 54 00 06 32 */ rlwinm r0, r0, 0, 0x18, 0x19
+/* 8027B990 002775F0 98 01 00 29 */ stb r0, 0x29(r1)
+/* 8027B994 002775F4 4B FF E9 25 */ bl __VISendI2CData
+/* 8027B998 002775F8 38 60 00 02 */ li r3, 2
+/* 8027B99C 002775FC 4B FF E4 D1 */ bl WaitMicroTime
+/* 8027B9A0 00277600 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8027B9A4 00277604 7C 08 03 A6 */ mtlr r0
+/* 8027B9A8 00277608 38 21 00 30 */ addi r1, r1, 0x30
+/* 8027B9AC 0027760C 4E 80 00 20 */ blr
+
+.global __VISetGamma
+__VISetGamma:
+/* 8027B9B0 00277610 80 0D A9 80 */ lwz r0, lbl_8063FC40-_SDA_BASE_(r13)
+/* 8027B9B4 00277614 3C 60 80 43 */ lis r3, lbl_80434510@ha
+/* 8027B9B8 00277618 38 63 45 10 */ addi r3, r3, lbl_80434510@l
+/* 8027B9BC 0027761C 1C 00 00 22 */ mulli r0, r0, 0x22
+/* 8027B9C0 00277620 7C 63 02 14 */ add r3, r3, r0
+/* 8027B9C4 00277624 4B FF FE 58 */ b __VISetGammaImm
+
+.global __VISetTrapFilter
+__VISetTrapFilter:
+/* 8027B9C8 00277628 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027B9CC 0027762C 7C 08 02 A6 */ mflr r0
+/* 8027B9D0 00277630 38 60 00 03 */ li r3, 3
+/* 8027B9D4 00277634 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027B9D8 00277638 88 0D 88 40 */ lbz r0, lbl_8063DB00-_SDA_BASE_(r13)
+/* 8027B9DC 0027763C 98 61 00 08 */ stb r3, 8(r1)
+/* 8027B9E0 00277640 28 00 00 01 */ cmplwi r0, 1
+/* 8027B9E4 00277644 40 82 00 10 */ bne lbl_8027B9F4
+/* 8027B9E8 00277648 38 00 00 00 */ li r0, 0
+/* 8027B9EC 0027764C 98 01 00 09 */ stb r0, 9(r1)
+/* 8027B9F0 00277650 48 00 00 0C */ b lbl_8027B9FC
+lbl_8027B9F4:
+/* 8027B9F4 00277654 38 00 00 01 */ li r0, 1
+/* 8027B9F8 00277658 98 01 00 09 */ stb r0, 9(r1)
+lbl_8027B9FC:
+/* 8027B9FC 0027765C 38 81 00 08 */ addi r4, r1, 8
+/* 8027BA00 00277660 38 60 00 E0 */ li r3, 0xe0
+/* 8027BA04 00277664 38 A0 00 02 */ li r5, 2
+/* 8027BA08 00277668 4B FF E8 B1 */ bl __VISendI2CData
+/* 8027BA0C 0027766C 38 60 00 02 */ li r3, 2
+/* 8027BA10 00277670 4B FF E4 5D */ bl WaitMicroTime
+/* 8027BA14 00277674 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027BA18 00277678 7C 08 03 A6 */ mtlr r0
+/* 8027BA1C 0027767C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027BA20 00277680 4E 80 00 20 */ blr
+
+.global __VISetRGBOverDrive
+__VISetRGBOverDrive:
+/* 8027BA24 00277684 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027BA28 00277688 7C 08 02 A6 */ mflr r0
+/* 8027BA2C 0027768C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027BA30 00277690 80 0D A9 88 */ lwz r0, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027BA34 00277694 2C 00 00 03 */ cmpwi r0, 3
+/* 8027BA38 00277698 40 82 00 38 */ bne lbl_8027BA70
+/* 8027BA3C 0027769C 80 0D A9 7C */ lwz r0, lbl_8063FC3C-_SDA_BASE_(r13)
+/* 8027BA40 002776A0 38 60 00 0A */ li r3, 0xa
+/* 8027BA44 002776A4 98 61 00 08 */ stb r3, 8(r1)
+/* 8027BA48 002776A8 38 81 00 08 */ addi r4, r1, 8
+/* 8027BA4C 002776AC 54 00 08 3C */ slwi r0, r0, 1
+/* 8027BA50 002776B0 38 60 00 E0 */ li r3, 0xe0
+/* 8027BA54 002776B4 60 00 00 01 */ ori r0, r0, 1
+/* 8027BA58 002776B8 38 A0 00 02 */ li r5, 2
+/* 8027BA5C 002776BC 98 01 00 09 */ stb r0, 9(r1)
+/* 8027BA60 002776C0 4B FF E8 59 */ bl __VISendI2CData
+/* 8027BA64 002776C4 38 60 00 02 */ li r3, 2
+/* 8027BA68 002776C8 4B FF E4 05 */ bl WaitMicroTime
+/* 8027BA6C 002776CC 48 00 00 2C */ b lbl_8027BA98
+lbl_8027BA70:
+/* 8027BA70 002776D0 38 60 00 0A */ li r3, 0xa
+/* 8027BA74 002776D4 38 00 00 00 */ li r0, 0
+/* 8027BA78 002776D8 98 61 00 08 */ stb r3, 8(r1)
+/* 8027BA7C 002776DC 38 81 00 08 */ addi r4, r1, 8
+/* 8027BA80 002776E0 38 60 00 E0 */ li r3, 0xe0
+/* 8027BA84 002776E4 38 A0 00 02 */ li r5, 2
+/* 8027BA88 002776E8 98 01 00 09 */ stb r0, 9(r1)
+/* 8027BA8C 002776EC 4B FF E8 2D */ bl __VISendI2CData
+/* 8027BA90 002776F0 38 60 00 02 */ li r3, 2
+/* 8027BA94 002776F4 4B FF E3 D9 */ bl WaitMicroTime
+lbl_8027BA98:
+/* 8027BA98 002776F8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027BA9C 002776FC 7C 08 03 A6 */ mtlr r0
+/* 8027BAA0 00277700 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027BAA4 00277704 4E 80 00 20 */ blr
+
+.global VISetRGBModeImm
+VISetRGBModeImm:
+/* 8027BAA8 00277708 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13)
+/* 8027BAAC 0027770C 60 00 00 80 */ ori r0, r0, 0x80
+/* 8027BAB0 00277710 90 0D A9 78 */ stw r0, lbl_8063FC38-_SDA_BASE_(r13)
+/* 8027BAB4 00277714 4E 80 00 20 */ blr
+
+.global __VISetRGBModeImm
+__VISetRGBModeImm:
+/* 8027BAB8 00277718 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027BABC 0027771C 7C 08 02 A6 */ mflr r0
+/* 8027BAC0 00277720 38 C0 00 03 */ li r6, 3
+/* 8027BAC4 00277724 38 60 00 E0 */ li r3, 0xe0
+/* 8027BAC8 00277728 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027BACC 0027772C 38 00 00 01 */ li r0, 1
+/* 8027BAD0 00277730 38 81 00 08 */ addi r4, r1, 8
+/* 8027BAD4 00277734 38 A0 00 02 */ li r5, 2
+/* 8027BAD8 00277738 90 CD A9 88 */ stw r6, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027BADC 0027773C 98 01 00 08 */ stb r0, 8(r1)
+/* 8027BAE0 00277740 98 C1 00 09 */ stb r6, 9(r1)
+/* 8027BAE4 00277744 4B FF E7 D5 */ bl __VISendI2CData
+/* 8027BAE8 00277748 38 60 00 02 */ li r3, 2
+/* 8027BAEC 0027774C 4B FF E3 81 */ bl WaitMicroTime
+/* 8027BAF0 00277750 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027BAF4 00277754 7C 08 03 A6 */ mtlr r0
+/* 8027BAF8 00277758 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027BAFC 0027775C 4E 80 00 20 */ blr
+
+.global __VISetRevolutionModeSimple
+__VISetRevolutionModeSimple:
+/* 8027BB00 00277760 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8027BB04 00277764 7C 08 02 A6 */ mflr r0
+/* 8027BB08 00277768 38 60 00 E0 */ li r3, 0xe0
+/* 8027BB0C 0027776C 38 A0 00 02 */ li r5, 2
+/* 8027BB10 00277770 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8027BB14 00277774 38 00 00 6A */ li r0, 0x6a
+/* 8027BB18 00277778 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8027BB1C 0027777C 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8027BB20 00277780 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8027BB24 00277784 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 8027BB28 00277788 93 81 00 50 */ stw r28, 0x50(r1)
+/* 8027BB2C 0027778C 3B 80 00 01 */ li r28, 1
+/* 8027BB30 00277790 98 01 00 1C */ stb r0, 0x1c(r1)
+/* 8027BB34 00277794 9B 81 00 1D */ stb r28, 0x1d(r1)
+/* 8027BB38 00277798 4B FF E7 81 */ bl __VISendI2CData
+/* 8027BB3C 0027779C 38 60 00 02 */ li r3, 2
+/* 8027BB40 002777A0 4B FF E3 2D */ bl WaitMicroTime
+/* 8027BB44 002777A4 38 00 00 65 */ li r0, 0x65
+/* 8027BB48 002777A8 9B 81 00 19 */ stb r28, 0x19(r1)
+/* 8027BB4C 002777AC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8027BB50 002777B0 38 60 00 E0 */ li r3, 0xe0
+/* 8027BB54 002777B4 98 01 00 18 */ stb r0, 0x18(r1)
+/* 8027BB58 002777B8 38 A0 00 02 */ li r5, 2
+/* 8027BB5C 002777BC 4B FF E7 5D */ bl __VISendI2CData
+/* 8027BB60 002777C0 38 60 00 02 */ li r3, 2
+/* 8027BB64 002777C4 4B FF E3 09 */ bl WaitMicroTime
+/* 8027BB68 002777C8 4B FF DF 2D */ bl VIGetDTVStatus
+/* 8027BB6C 002777CC 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 8027BB70 002777D0 4B FF ED 19 */ bl __VISetYUVSEL
+/* 8027BB74 002777D4 3B 80 00 00 */ li r28, 0
+/* 8027BB78 002777D8 38 81 00 14 */ addi r4, r1, 0x14
+/* 8027BB7C 002777DC 9B 81 00 14 */ stb r28, 0x14(r1)
+/* 8027BB80 002777E0 38 60 00 E0 */ li r3, 0xe0
+/* 8027BB84 002777E4 38 A0 00 02 */ li r5, 2
+/* 8027BB88 002777E8 9B 81 00 15 */ stb r28, 0x15(r1)
+/* 8027BB8C 002777EC 4B FF E7 2D */ bl __VISendI2CData
+/* 8027BB90 002777F0 38 60 00 02 */ li r3, 2
+/* 8027BB94 002777F4 4B FF E2 D9 */ bl WaitMicroTime
+/* 8027BB98 002777F8 38 00 00 8E */ li r0, 0x8e
+/* 8027BB9C 002777FC 38 60 00 71 */ li r3, 0x71
+/* 8027BBA0 00277800 98 61 00 28 */ stb r3, 0x28(r1)
+/* 8027BBA4 00277804 38 81 00 28 */ addi r4, r1, 0x28
+/* 8027BBA8 00277808 38 60 00 E0 */ li r3, 0xe0
+/* 8027BBAC 0027780C 38 A0 00 03 */ li r5, 3
+/* 8027BBB0 00277810 98 01 00 29 */ stb r0, 0x29(r1)
+/* 8027BBB4 00277814 98 01 00 2A */ stb r0, 0x2a(r1)
+/* 8027BBB8 00277818 4B FF E7 01 */ bl __VISendI2CData
+/* 8027BBBC 0027781C 38 60 00 02 */ li r3, 2
+/* 8027BBC0 00277820 4B FF E2 AD */ bl WaitMicroTime
+/* 8027BBC4 00277824 38 60 00 02 */ li r3, 2
+/* 8027BBC8 00277828 38 00 00 07 */ li r0, 7
+/* 8027BBCC 0027782C 98 61 00 10 */ stb r3, 0x10(r1)
+/* 8027BBD0 00277830 38 81 00 10 */ addi r4, r1, 0x10
+/* 8027BBD4 00277834 38 60 00 E0 */ li r3, 0xe0
+/* 8027BBD8 00277838 38 A0 00 02 */ li r5, 2
+/* 8027BBDC 0027783C 98 01 00 11 */ stb r0, 0x11(r1)
+/* 8027BBE0 00277840 4B FF E6 D9 */ bl __VISendI2CData
+/* 8027BBE4 00277844 38 60 00 02 */ li r3, 2
+/* 8027BBE8 00277848 4B FF E2 85 */ bl WaitMicroTime
+/* 8027BBEC 0027784C 38 00 00 05 */ li r0, 5
+/* 8027BBF0 00277850 9B 8D 88 30 */ stb r28, lbl_8063DAF0-_SDA_BASE_(r13)
+/* 8027BBF4 00277854 38 81 00 24 */ addi r4, r1, 0x24
+/* 8027BBF8 00277858 38 60 00 E0 */ li r3, 0xe0
+/* 8027BBFC 0027785C 9B 8D 88 31 */ stb r28, lbl_8063DAF1-_SDA_BASE_(r13)
+/* 8027BC00 00277860 38 A0 00 03 */ li r5, 3
+/* 8027BC04 00277864 9B 8D 88 32 */ stb r28, lbl_8063DAF2-_SDA_BASE_(r13)
+/* 8027BC08 00277868 98 01 00 24 */ stb r0, 0x24(r1)
+/* 8027BC0C 0027786C 9B 81 00 25 */ stb r28, 0x25(r1)
+/* 8027BC10 00277870 9B 81 00 26 */ stb r28, 0x26(r1)
+/* 8027BC14 00277874 4B FF E6 A5 */ bl __VISendI2CData
+/* 8027BC18 00277878 38 60 00 02 */ li r3, 2
+/* 8027BC1C 0027787C 4B FF E2 51 */ bl WaitMicroTime
+/* 8027BC20 00277880 88 0D 88 33 */ lbz r0, lbl_8063DAF3-_SDA_BASE_(r13)
+/* 8027BC24 00277884 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BC28 00277888 40 82 00 28 */ bne lbl_8027BC50
+/* 8027BC2C 0027788C 88 0D 88 34 */ lbz r0, lbl_8063DAF4-_SDA_BASE_(r13)
+/* 8027BC30 00277890 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BC34 00277894 40 82 00 1C */ bne lbl_8027BC50
+/* 8027BC38 00277898 88 0D 88 35 */ lbz r0, lbl_8063DAF5-_SDA_BASE_(r13)
+/* 8027BC3C 0027789C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BC40 002778A0 40 82 00 10 */ bne lbl_8027BC50
+/* 8027BC44 002778A4 88 0D 88 36 */ lbz r0, lbl_8063DAF6-_SDA_BASE_(r13)
+/* 8027BC48 002778A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BC4C 002778AC 41 82 00 24 */ beq lbl_8027BC70
+lbl_8027BC50:
+/* 8027BC50 002778B0 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13)
+/* 8027BC54 002778B4 38 60 00 00 */ li r3, 0
+/* 8027BC58 002778B8 98 6D 88 33 */ stb r3, lbl_8063DAF3-_SDA_BASE_(r13)
+/* 8027BC5C 002778BC 60 00 00 02 */ ori r0, r0, 2
+/* 8027BC60 002778C0 98 6D 88 34 */ stb r3, lbl_8063DAF4-_SDA_BASE_(r13)
+/* 8027BC64 002778C4 98 6D 88 35 */ stb r3, lbl_8063DAF5-_SDA_BASE_(r13)
+/* 8027BC68 002778C8 98 6D 88 36 */ stb r3, lbl_8063DAF6-_SDA_BASE_(r13)
+/* 8027BC6C 002778CC 90 0D A9 78 */ stw r0, lbl_8063FC38-_SDA_BASE_(r13)
+lbl_8027BC70:
+/* 8027BC70 002778D0 88 6D 88 33 */ lbz r3, lbl_8063DAF3-_SDA_BASE_(r13)
+/* 8027BC74 002778D4 38 E0 00 08 */ li r7, 8
+/* 8027BC78 002778D8 88 0D 88 35 */ lbz r0, lbl_8063DAF5-_SDA_BASE_(r13)
+/* 8027BC7C 002778DC 38 81 00 20 */ addi r4, r1, 0x20
+/* 8027BC80 002778E0 54 65 07 3E */ clrlwi r5, r3, 0x1c
+/* 8027BC84 002778E4 88 CD 88 34 */ lbz r6, lbl_8063DAF4-_SDA_BASE_(r13)
+/* 8027BC88 002778E8 88 6D 88 36 */ lbz r3, lbl_8063DAF6-_SDA_BASE_(r13)
+/* 8027BC8C 002778EC 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 8027BC90 002778F0 50 C5 26 36 */ rlwimi r5, r6, 4, 0x18, 0x1b
+/* 8027BC94 002778F4 98 E1 00 20 */ stb r7, 0x20(r1)
+/* 8027BC98 002778F8 50 60 1E B8 */ rlwimi r0, r3, 3, 0x1a, 0x1c
+/* 8027BC9C 002778FC 38 60 00 E0 */ li r3, 0xe0
+/* 8027BCA0 00277900 98 A1 00 21 */ stb r5, 0x21(r1)
+/* 8027BCA4 00277904 38 A0 00 03 */ li r5, 3
+/* 8027BCA8 00277908 98 01 00 22 */ stb r0, 0x22(r1)
+/* 8027BCAC 0027790C 4B FF E6 0D */ bl __VISendI2CData
+/* 8027BCB0 00277910 38 60 00 02 */ li r3, 2
+/* 8027BCB4 00277914 4B FF E1 B9 */ bl WaitMicroTime
+/* 8027BCB8 00277918 88 0D 88 37 */ lbz r0, lbl_8063DAF7-_SDA_BASE_(r13)
+/* 8027BCBC 0027791C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BCC0 00277920 40 82 00 28 */ bne lbl_8027BCE8
+/* 8027BCC4 00277924 88 0D 88 38 */ lbz r0, lbl_8063DAF8-_SDA_BASE_(r13)
+/* 8027BCC8 00277928 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BCCC 0027792C 40 82 00 1C */ bne lbl_8027BCE8
+/* 8027BCD0 00277930 88 0D 88 39 */ lbz r0, lbl_8063DAF9-_SDA_BASE_(r13)
+/* 8027BCD4 00277934 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BCD8 00277938 40 82 00 10 */ bne lbl_8027BCE8
+/* 8027BCDC 0027793C 88 0D 88 3A */ lbz r0, lbl_8063DAFA-_SDA_BASE_(r13)
+/* 8027BCE0 00277940 2C 00 00 00 */ cmpwi r0, 0
+/* 8027BCE4 00277944 41 82 00 24 */ beq lbl_8027BD08
+lbl_8027BCE8:
+/* 8027BCE8 00277948 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13)
+/* 8027BCEC 0027794C 38 60 00 00 */ li r3, 0
+/* 8027BCF0 00277950 98 6D 88 37 */ stb r3, lbl_8063DAF7-_SDA_BASE_(r13)
+/* 8027BCF4 00277954 60 00 00 04 */ ori r0, r0, 4
+/* 8027BCF8 00277958 98 6D 88 38 */ stb r3, lbl_8063DAF8-_SDA_BASE_(r13)
+/* 8027BCFC 0027795C 98 6D 88 39 */ stb r3, lbl_8063DAF9-_SDA_BASE_(r13)
+/* 8027BD00 00277960 98 6D 88 3A */ stb r3, lbl_8063DAFA-_SDA_BASE_(r13)
+/* 8027BD04 00277964 90 0D A9 78 */ stw r0, lbl_8063FC38-_SDA_BASE_(r13)
+lbl_8027BD08:
+/* 8027BD08 00277968 88 0D 88 37 */ lbz r0, lbl_8063DAF7-_SDA_BASE_(r13)
+/* 8027BD0C 0027796C 39 20 00 7A */ li r9, 0x7a
+/* 8027BD10 00277970 88 AD 88 38 */ lbz r5, lbl_8063DAF8-_SDA_BASE_(r13)
+/* 8027BD14 00277974 38 81 00 2C */ addi r4, r1, 0x2c
+/* 8027BD18 00277978 54 08 06 7E */ clrlwi r8, r0, 0x19
+/* 8027BD1C 0027797C 88 6D 88 39 */ lbz r3, lbl_8063DAF9-_SDA_BASE_(r13)
+/* 8027BD20 00277980 88 0D 88 3A */ lbz r0, lbl_8063DAFA-_SDA_BASE_(r13)
+/* 8027BD24 00277984 54 A7 06 7E */ clrlwi r7, r5, 0x19
+/* 8027BD28 00277988 54 66 06 7E */ clrlwi r6, r3, 0x19
+/* 8027BD2C 0027798C 99 21 00 2C */ stb r9, 0x2c(r1)
+/* 8027BD30 00277990 54 00 06 7E */ clrlwi r0, r0, 0x19
+/* 8027BD34 00277994 38 60 00 E0 */ li r3, 0xe0
+/* 8027BD38 00277998 99 01 00 2D */ stb r8, 0x2d(r1)
+/* 8027BD3C 0027799C 38 A0 00 05 */ li r5, 5
+/* 8027BD40 002779A0 98 E1 00 2E */ stb r7, 0x2e(r1)
+/* 8027BD44 002779A4 98 C1 00 2F */ stb r6, 0x2f(r1)
+/* 8027BD48 002779A8 98 01 00 30 */ stb r0, 0x30(r1)
+/* 8027BD4C 002779AC 4B FF E5 6D */ bl __VISendI2CData
+/* 8027BD50 002779B0 38 60 00 02 */ li r3, 2
+/* 8027BD54 002779B4 4B FF E1 19 */ bl WaitMicroTime
+/* 8027BD58 002779B8 3F A0 80 51 */ lis r29, lbl_80515910@ha
+/* 8027BD5C 002779BC 8F DD 59 10 */ lbzu r30, lbl_80515910@l(r29)
+/* 8027BD60 002779C0 3B 80 00 40 */ li r28, 0x40
+/* 8027BD64 002779C4 38 81 00 34 */ addi r4, r1, 0x34
+/* 8027BD68 002779C8 8B FD 00 01 */ lbz r31, 1(r29)
+/* 8027BD6C 002779CC 38 60 00 E0 */ li r3, 0xe0
+/* 8027BD70 002779D0 89 9D 00 02 */ lbz r12, 2(r29)
+/* 8027BD74 002779D4 38 A0 00 1B */ li r5, 0x1b
+/* 8027BD78 002779D8 89 7D 00 03 */ lbz r11, 3(r29)
+/* 8027BD7C 002779DC 89 5D 00 04 */ lbz r10, 4(r29)
+/* 8027BD80 002779E0 89 3D 00 05 */ lbz r9, 5(r29)
+/* 8027BD84 002779E4 89 1D 00 06 */ lbz r8, 6(r29)
+/* 8027BD88 002779E8 88 FD 00 07 */ lbz r7, 7(r29)
+/* 8027BD8C 002779EC 9B C1 00 35 */ stb r30, 0x35(r1)
+/* 8027BD90 002779F0 8B DD 00 08 */ lbz r30, 8(r29)
+/* 8027BD94 002779F4 9B E1 00 36 */ stb r31, 0x36(r1)
+/* 8027BD98 002779F8 8B FD 00 09 */ lbz r31, 9(r29)
+/* 8027BD9C 002779FC 99 81 00 37 */ stb r12, 0x37(r1)
+/* 8027BDA0 00277A00 89 9D 00 0A */ lbz r12, 0xa(r29)
+/* 8027BDA4 00277A04 99 61 00 38 */ stb r11, 0x38(r1)
+/* 8027BDA8 00277A08 89 7D 00 0B */ lbz r11, 0xb(r29)
+/* 8027BDAC 00277A0C 99 41 00 39 */ stb r10, 0x39(r1)
+/* 8027BDB0 00277A10 89 5D 00 0C */ lbz r10, 0xc(r29)
+/* 8027BDB4 00277A14 99 21 00 3A */ stb r9, 0x3a(r1)
+/* 8027BDB8 00277A18 89 3D 00 0D */ lbz r9, 0xd(r29)
+/* 8027BDBC 00277A1C 99 01 00 3B */ stb r8, 0x3b(r1)
+/* 8027BDC0 00277A20 89 1D 00 0E */ lbz r8, 0xe(r29)
+/* 8027BDC4 00277A24 98 E1 00 3C */ stb r7, 0x3c(r1)
+/* 8027BDC8 00277A28 88 FD 00 0F */ lbz r7, 0xf(r29)
+/* 8027BDCC 00277A2C 9B C1 00 3D */ stb r30, 0x3d(r1)
+/* 8027BDD0 00277A30 8B DD 00 10 */ lbz r30, 0x10(r29)
+/* 8027BDD4 00277A34 9B E1 00 3E */ stb r31, 0x3e(r1)
+/* 8027BDD8 00277A38 8B FD 00 11 */ lbz r31, 0x11(r29)
+/* 8027BDDC 00277A3C 99 81 00 3F */ stb r12, 0x3f(r1)
+/* 8027BDE0 00277A40 89 9D 00 12 */ lbz r12, 0x12(r29)
+/* 8027BDE4 00277A44 99 61 00 40 */ stb r11, 0x40(r1)
+/* 8027BDE8 00277A48 89 7D 00 13 */ lbz r11, 0x13(r29)
+/* 8027BDEC 00277A4C 99 41 00 41 */ stb r10, 0x41(r1)
+/* 8027BDF0 00277A50 89 5D 00 14 */ lbz r10, 0x14(r29)
+/* 8027BDF4 00277A54 99 21 00 42 */ stb r9, 0x42(r1)
+/* 8027BDF8 00277A58 89 3D 00 15 */ lbz r9, 0x15(r29)
+/* 8027BDFC 00277A5C 99 01 00 43 */ stb r8, 0x43(r1)
+/* 8027BE00 00277A60 89 1D 00 16 */ lbz r8, 0x16(r29)
+/* 8027BE04 00277A64 98 E1 00 44 */ stb r7, 0x44(r1)
+/* 8027BE08 00277A68 88 FD 00 17 */ lbz r7, 0x17(r29)
+/* 8027BE0C 00277A6C 88 DD 00 18 */ lbz r6, 0x18(r29)
+/* 8027BE10 00277A70 88 1D 00 19 */ lbz r0, 0x19(r29)
+/* 8027BE14 00277A74 9B 81 00 34 */ stb r28, 0x34(r1)
+/* 8027BE18 00277A78 9B C1 00 45 */ stb r30, 0x45(r1)
+/* 8027BE1C 00277A7C 9B E1 00 46 */ stb r31, 0x46(r1)
+/* 8027BE20 00277A80 99 81 00 47 */ stb r12, 0x47(r1)
+/* 8027BE24 00277A84 99 61 00 48 */ stb r11, 0x48(r1)
+/* 8027BE28 00277A88 99 41 00 49 */ stb r10, 0x49(r1)
+/* 8027BE2C 00277A8C 99 21 00 4A */ stb r9, 0x4a(r1)
+/* 8027BE30 00277A90 99 01 00 4B */ stb r8, 0x4b(r1)
+/* 8027BE34 00277A94 98 E1 00 4C */ stb r7, 0x4c(r1)
+/* 8027BE38 00277A98 98 C1 00 4D */ stb r6, 0x4d(r1)
+/* 8027BE3C 00277A9C 98 01 00 4E */ stb r0, 0x4e(r1)
+/* 8027BE40 00277AA0 4B FF E4 79 */ bl __VISendI2CData
+/* 8027BE44 00277AA4 38 60 00 02 */ li r3, 2
+/* 8027BE48 00277AA8 4B FF E0 25 */ bl WaitMicroTime
+/* 8027BE4C 00277AAC 80 0D A9 7C */ lwz r0, lbl_8063FC3C-_SDA_BASE_(r13)
+/* 8027BE50 00277AB0 2C 00 00 01 */ cmpwi r0, 1
+/* 8027BE54 00277AB4 41 82 00 18 */ beq lbl_8027BE6C
+/* 8027BE58 00277AB8 80 0D A9 78 */ lwz r0, lbl_8063FC38-_SDA_BASE_(r13)
+/* 8027BE5C 00277ABC 38 60 00 01 */ li r3, 1
+/* 8027BE60 00277AC0 90 6D A9 7C */ stw r3, lbl_8063FC3C-_SDA_BASE_(r13)
+/* 8027BE64 00277AC4 60 00 00 40 */ ori r0, r0, 0x40
+/* 8027BE68 00277AC8 90 0D A9 78 */ stw r0, lbl_8063FC38-_SDA_BASE_(r13)
+lbl_8027BE6C:
+/* 8027BE6C 00277ACC 80 0D A9 88 */ lwz r0, lbl_8063FC48-_SDA_BASE_(r13)
+/* 8027BE70 00277AD0 2C 00 00 03 */ cmpwi r0, 3
+/* 8027BE74 00277AD4 40 82 00 38 */ bne lbl_8027BEAC
+/* 8027BE78 00277AD8 80 0D A9 7C */ lwz r0, lbl_8063FC3C-_SDA_BASE_(r13)
+/* 8027BE7C 00277ADC 38 60 00 0A */ li r3, 0xa
+/* 8027BE80 00277AE0 98 61 00 0C */ stb r3, 0xc(r1)
+/* 8027BE84 00277AE4 38 81 00 0C */ addi r4, r1, 0xc
+/* 8027BE88 00277AE8 54 00 08 3C */ slwi r0, r0, 1
+/* 8027BE8C 00277AEC 38 60 00 E0 */ li r3, 0xe0
+/* 8027BE90 00277AF0 60 00 00 01 */ ori r0, r0, 1
+/* 8027BE94 00277AF4 38 A0 00 02 */ li r5, 2
+/* 8027BE98 00277AF8 98 01 00 0D */ stb r0, 0xd(r1)
+/* 8027BE9C 00277AFC 4B FF E4 1D */ bl __VISendI2CData
+/* 8027BEA0 00277B00 38 60 00 02 */ li r3, 2
+/* 8027BEA4 00277B04 4B FF DF C9 */ bl WaitMicroTime
+/* 8027BEA8 00277B08 48 00 00 2C */ b lbl_8027BED4
+lbl_8027BEAC:
+/* 8027BEAC 00277B0C 38 60 00 0A */ li r3, 0xa
+/* 8027BEB0 00277B10 38 00 00 00 */ li r0, 0
+/* 8027BEB4 00277B14 98 61 00 0C */ stb r3, 0xc(r1)
+/* 8027BEB8 00277B18 38 81 00 0C */ addi r4, r1, 0xc
+/* 8027BEBC 00277B1C 38 60 00 E0 */ li r3, 0xe0
+/* 8027BEC0 00277B20 38 A0 00 02 */ li r5, 2
+/* 8027BEC4 00277B24 98 01 00 0D */ stb r0, 0xd(r1)
+/* 8027BEC8 00277B28 4B FF E3 F1 */ bl __VISendI2CData
+/* 8027BECC 00277B2C 38 60 00 02 */ li r3, 2
+/* 8027BED0 00277B30 4B FF DF 9D */ bl WaitMicroTime
+lbl_8027BED4:
+/* 8027BED4 00277B34 38 60 00 03 */ li r3, 3
+/* 8027BED8 00277B38 38 00 00 01 */ li r0, 1
+/* 8027BEDC 00277B3C 98 61 00 08 */ stb r3, 8(r1)
+/* 8027BEE0 00277B40 38 81 00 08 */ addi r4, r1, 8
+/* 8027BEE4 00277B44 38 60 00 E0 */ li r3, 0xe0
+/* 8027BEE8 00277B48 38 A0 00 02 */ li r5, 2
+/* 8027BEEC 00277B4C 98 01 00 09 */ stb r0, 9(r1)
+/* 8027BEF0 00277B50 4B FF E3 C9 */ bl __VISendI2CData
+/* 8027BEF4 00277B54 38 60 00 02 */ li r3, 2
+/* 8027BEF8 00277B58 4B FF DF 75 */ bl WaitMicroTime
+/* 8027BEFC 00277B5C 3C 60 80 43 */ lis r3, lbl_80434510@ha
+/* 8027BF00 00277B60 38 63 45 10 */ addi r3, r3, lbl_80434510@l
+/* 8027BF04 00277B64 38 63 01 54 */ addi r3, r3, 0x154
+/* 8027BF08 00277B68 4B FF F9 15 */ bl __VISetGammaImm
+/* 8027BF0C 00277B6C 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8027BF10 00277B70 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 8027BF14 00277B74 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 8027BF18 00277B78 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 8027BF1C 00277B7C 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 8027BF20 00277B80 7C 08 03 A6 */ mtlr r0
+/* 8027BF24 00277B84 38 21 00 60 */ addi r1, r1, 0x60
+/* 8027BF28 00277B88 4E 80 00 20 */ blr
|