summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/GX/GXAttr.s1263
-rw-r--r--asm/SDK/GX/GXFifo.s853
-rw-r--r--asm/SDK/GX/GXFrameBuf.s781
-rw-r--r--asm/SDK/GX/GXGeometry.s422
-rw-r--r--asm/SDK/GX/GXInit.s1194
-rw-r--r--asm/SDK/GX/GXLight.s512
-rw-r--r--asm/SDK/GX/GXMisc.s657
-rw-r--r--asm/SDK/HBM/HBMBase.s20
-rw-r--r--asm/SDK/HBM/HBMGUIManager.s22
-rw-r--r--asm/SDK/MTX/quat.s7
-rw-r--r--asm/SDK/OS/OSFatal.s2
11 files changed, 5707 insertions, 26 deletions
diff --git a/asm/SDK/GX/GXAttr.s b/asm/SDK/GX/GXAttr.s
new file mode 100644
index 0000000..d44b005
--- /dev/null
+++ b/asm/SDK/GX/GXAttr.s
@@ -0,0 +1,1263 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetVtxDesc
+GXSetVtxDesc:
+/* 8027F3F4 0027B054 28 03 00 19 */ cmplwi r3, 0x19
+/* 8027F3F8 0027B058 41 81 02 10 */ bgt lbl_8027F608
+/* 8027F3FC 0027B05C 3C A0 80 43 */ lis r5, lbl_80434D10@ha
+/* 8027F400 0027B060 54 60 10 3A */ slwi r0, r3, 2
+/* 8027F404 0027B064 38 A5 4D 10 */ addi r5, r5, lbl_80434D10@l
+/* 8027F408 0027B068 7C A5 00 2E */ lwzx r5, r5, r0
+/* 8027F40C 0027B06C 7C A9 03 A6 */ mtctr r5
+/* 8027F410 0027B070 4E 80 04 20 */ bctr
+/* 8027F414 0027B074 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F418 0027B078 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F41C 0027B07C 50 80 07 FE */ rlwimi r0, r4, 0, 0x1f, 0x1f
+/* 8027F420 0027B080 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F424 0027B084 48 00 01 E4 */ b lbl_8027F608
+/* 8027F428 0027B088 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F42C 0027B08C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F430 0027B090 50 80 0F BC */ rlwimi r0, r4, 1, 0x1e, 0x1e
+/* 8027F434 0027B094 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F438 0027B098 48 00 01 D0 */ b lbl_8027F608
+/* 8027F43C 0027B09C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F440 0027B0A0 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F444 0027B0A4 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d
+/* 8027F448 0027B0A8 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F44C 0027B0AC 48 00 01 BC */ b lbl_8027F608
+/* 8027F450 0027B0B0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F454 0027B0B4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F458 0027B0B8 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
+/* 8027F45C 0027B0BC 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F460 0027B0C0 48 00 01 A8 */ b lbl_8027F608
+/* 8027F464 0027B0C4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F468 0027B0C8 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F46C 0027B0CC 50 80 26 F6 */ rlwimi r0, r4, 4, 0x1b, 0x1b
+/* 8027F470 0027B0D0 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F474 0027B0D4 48 00 01 94 */ b lbl_8027F608
+/* 8027F478 0027B0D8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F47C 0027B0DC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F480 0027B0E0 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
+/* 8027F484 0027B0E4 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F488 0027B0E8 48 00 01 80 */ b lbl_8027F608
+/* 8027F48C 0027B0EC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F490 0027B0F0 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F494 0027B0F4 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
+/* 8027F498 0027B0F8 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F49C 0027B0FC 48 00 01 6C */ b lbl_8027F608
+/* 8027F4A0 0027B100 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F4A4 0027B104 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F4A8 0027B108 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
+/* 8027F4AC 0027B10C 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F4B0 0027B110 48 00 01 58 */ b lbl_8027F608
+/* 8027F4B4 0027B114 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F4B8 0027B118 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F4BC 0027B11C 50 80 45 EE */ rlwimi r0, r4, 8, 0x17, 0x17
+/* 8027F4C0 0027B120 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F4C4 0027B124 48 00 01 44 */ b lbl_8027F608
+/* 8027F4C8 0027B128 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F4CC 0027B12C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F4D0 0027B130 50 80 4D 6C */ rlwimi r0, r4, 9, 0x15, 0x16
+/* 8027F4D4 0027B134 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F4D8 0027B138 48 00 01 30 */ b lbl_8027F608
+/* 8027F4DC 0027B13C 2C 04 00 00 */ cmpwi r4, 0
+/* 8027F4E0 0027B140 41 82 00 20 */ beq lbl_8027F500
+/* 8027F4E4 0027B144 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F4E8 0027B148 38 60 00 01 */ li r3, 1
+/* 8027F4EC 0027B14C 38 00 00 00 */ li r0, 0
+/* 8027F4F0 0027B150 98 65 05 24 */ stb r3, 0x524(r5)
+/* 8027F4F4 0027B154 98 05 05 25 */ stb r0, 0x525(r5)
+/* 8027F4F8 0027B158 90 85 05 20 */ stw r4, 0x520(r5)
+/* 8027F4FC 0027B15C 48 00 01 0C */ b lbl_8027F608
+lbl_8027F500:
+/* 8027F500 0027B160 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F504 0027B164 38 00 00 00 */ li r0, 0
+/* 8027F508 0027B168 98 03 05 24 */ stb r0, 0x524(r3)
+/* 8027F50C 0027B16C 48 00 00 FC */ b lbl_8027F608
+/* 8027F510 0027B170 2C 04 00 00 */ cmpwi r4, 0
+/* 8027F514 0027B174 41 82 00 20 */ beq lbl_8027F534
+/* 8027F518 0027B178 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F51C 0027B17C 38 60 00 01 */ li r3, 1
+/* 8027F520 0027B180 38 00 00 00 */ li r0, 0
+/* 8027F524 0027B184 98 65 05 25 */ stb r3, 0x525(r5)
+/* 8027F528 0027B188 98 05 05 24 */ stb r0, 0x524(r5)
+/* 8027F52C 0027B18C 90 85 05 20 */ stw r4, 0x520(r5)
+/* 8027F530 0027B190 48 00 00 D8 */ b lbl_8027F608
+lbl_8027F534:
+/* 8027F534 0027B194 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F538 0027B198 38 00 00 00 */ li r0, 0
+/* 8027F53C 0027B19C 98 03 05 25 */ stb r0, 0x525(r3)
+/* 8027F540 0027B1A0 48 00 00 C8 */ b lbl_8027F608
+/* 8027F544 0027B1A4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F548 0027B1A8 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F54C 0027B1AC 50 80 6C 64 */ rlwimi r0, r4, 0xd, 0x11, 0x12
+/* 8027F550 0027B1B0 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F554 0027B1B4 48 00 00 B4 */ b lbl_8027F608
+/* 8027F558 0027B1B8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F55C 0027B1BC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027F560 0027B1C0 50 80 7B E0 */ rlwimi r0, r4, 0xf, 0xf, 0x10
+/* 8027F564 0027B1C4 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027F568 0027B1C8 48 00 00 A0 */ b lbl_8027F608
+/* 8027F56C 0027B1CC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F570 0027B1D0 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F574 0027B1D4 50 80 07 BE */ rlwimi r0, r4, 0, 0x1e, 0x1f
+/* 8027F578 0027B1D8 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F57C 0027B1DC 48 00 00 8C */ b lbl_8027F608
+/* 8027F580 0027B1E0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F584 0027B1E4 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F588 0027B1E8 50 80 17 3A */ rlwimi r0, r4, 2, 0x1c, 0x1d
+/* 8027F58C 0027B1EC 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F590 0027B1F0 48 00 00 78 */ b lbl_8027F608
+/* 8027F594 0027B1F4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F598 0027B1F8 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F59C 0027B1FC 50 80 26 B6 */ rlwimi r0, r4, 4, 0x1a, 0x1b
+/* 8027F5A0 0027B200 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F5A4 0027B204 48 00 00 64 */ b lbl_8027F608
+/* 8027F5A8 0027B208 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F5AC 0027B20C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F5B0 0027B210 50 80 36 32 */ rlwimi r0, r4, 6, 0x18, 0x19
+/* 8027F5B4 0027B214 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F5B8 0027B218 48 00 00 50 */ b lbl_8027F608
+/* 8027F5BC 0027B21C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F5C0 0027B220 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F5C4 0027B224 50 80 45 AE */ rlwimi r0, r4, 8, 0x16, 0x17
+/* 8027F5C8 0027B228 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F5CC 0027B22C 48 00 00 3C */ b lbl_8027F608
+/* 8027F5D0 0027B230 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F5D4 0027B234 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F5D8 0027B238 50 80 55 2A */ rlwimi r0, r4, 0xa, 0x14, 0x15
+/* 8027F5DC 0027B23C 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F5E0 0027B240 48 00 00 28 */ b lbl_8027F608
+/* 8027F5E4 0027B244 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F5E8 0027B248 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F5EC 0027B24C 50 80 64 A6 */ rlwimi r0, r4, 0xc, 0x12, 0x13
+/* 8027F5F0 0027B250 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8027F5F4 0027B254 48 00 00 14 */ b lbl_8027F608
+/* 8027F5F8 0027B258 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F5FC 0027B25C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F600 0027B260 50 80 74 22 */ rlwimi r0, r4, 0xe, 0x10, 0x11
+/* 8027F604 0027B264 90 03 00 18 */ stw r0, 0x18(r3)
+lbl_8027F608:
+/* 8027F608 0027B268 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F60C 0027B26C 88 04 05 24 */ lbz r0, 0x524(r4)
+/* 8027F610 0027B270 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F614 0027B274 40 82 00 10 */ bne lbl_8027F624
+/* 8027F618 0027B278 88 04 05 25 */ lbz r0, 0x525(r4)
+/* 8027F61C 0027B27C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F620 0027B280 41 82 00 1C */ beq lbl_8027F63C
+lbl_8027F624:
+/* 8027F624 0027B284 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F628 0027B288 80 05 05 20 */ lwz r0, 0x520(r5)
+/* 8027F62C 0027B28C 80 65 00 14 */ lwz r3, 0x14(r5)
+/* 8027F630 0027B290 50 03 5C E8 */ rlwimi r3, r0, 0xb, 0x13, 0x14
+/* 8027F634 0027B294 90 65 00 14 */ stw r3, 0x14(r5)
+/* 8027F638 0027B298 48 00 00 10 */ b lbl_8027F648
+lbl_8027F63C:
+/* 8027F63C 0027B29C 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 8027F640 0027B2A0 54 00 05 64 */ rlwinm r0, r0, 0, 0x15, 0x12
+/* 8027F644 0027B2A4 90 04 00 14 */ stw r0, 0x14(r4)
+lbl_8027F648:
+/* 8027F648 0027B2A8 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 8027F64C 0027B2AC 60 00 00 08 */ ori r0, r0, 8
+/* 8027F650 0027B2B0 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 8027F654 0027B2B4 4E 80 00 20 */ blr
+
+.global GXSetVtxDescv
+GXSetVtxDescv:
+/* 8027F658 0027B2B8 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F65C 0027B2BC 38 E0 00 00 */ li r7, 0
+/* 8027F660 0027B2C0 39 00 00 01 */ li r8, 1
+/* 8027F664 0027B2C4 3C 80 80 43 */ lis r4, 0x8043
+/* 8027F668 0027B2C8 48 00 01 A8 */ b lbl_8027F810
+lbl_8027F66C:
+/* 8027F66C 0027B2CC 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8027F670 0027B2D0 80 03 00 04 */ lwz r0, 4(r3)
+/* 8027F674 0027B2D4 28 06 00 19 */ cmplwi r6, 0x19
+/* 8027F678 0027B2D8 41 81 01 94 */ bgt lbl_8027F80C
+/* 8027F67C 0027B2DC 39 24 4D 78 */ addi r9, r4, 0x4d78
+/* 8027F680 0027B2E0 54 C6 10 3A */ slwi r6, r6, 2
+/* 8027F684 0027B2E4 7D 29 30 2E */ lwzx r9, r9, r6
+/* 8027F688 0027B2E8 7D 29 03 A6 */ mtctr r9
+/* 8027F68C 0027B2EC 4E 80 04 20 */ bctr
+/* 8027F690 0027B2F0 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F694 0027B2F4 50 06 07 FE */ rlwimi r6, r0, 0, 0x1f, 0x1f
+/* 8027F698 0027B2F8 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F69C 0027B2FC 48 00 01 70 */ b lbl_8027F80C
+/* 8027F6A0 0027B300 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6A4 0027B304 50 06 0F BC */ rlwimi r6, r0, 1, 0x1e, 0x1e
+/* 8027F6A8 0027B308 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6AC 0027B30C 48 00 01 60 */ b lbl_8027F80C
+/* 8027F6B0 0027B310 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6B4 0027B314 50 06 17 7A */ rlwimi r6, r0, 2, 0x1d, 0x1d
+/* 8027F6B8 0027B318 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6BC 0027B31C 48 00 01 50 */ b lbl_8027F80C
+/* 8027F6C0 0027B320 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6C4 0027B324 50 06 1F 38 */ rlwimi r6, r0, 3, 0x1c, 0x1c
+/* 8027F6C8 0027B328 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6CC 0027B32C 48 00 01 40 */ b lbl_8027F80C
+/* 8027F6D0 0027B330 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6D4 0027B334 50 06 26 F6 */ rlwimi r6, r0, 4, 0x1b, 0x1b
+/* 8027F6D8 0027B338 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6DC 0027B33C 48 00 01 30 */ b lbl_8027F80C
+/* 8027F6E0 0027B340 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6E4 0027B344 50 06 2E B4 */ rlwimi r6, r0, 5, 0x1a, 0x1a
+/* 8027F6E8 0027B348 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6EC 0027B34C 48 00 01 20 */ b lbl_8027F80C
+/* 8027F6F0 0027B350 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F6F4 0027B354 50 06 36 72 */ rlwimi r6, r0, 6, 0x19, 0x19
+/* 8027F6F8 0027B358 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F6FC 0027B35C 48 00 01 10 */ b lbl_8027F80C
+/* 8027F700 0027B360 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F704 0027B364 50 06 3E 30 */ rlwimi r6, r0, 7, 0x18, 0x18
+/* 8027F708 0027B368 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F70C 0027B36C 48 00 01 00 */ b lbl_8027F80C
+/* 8027F710 0027B370 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F714 0027B374 50 06 45 EE */ rlwimi r6, r0, 8, 0x17, 0x17
+/* 8027F718 0027B378 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F71C 0027B37C 48 00 00 F0 */ b lbl_8027F80C
+/* 8027F720 0027B380 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F724 0027B384 50 06 4D 6C */ rlwimi r6, r0, 9, 0x15, 0x16
+/* 8027F728 0027B388 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F72C 0027B38C 48 00 00 E0 */ b lbl_8027F80C
+/* 8027F730 0027B390 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F734 0027B394 41 82 00 14 */ beq lbl_8027F748
+/* 8027F738 0027B398 99 05 05 24 */ stb r8, 0x524(r5)
+/* 8027F73C 0027B39C 98 E5 05 25 */ stb r7, 0x525(r5)
+/* 8027F740 0027B3A0 90 05 05 20 */ stw r0, 0x520(r5)
+/* 8027F744 0027B3A4 48 00 00 C8 */ b lbl_8027F80C
+lbl_8027F748:
+/* 8027F748 0027B3A8 98 E5 05 24 */ stb r7, 0x524(r5)
+/* 8027F74C 0027B3AC 48 00 00 C0 */ b lbl_8027F80C
+/* 8027F750 0027B3B0 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F754 0027B3B4 41 82 00 14 */ beq lbl_8027F768
+/* 8027F758 0027B3B8 99 05 05 25 */ stb r8, 0x525(r5)
+/* 8027F75C 0027B3BC 98 E5 05 24 */ stb r7, 0x524(r5)
+/* 8027F760 0027B3C0 90 05 05 20 */ stw r0, 0x520(r5)
+/* 8027F764 0027B3C4 48 00 00 A8 */ b lbl_8027F80C
+lbl_8027F768:
+/* 8027F768 0027B3C8 98 E5 05 25 */ stb r7, 0x525(r5)
+/* 8027F76C 0027B3CC 48 00 00 A0 */ b lbl_8027F80C
+/* 8027F770 0027B3D0 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F774 0027B3D4 50 06 6C 64 */ rlwimi r6, r0, 0xd, 0x11, 0x12
+/* 8027F778 0027B3D8 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F77C 0027B3DC 48 00 00 90 */ b lbl_8027F80C
+/* 8027F780 0027B3E0 80 C5 00 14 */ lwz r6, 0x14(r5)
+/* 8027F784 0027B3E4 50 06 7B E0 */ rlwimi r6, r0, 0xf, 0xf, 0x10
+/* 8027F788 0027B3E8 90 C5 00 14 */ stw r6, 0x14(r5)
+/* 8027F78C 0027B3EC 48 00 00 80 */ b lbl_8027F80C
+/* 8027F790 0027B3F0 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F794 0027B3F4 50 06 07 BE */ rlwimi r6, r0, 0, 0x1e, 0x1f
+/* 8027F798 0027B3F8 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F79C 0027B3FC 48 00 00 70 */ b lbl_8027F80C
+/* 8027F7A0 0027B400 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7A4 0027B404 50 06 17 3A */ rlwimi r6, r0, 2, 0x1c, 0x1d
+/* 8027F7A8 0027B408 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7AC 0027B40C 48 00 00 60 */ b lbl_8027F80C
+/* 8027F7B0 0027B410 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7B4 0027B414 50 06 26 B6 */ rlwimi r6, r0, 4, 0x1a, 0x1b
+/* 8027F7B8 0027B418 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7BC 0027B41C 48 00 00 50 */ b lbl_8027F80C
+/* 8027F7C0 0027B420 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7C4 0027B424 50 06 36 32 */ rlwimi r6, r0, 6, 0x18, 0x19
+/* 8027F7C8 0027B428 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7CC 0027B42C 48 00 00 40 */ b lbl_8027F80C
+/* 8027F7D0 0027B430 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7D4 0027B434 50 06 45 AE */ rlwimi r6, r0, 8, 0x16, 0x17
+/* 8027F7D8 0027B438 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7DC 0027B43C 48 00 00 30 */ b lbl_8027F80C
+/* 8027F7E0 0027B440 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7E4 0027B444 50 06 55 2A */ rlwimi r6, r0, 0xa, 0x14, 0x15
+/* 8027F7E8 0027B448 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7EC 0027B44C 48 00 00 20 */ b lbl_8027F80C
+/* 8027F7F0 0027B450 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F7F4 0027B454 50 06 64 A6 */ rlwimi r6, r0, 0xc, 0x12, 0x13
+/* 8027F7F8 0027B458 90 C5 00 18 */ stw r6, 0x18(r5)
+/* 8027F7FC 0027B45C 48 00 00 10 */ b lbl_8027F80C
+/* 8027F800 0027B460 80 C5 00 18 */ lwz r6, 0x18(r5)
+/* 8027F804 0027B464 50 06 74 22 */ rlwimi r6, r0, 0xe, 0x10, 0x11
+/* 8027F808 0027B468 90 C5 00 18 */ stw r6, 0x18(r5)
+lbl_8027F80C:
+/* 8027F80C 0027B46C 38 63 00 08 */ addi r3, r3, 8
+lbl_8027F810:
+/* 8027F810 0027B470 80 03 00 00 */ lwz r0, 0(r3)
+/* 8027F814 0027B474 2C 00 00 FF */ cmpwi r0, 0xff
+/* 8027F818 0027B478 40 82 FE 54 */ bne lbl_8027F66C
+/* 8027F81C 0027B47C 88 05 05 24 */ lbz r0, 0x524(r5)
+/* 8027F820 0027B480 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F824 0027B484 40 82 00 10 */ bne lbl_8027F834
+/* 8027F828 0027B488 88 05 05 25 */ lbz r0, 0x525(r5)
+/* 8027F82C 0027B48C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F830 0027B490 41 82 00 18 */ beq lbl_8027F848
+lbl_8027F834:
+/* 8027F834 0027B494 80 05 05 20 */ lwz r0, 0x520(r5)
+/* 8027F838 0027B498 80 65 00 14 */ lwz r3, 0x14(r5)
+/* 8027F83C 0027B49C 50 03 5C E8 */ rlwimi r3, r0, 0xb, 0x13, 0x14
+/* 8027F840 0027B4A0 90 65 00 14 */ stw r3, 0x14(r5)
+/* 8027F844 0027B4A4 48 00 00 10 */ b lbl_8027F854
+lbl_8027F848:
+/* 8027F848 0027B4A8 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 8027F84C 0027B4AC 54 00 05 64 */ rlwinm r0, r0, 0, 0x15, 0x12
+/* 8027F850 0027B4B0 90 05 00 14 */ stw r0, 0x14(r5)
+lbl_8027F854:
+/* 8027F854 0027B4B4 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 8027F858 0027B4B8 60 00 00 08 */ ori r0, r0, 8
+/* 8027F85C 0027B4BC 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 8027F860 0027B4C0 4E 80 00 20 */ blr
+
+.global __GXSetVCD
+__GXSetVCD:
+/* 8027F864 0027B4C4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 8027F868 0027B4C8 38 C0 00 08 */ li r6, 8
+/* 8027F86C 0027B4CC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 8027F870 0027B4D0 38 80 00 50 */ li r4, 0x50
+/* 8027F874 0027B4D4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F878 0027B4D8 38 00 00 60 */ li r0, 0x60
+/* 8027F87C 0027B4DC 98 85 80 00 */ stb r4, -0x8000(r5)
+/* 8027F880 0027B4E0 80 83 00 14 */ lwz r4, 0x14(r3)
+/* 8027F884 0027B4E4 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 8027F888 0027B4E8 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 8027F88C 0027B4EC 98 05 80 00 */ stb r0, -0x8000(r5)
+/* 8027F890 0027B4F0 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F894 0027B4F4 90 05 80 00 */ stw r0, -0x8000(r5)
+/* 8027F898 0027B4F8 88 03 05 25 */ lbz r0, 0x525(r3)
+/* 8027F89C 0027B4FC 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F8A0 0027B500 41 82 00 0C */ beq lbl_8027F8AC
+/* 8027F8A4 0027B504 39 00 00 02 */ li r8, 2
+/* 8027F8A8 0027B508 48 00 00 14 */ b lbl_8027F8BC
+lbl_8027F8AC:
+/* 8027F8AC 0027B50C 88 83 05 24 */ lbz r4, 0x524(r3)
+/* 8027F8B0 0027B510 7C 04 00 D0 */ neg r0, r4
+/* 8027F8B4 0027B514 7C 00 23 78 */ or r0, r0, r4
+/* 8027F8B8 0027B518 54 08 0F FE */ srwi r8, r0, 0x1f
+lbl_8027F8BC:
+/* 8027F8BC 0027B51C 80 A3 00 14 */ lwz r5, 0x14(r3)
+/* 8027F8C0 0027B520 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 8027F8C4 0027B524 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 8027F8C8 0027B528 38 00 00 10 */ li r0, 0x10
+/* 8027F8CC 0027B52C 54 A7 9F 3E */ rlwinm r7, r5, 0x13, 0x1c, 0x1f
+/* 8027F8D0 0027B530 38 A0 10 08 */ li r5, 0x1008
+/* 8027F8D4 0027B534 7C E7 00 34 */ cntlzw r7, r7
+/* 8027F8D8 0027B538 54 84 04 3E */ clrlwi r4, r4, 0x10
+/* 8027F8DC 0027B53C 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
+/* 8027F8E0 0027B540 20 E7 00 21 */ subfic r7, r7, 0x21
+/* 8027F8E4 0027B544 7C 80 00 34 */ cntlzw r0, r4
+/* 8027F8E8 0027B548 55 04 10 3A */ slwi r4, r8, 2
+/* 8027F8EC 0027B54C 20 00 00 21 */ subfic r0, r0, 0x21
+/* 8027F8F0 0027B550 54 E7 F8 7E */ srwi r7, r7, 1
+/* 8027F8F4 0027B554 54 00 18 36 */ rlwinm r0, r0, 3, 0, 0x1b
+/* 8027F8F8 0027B558 90 A6 80 00 */ stw r5, -0x8000(r6)
+/* 8027F8FC 0027B55C 7C 05 3B 78 */ or r5, r0, r7
+/* 8027F900 0027B560 7C A4 23 78 */ or r4, r5, r4
+/* 8027F904 0027B564 38 00 00 01 */ li r0, 1
+/* 8027F908 0027B568 90 86 80 00 */ stw r4, -0x8000(r6)
+/* 8027F90C 0027B56C B0 03 00 02 */ sth r0, 2(r3)
+/* 8027F910 0027B570 4E 80 00 20 */ blr
+
+.global __GXCalculateVLim
+__GXCalculateVLim:
+/* 8027F914 0027B574 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027F918 0027B578 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F91C 0027B57C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027F920 0027B580 A0 03 00 04 */ lhz r0, 4(r3)
+/* 8027F924 0027B584 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F928 0027B588 41 82 01 0C */ beq lbl_8027FA34
+/* 8027F92C 0027B58C 81 23 00 14 */ lwz r9, 0x14(r3)
+/* 8027F930 0027B590 38 ED 88 60 */ addi r7, r13, lbl_8063DB20-_SDA_BASE_
+/* 8027F934 0027B594 80 A3 00 1C */ lwz r5, 0x1c(r3)
+/* 8027F938 0027B598 55 20 07 FE */ clrlwi r0, r9, 0x1f
+/* 8027F93C 0027B59C 55 24 FF FE */ rlwinm r4, r9, 0x1f, 0x1f, 0x1f
+/* 8027F940 0027B5A0 7C 00 22 14 */ add r0, r0, r4
+/* 8027F944 0027B5A4 54 A8 BF FE */ rlwinm r8, r5, 0x17, 0x1f, 0x1f
+/* 8027F948 0027B5A8 55 24 F7 FE */ rlwinm r4, r9, 0x1e, 0x1f, 0x1f
+/* 8027F94C 0027B5AC 55 25 AF BE */ rlwinm r5, r9, 0x15, 0x1e, 0x1f
+/* 8027F950 0027B5B0 7C 00 22 14 */ add r0, r0, r4
+/* 8027F954 0027B5B4 2C 08 00 01 */ cmpwi r8, 1
+/* 8027F958 0027B5B8 55 24 EF FE */ rlwinm r4, r9, 0x1d, 0x1f, 0x1f
+/* 8027F95C 0027B5BC 55 26 D7 FE */ rlwinm r6, r9, 0x1a, 0x1f, 0x1f
+/* 8027F960 0027B5C0 7C 00 22 14 */ add r0, r0, r4
+/* 8027F964 0027B5C4 55 28 C7 FE */ rlwinm r8, r9, 0x18, 0x1f, 0x1f
+/* 8027F968 0027B5C8 55 24 E7 FE */ rlwinm r4, r9, 0x1c, 0x1f, 0x1f
+/* 8027F96C 0027B5CC 83 E3 00 18 */ lwz r31, 0x18(r3)
+/* 8027F970 0027B5D0 7C 00 22 14 */ add r0, r0, r4
+/* 8027F974 0027B5D4 7C A7 28 AE */ lbzx r5, r7, r5
+/* 8027F978 0027B5D8 55 24 DF FE */ rlwinm r4, r9, 0x1b, 0x1f, 0x1f
+/* 8027F97C 0027B5DC 7C 00 22 14 */ add r0, r0, r4
+/* 8027F980 0027B5E0 7C 00 32 14 */ add r0, r0, r6
+/* 8027F984 0027B5E4 55 26 CF FE */ rlwinm r6, r9, 0x19, 0x1f, 0x1f
+/* 8027F988 0027B5E8 7C 00 32 14 */ add r0, r0, r6
+/* 8027F98C 0027B5EC 55 24 BF BE */ rlwinm r4, r9, 0x17, 0x1e, 0x1f
+/* 8027F990 0027B5F0 7C C7 20 AE */ lbzx r6, r7, r4
+/* 8027F994 0027B5F4 7C 00 42 14 */ add r0, r0, r8
+/* 8027F998 0027B5F8 38 80 00 01 */ li r4, 1
+/* 8027F99C 0027B5FC 7C 00 32 14 */ add r0, r0, r6
+/* 8027F9A0 0027B600 40 82 00 08 */ bne lbl_8027F9A8
+/* 8027F9A4 0027B604 38 80 00 03 */ li r4, 3
+lbl_8027F9A8:
+/* 8027F9A8 0027B608 7D 05 21 D6 */ mullw r8, r5, r4
+/* 8027F9AC 0027B60C 38 ED 88 58 */ addi r7, r13, lbl_8063DB18-_SDA_BASE_
+/* 8027F9B0 0027B610 55 24 9F BE */ rlwinm r4, r9, 0x13, 0x1e, 0x1f
+/* 8027F9B4 0027B614 55 25 8F BE */ rlwinm r5, r9, 0x11, 0x1e, 0x1f
+/* 8027F9B8 0027B618 7C C7 20 AE */ lbzx r6, r7, r4
+/* 8027F9BC 0027B61C 7C A7 28 AE */ lbzx r5, r7, r5
+/* 8027F9C0 0027B620 7C 00 42 14 */ add r0, r0, r8
+/* 8027F9C4 0027B624 39 8D 88 5C */ addi r12, r13, lbl_8063DB1C-_SDA_BASE_
+/* 8027F9C8 0027B628 7C 00 32 14 */ add r0, r0, r6
+/* 8027F9CC 0027B62C 57 E4 07 BE */ clrlwi r4, r31, 0x1e
+/* 8027F9D0 0027B630 57 EA F7 BE */ rlwinm r10, r31, 0x1e, 0x1e, 0x1f
+/* 8027F9D4 0027B634 7D 6C 20 AE */ lbzx r11, r12, r4
+/* 8027F9D8 0027B638 7C 00 2A 14 */ add r0, r0, r5
+/* 8027F9DC 0027B63C 57 E9 E7 BE */ rlwinm r9, r31, 0x1c, 0x1e, 0x1f
+/* 8027F9E0 0027B640 57 E8 D7 BE */ rlwinm r8, r31, 0x1a, 0x1e, 0x1f
+/* 8027F9E4 0027B644 57 E7 C7 BE */ rlwinm r7, r31, 0x18, 0x1e, 0x1f
+/* 8027F9E8 0027B648 57 E6 B7 BE */ rlwinm r6, r31, 0x16, 0x1e, 0x1f
+/* 8027F9EC 0027B64C 57 E5 A7 BE */ rlwinm r5, r31, 0x14, 0x1e, 0x1f
+/* 8027F9F0 0027B650 57 E4 97 BE */ rlwinm r4, r31, 0x12, 0x1e, 0x1f
+/* 8027F9F4 0027B654 7D 4C 50 AE */ lbzx r10, r12, r10
+/* 8027F9F8 0027B658 7C 00 5A 14 */ add r0, r0, r11
+/* 8027F9FC 0027B65C 7D 2C 48 AE */ lbzx r9, r12, r9
+/* 8027FA00 0027B660 7C 00 52 14 */ add r0, r0, r10
+/* 8027FA04 0027B664 7D 0C 40 AE */ lbzx r8, r12, r8
+/* 8027FA08 0027B668 7C 00 4A 14 */ add r0, r0, r9
+/* 8027FA0C 0027B66C 7C EC 38 AE */ lbzx r7, r12, r7
+/* 8027FA10 0027B670 7C 00 42 14 */ add r0, r0, r8
+/* 8027FA14 0027B674 7C CC 30 AE */ lbzx r6, r12, r6
+/* 8027FA18 0027B678 7C 00 3A 14 */ add r0, r0, r7
+/* 8027FA1C 0027B67C 7C AC 28 AE */ lbzx r5, r12, r5
+/* 8027FA20 0027B680 7C 00 32 14 */ add r0, r0, r6
+/* 8027FA24 0027B684 7C 8C 20 AE */ lbzx r4, r12, r4
+/* 8027FA28 0027B688 7C 00 2A 14 */ add r0, r0, r5
+/* 8027FA2C 0027B68C 7C 00 22 14 */ add r0, r0, r4
+/* 8027FA30 0027B690 B0 03 00 06 */ sth r0, 6(r3)
+lbl_8027FA34:
+/* 8027FA34 0027B694 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027FA38 0027B698 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027FA3C 0027B69C 4E 80 00 20 */ blr
+
+.global GXGetVtxDesc
+GXGetVtxDesc:
+/* 8027FA40 0027B6A0 28 03 00 19 */ cmplwi r3, 0x19
+/* 8027FA44 0027B6A4 41 81 01 A4 */ bgt lbl_8027FBE8
+/* 8027FA48 0027B6A8 3C A0 80 43 */ lis r5, lbl_80434DE0@ha
+/* 8027FA4C 0027B6AC 54 60 10 3A */ slwi r0, r3, 2
+/* 8027FA50 0027B6B0 38 A5 4D E0 */ addi r5, r5, lbl_80434DE0@l
+/* 8027FA54 0027B6B4 7C A5 00 2E */ lwzx r5, r5, r0
+/* 8027FA58 0027B6B8 7C A9 03 A6 */ mtctr r5
+/* 8027FA5C 0027B6BC 4E 80 04 20 */ bctr
+/* 8027FA60 0027B6C0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FA64 0027B6C4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FA68 0027B6C8 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 8027FA6C 0027B6CC 48 00 01 80 */ b lbl_8027FBEC
+/* 8027FA70 0027B6D0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FA74 0027B6D4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FA78 0027B6D8 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f
+/* 8027FA7C 0027B6DC 48 00 01 70 */ b lbl_8027FBEC
+/* 8027FA80 0027B6E0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FA84 0027B6E4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FA88 0027B6E8 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f
+/* 8027FA8C 0027B6EC 48 00 01 60 */ b lbl_8027FBEC
+/* 8027FA90 0027B6F0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FA94 0027B6F4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FA98 0027B6F8 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f
+/* 8027FA9C 0027B6FC 48 00 01 50 */ b lbl_8027FBEC
+/* 8027FAA0 0027B700 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAA4 0027B704 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAA8 0027B708 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
+/* 8027FAAC 0027B70C 48 00 01 40 */ b lbl_8027FBEC
+/* 8027FAB0 0027B710 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAB4 0027B714 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAB8 0027B718 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
+/* 8027FABC 0027B71C 48 00 01 30 */ b lbl_8027FBEC
+/* 8027FAC0 0027B720 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAC4 0027B724 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAC8 0027B728 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f
+/* 8027FACC 0027B72C 48 00 01 20 */ b lbl_8027FBEC
+/* 8027FAD0 0027B730 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAD4 0027B734 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAD8 0027B738 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f
+/* 8027FADC 0027B73C 48 00 01 10 */ b lbl_8027FBEC
+/* 8027FAE0 0027B740 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAE4 0027B744 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAE8 0027B748 54 00 C7 FE */ rlwinm r0, r0, 0x18, 0x1f, 0x1f
+/* 8027FAEC 0027B74C 48 00 01 00 */ b lbl_8027FBEC
+/* 8027FAF0 0027B750 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FAF4 0027B754 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FAF8 0027B758 54 00 BF BE */ rlwinm r0, r0, 0x17, 0x1e, 0x1f
+/* 8027FAFC 0027B75C 48 00 00 F0 */ b lbl_8027FBEC
+/* 8027FB00 0027B760 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB04 0027B764 88 03 05 24 */ lbz r0, 0x524(r3)
+/* 8027FB08 0027B768 2C 00 00 00 */ cmpwi r0, 0
+/* 8027FB0C 0027B76C 41 82 00 10 */ beq lbl_8027FB1C
+/* 8027FB10 0027B770 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FB14 0027B774 54 00 AF BE */ rlwinm r0, r0, 0x15, 0x1e, 0x1f
+/* 8027FB18 0027B778 48 00 00 D4 */ b lbl_8027FBEC
+lbl_8027FB1C:
+/* 8027FB1C 0027B77C 38 00 00 00 */ li r0, 0
+/* 8027FB20 0027B780 48 00 00 CC */ b lbl_8027FBEC
+/* 8027FB24 0027B784 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB28 0027B788 88 03 05 25 */ lbz r0, 0x525(r3)
+/* 8027FB2C 0027B78C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027FB30 0027B790 41 82 00 10 */ beq lbl_8027FB40
+/* 8027FB34 0027B794 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FB38 0027B798 54 00 AF BE */ rlwinm r0, r0, 0x15, 0x1e, 0x1f
+/* 8027FB3C 0027B79C 48 00 00 B0 */ b lbl_8027FBEC
+lbl_8027FB40:
+/* 8027FB40 0027B7A0 38 00 00 00 */ li r0, 0
+/* 8027FB44 0027B7A4 48 00 00 A8 */ b lbl_8027FBEC
+/* 8027FB48 0027B7A8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB4C 0027B7AC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FB50 0027B7B0 54 00 9F BE */ rlwinm r0, r0, 0x13, 0x1e, 0x1f
+/* 8027FB54 0027B7B4 48 00 00 98 */ b lbl_8027FBEC
+/* 8027FB58 0027B7B8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB5C 0027B7BC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8027FB60 0027B7C0 54 00 8F BE */ rlwinm r0, r0, 0x11, 0x1e, 0x1f
+/* 8027FB64 0027B7C4 48 00 00 88 */ b lbl_8027FBEC
+/* 8027FB68 0027B7C8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB6C 0027B7CC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FB70 0027B7D0 54 00 07 BE */ clrlwi r0, r0, 0x1e
+/* 8027FB74 0027B7D4 48 00 00 78 */ b lbl_8027FBEC
+/* 8027FB78 0027B7D8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB7C 0027B7DC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FB80 0027B7E0 54 00 F7 BE */ rlwinm r0, r0, 0x1e, 0x1e, 0x1f
+/* 8027FB84 0027B7E4 48 00 00 68 */ b lbl_8027FBEC
+/* 8027FB88 0027B7E8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB8C 0027B7EC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FB90 0027B7F0 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f
+/* 8027FB94 0027B7F4 48 00 00 58 */ b lbl_8027FBEC
+/* 8027FB98 0027B7F8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FB9C 0027B7FC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FBA0 0027B800 54 00 D7 BE */ rlwinm r0, r0, 0x1a, 0x1e, 0x1f
+/* 8027FBA4 0027B804 48 00 00 48 */ b lbl_8027FBEC
+/* 8027FBA8 0027B808 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FBAC 0027B80C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FBB0 0027B810 54 00 C7 BE */ rlwinm r0, r0, 0x18, 0x1e, 0x1f
+/* 8027FBB4 0027B814 48 00 00 38 */ b lbl_8027FBEC
+/* 8027FBB8 0027B818 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FBBC 0027B81C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FBC0 0027B820 54 00 B7 BE */ rlwinm r0, r0, 0x16, 0x1e, 0x1f
+/* 8027FBC4 0027B824 48 00 00 28 */ b lbl_8027FBEC
+/* 8027FBC8 0027B828 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FBCC 0027B82C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FBD0 0027B830 54 00 A7 BE */ rlwinm r0, r0, 0x14, 0x1e, 0x1f
+/* 8027FBD4 0027B834 48 00 00 18 */ b lbl_8027FBEC
+/* 8027FBD8 0027B838 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FBDC 0027B83C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027FBE0 0027B840 54 00 97 BE */ rlwinm r0, r0, 0x12, 0x1e, 0x1f
+/* 8027FBE4 0027B844 48 00 00 08 */ b lbl_8027FBEC
+lbl_8027FBE8:
+/* 8027FBE8 0027B848 38 00 00 00 */ li r0, 0
+lbl_8027FBEC:
+/* 8027FBEC 0027B84C 90 04 00 00 */ stw r0, 0(r4)
+/* 8027FBF0 0027B850 4E 80 00 20 */ blr
+
+.global GXGetVtxDescv
+GXGetVtxDescv:
+/* 8027FBF4 0027B854 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027FBF8 0027B858 7C 08 02 A6 */ mflr r0
+/* 8027FBFC 0027B85C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027FC00 0027B860 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8027FC04 0027B864 3B E0 00 00 */ li r31, 0
+/* 8027FC08 0027B868 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027FC0C 0027B86C 3B C0 00 00 */ li r30, 0
+/* 8027FC10 0027B870 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027FC14 0027B874 7C 7D 1B 78 */ mr r29, r3
+lbl_8027FC18:
+/* 8027FC18 0027B878 7C 9D FA 14 */ add r4, r29, r31
+/* 8027FC1C 0027B87C 7F DD F9 2E */ stwx r30, r29, r31
+/* 8027FC20 0027B880 7F C3 F3 78 */ mr r3, r30
+/* 8027FC24 0027B884 38 84 00 04 */ addi r4, r4, 4
+/* 8027FC28 0027B888 4B FF FE 19 */ bl GXGetVtxDesc
+/* 8027FC2C 0027B88C 3B DE 00 01 */ addi r30, r30, 1
+/* 8027FC30 0027B890 3B FF 00 08 */ addi r31, r31, 8
+/* 8027FC34 0027B894 2C 1E 00 14 */ cmpwi r30, 0x14
+/* 8027FC38 0027B898 40 81 FF E0 */ ble lbl_8027FC18
+/* 8027FC3C 0027B89C 57 C3 18 38 */ slwi r3, r30, 3
+/* 8027FC40 0027B8A0 38 00 00 19 */ li r0, 0x19
+/* 8027FC44 0027B8A4 7C 9D 1A 14 */ add r4, r29, r3
+/* 8027FC48 0027B8A8 90 04 00 00 */ stw r0, 0(r4)
+/* 8027FC4C 0027B8AC 38 60 00 19 */ li r3, 0x19
+/* 8027FC50 0027B8B0 38 84 00 04 */ addi r4, r4, 4
+/* 8027FC54 0027B8B4 4B FF FD ED */ bl GXGetVtxDesc
+/* 8027FC58 0027B8B8 3B DE 00 01 */ addi r30, r30, 1
+/* 8027FC5C 0027B8BC 38 60 00 FF */ li r3, 0xff
+/* 8027FC60 0027B8C0 57 C0 18 38 */ slwi r0, r30, 3
+/* 8027FC64 0027B8C4 7C 7D 01 2E */ stwx r3, r29, r0
+/* 8027FC68 0027B8C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027FC6C 0027B8CC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027FC70 0027B8D0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8027FC74 0027B8D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027FC78 0027B8D8 7C 08 03 A6 */ mtlr r0
+/* 8027FC7C 0027B8DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027FC80 0027B8E0 4E 80 00 20 */ blr
+
+.global GXClearVtxDesc
+GXClearVtxDesc:
+/* 8027FC84 0027B8E4 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FC88 0027B8E8 38 00 00 01 */ li r0, 1
+/* 8027FC8C 0027B8EC 38 60 00 00 */ li r3, 0
+/* 8027FC90 0027B8F0 38 80 00 00 */ li r4, 0
+/* 8027FC94 0027B8F4 50 03 4D 6C */ rlwimi r3, r0, 9, 0x15, 0x16
+/* 8027FC98 0027B8F8 90 65 00 14 */ stw r3, 0x14(r5)
+/* 8027FC9C 0027B8FC 90 85 00 18 */ stw r4, 0x18(r5)
+/* 8027FCA0 0027B900 98 85 05 24 */ stb r4, 0x524(r5)
+/* 8027FCA4 0027B904 98 85 05 25 */ stb r4, 0x525(r5)
+/* 8027FCA8 0027B908 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 8027FCAC 0027B90C 60 00 00 08 */ ori r0, r0, 8
+/* 8027FCB0 0027B910 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 8027FCB4 0027B914 4E 80 00 20 */ blr
+
+.global GXSetVtxAttrFmt
+GXSetVtxAttrFmt:
+/* 8027FCB8 0027B918 38 04 FF F7 */ addi r0, r4, -9
+/* 8027FCBC 0027B91C 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FCC0 0027B920 28 00 00 10 */ cmplwi r0, 0x10
+/* 8027FCC4 0027B924 54 64 10 3A */ slwi r4, r3, 2
+/* 8027FCC8 0027B928 7D 08 22 14 */ add r8, r8, r4
+/* 8027FCCC 0027B92C 41 81 01 5C */ bgt lbl_8027FE28
+/* 8027FCD0 0027B930 3C 80 80 43 */ lis r4, lbl_80434E48@ha
+/* 8027FCD4 0027B934 54 00 10 3A */ slwi r0, r0, 2
+/* 8027FCD8 0027B938 38 84 4E 48 */ addi r4, r4, lbl_80434E48@l
+/* 8027FCDC 0027B93C 7C 84 00 2E */ lwzx r4, r4, r0
+/* 8027FCE0 0027B940 7C 89 03 A6 */ mtctr r4
+/* 8027FCE4 0027B944 4E 80 04 20 */ bctr
+/* 8027FCE8 0027B948 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FCEC 0027B94C 50 A0 07 FE */ rlwimi r0, r5, 0, 0x1f, 0x1f
+/* 8027FCF0 0027B950 50 C0 0F 3C */ rlwimi r0, r6, 1, 0x1c, 0x1e
+/* 8027FCF4 0027B954 50 E0 25 F6 */ rlwimi r0, r7, 4, 0x17, 0x1b
+/* 8027FCF8 0027B958 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FCFC 0027B95C 48 00 01 2C */ b lbl_8027FE28
+/* 8027FD00 0027B960 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD04 0027B964 50 C0 54 EA */ rlwimi r0, r6, 0xa, 0x13, 0x15
+/* 8027FD08 0027B968 2C 05 00 02 */ cmpwi r5, 2
+/* 8027FD0C 0027B96C 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD10 0027B970 40 82 00 18 */ bne lbl_8027FD28
+/* 8027FD14 0027B974 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD18 0027B978 60 00 02 00 */ ori r0, r0, 0x200
+/* 8027FD1C 0027B97C 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027FD20 0027B980 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD24 0027B984 48 00 01 04 */ b lbl_8027FE28
+lbl_8027FD28:
+/* 8027FD28 0027B988 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD2C 0027B98C 50 A0 4D AC */ rlwimi r0, r5, 9, 0x16, 0x16
+/* 8027FD30 0027B990 54 00 00 7E */ clrlwi r0, r0, 1
+/* 8027FD34 0027B994 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD38 0027B998 48 00 00 F0 */ b lbl_8027FE28
+/* 8027FD3C 0027B99C 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD40 0027B9A0 50 A0 6C A4 */ rlwimi r0, r5, 0xd, 0x12, 0x12
+/* 8027FD44 0027B9A4 50 C0 73 E2 */ rlwimi r0, r6, 0xe, 0xf, 0x11
+/* 8027FD48 0027B9A8 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD4C 0027B9AC 48 00 00 DC */ b lbl_8027FE28
+/* 8027FD50 0027B9B0 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD54 0027B9B4 50 A0 8B 9C */ rlwimi r0, r5, 0x11, 0xe, 0xe
+/* 8027FD58 0027B9B8 50 C0 92 DA */ rlwimi r0, r6, 0x12, 0xb, 0xd
+/* 8027FD5C 0027B9BC 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD60 0027B9C0 48 00 00 C8 */ b lbl_8027FE28
+/* 8027FD64 0027B9C4 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FD68 0027B9C8 50 A0 AA 94 */ rlwimi r0, r5, 0x15, 0xa, 0xa
+/* 8027FD6C 0027B9CC 50 C0 B1 D2 */ rlwimi r0, r6, 0x16, 7, 9
+/* 8027FD70 0027B9D0 50 E0 C8 8C */ rlwimi r0, r7, 0x19, 2, 6
+/* 8027FD74 0027B9D4 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FD78 0027B9D8 48 00 00 B0 */ b lbl_8027FE28
+/* 8027FD7C 0027B9DC 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FD80 0027B9E0 50 A0 07 FE */ rlwimi r0, r5, 0, 0x1f, 0x1f
+/* 8027FD84 0027B9E4 50 C0 0F 3C */ rlwimi r0, r6, 1, 0x1c, 0x1e
+/* 8027FD88 0027B9E8 50 E0 25 F6 */ rlwimi r0, r7, 4, 0x17, 0x1b
+/* 8027FD8C 0027B9EC 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FD90 0027B9F0 48 00 00 98 */ b lbl_8027FE28
+/* 8027FD94 0027B9F4 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FD98 0027B9F8 50 A0 4D AC */ rlwimi r0, r5, 9, 0x16, 0x16
+/* 8027FD9C 0027B9FC 50 C0 54 EA */ rlwimi r0, r6, 0xa, 0x13, 0x15
+/* 8027FDA0 0027BA00 50 E0 6B A4 */ rlwimi r0, r7, 0xd, 0xe, 0x12
+/* 8027FDA4 0027BA04 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FDA8 0027BA08 48 00 00 80 */ b lbl_8027FE28
+/* 8027FDAC 0027BA0C 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FDB0 0027BA10 50 A0 93 5A */ rlwimi r0, r5, 0x12, 0xd, 0xd
+/* 8027FDB4 0027BA14 50 C0 9A 98 */ rlwimi r0, r6, 0x13, 0xa, 0xc
+/* 8027FDB8 0027BA18 50 E0 B1 52 */ rlwimi r0, r7, 0x16, 5, 9
+/* 8027FDBC 0027BA1C 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FDC0 0027BA20 48 00 00 68 */ b lbl_8027FE28
+/* 8027FDC4 0027BA24 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FDC8 0027BA28 50 A0 D9 08 */ rlwimi r0, r5, 0x1b, 4, 4
+/* 8027FDCC 0027BA2C 50 C0 E0 46 */ rlwimi r0, r6, 0x1c, 1, 3
+/* 8027FDD0 0027BA30 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FDD4 0027BA34 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FDD8 0027BA38 50 E0 06 FE */ rlwimi r0, r7, 0, 0x1b, 0x1f
+/* 8027FDDC 0027BA3C 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FDE0 0027BA40 48 00 00 48 */ b lbl_8027FE28
+/* 8027FDE4 0027BA44 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FDE8 0027BA48 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a
+/* 8027FDEC 0027BA4C 50 C0 35 F2 */ rlwimi r0, r6, 6, 0x17, 0x19
+/* 8027FDF0 0027BA50 50 E0 4C AC */ rlwimi r0, r7, 9, 0x12, 0x16
+/* 8027FDF4 0027BA54 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FDF8 0027BA58 48 00 00 30 */ b lbl_8027FE28
+/* 8027FDFC 0027BA5C 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FE00 0027BA60 50 A0 74 62 */ rlwimi r0, r5, 0xe, 0x11, 0x11
+/* 8027FE04 0027BA64 50 C0 7B A0 */ rlwimi r0, r6, 0xf, 0xe, 0x10
+/* 8027FE08 0027BA68 50 E0 92 5A */ rlwimi r0, r7, 0x12, 9, 0xd
+/* 8027FE0C 0027BA6C 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FE10 0027BA70 48 00 00 18 */ b lbl_8027FE28
+/* 8027FE14 0027BA74 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FE18 0027BA78 50 A0 BA 10 */ rlwimi r0, r5, 0x17, 8, 8
+/* 8027FE1C 0027BA7C 50 C0 C1 4E */ rlwimi r0, r6, 0x18, 5, 7
+/* 8027FE20 0027BA80 50 E0 D8 08 */ rlwimi r0, r7, 0x1b, 0, 4
+/* 8027FE24 0027BA84 90 08 00 5C */ stw r0, 0x5c(r8)
+lbl_8027FE28:
+/* 8027FE28 0027BA88 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FE2C 0027BA8C 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 8027FE30 0027BA90 38 60 00 01 */ li r3, 1
+/* 8027FE34 0027BA94 80 85 05 FC */ lwz r4, 0x5fc(r5)
+/* 8027FE38 0027BA98 7C 60 00 30 */ slw r0, r3, r0
+/* 8027FE3C 0027BA9C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8027FE40 0027BAA0 60 83 00 10 */ ori r3, r4, 0x10
+/* 8027FE44 0027BAA4 90 65 05 FC */ stw r3, 0x5fc(r5)
+/* 8027FE48 0027BAA8 88 65 05 FB */ lbz r3, 0x5fb(r5)
+/* 8027FE4C 0027BAAC 7C 60 03 78 */ or r0, r3, r0
+/* 8027FE50 0027BAB0 98 05 05 FB */ stb r0, 0x5fb(r5)
+/* 8027FE54 0027BAB4 4E 80 00 20 */ blr
+
+.global GXSetVtxAttrFmtv
+GXSetVtxAttrFmtv:
+/* 8027FE58 0027BAB8 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FE5C 0027BABC 54 60 10 3A */ slwi r0, r3, 2
+/* 8027FE60 0027BAC0 3C A0 80 43 */ lis r5, 0x8043
+/* 8027FE64 0027BAC4 7D 06 02 14 */ add r8, r6, r0
+/* 8027FE68 0027BAC8 48 00 01 78 */ b lbl_8027FFE0
+lbl_8027FE6C:
+/* 8027FE6C 0027BACC 80 C4 00 00 */ lwz r6, 0(r4)
+/* 8027FE70 0027BAD0 88 E4 00 0C */ lbz r7, 0xc(r4)
+/* 8027FE74 0027BAD4 38 06 FF F7 */ addi r0, r6, -9
+/* 8027FE78 0027BAD8 81 44 00 08 */ lwz r10, 8(r4)
+/* 8027FE7C 0027BADC 28 00 00 10 */ cmplwi r0, 0x10
+/* 8027FE80 0027BAE0 81 24 00 04 */ lwz r9, 4(r4)
+/* 8027FE84 0027BAE4 41 81 01 58 */ bgt lbl_8027FFDC
+/* 8027FE88 0027BAE8 38 C5 4E 8C */ addi r6, r5, 0x4e8c
+/* 8027FE8C 0027BAEC 54 00 10 3A */ slwi r0, r0, 2
+/* 8027FE90 0027BAF0 7C C6 00 2E */ lwzx r6, r6, r0
+/* 8027FE94 0027BAF4 7C C9 03 A6 */ mtctr r6
+/* 8027FE98 0027BAF8 4E 80 04 20 */ bctr
+/* 8027FE9C 0027BAFC 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FEA0 0027BB00 51 20 07 FE */ rlwimi r0, r9, 0, 0x1f, 0x1f
+/* 8027FEA4 0027BB04 51 40 0F 3C */ rlwimi r0, r10, 1, 0x1c, 0x1e
+/* 8027FEA8 0027BB08 50 E0 25 F6 */ rlwimi r0, r7, 4, 0x17, 0x1b
+/* 8027FEAC 0027BB0C 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FEB0 0027BB10 48 00 01 2C */ b lbl_8027FFDC
+/* 8027FEB4 0027BB14 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FEB8 0027BB18 51 40 54 EA */ rlwimi r0, r10, 0xa, 0x13, 0x15
+/* 8027FEBC 0027BB1C 2C 09 00 02 */ cmpwi r9, 2
+/* 8027FEC0 0027BB20 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FEC4 0027BB24 40 82 00 18 */ bne lbl_8027FEDC
+/* 8027FEC8 0027BB28 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FECC 0027BB2C 60 00 02 00 */ ori r0, r0, 0x200
+/* 8027FED0 0027BB30 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027FED4 0027BB34 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FED8 0027BB38 48 00 01 04 */ b lbl_8027FFDC
+lbl_8027FEDC:
+/* 8027FEDC 0027BB3C 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FEE0 0027BB40 51 20 4D AC */ rlwimi r0, r9, 9, 0x16, 0x16
+/* 8027FEE4 0027BB44 54 00 00 7E */ clrlwi r0, r0, 1
+/* 8027FEE8 0027BB48 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FEEC 0027BB4C 48 00 00 F0 */ b lbl_8027FFDC
+/* 8027FEF0 0027BB50 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FEF4 0027BB54 51 20 6C A4 */ rlwimi r0, r9, 0xd, 0x12, 0x12
+/* 8027FEF8 0027BB58 51 40 73 E2 */ rlwimi r0, r10, 0xe, 0xf, 0x11
+/* 8027FEFC 0027BB5C 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FF00 0027BB60 48 00 00 DC */ b lbl_8027FFDC
+/* 8027FF04 0027BB64 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FF08 0027BB68 51 20 8B 9C */ rlwimi r0, r9, 0x11, 0xe, 0xe
+/* 8027FF0C 0027BB6C 51 40 92 DA */ rlwimi r0, r10, 0x12, 0xb, 0xd
+/* 8027FF10 0027BB70 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FF14 0027BB74 48 00 00 C8 */ b lbl_8027FFDC
+/* 8027FF18 0027BB78 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 8027FF1C 0027BB7C 51 20 AA 94 */ rlwimi r0, r9, 0x15, 0xa, 0xa
+/* 8027FF20 0027BB80 51 40 B1 D2 */ rlwimi r0, r10, 0x16, 7, 9
+/* 8027FF24 0027BB84 50 E0 C8 8C */ rlwimi r0, r7, 0x19, 2, 6
+/* 8027FF28 0027BB88 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 8027FF2C 0027BB8C 48 00 00 B0 */ b lbl_8027FFDC
+/* 8027FF30 0027BB90 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FF34 0027BB94 51 20 07 FE */ rlwimi r0, r9, 0, 0x1f, 0x1f
+/* 8027FF38 0027BB98 51 40 0F 3C */ rlwimi r0, r10, 1, 0x1c, 0x1e
+/* 8027FF3C 0027BB9C 50 E0 25 F6 */ rlwimi r0, r7, 4, 0x17, 0x1b
+/* 8027FF40 0027BBA0 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FF44 0027BBA4 48 00 00 98 */ b lbl_8027FFDC
+/* 8027FF48 0027BBA8 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FF4C 0027BBAC 51 20 4D AC */ rlwimi r0, r9, 9, 0x16, 0x16
+/* 8027FF50 0027BBB0 51 40 54 EA */ rlwimi r0, r10, 0xa, 0x13, 0x15
+/* 8027FF54 0027BBB4 50 E0 6B A4 */ rlwimi r0, r7, 0xd, 0xe, 0x12
+/* 8027FF58 0027BBB8 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FF5C 0027BBBC 48 00 00 80 */ b lbl_8027FFDC
+/* 8027FF60 0027BBC0 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FF64 0027BBC4 51 20 93 5A */ rlwimi r0, r9, 0x12, 0xd, 0xd
+/* 8027FF68 0027BBC8 51 40 9A 98 */ rlwimi r0, r10, 0x13, 0xa, 0xc
+/* 8027FF6C 0027BBCC 50 E0 B1 52 */ rlwimi r0, r7, 0x16, 5, 9
+/* 8027FF70 0027BBD0 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FF74 0027BBD4 48 00 00 68 */ b lbl_8027FFDC
+/* 8027FF78 0027BBD8 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 8027FF7C 0027BBDC 51 20 D9 08 */ rlwimi r0, r9, 0x1b, 4, 4
+/* 8027FF80 0027BBE0 51 40 E0 46 */ rlwimi r0, r10, 0x1c, 1, 3
+/* 8027FF84 0027BBE4 90 08 00 3C */ stw r0, 0x3c(r8)
+/* 8027FF88 0027BBE8 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FF8C 0027BBEC 50 E0 06 FE */ rlwimi r0, r7, 0, 0x1b, 0x1f
+/* 8027FF90 0027BBF0 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FF94 0027BBF4 48 00 00 48 */ b lbl_8027FFDC
+/* 8027FF98 0027BBF8 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FF9C 0027BBFC 51 20 2E B4 */ rlwimi r0, r9, 5, 0x1a, 0x1a
+/* 8027FFA0 0027BC00 51 40 35 F2 */ rlwimi r0, r10, 6, 0x17, 0x19
+/* 8027FFA4 0027BC04 50 E0 4C AC */ rlwimi r0, r7, 9, 0x12, 0x16
+/* 8027FFA8 0027BC08 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FFAC 0027BC0C 48 00 00 30 */ b lbl_8027FFDC
+/* 8027FFB0 0027BC10 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FFB4 0027BC14 51 20 74 62 */ rlwimi r0, r9, 0xe, 0x11, 0x11
+/* 8027FFB8 0027BC18 51 40 7B A0 */ rlwimi r0, r10, 0xf, 0xe, 0x10
+/* 8027FFBC 0027BC1C 50 E0 92 5A */ rlwimi r0, r7, 0x12, 9, 0xd
+/* 8027FFC0 0027BC20 90 08 00 5C */ stw r0, 0x5c(r8)
+/* 8027FFC4 0027BC24 48 00 00 18 */ b lbl_8027FFDC
+/* 8027FFC8 0027BC28 80 08 00 5C */ lwz r0, 0x5c(r8)
+/* 8027FFCC 0027BC2C 51 20 BA 10 */ rlwimi r0, r9, 0x17, 8, 8
+/* 8027FFD0 0027BC30 51 40 C1 4E */ rlwimi r0, r10, 0x18, 5, 7
+/* 8027FFD4 0027BC34 50 E0 D8 08 */ rlwimi r0, r7, 0x1b, 0, 4
+/* 8027FFD8 0027BC38 90 08 00 5C */ stw r0, 0x5c(r8)
+lbl_8027FFDC:
+/* 8027FFDC 0027BC3C 38 84 00 10 */ addi r4, r4, 0x10
+lbl_8027FFE0:
+/* 8027FFE0 0027BC40 80 04 00 00 */ lwz r0, 0(r4)
+/* 8027FFE4 0027BC44 2C 00 00 FF */ cmpwi r0, 0xff
+/* 8027FFE8 0027BC48 40 82 FE 84 */ bne lbl_8027FE6C
+/* 8027FFEC 0027BC4C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027FFF0 0027BC50 54 60 06 3E */ clrlwi r0, r3, 0x18
+/* 8027FFF4 0027BC54 38 60 00 01 */ li r3, 1
+/* 8027FFF8 0027BC58 80 85 05 FC */ lwz r4, 0x5fc(r5)
+/* 8027FFFC 0027BC5C 7C 60 00 30 */ slw r0, r3, r0
+/* 80280000 0027BC60 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 80280004 0027BC64 60 83 00 10 */ ori r3, r4, 0x10
+/* 80280008 0027BC68 90 65 05 FC */ stw r3, 0x5fc(r5)
+/* 8028000C 0027BC6C 88 65 05 FB */ lbz r3, 0x5fb(r5)
+/* 80280010 0027BC70 7C 60 03 78 */ or r0, r3, r0
+/* 80280014 0027BC74 98 05 05 FB */ stb r0, 0x5fb(r5)
+/* 80280018 0027BC78 4E 80 00 20 */ blr
+
+.global __GXSetVAT
+__GXSetVAT:
+/* 8028001C 0027BC7C 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280020 0027BC80 39 20 00 00 */ li r9, 0
+/* 80280024 0027BC84 38 C0 00 08 */ li r6, 8
+/* 80280028 0027BC88 3C A0 CC 01 */ lis r5, 0xcc01
+/* 8028002C 0027BC8C 89 48 05 FB */ lbz r10, 0x5fb(r8)
+/* 80280030 0027BC90 7D 07 43 78 */ mr r7, r8
+lbl_80280034:
+/* 80280034 0027BC94 55 40 07 FF */ clrlwi. r0, r10, 0x1f
+/* 80280038 0027BC98 41 82 00 40 */ beq lbl_80280078
+/* 8028003C 0027BC9C 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 80280040 0027BCA0 61 24 00 70 */ ori r4, r9, 0x70
+/* 80280044 0027BCA4 61 23 00 80 */ ori r3, r9, 0x80
+/* 80280048 0027BCA8 61 20 00 90 */ ori r0, r9, 0x90
+/* 8028004C 0027BCAC 98 85 80 00 */ stb r4, -0x8000(r5)
+/* 80280050 0027BCB0 80 87 00 1C */ lwz r4, 0x1c(r7)
+/* 80280054 0027BCB4 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80280058 0027BCB8 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 8028005C 0027BCBC 98 65 80 00 */ stb r3, -0x8000(r5)
+/* 80280060 0027BCC0 80 67 00 3C */ lwz r3, 0x3c(r7)
+/* 80280064 0027BCC4 90 65 80 00 */ stw r3, -0x8000(r5)
+/* 80280068 0027BCC8 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 8028006C 0027BCCC 98 05 80 00 */ stb r0, -0x8000(r5)
+/* 80280070 0027BCD0 80 07 00 5C */ lwz r0, 0x5c(r7)
+/* 80280074 0027BCD4 90 05 80 00 */ stw r0, -0x8000(r5)
+lbl_80280078:
+/* 80280078 0027BCD8 55 4A F8 7F */ rlwinm. r10, r10, 0x1f, 1, 0x1f
+/* 8028007C 0027BCDC 39 29 00 01 */ addi r9, r9, 1
+/* 80280080 0027BCE0 38 E7 00 04 */ addi r7, r7, 4
+/* 80280084 0027BCE4 40 82 FF B0 */ bne lbl_80280034
+/* 80280088 0027BCE8 38 00 00 00 */ li r0, 0
+/* 8028008C 0027BCEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280090 0027BCF0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80280094 0027BCF4 98 08 05 FB */ stb r0, 0x5fb(r8)
+/* 80280098 0027BCF8 4E 80 00 20 */ blr
+
+.global GXGetVtxAttrFmt
+GXGetVtxAttrFmt:
+/* 8028009C 0027BCFC 38 04 FF F7 */ addi r0, r4, -9
+/* 802800A0 0027BD00 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802800A4 0027BD04 28 00 00 10 */ cmplwi r0, 0x10
+/* 802800A8 0027BD08 54 63 10 3A */ slwi r3, r3, 2
+/* 802800AC 0027BD0C 7C 64 1A 14 */ add r3, r4, r3
+/* 802800B0 0027BD10 41 81 02 40 */ bgt lbl_802802F0
+/* 802800B4 0027BD14 3C 80 80 43 */ lis r4, lbl_80434ED0@ha
+/* 802800B8 0027BD18 54 00 10 3A */ slwi r0, r0, 2
+/* 802800BC 0027BD1C 38 84 4E D0 */ addi r4, r4, lbl_80434ED0@l
+/* 802800C0 0027BD20 7C 84 00 2E */ lwzx r4, r4, r0
+/* 802800C4 0027BD24 7C 89 03 A6 */ mtctr r4
+/* 802800C8 0027BD28 4E 80 04 20 */ bctr
+/* 802800CC 0027BD2C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802800D0 0027BD30 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 802800D4 0027BD34 90 05 00 00 */ stw r0, 0(r5)
+/* 802800D8 0027BD38 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802800DC 0027BD3C 54 00 FF 7E */ rlwinm r0, r0, 0x1f, 0x1d, 0x1f
+/* 802800E0 0027BD40 90 06 00 00 */ stw r0, 0(r6)
+/* 802800E4 0027BD44 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802800E8 0027BD48 54 00 E6 FE */ rlwinm r0, r0, 0x1c, 0x1b, 0x1f
+/* 802800EC 0027BD4C 98 07 00 00 */ stb r0, 0(r7)
+/* 802800F0 0027BD50 4E 80 00 20 */ blr
+/* 802800F4 0027BD54 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802800F8 0027BD58 54 00 BF FE */ rlwinm r0, r0, 0x17, 0x1f, 0x1f
+/* 802800FC 0027BD5C 2C 00 00 01 */ cmpwi r0, 1
+/* 80280100 0027BD60 90 05 00 00 */ stw r0, 0(r5)
+/* 80280104 0027BD64 40 82 00 18 */ bne lbl_8028011C
+/* 80280108 0027BD68 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8028010C 0027BD6C 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 80280110 0027BD70 41 82 00 0C */ beq lbl_8028011C
+/* 80280114 0027BD74 38 00 00 02 */ li r0, 2
+/* 80280118 0027BD78 90 05 00 00 */ stw r0, 0(r5)
+lbl_8028011C:
+/* 8028011C 0027BD7C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80280120 0027BD80 54 00 B7 7E */ rlwinm r0, r0, 0x16, 0x1d, 0x1f
+/* 80280124 0027BD84 2C 00 00 02 */ cmpwi r0, 2
+/* 80280128 0027BD88 90 06 00 00 */ stw r0, 0(r6)
+/* 8028012C 0027BD8C 41 82 00 30 */ beq lbl_8028015C
+/* 80280130 0027BD90 40 80 00 10 */ bge lbl_80280140
+/* 80280134 0027BD94 2C 00 00 01 */ cmpwi r0, 1
+/* 80280138 0027BD98 40 80 00 14 */ bge lbl_8028014C
+/* 8028013C 0027BD9C 48 00 00 20 */ b lbl_8028015C
+lbl_80280140:
+/* 80280140 0027BDA0 2C 00 00 04 */ cmpwi r0, 4
+/* 80280144 0027BDA4 40 80 00 18 */ bge lbl_8028015C
+/* 80280148 0027BDA8 48 00 00 0C */ b lbl_80280154
+lbl_8028014C:
+/* 8028014C 0027BDAC 38 00 00 06 */ li r0, 6
+/* 80280150 0027BDB0 48 00 00 10 */ b lbl_80280160
+lbl_80280154:
+/* 80280154 0027BDB4 38 00 00 0E */ li r0, 0xe
+/* 80280158 0027BDB8 48 00 00 08 */ b lbl_80280160
+lbl_8028015C:
+/* 8028015C 0027BDBC 38 00 00 00 */ li r0, 0
+lbl_80280160:
+/* 80280160 0027BDC0 98 07 00 00 */ stb r0, 0(r7)
+/* 80280164 0027BDC4 4E 80 00 20 */ blr
+/* 80280168 0027BDC8 80 83 00 1C */ lwz r4, 0x1c(r3)
+/* 8028016C 0027BDCC 38 00 00 00 */ li r0, 0
+/* 80280170 0027BDD0 54 84 9F FE */ rlwinm r4, r4, 0x13, 0x1f, 0x1f
+/* 80280174 0027BDD4 90 85 00 00 */ stw r4, 0(r5)
+/* 80280178 0027BDD8 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8028017C 0027BDDC 54 63 97 7E */ rlwinm r3, r3, 0x12, 0x1d, 0x1f
+/* 80280180 0027BDE0 90 66 00 00 */ stw r3, 0(r6)
+/* 80280184 0027BDE4 98 07 00 00 */ stb r0, 0(r7)
+/* 80280188 0027BDE8 4E 80 00 20 */ blr
+/* 8028018C 0027BDEC 80 83 00 1C */ lwz r4, 0x1c(r3)
+/* 80280190 0027BDF0 38 00 00 00 */ li r0, 0
+/* 80280194 0027BDF4 54 84 7F FE */ rlwinm r4, r4, 0xf, 0x1f, 0x1f
+/* 80280198 0027BDF8 90 85 00 00 */ stw r4, 0(r5)
+/* 8028019C 0027BDFC 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 802801A0 0027BE00 54 63 77 7E */ rlwinm r3, r3, 0xe, 0x1d, 0x1f
+/* 802801A4 0027BE04 90 66 00 00 */ stw r3, 0(r6)
+/* 802801A8 0027BE08 98 07 00 00 */ stb r0, 0(r7)
+/* 802801AC 0027BE0C 4E 80 00 20 */ blr
+/* 802801B0 0027BE10 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802801B4 0027BE14 54 00 5F FE */ rlwinm r0, r0, 0xb, 0x1f, 0x1f
+/* 802801B8 0027BE18 90 05 00 00 */ stw r0, 0(r5)
+/* 802801BC 0027BE1C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802801C0 0027BE20 54 00 57 7E */ rlwinm r0, r0, 0xa, 0x1d, 0x1f
+/* 802801C4 0027BE24 90 06 00 00 */ stw r0, 0(r6)
+/* 802801C8 0027BE28 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 802801CC 0027BE2C 54 00 3E FE */ rlwinm r0, r0, 7, 0x1b, 0x1f
+/* 802801D0 0027BE30 98 07 00 00 */ stb r0, 0(r7)
+/* 802801D4 0027BE34 4E 80 00 20 */ blr
+/* 802801D8 0027BE38 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 802801DC 0027BE3C 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 802801E0 0027BE40 90 05 00 00 */ stw r0, 0(r5)
+/* 802801E4 0027BE44 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 802801E8 0027BE48 54 00 FF 7E */ rlwinm r0, r0, 0x1f, 0x1d, 0x1f
+/* 802801EC 0027BE4C 90 06 00 00 */ stw r0, 0(r6)
+/* 802801F0 0027BE50 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 802801F4 0027BE54 54 00 E6 FE */ rlwinm r0, r0, 0x1c, 0x1b, 0x1f
+/* 802801F8 0027BE58 98 07 00 00 */ stb r0, 0(r7)
+/* 802801FC 0027BE5C 4E 80 00 20 */ blr
+/* 80280200 0027BE60 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280204 0027BE64 54 00 BF FE */ rlwinm r0, r0, 0x17, 0x1f, 0x1f
+/* 80280208 0027BE68 90 05 00 00 */ stw r0, 0(r5)
+/* 8028020C 0027BE6C 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280210 0027BE70 54 00 B7 7E */ rlwinm r0, r0, 0x16, 0x1d, 0x1f
+/* 80280214 0027BE74 90 06 00 00 */ stw r0, 0(r6)
+/* 80280218 0027BE78 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 8028021C 0027BE7C 54 00 9E FE */ rlwinm r0, r0, 0x13, 0x1b, 0x1f
+/* 80280220 0027BE80 98 07 00 00 */ stb r0, 0(r7)
+/* 80280224 0027BE84 4E 80 00 20 */ blr
+/* 80280228 0027BE88 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 8028022C 0027BE8C 54 00 77 FE */ rlwinm r0, r0, 0xe, 0x1f, 0x1f
+/* 80280230 0027BE90 90 05 00 00 */ stw r0, 0(r5)
+/* 80280234 0027BE94 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280238 0027BE98 54 00 6F 7E */ rlwinm r0, r0, 0xd, 0x1d, 0x1f
+/* 8028023C 0027BE9C 90 06 00 00 */ stw r0, 0(r6)
+/* 80280240 0027BEA0 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280244 0027BEA4 54 00 56 FE */ rlwinm r0, r0, 0xa, 0x1b, 0x1f
+/* 80280248 0027BEA8 98 07 00 00 */ stb r0, 0(r7)
+/* 8028024C 0027BEAC 4E 80 00 20 */ blr
+/* 80280250 0027BEB0 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280254 0027BEB4 54 00 2F FE */ rlwinm r0, r0, 5, 0x1f, 0x1f
+/* 80280258 0027BEB8 90 05 00 00 */ stw r0, 0(r5)
+/* 8028025C 0027BEBC 80 03 00 3C */ lwz r0, 0x3c(r3)
+/* 80280260 0027BEC0 54 00 27 7E */ rlwinm r0, r0, 4, 0x1d, 0x1f
+/* 80280264 0027BEC4 90 06 00 00 */ stw r0, 0(r6)
+/* 80280268 0027BEC8 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 8028026C 0027BECC 54 00 06 FE */ clrlwi r0, r0, 0x1b
+/* 80280270 0027BED0 98 07 00 00 */ stb r0, 0(r7)
+/* 80280274 0027BED4 4E 80 00 20 */ blr
+/* 80280278 0027BED8 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 8028027C 0027BEDC 54 00 DF FE */ rlwinm r0, r0, 0x1b, 0x1f, 0x1f
+/* 80280280 0027BEE0 90 05 00 00 */ stw r0, 0(r5)
+/* 80280284 0027BEE4 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 80280288 0027BEE8 54 00 D7 7E */ rlwinm r0, r0, 0x1a, 0x1d, 0x1f
+/* 8028028C 0027BEEC 90 06 00 00 */ stw r0, 0(r6)
+/* 80280290 0027BEF0 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 80280294 0027BEF4 54 00 BE FE */ rlwinm r0, r0, 0x17, 0x1b, 0x1f
+/* 80280298 0027BEF8 98 07 00 00 */ stb r0, 0(r7)
+/* 8028029C 0027BEFC 4E 80 00 20 */ blr
+/* 802802A0 0027BF00 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802A4 0027BF04 54 00 97 FE */ rlwinm r0, r0, 0x12, 0x1f, 0x1f
+/* 802802A8 0027BF08 90 05 00 00 */ stw r0, 0(r5)
+/* 802802AC 0027BF0C 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802B0 0027BF10 54 00 8F 7E */ rlwinm r0, r0, 0x11, 0x1d, 0x1f
+/* 802802B4 0027BF14 90 06 00 00 */ stw r0, 0(r6)
+/* 802802B8 0027BF18 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802BC 0027BF1C 54 00 76 FE */ rlwinm r0, r0, 0xe, 0x1b, 0x1f
+/* 802802C0 0027BF20 98 07 00 00 */ stb r0, 0(r7)
+/* 802802C4 0027BF24 4E 80 00 20 */ blr
+/* 802802C8 0027BF28 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802CC 0027BF2C 54 00 4F FE */ rlwinm r0, r0, 9, 0x1f, 0x1f
+/* 802802D0 0027BF30 90 05 00 00 */ stw r0, 0(r5)
+/* 802802D4 0027BF34 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802D8 0027BF38 54 00 47 7E */ rlwinm r0, r0, 8, 0x1d, 0x1f
+/* 802802DC 0027BF3C 90 06 00 00 */ stw r0, 0(r6)
+/* 802802E0 0027BF40 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 802802E4 0027BF44 54 00 2E FE */ srwi r0, r0, 0x1b
+/* 802802E8 0027BF48 98 07 00 00 */ stb r0, 0(r7)
+/* 802802EC 0027BF4C 4E 80 00 20 */ blr
+lbl_802802F0:
+/* 802802F0 0027BF50 38 60 00 01 */ li r3, 1
+/* 802802F4 0027BF54 38 00 00 00 */ li r0, 0
+/* 802802F8 0027BF58 90 65 00 00 */ stw r3, 0(r5)
+/* 802802FC 0027BF5C 90 06 00 00 */ stw r0, 0(r6)
+/* 80280300 0027BF60 98 07 00 00 */ stb r0, 0(r7)
+/* 80280304 0027BF64 4E 80 00 20 */ blr
+
+.global GXGetVtxAttrFmtv
+GXGetVtxAttrFmtv:
+/* 80280308 0027BF68 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8028030C 0027BF6C 7C 08 02 A6 */ mflr r0
+/* 80280310 0027BF70 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80280314 0027BF74 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80280318 0027BF78 3B E0 00 09 */ li r31, 9
+/* 8028031C 0027BF7C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80280320 0027BF80 7C 9E 23 78 */ mr r30, r4
+/* 80280324 0027BF84 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80280328 0027BF88 7C 7D 1B 78 */ mr r29, r3
+lbl_8028032C:
+/* 8028032C 0027BF8C 93 FE 00 00 */ stw r31, 0(r30)
+/* 80280330 0027BF90 7F A3 EB 78 */ mr r3, r29
+/* 80280334 0027BF94 7F E4 FB 78 */ mr r4, r31
+/* 80280338 0027BF98 38 BE 00 04 */ addi r5, r30, 4
+/* 8028033C 0027BF9C 38 DE 00 08 */ addi r6, r30, 8
+/* 80280340 0027BFA0 38 FE 00 0C */ addi r7, r30, 0xc
+/* 80280344 0027BFA4 4B FF FD 59 */ bl GXGetVtxAttrFmt
+/* 80280348 0027BFA8 3B FF 00 01 */ addi r31, r31, 1
+/* 8028034C 0027BFAC 3B DE 00 10 */ addi r30, r30, 0x10
+/* 80280350 0027BFB0 2C 1F 00 14 */ cmpwi r31, 0x14
+/* 80280354 0027BFB4 40 81 FF D8 */ ble lbl_8028032C
+/* 80280358 0027BFB8 38 00 00 FF */ li r0, 0xff
+/* 8028035C 0027BFBC 90 1E 00 00 */ stw r0, 0(r30)
+/* 80280360 0027BFC0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80280364 0027BFC4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80280368 0027BFC8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8028036C 0027BFCC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80280370 0027BFD0 7C 08 03 A6 */ mtlr r0
+/* 80280374 0027BFD4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80280378 0027BFD8 4E 80 00 20 */ blr
+
+.global GXSetArray
+GXSetArray:
+/* 8028037C 0027BFDC 2C 03 00 19 */ cmpwi r3, 0x19
+/* 80280380 0027BFE0 40 82 00 08 */ bne lbl_80280388
+/* 80280384 0027BFE4 38 60 00 0A */ li r3, 0xa
+lbl_80280388:
+/* 80280388 0027BFE8 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 8028038C 0027BFEC 38 E0 00 08 */ li r7, 8
+/* 80280390 0027BFF0 39 03 FF F7 */ addi r8, r3, -9
+/* 80280394 0027BFF4 98 E6 80 00 */ stb r7, 0xCC008000@l(r6)
+/* 80280398 0027BFF8 61 00 00 A0 */ ori r0, r8, 0xa0
+/* 8028039C 0027BFFC 54 83 00 BE */ clrlwi r3, r4, 2
+/* 802803A0 0027C000 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 802803A4 0027C004 61 00 00 B0 */ ori r0, r8, 0xb0
+/* 802803A8 0027C008 90 66 80 00 */ stw r3, -0x8000(r6)
+/* 802803AC 0027C00C 98 E6 80 00 */ stb r7, -0x8000(r6)
+/* 802803B0 0027C010 98 06 80 00 */ stb r0, -0x8000(r6)
+/* 802803B4 0027C014 90 A6 80 00 */ stw r5, -0x8000(r6)
+/* 802803B8 0027C018 4E 80 00 20 */ blr
+
+.global GXInvalidateVtxCache
+GXInvalidateVtxCache:
+/* 802803BC 0027C01C 38 00 00 48 */ li r0, 0x48
+/* 802803C0 0027C020 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 802803C4 0027C024 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 802803C8 0027C028 4E 80 00 20 */ blr
+
+.global GXSetTexCoordGen2
+GXSetTexCoordGen2:
+/* 802803CC 0027C02C 28 05 00 14 */ cmplwi r5, 0x14
+/* 802803D0 0027C030 39 60 00 00 */ li r11, 0
+/* 802803D4 0027C034 39 80 00 00 */ li r12, 0
+/* 802803D8 0027C038 39 40 00 05 */ li r10, 5
+/* 802803DC 0027C03C 41 81 00 98 */ bgt lbl_80280474
+/* 802803E0 0027C040 3D 20 80 43 */ lis r9, lbl_80434F30@ha
+/* 802803E4 0027C044 54 A0 10 3A */ slwi r0, r5, 2
+/* 802803E8 0027C048 39 29 4F 30 */ addi r9, r9, lbl_80434F30@l
+/* 802803EC 0027C04C 7D 29 00 2E */ lwzx r9, r9, r0
+/* 802803F0 0027C050 7D 29 03 A6 */ mtctr r9
+/* 802803F4 0027C054 4E 80 04 20 */ bctr
+/* 802803F8 0027C058 39 40 00 00 */ li r10, 0
+/* 802803FC 0027C05C 39 80 00 01 */ li r12, 1
+/* 80280400 0027C060 48 00 00 74 */ b lbl_80280474
+/* 80280404 0027C064 39 40 00 01 */ li r10, 1
+/* 80280408 0027C068 39 80 00 01 */ li r12, 1
+/* 8028040C 0027C06C 48 00 00 68 */ b lbl_80280474
+/* 80280410 0027C070 39 40 00 03 */ li r10, 3
+/* 80280414 0027C074 39 80 00 01 */ li r12, 1
+/* 80280418 0027C078 48 00 00 5C */ b lbl_80280474
+/* 8028041C 0027C07C 39 40 00 04 */ li r10, 4
+/* 80280420 0027C080 39 80 00 01 */ li r12, 1
+/* 80280424 0027C084 48 00 00 50 */ b lbl_80280474
+/* 80280428 0027C088 39 40 00 02 */ li r10, 2
+/* 8028042C 0027C08C 48 00 00 48 */ b lbl_80280474
+/* 80280430 0027C090 39 40 00 02 */ li r10, 2
+/* 80280434 0027C094 48 00 00 40 */ b lbl_80280474
+/* 80280438 0027C098 39 40 00 05 */ li r10, 5
+/* 8028043C 0027C09C 48 00 00 38 */ b lbl_80280474
+/* 80280440 0027C0A0 39 40 00 06 */ li r10, 6
+/* 80280444 0027C0A4 48 00 00 30 */ b lbl_80280474
+/* 80280448 0027C0A8 39 40 00 07 */ li r10, 7
+/* 8028044C 0027C0AC 48 00 00 28 */ b lbl_80280474
+/* 80280450 0027C0B0 39 40 00 08 */ li r10, 8
+/* 80280454 0027C0B4 48 00 00 20 */ b lbl_80280474
+/* 80280458 0027C0B8 39 40 00 09 */ li r10, 9
+/* 8028045C 0027C0BC 48 00 00 18 */ b lbl_80280474
+/* 80280460 0027C0C0 39 40 00 0A */ li r10, 0xa
+/* 80280464 0027C0C4 48 00 00 10 */ b lbl_80280474
+/* 80280468 0027C0C8 39 40 00 0B */ li r10, 0xb
+/* 8028046C 0027C0CC 48 00 00 08 */ b lbl_80280474
+/* 80280470 0027C0D0 39 40 00 0C */ li r10, 0xc
+lbl_80280474:
+/* 80280474 0027C0D4 2C 04 00 01 */ cmpwi r4, 1
+/* 80280478 0027C0D8 41 82 00 24 */ beq lbl_8028049C
+/* 8028047C 0027C0DC 40 80 00 10 */ bge lbl_8028048C
+/* 80280480 0027C0E0 2C 04 00 00 */ cmpwi r4, 0
+/* 80280484 0027C0E4 40 80 00 28 */ bge lbl_802804AC
+/* 80280488 0027C0E8 48 00 00 8C */ b lbl_80280514
+lbl_8028048C:
+/* 8028048C 0027C0EC 2C 04 00 0A */ cmpwi r4, 0xa
+/* 80280490 0027C0F0 41 82 00 58 */ beq lbl_802804E8
+/* 80280494 0027C0F4 40 80 00 80 */ bge lbl_80280514
+/* 80280498 0027C0F8 48 00 00 28 */ b lbl_802804C0
+lbl_8028049C:
+/* 8028049C 0027C0FC 39 60 00 00 */ li r11, 0
+/* 802804A0 0027C100 51 8B 17 7A */ rlwimi r11, r12, 2, 0x1d, 0x1d
+/* 802804A4 0027C104 51 4B 3D 30 */ rlwimi r11, r10, 7, 0x14, 0x18
+/* 802804A8 0027C108 48 00 00 6C */ b lbl_80280514
+lbl_802804AC:
+/* 802804AC 0027C10C 38 00 00 00 */ li r0, 0
+/* 802804B0 0027C110 60 0B 00 02 */ ori r11, r0, 2
+/* 802804B4 0027C114 51 8B 17 7A */ rlwimi r11, r12, 2, 0x1d, 0x1d
+/* 802804B8 0027C118 51 4B 3D 30 */ rlwimi r11, r10, 7, 0x14, 0x18
+/* 802804BC 0027C11C 48 00 00 58 */ b lbl_80280514
+lbl_802804C0:
+/* 802804C0 0027C120 39 20 00 01 */ li r9, 1
+/* 802804C4 0027C124 38 A5 FF F4 */ addi r5, r5, -12
+/* 802804C8 0027C128 39 60 00 00 */ li r11, 0
+/* 802804CC 0027C12C 38 04 FF FE */ addi r0, r4, -2
+/* 802804D0 0027C130 51 8B 17 7A */ rlwimi r11, r12, 2, 0x1d, 0x1d
+/* 802804D4 0027C134 51 2B 26 76 */ rlwimi r11, r9, 4, 0x19, 0x1b
+/* 802804D8 0027C138 51 4B 3D 30 */ rlwimi r11, r10, 7, 0x14, 0x18
+/* 802804DC 0027C13C 50 AB 64 66 */ rlwimi r11, r5, 0xc, 0x11, 0x13
+/* 802804E0 0027C140 50 0B 7B A0 */ rlwimi r11, r0, 0xf, 0xe, 0x10
+/* 802804E4 0027C144 48 00 00 30 */ b lbl_80280514
+lbl_802804E8:
+/* 802804E8 0027C148 2C 05 00 13 */ cmpwi r5, 0x13
+/* 802804EC 0027C14C 39 60 00 00 */ li r11, 0
+/* 802804F0 0027C150 51 8B 17 7A */ rlwimi r11, r12, 2, 0x1d, 0x1d
+/* 802804F4 0027C154 40 82 00 10 */ bne lbl_80280504
+/* 802804F8 0027C158 38 00 00 02 */ li r0, 2
+/* 802804FC 0027C15C 50 0B 26 76 */ rlwimi r11, r0, 4, 0x19, 0x1b
+/* 80280500 0027C160 48 00 00 0C */ b lbl_8028050C
+lbl_80280504:
+/* 80280504 0027C164 38 00 00 03 */ li r0, 3
+/* 80280508 0027C168 50 0B 26 76 */ rlwimi r11, r0, 4, 0x19, 0x1b
+lbl_8028050C:
+/* 8028050C 0027C16C 38 00 00 02 */ li r0, 2
+/* 80280510 0027C170 50 0B 3D 30 */ rlwimi r11, r0, 7, 0x14, 0x18
+lbl_80280514:
+/* 80280514 0027C174 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280518 0027C178 54 69 10 3A */ slwi r9, r3, 2
+/* 8028051C 0027C17C 38 08 FF C0 */ addi r0, r8, -64
+/* 80280520 0027C180 38 80 00 00 */ li r4, 0
+/* 80280524 0027C184 7D 0A 4A 14 */ add r8, r10, r9
+/* 80280528 0027C188 3C A0 00 01 */ lis r5, 1
+/* 8028052C 0027C18C 91 68 00 C8 */ stw r11, 0xc8(r8)
+/* 80280530 0027C190 50 04 06 BE */ rlwimi r4, r0, 0, 0x1a, 0x1f
+/* 80280534 0027C194 7C A0 18 30 */ slw r0, r5, r3
+/* 80280538 0027C198 28 03 00 06 */ cmplwi r3, 6
+/* 8028053C 0027C19C 80 AA 05 FC */ lwz r5, 0x5fc(r10)
+/* 80280540 0027C1A0 50 E4 45 EE */ rlwimi r4, r7, 8, 0x17, 0x17
+/* 80280544 0027C1A4 7C A0 03 78 */ or r0, r5, r0
+/* 80280548 0027C1A8 90 0A 05 FC */ stw r0, 0x5fc(r10)
+/* 8028054C 0027C1AC 90 88 00 E8 */ stw r4, 0xe8(r8)
+/* 80280550 0027C1B0 41 81 00 88 */ bgt lbl_802805D8
+/* 80280554 0027C1B4 3C 60 80 43 */ lis r3, lbl_80434F14@ha
+/* 80280558 0027C1B8 38 63 4F 14 */ addi r3, r3, lbl_80434F14@l
+/* 8028055C 0027C1BC 7C 63 48 2E */ lwzx r3, r3, r9
+/* 80280560 0027C1C0 7C 69 03 A6 */ mtctr r3
+/* 80280564 0027C1C4 4E 80 04 20 */ bctr
+/* 80280568 0027C1C8 80 0A 00 80 */ lwz r0, 0x80(r10)
+/* 8028056C 0027C1CC 50 C0 35 32 */ rlwimi r0, r6, 6, 0x14, 0x19
+/* 80280570 0027C1D0 90 0A 00 80 */ stw r0, 0x80(r10)
+/* 80280574 0027C1D4 48 00 00 70 */ b lbl_802805E4
+/* 80280578 0027C1D8 80 0A 00 80 */ lwz r0, 0x80(r10)
+/* 8028057C 0027C1DC 50 C0 63 A6 */ rlwimi r0, r6, 0xc, 0xe, 0x13
+/* 80280580 0027C1E0 90 0A 00 80 */ stw r0, 0x80(r10)
+/* 80280584 0027C1E4 48 00 00 60 */ b lbl_802805E4
+/* 80280588 0027C1E8 80 0A 00 80 */ lwz r0, 0x80(r10)
+/* 8028058C 0027C1EC 50 C0 92 1A */ rlwimi r0, r6, 0x12, 8, 0xd
+/* 80280590 0027C1F0 90 0A 00 80 */ stw r0, 0x80(r10)
+/* 80280594 0027C1F4 48 00 00 50 */ b lbl_802805E4
+/* 80280598 0027C1F8 80 0A 00 80 */ lwz r0, 0x80(r10)
+/* 8028059C 0027C1FC 50 C0 C0 8E */ rlwimi r0, r6, 0x18, 2, 7
+/* 802805A0 0027C200 90 0A 00 80 */ stw r0, 0x80(r10)
+/* 802805A4 0027C204 48 00 00 40 */ b lbl_802805E4
+/* 802805A8 0027C208 80 0A 00 84 */ lwz r0, 0x84(r10)
+/* 802805AC 0027C20C 50 C0 06 BE */ rlwimi r0, r6, 0, 0x1a, 0x1f
+/* 802805B0 0027C210 90 0A 00 84 */ stw r0, 0x84(r10)
+/* 802805B4 0027C214 48 00 00 30 */ b lbl_802805E4
+/* 802805B8 0027C218 80 0A 00 84 */ lwz r0, 0x84(r10)
+/* 802805BC 0027C21C 50 C0 35 32 */ rlwimi r0, r6, 6, 0x14, 0x19
+/* 802805C0 0027C220 90 0A 00 84 */ stw r0, 0x84(r10)
+/* 802805C4 0027C224 48 00 00 20 */ b lbl_802805E4
+/* 802805C8 0027C228 80 0A 00 84 */ lwz r0, 0x84(r10)
+/* 802805CC 0027C22C 50 C0 63 A6 */ rlwimi r0, r6, 0xc, 0xe, 0x13
+/* 802805D0 0027C230 90 0A 00 84 */ stw r0, 0x84(r10)
+/* 802805D4 0027C234 48 00 00 10 */ b lbl_802805E4
+lbl_802805D8:
+/* 802805D8 0027C238 80 0A 00 84 */ lwz r0, 0x84(r10)
+/* 802805DC 0027C23C 50 C0 92 1A */ rlwimi r0, r6, 0x12, 8, 0xd
+/* 802805E0 0027C240 90 0A 00 84 */ stw r0, 0x84(r10)
+lbl_802805E4:
+/* 802805E4 0027C244 80 0A 05 FC */ lwz r0, 0x5fc(r10)
+/* 802805E8 0027C248 64 00 04 00 */ oris r0, r0, 0x400
+/* 802805EC 0027C24C 90 0A 05 FC */ stw r0, 0x5fc(r10)
+/* 802805F0 0027C250 4E 80 00 20 */ blr
+
+.global GXSetNumTexGens
+GXSetNumTexGens:
+/* 802805F4 0027C254 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802805F8 0027C258 80 04 02 54 */ lwz r0, 0x254(r4)
+/* 802805FC 0027C25C 50 60 07 3E */ rlwimi r0, r3, 0, 0x1c, 0x1f
+/* 80280600 0027C260 90 04 02 54 */ stw r0, 0x254(r4)
+/* 80280604 0027C264 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 80280608 0027C268 64 00 02 00 */ oris r0, r0, 0x200
+/* 8028060C 0027C26C 60 00 00 04 */ ori r0, r0, 4
+/* 80280610 0027C270 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 80280614 0027C274 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXFifo.s b/asm/SDK/GX/GXFifo.s
new file mode 100644
index 0000000..80701df
--- /dev/null
+++ b/asm/SDK/GX/GXFifo.s
@@ -0,0 +1,853 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXCPInterruptHandler
+GXCPInterruptHandler:
+/* 8027E7EC 0027A44C 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 8027E7F0 0027A450 7C 08 02 A6 */ mflr r0
+/* 8027E7F4 0027A454 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 8027E7F8 0027A458 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 8027E7FC 0027A45C 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027E800 0027A460 93 C1 02 D8 */ stw r30, 0x2d8(r1)
+/* 8027E804 0027A464 7C 9E 23 78 */ mr r30, r4
+/* 8027E808 0027A468 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E80C 0027A46C A0 03 00 00 */ lhz r0, 0(r3)
+/* 8027E810 0027A470 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8027E814 0027A474 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8027E818 0027A478 54 00 EF FF */ rlwinm. r0, r0, 0x1d, 0x1f, 0x1f
+/* 8027E81C 0027A47C 41 82 00 50 */ beq lbl_8027E86C
+/* 8027E820 0027A480 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027E824 0027A484 54 00 FF FF */ rlwinm. r0, r0, 0x1f, 0x1f, 0x1f
+/* 8027E828 0027A488 41 82 00 44 */ beq lbl_8027E86C
+/* 8027E82C 0027A48C 80 6D A9 CC */ lwz r3, lbl_8063FC8C-_SDA_BASE_(r13)
+/* 8027E830 0027A490 4B FF 37 19 */ bl OSResumeThread
+/* 8027E834 0027A494 38 00 00 00 */ li r0, 0
+/* 8027E838 0027A498 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027E83C 0027A49C 90 0D A9 C8 */ stw r0, lbl_8063FC88-_SDA_BASE_(r13)
+/* 8027E840 0027A4A0 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8027E844 0027A4A4 60 00 00 03 */ ori r0, r0, 3
+/* 8027E848 0027A4A8 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8027E84C 0027A4AC 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E850 0027A4B0 B0 03 00 04 */ sth r0, 4(r3)
+/* 8027E854 0027A4B4 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8027E858 0027A4B8 60 00 00 04 */ ori r0, r0, 4
+/* 8027E85C 0027A4BC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 8027E860 0027A4C0 90 1F 00 08 */ stw r0, 8(r31)
+/* 8027E864 0027A4C4 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E868 0027A4C8 B0 03 00 02 */ sth r0, 2(r3)
+lbl_8027E86C:
+/* 8027E86C 0027A4CC 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8027E870 0027A4D0 54 00 F7 FF */ rlwinm. r0, r0, 0x1e, 0x1f, 0x1f
+/* 8027E874 0027A4D4 41 82 00 60 */ beq lbl_8027E8D4
+/* 8027E878 0027A4D8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027E87C 0027A4DC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8027E880 0027A4E0 41 82 00 54 */ beq lbl_8027E8D4
+/* 8027E884 0027A4E4 80 6D A9 BC */ lwz r3, lbl_8063FC7C-_SDA_BASE_(r13)
+/* 8027E888 0027A4E8 38 00 00 01 */ li r0, 1
+/* 8027E88C 0027A4EC 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027E890 0027A4F0 38 63 00 01 */ addi r3, r3, 1
+/* 8027E894 0027A4F4 90 6D A9 BC */ stw r3, lbl_8063FC7C-_SDA_BASE_(r13)
+/* 8027E898 0027A4F8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8027E89C 0027A4FC 54 64 07 B8 */ rlwinm r4, r3, 0, 0x1e, 0x1c
+/* 8027E8A0 0027A500 60 84 00 08 */ ori r4, r4, 8
+/* 8027E8A4 0027A504 90 9F 00 08 */ stw r4, 8(r31)
+/* 8027E8A8 0027A508 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E8AC 0027A50C B0 83 00 02 */ sth r4, 2(r3)
+/* 8027E8B0 0027A510 80 65 00 10 */ lwz r3, 0x10(r5)
+/* 8027E8B4 0027A514 60 63 00 01 */ ori r3, r3, 1
+/* 8027E8B8 0027A518 54 64 07 FA */ rlwinm r4, r3, 0, 0x1f, 0x1d
+/* 8027E8BC 0027A51C 90 85 00 10 */ stw r4, 0x10(r5)
+/* 8027E8C0 0027A520 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E8C4 0027A524 B0 83 00 04 */ sth r4, 4(r3)
+/* 8027E8C8 0027A528 90 0D A9 C8 */ stw r0, lbl_8063FC88-_SDA_BASE_(r13)
+/* 8027E8CC 0027A52C 80 6D A9 CC */ lwz r3, lbl_8063FC8C-_SDA_BASE_(r13)
+/* 8027E8D0 0027A530 4B FF 39 11 */ bl OSSuspendThread
+lbl_8027E8D4:
+/* 8027E8D4 0027A534 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8027E8D8 0027A538 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
+/* 8027E8DC 0027A53C 41 82 00 58 */ beq lbl_8027E934
+/* 8027E8E0 0027A540 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8027E8E4 0027A544 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
+/* 8027E8E8 0027A548 41 82 00 4C */ beq lbl_8027E934
+/* 8027E8EC 0027A54C 54 60 06 F2 */ rlwinm r0, r3, 0, 0x1b, 0x19
+/* 8027E8F0 0027A550 90 1F 00 08 */ stw r0, 8(r31)
+/* 8027E8F4 0027A554 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027E8F8 0027A558 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027E8FC 0027A55C 80 0D A9 C4 */ lwz r0, lbl_8063FC84-_SDA_BASE_(r13)
+/* 8027E900 0027A560 2C 00 00 00 */ cmpwi r0, 0
+/* 8027E904 0027A564 41 82 00 30 */ beq lbl_8027E934
+/* 8027E908 0027A568 38 61 00 08 */ addi r3, r1, 8
+/* 8027E90C 0027A56C 4B FE C7 85 */ bl OSClearContext
+/* 8027E910 0027A570 38 61 00 08 */ addi r3, r1, 8
+/* 8027E914 0027A574 4B FE C5 55 */ bl OSSetCurrentContext
+/* 8027E918 0027A578 81 8D A9 C4 */ lwz r12, lbl_8063FC84-_SDA_BASE_(r13)
+/* 8027E91C 0027A57C 7D 89 03 A6 */ mtctr r12
+/* 8027E920 0027A580 4E 80 04 21 */ bctrl
+/* 8027E924 0027A584 38 61 00 08 */ addi r3, r1, 8
+/* 8027E928 0027A588 4B FE C7 69 */ bl OSClearContext
+/* 8027E92C 0027A58C 7F C3 F3 78 */ mr r3, r30
+/* 8027E930 0027A590 4B FE C5 39 */ bl OSSetCurrentContext
+lbl_8027E934:
+/* 8027E934 0027A594 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 8027E938 0027A598 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 8027E93C 0027A59C 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
+/* 8027E940 0027A5A0 7C 08 03 A6 */ mtlr r0
+/* 8027E944 0027A5A4 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 8027E948 0027A5A8 4E 80 00 20 */ blr
+
+.global GXInitFifoBase
+GXInitFifoBase:
+/* 8027E94C 0027A5AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027E950 0027A5B0 7C 08 02 A6 */ mflr r0
+/* 8027E954 0027A5B4 7C E4 2A 14 */ add r7, r4, r5
+/* 8027E958 0027A5B8 38 C5 C0 00 */ addi r6, r5, -16384
+/* 8027E95C 0027A5BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027E960 0027A5C0 38 E7 FF FC */ addi r7, r7, -4
+/* 8027E964 0027A5C4 54 A0 F8 74 */ rlwinm r0, r5, 0x1f, 1, 0x1a
+/* 8027E968 0027A5C8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8027E96C 0027A5CC 3B E0 00 00 */ li r31, 0
+/* 8027E970 0027A5D0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027E974 0027A5D4 7C 9E 23 78 */ mr r30, r4
+/* 8027E978 0027A5D8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027E97C 0027A5DC 7C 7D 1B 78 */ mr r29, r3
+/* 8027E980 0027A5E0 90 83 00 00 */ stw r4, 0(r3)
+/* 8027E984 0027A5E4 90 E3 00 04 */ stw r7, 4(r3)
+/* 8027E988 0027A5E8 90 A3 00 08 */ stw r5, 8(r3)
+/* 8027E98C 0027A5EC 93 E3 00 1C */ stw r31, 0x1c(r3)
+/* 8027E990 0027A5F0 90 C3 00 0C */ stw r6, 0xc(r3)
+/* 8027E994 0027A5F4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8027E998 0027A5F8 4B FE FD C5 */ bl OSDisableInterrupts
+/* 8027E99C 0027A5FC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8027E9A0 0027A600 93 DD 00 14 */ stw r30, 0x14(r29)
+/* 8027E9A4 0027A604 93 DD 00 18 */ stw r30, 0x18(r29)
+/* 8027E9A8 0027A608 93 FD 00 1C */ stw r31, 0x1c(r29)
+/* 8027E9AC 0027A60C 40 80 00 0C */ bge lbl_8027E9B8
+/* 8027E9B0 0027A610 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027E9B4 0027A614 90 1D 00 1C */ stw r0, 0x1c(r29)
+lbl_8027E9B8:
+/* 8027E9B8 0027A618 4B FE FD CD */ bl OSRestoreInterrupts
+/* 8027E9BC 0027A61C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027E9C0 0027A620 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027E9C4 0027A624 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027E9C8 0027A628 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8027E9CC 0027A62C 7C 08 03 A6 */ mtlr r0
+/* 8027E9D0 0027A630 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027E9D4 0027A634 4E 80 00 20 */ blr
+
+.global CPGPLinkCheck
+CPGPLinkCheck:
+/* 8027E9D8 0027A638 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027E9DC 0027A63C 7C 08 02 A6 */ mflr r0
+/* 8027E9E0 0027A640 38 E0 00 00 */ li r7, 0
+/* 8027E9E4 0027A644 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027E9E8 0027A648 88 0D A9 B8 */ lbz r0, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027E9EC 0027A64C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027E9F0 0027A650 41 82 00 10 */ beq lbl_8027EA00
+/* 8027E9F4 0027A654 88 0D A9 B9 */ lbz r0, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027E9F8 0027A658 2C 00 00 00 */ cmpwi r0, 0
+/* 8027E9FC 0027A65C 40 82 00 0C */ bne lbl_8027EA08
+lbl_8027EA00:
+/* 8027EA00 0027A660 38 60 00 00 */ li r3, 0
+/* 8027EA04 0027A664 48 00 00 BC */ b lbl_8027EAC0
+lbl_8027EA08:
+/* 8027EA08 0027A668 3C 80 80 51 */ lis r4, lbl_80515FB0@ha
+/* 8027EA0C 0027A66C 3C 60 80 51 */ lis r3, lbl_80515FD4@ha
+/* 8027EA10 0027A670 80 C4 5F B0 */ lwz r6, lbl_80515FB0@l(r4)
+/* 8027EA14 0027A674 80 83 5F D4 */ lwz r4, lbl_80515FD4@l(r3)
+/* 8027EA18 0027A678 7C 04 30 40 */ cmplw r4, r6
+/* 8027EA1C 0027A67C 40 82 00 08 */ bne lbl_8027EA24
+/* 8027EA20 0027A680 38 E0 00 01 */ li r7, 1
+lbl_8027EA24:
+/* 8027EA24 0027A684 3C A0 80 51 */ lis r5, lbl_80515FB0@ha
+/* 8027EA28 0027A688 3C 60 80 51 */ lis r3, lbl_80515FD4@ha
+/* 8027EA2C 0027A68C 38 A5 5F B0 */ addi r5, r5, lbl_80515FB0@l
+/* 8027EA30 0027A690 38 63 5F D4 */ addi r3, r3, lbl_80515FD4@l
+/* 8027EA34 0027A694 80 05 00 04 */ lwz r0, 4(r5)
+/* 8027EA38 0027A698 80 A3 00 04 */ lwz r5, 4(r3)
+/* 8027EA3C 0027A69C 7C 05 00 40 */ cmplw r5, r0
+/* 8027EA40 0027A6A0 40 82 00 08 */ bne lbl_8027EA48
+/* 8027EA44 0027A6A4 38 E7 00 01 */ addi r7, r7, 1
+lbl_8027EA48:
+/* 8027EA48 0027A6A8 28 07 00 02 */ cmplwi r7, 2
+/* 8027EA4C 0027A6AC 40 82 00 0C */ bne lbl_8027EA58
+/* 8027EA50 0027A6B0 38 60 00 01 */ li r3, 1
+/* 8027EA54 0027A6B4 48 00 00 6C */ b lbl_8027EAC0
+lbl_8027EA58:
+/* 8027EA58 0027A6B8 7C 66 28 51 */ subf. r3, r6, r5
+/* 8027EA5C 0027A6BC 7C C4 00 50 */ subf r6, r4, r0
+/* 8027EA60 0027A6C0 38 00 00 00 */ li r0, 0
+/* 8027EA64 0027A6C4 40 81 00 0C */ ble lbl_8027EA70
+/* 8027EA68 0027A6C8 2C 06 00 00 */ cmpwi r6, 0
+/* 8027EA6C 0027A6CC 41 81 00 14 */ bgt lbl_8027EA80
+lbl_8027EA70:
+/* 8027EA70 0027A6D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8027EA74 0027A6D4 40 80 00 10 */ bge lbl_8027EA84
+/* 8027EA78 0027A6D8 2C 06 00 00 */ cmpwi r6, 0
+/* 8027EA7C 0027A6DC 40 80 00 08 */ bge lbl_8027EA84
+lbl_8027EA80:
+/* 8027EA80 0027A6E0 38 00 00 01 */ li r0, 1
+lbl_8027EA84:
+/* 8027EA84 0027A6E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8027EA88 0027A6E8 41 82 00 34 */ beq lbl_8027EABC
+/* 8027EA8C 0027A6EC 3C 60 80 43 */ lis r3, lbl_80434CE0@ha
+/* 8027EA90 0027A6F0 38 63 4C E0 */ addi r3, r3, lbl_80434CE0@l
+/* 8027EA94 0027A6F4 4C C6 31 82 */ crclr 6
+/* 8027EA98 0027A6F8 4B D8 90 2D */ bl func_80007AC4
+/* 8027EA9C 0027A6FC 3C 80 80 51 */ lis r4, lbl_80515FB0@ha
+/* 8027EAA0 0027A700 3C 60 80 43 */ lis r3, lbl_80434CF8@ha
+/* 8027EAA4 0027A704 38 A4 5F B0 */ addi r5, r4, lbl_80515FB0@l
+/* 8027EAA8 0027A708 80 84 5F B0 */ lwz r4, 0x5fb0(r4)
+/* 8027EAAC 0027A70C 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8027EAB0 0027A710 38 63 4C F8 */ addi r3, r3, lbl_80434CF8@l
+/* 8027EAB4 0027A714 4C C6 31 82 */ crclr 6
+/* 8027EAB8 0027A718 4B D8 90 0D */ bl func_80007AC4
+lbl_8027EABC:
+/* 8027EABC 0027A71C 38 60 00 00 */ li r3, 0
+lbl_8027EAC0:
+/* 8027EAC0 0027A720 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027EAC4 0027A724 7C 08 03 A6 */ mtlr r0
+/* 8027EAC8 0027A728 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027EACC 0027A72C 4E 80 00 20 */ blr
+
+.global GXSetCPUFifo
+GXSetCPUFifo:
+/* 8027EAD0 0027A730 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027EAD4 0027A734 7C 08 02 A6 */ mflr r0
+/* 8027EAD8 0027A738 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027EADC 0027A73C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027EAE0 0027A740 4B F4 86 49 */ bl _savegpr_27
+/* 8027EAE4 0027A744 7C 7B 1B 78 */ mr r27, r3
+/* 8027EAE8 0027A748 4B FE FC 75 */ bl OSDisableInterrupts
+/* 8027EAEC 0027A74C 2C 1B 00 00 */ cmpwi r27, 0
+/* 8027EAF0 0027A750 7C 7E 1B 78 */ mr r30, r3
+/* 8027EAF4 0027A754 40 82 00 28 */ bne lbl_8027EB1C
+/* 8027EAF8 0027A758 3C 80 80 51 */ lis r4, lbl_80515FD4@ha
+/* 8027EAFC 0027A75C 38 00 00 00 */ li r0, 0
+/* 8027EB00 0027A760 38 84 5F D4 */ addi r4, r4, lbl_80515FD4@l
+/* 8027EB04 0027A764 98 0D A9 B8 */ stb r0, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027EB08 0027A768 98 0D A9 D0 */ stb r0, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EB0C 0027A76C 98 04 00 22 */ stb r0, 0x22(r4)
+/* 8027EB10 0027A770 98 04 00 21 */ stb r0, 0x21(r4)
+/* 8027EB14 0027A774 4B FE FC 71 */ bl OSRestoreInterrupts
+/* 8027EB18 0027A778 48 00 01 80 */ b lbl_8027EC98
+lbl_8027EB1C:
+/* 8027EB1C 0027A77C 3F 80 80 51 */ lis r28, lbl_80515FD4@ha
+/* 8027EB20 0027A780 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8027EB24 0027A784 80 1B 00 04 */ lwz r0, 4(r27)
+/* 8027EB28 0027A788 3B FC 5F D4 */ addi r31, r28, lbl_80515FD4@l
+/* 8027EB2C 0027A78C 3B A0 00 01 */ li r29, 1
+/* 8027EB30 0027A790 90 7F 00 00 */ stw r3, 0(r31)
+/* 8027EB34 0027A794 90 1F 00 04 */ stw r0, 4(r31)
+/* 8027EB38 0027A798 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8027EB3C 0027A79C 80 1B 00 0C */ lwz r0, 0xc(r27)
+/* 8027EB40 0027A7A0 90 7F 00 08 */ stw r3, 8(r31)
+/* 8027EB44 0027A7A4 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8027EB48 0027A7A8 80 7B 00 10 */ lwz r3, 0x10(r27)
+/* 8027EB4C 0027A7AC 80 1B 00 14 */ lwz r0, 0x14(r27)
+/* 8027EB50 0027A7B0 90 7F 00 10 */ stw r3, 0x10(r31)
+/* 8027EB54 0027A7B4 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8027EB58 0027A7B8 80 7B 00 18 */ lwz r3, 0x18(r27)
+/* 8027EB5C 0027A7BC 80 1B 00 1C */ lwz r0, 0x1c(r27)
+/* 8027EB60 0027A7C0 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 8027EB64 0027A7C4 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8027EB68 0027A7C8 80 1B 00 20 */ lwz r0, 0x20(r27)
+/* 8027EB6C 0027A7CC 90 1F 00 20 */ stw r0, 0x20(r31)
+/* 8027EB70 0027A7D0 9B AD A9 B8 */ stb r29, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027EB74 0027A7D4 9B BF 00 21 */ stb r29, 0x21(r31)
+/* 8027EB78 0027A7D8 4B FF FE 61 */ bl CPGPLinkCheck
+/* 8027EB7C 0027A7DC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8027EB80 0027A7E0 41 82 00 88 */ beq lbl_8027EC08
+/* 8027EB84 0027A7E4 80 9C 5F D4 */ lwz r4, 0x5fd4(r28)
+/* 8027EB88 0027A7E8 38 00 00 00 */ li r0, 0
+/* 8027EB8C 0027A7EC 9B AD A9 D0 */ stb r29, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EB90 0027A7F0 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EB94 0027A7F4 54 84 00 BE */ clrlwi r4, r4, 2
+/* 8027EB98 0027A7F8 9B BF 00 22 */ stb r29, 0x22(r31)
+/* 8027EB9C 0027A7FC 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027EBA0 0027A800 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8027EBA4 0027A804 80 9F 00 04 */ lwz r4, 4(r31)
+/* 8027EBA8 0027A808 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EBAC 0027A80C 54 84 00 BE */ clrlwi r4, r4, 2
+/* 8027EBB0 0027A810 90 83 00 10 */ stw r4, 0x10(r3)
+/* 8027EBB4 0027A814 80 9F 00 18 */ lwz r4, 0x18(r31)
+/* 8027EBB8 0027A818 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EBBC 0027A81C 50 80 00 F4 */ rlwimi r0, r4, 0, 3, 0x1a
+/* 8027EBC0 0027A820 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8027EBC4 0027A824 80 05 00 10 */ lwz r0, 0x10(r5)
+/* 8027EBC8 0027A828 60 00 00 03 */ ori r0, r0, 3
+/* 8027EBCC 0027A82C 90 05 00 10 */ stw r0, 0x10(r5)
+/* 8027EBD0 0027A830 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EBD4 0027A834 B0 03 00 04 */ sth r0, 4(r3)
+/* 8027EBD8 0027A838 80 05 00 08 */ lwz r0, 8(r5)
+/* 8027EBDC 0027A83C 60 00 00 04 */ ori r0, r0, 4
+/* 8027EBE0 0027A840 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 8027EBE4 0027A844 90 05 00 08 */ stw r0, 8(r5)
+/* 8027EBE8 0027A848 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EBEC 0027A84C B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EBF0 0027A850 80 05 00 08 */ lwz r0, 8(r5)
+/* 8027EBF4 0027A854 60 00 00 10 */ ori r0, r0, 0x10
+/* 8027EBF8 0027A858 90 05 00 08 */ stw r0, 8(r5)
+/* 8027EBFC 0027A85C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EC00 0027A860 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EC04 0027A864 48 00 00 88 */ b lbl_8027EC8C
+lbl_8027EC08:
+/* 8027EC08 0027A868 88 0D A9 D0 */ lbz r0, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EC0C 0027A86C 38 80 00 00 */ li r4, 0
+/* 8027EC10 0027A870 98 9F 00 22 */ stb r4, 0x22(r31)
+/* 8027EC14 0027A874 2C 00 00 00 */ cmpwi r0, 0
+/* 8027EC18 0027A878 41 82 00 20 */ beq lbl_8027EC38
+/* 8027EC1C 0027A87C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027EC20 0027A880 80 03 00 08 */ lwz r0, 8(r3)
+/* 8027EC24 0027A884 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 8027EC28 0027A888 90 03 00 08 */ stw r0, 8(r3)
+/* 8027EC2C 0027A88C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EC30 0027A890 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EC34 0027A894 98 8D A9 D0 */ stb r4, lbl_8063FC90-_SDA_BASE_(r13)
+lbl_8027EC38:
+/* 8027EC38 0027A898 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027EC3C 0027A89C 3C 60 80 51 */ lis r3, lbl_80515FD4@ha
+/* 8027EC40 0027A8A0 38 A3 5F D4 */ addi r5, r3, lbl_80515FD4@l
+/* 8027EC44 0027A8A4 38 00 00 00 */ li r0, 0
+/* 8027EC48 0027A8A8 80 87 00 08 */ lwz r4, 8(r7)
+/* 8027EC4C 0027A8AC 54 86 07 B6 */ rlwinm r6, r4, 0, 0x1e, 0x1b
+/* 8027EC50 0027A8B0 90 C7 00 08 */ stw r6, 8(r7)
+/* 8027EC54 0027A8B4 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EC58 0027A8B8 B0 C4 00 02 */ sth r6, 2(r4)
+/* 8027EC5C 0027A8BC 80 83 5F D4 */ lwz r4, 0x5fd4(r3)
+/* 8027EC60 0027A8C0 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EC64 0027A8C4 54 84 00 BE */ clrlwi r4, r4, 2
+/* 8027EC68 0027A8C8 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8027EC6C 0027A8CC 80 85 00 04 */ lwz r4, 4(r5)
+/* 8027EC70 0027A8D0 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EC74 0027A8D4 54 84 00 BE */ clrlwi r4, r4, 2
+/* 8027EC78 0027A8D8 90 83 00 10 */ stw r4, 0x10(r3)
+/* 8027EC7C 0027A8DC 80 85 00 18 */ lwz r4, 0x18(r5)
+/* 8027EC80 0027A8E0 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EC84 0027A8E4 50 80 00 F4 */ rlwimi r0, r4, 0, 3, 0x1a
+/* 8027EC88 0027A8E8 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8027EC8C:
+/* 8027EC8C 0027A8EC 4B FE 95 D5 */ bl PPCSync
+/* 8027EC90 0027A8F0 7F C3 F3 78 */ mr r3, r30
+/* 8027EC94 0027A8F4 4B FE FA F1 */ bl OSRestoreInterrupts
+lbl_8027EC98:
+/* 8027EC98 0027A8F8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027EC9C 0027A8FC 4B F4 84 D9 */ bl _restgpr_27
+/* 8027ECA0 0027A900 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027ECA4 0027A904 7C 08 03 A6 */ mtlr r0
+/* 8027ECA8 0027A908 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027ECAC 0027A90C 4E 80 00 20 */ blr
+
+.global GXSetGPFifo
+GXSetGPFifo:
+/* 8027ECB0 0027A910 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027ECB4 0027A914 7C 08 02 A6 */ mflr r0
+/* 8027ECB8 0027A918 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027ECBC 0027A91C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027ECC0 0027A920 4B F4 84 69 */ bl _savegpr_27
+/* 8027ECC4 0027A924 7C 7B 1B 78 */ mr r27, r3
+/* 8027ECC8 0027A928 4B FE FA 95 */ bl OSDisableInterrupts
+/* 8027ECCC 0027A92C 83 A2 A0 D0 */ lwz r29, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027ECD0 0027A930 2C 1B 00 00 */ cmpwi r27, 0
+/* 8027ECD4 0027A934 7C 7C 1B 78 */ mr r28, r3
+/* 8027ECD8 0027A938 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027ECDC 0027A93C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 8027ECE0 0027A940 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027ECE4 0027A944 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027ECE8 0027A948 B0 04 00 02 */ sth r0, 2(r4)
+/* 8027ECEC 0027A94C 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027ECF0 0027A950 54 00 07 B6 */ rlwinm r0, r0, 0, 0x1e, 0x1b
+/* 8027ECF4 0027A954 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027ECF8 0027A958 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027ECFC 0027A95C B0 04 00 02 */ sth r0, 2(r4)
+/* 8027ED00 0027A960 40 82 00 3C */ bne lbl_8027ED3C
+/* 8027ED04 0027A964 38 C0 00 00 */ li r6, 0
+/* 8027ED08 0027A968 3C 80 80 51 */ lis r4, lbl_80515FB0@ha
+/* 8027ED0C 0027A96C 98 CD A9 B9 */ stb r6, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027ED10 0027A970 38 84 5F B0 */ addi r4, r4, lbl_80515FB0@l
+/* 8027ED14 0027A974 98 CD A9 D0 */ stb r6, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027ED18 0027A978 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027ED1C 0027A97C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 8027ED20 0027A980 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027ED24 0027A984 80 AD A9 94 */ lwz r5, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027ED28 0027A988 B0 05 00 02 */ sth r0, 2(r5)
+/* 8027ED2C 0027A98C 98 C4 00 21 */ stb r6, 0x21(r4)
+/* 8027ED30 0027A990 98 C4 00 22 */ stb r6, 0x22(r4)
+/* 8027ED34 0027A994 4B FE FA 51 */ bl OSRestoreInterrupts
+/* 8027ED38 0027A998 48 00 01 F0 */ b lbl_8027EF28
+lbl_8027ED3C:
+/* 8027ED3C 0027A99C 3C 60 80 51 */ lis r3, lbl_80515FB0@ha
+/* 8027ED40 0027A9A0 80 DB 00 00 */ lwz r6, 0(r27)
+/* 8027ED44 0027A9A4 80 1B 00 04 */ lwz r0, 4(r27)
+/* 8027ED48 0027A9A8 3B C3 5F B0 */ addi r30, r3, lbl_80515FB0@l
+/* 8027ED4C 0027A9AC 3B E0 00 01 */ li r31, 1
+/* 8027ED50 0027A9B0 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027ED54 0027A9B4 90 DE 00 00 */ stw r6, 0(r30)
+/* 8027ED58 0027A9B8 90 1E 00 04 */ stw r0, 4(r30)
+/* 8027ED5C 0027A9BC 80 BB 00 08 */ lwz r5, 8(r27)
+/* 8027ED60 0027A9C0 80 1B 00 0C */ lwz r0, 0xc(r27)
+/* 8027ED64 0027A9C4 90 BE 00 08 */ stw r5, 8(r30)
+/* 8027ED68 0027A9C8 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 8027ED6C 0027A9CC 80 BB 00 10 */ lwz r5, 0x10(r27)
+/* 8027ED70 0027A9D0 80 1B 00 14 */ lwz r0, 0x14(r27)
+/* 8027ED74 0027A9D4 90 BE 00 10 */ stw r5, 0x10(r30)
+/* 8027ED78 0027A9D8 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 8027ED7C 0027A9DC 80 BB 00 18 */ lwz r5, 0x18(r27)
+/* 8027ED80 0027A9E0 80 1B 00 1C */ lwz r0, 0x1c(r27)
+/* 8027ED84 0027A9E4 90 BE 00 18 */ stw r5, 0x18(r30)
+/* 8027ED88 0027A9E8 90 1E 00 1C */ stw r0, 0x1c(r30)
+/* 8027ED8C 0027A9EC 80 1B 00 20 */ lwz r0, 0x20(r27)
+/* 8027ED90 0027A9F0 90 1E 00 20 */ stw r0, 0x20(r30)
+/* 8027ED94 0027A9F4 9B ED A9 B9 */ stb r31, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027ED98 0027A9F8 9B FE 00 22 */ stb r31, 0x22(r30)
+/* 8027ED9C 0027A9FC B0 C4 00 20 */ sth r6, 0x20(r4)
+/* 8027EDA0 0027AA00 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8027EDA4 0027AA04 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDA8 0027AA08 B0 04 00 24 */ sth r0, 0x24(r4)
+/* 8027EDAC 0027AA0C 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8027EDB0 0027AA10 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDB4 0027AA14 B0 04 00 30 */ sth r0, 0x30(r4)
+/* 8027EDB8 0027AA18 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8027EDBC 0027AA1C 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDC0 0027AA20 B0 04 00 34 */ sth r0, 0x34(r4)
+/* 8027EDC4 0027AA24 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 8027EDC8 0027AA28 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDCC 0027AA2C B0 04 00 38 */ sth r0, 0x38(r4)
+/* 8027EDD0 0027AA30 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 8027EDD4 0027AA34 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDD8 0027AA38 B0 04 00 28 */ sth r0, 0x28(r4)
+/* 8027EDDC 0027AA3C 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8027EDE0 0027AA40 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDE4 0027AA44 B0 04 00 2C */ sth r0, 0x2c(r4)
+/* 8027EDE8 0027AA48 80 03 5F B0 */ lwz r0, 0x5fb0(r3)
+/* 8027EDEC 0027AA4C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EDF0 0027AA50 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027EDF4 0027AA54 B0 03 00 22 */ sth r0, 0x22(r3)
+/* 8027EDF8 0027AA58 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8027EDFC 0027AA5C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE00 0027AA60 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027EE04 0027AA64 B0 03 00 26 */ sth r0, 0x26(r3)
+/* 8027EE08 0027AA68 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8027EE0C 0027AA6C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE10 0027AA70 7C 00 86 70 */ srawi r0, r0, 0x10
+/* 8027EE14 0027AA74 B0 03 00 32 */ sth r0, 0x32(r3)
+/* 8027EE18 0027AA78 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8027EE1C 0027AA7C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE20 0027AA80 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027EE24 0027AA84 B0 03 00 36 */ sth r0, 0x36(r3)
+/* 8027EE28 0027AA88 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 8027EE2C 0027AA8C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE30 0027AA90 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027EE34 0027AA94 B0 03 00 3A */ sth r0, 0x3a(r3)
+/* 8027EE38 0027AA98 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 8027EE3C 0027AA9C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE40 0027AAA0 54 00 84 3E */ srwi r0, r0, 0x10
+/* 8027EE44 0027AAA4 B0 03 00 2A */ sth r0, 0x2a(r3)
+/* 8027EE48 0027AAA8 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8027EE4C 0027AAAC 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE50 0027AAB0 54 00 84 3E */ srwi r0, r0, 0x10
+/* 8027EE54 0027AAB4 B0 03 00 2E */ sth r0, 0x2e(r3)
+/* 8027EE58 0027AAB8 4B FE 94 09 */ bl PPCSync
+/* 8027EE5C 0027AABC 4B FF FB 7D */ bl CPGPLinkCheck
+/* 8027EE60 0027AAC0 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8027EE64 0027AAC4 41 82 00 3C */ beq lbl_8027EEA0
+/* 8027EE68 0027AAC8 9B ED A9 D0 */ stb r31, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EE6C 0027AACC 9B FE 00 21 */ stb r31, 0x21(r30)
+/* 8027EE70 0027AAD0 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EE74 0027AAD4 60 00 00 04 */ ori r0, r0, 4
+/* 8027EE78 0027AAD8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 8027EE7C 0027AADC 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027EE80 0027AAE0 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE84 0027AAE4 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EE88 0027AAE8 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EE8C 0027AAEC 60 00 00 10 */ ori r0, r0, 0x10
+/* 8027EE90 0027AAF0 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027EE94 0027AAF4 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EE98 0027AAF8 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EE9C 0027AAFC 48 00 00 38 */ b lbl_8027EED4
+lbl_8027EEA0:
+/* 8027EEA0 0027AB00 38 00 00 00 */ li r0, 0
+/* 8027EEA4 0027AB04 98 0D A9 D0 */ stb r0, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EEA8 0027AB08 98 1E 00 21 */ stb r0, 0x21(r30)
+/* 8027EEAC 0027AB0C 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EEB0 0027AB10 54 00 07 B6 */ rlwinm r0, r0, 0, 0x1e, 0x1b
+/* 8027EEB4 0027AB14 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027EEB8 0027AB18 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EEBC 0027AB1C B0 03 00 02 */ sth r0, 2(r3)
+/* 8027EEC0 0027AB20 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EEC4 0027AB24 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
+/* 8027EEC8 0027AB28 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027EECC 0027AB2C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EED0 0027AB30 B0 03 00 02 */ sth r0, 2(r3)
+lbl_8027EED4:
+/* 8027EED4 0027AB34 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EED8 0027AB38 7F 83 E3 78 */ mr r3, r28
+/* 8027EEDC 0027AB3C 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EEE0 0027AB40 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 8027EEE4 0027AB44 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027EEE8 0027AB48 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
+/* 8027EEEC 0027AB4C B0 04 00 02 */ sth r0, 2(r4)
+/* 8027EEF0 0027AB50 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EEF4 0027AB54 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EEF8 0027AB58 B0 04 00 02 */ sth r0, 2(r4)
+/* 8027EEFC 0027AB5C 80 05 00 10 */ lwz r0, 0x10(r5)
+/* 8027EF00 0027AB60 60 00 00 03 */ ori r0, r0, 3
+/* 8027EF04 0027AB64 90 05 00 10 */ stw r0, 0x10(r5)
+/* 8027EF08 0027AB68 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EF0C 0027AB6C B0 04 00 04 */ sth r0, 4(r4)
+/* 8027EF10 0027AB70 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027EF14 0027AB74 60 00 00 01 */ ori r0, r0, 1
+/* 8027EF18 0027AB78 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027EF1C 0027AB7C 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EF20 0027AB80 B0 04 00 02 */ sth r0, 2(r4)
+/* 8027EF24 0027AB84 4B FE F8 61 */ bl OSRestoreInterrupts
+lbl_8027EF28:
+/* 8027EF28 0027AB88 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027EF2C 0027AB8C 4B F4 82 49 */ bl _restgpr_27
+/* 8027EF30 0027AB90 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027EF34 0027AB94 7C 08 03 A6 */ mtlr r0
+/* 8027EF38 0027AB98 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027EF3C 0027AB9C 4E 80 00 20 */ blr
+
+.global __GXSaveFifo
+__GXSaveFifo:
+/* 8027EF40 0027ABA0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027EF44 0027ABA4 7C 08 02 A6 */ mflr r0
+/* 8027EF48 0027ABA8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027EF4C 0027ABAC 4B FE F8 11 */ bl OSDisableInterrupts
+/* 8027EF50 0027ABB0 88 CD A9 B8 */ lbz r6, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027EF54 0027ABB4 2C 06 00 00 */ cmpwi r6, 0
+/* 8027EF58 0027ABB8 41 82 00 28 */ beq lbl_8027EF80
+/* 8027EF5C 0027ABBC 80 AD A9 90 */ lwz r5, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027EF60 0027ABC0 3C 80 80 51 */ lis r4, lbl_80515FD4@ha
+/* 8027EF64 0027ABC4 38 84 5F D4 */ addi r4, r4, lbl_80515FD4@l
+/* 8027EF68 0027ABC8 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 8027EF6C 0027ABCC 54 05 00 F4 */ rlwinm r5, r0, 0, 3, 0x1a
+/* 8027EF70 0027ABD0 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
+/* 8027EF74 0027ABD4 3C A5 80 00 */ addis r5, r5, 0x8000
+/* 8027EF78 0027ABD8 98 04 00 20 */ stb r0, 0x20(r4)
+/* 8027EF7C 0027ABDC 90 A4 00 18 */ stw r5, 0x18(r4)
+lbl_8027EF80:
+/* 8027EF80 0027ABE0 88 0D A9 B9 */ lbz r0, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027EF84 0027ABE4 2C 00 00 00 */ cmpwi r0, 0
+/* 8027EF88 0027ABE8 41 82 00 34 */ beq lbl_8027EFBC
+/* 8027EF8C 0027ABEC 80 ED A9 94 */ lwz r7, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027EF90 0027ABF0 3C 80 80 51 */ lis r4, lbl_80515FB0@ha
+/* 8027EF94 0027ABF4 38 84 5F B0 */ addi r4, r4, lbl_80515FB0@l
+/* 8027EF98 0027ABF8 A0 07 00 3A */ lhz r0, 0x3a(r7)
+/* 8027EF9C 0027ABFC A0 A7 00 38 */ lhz r5, 0x38(r7)
+/* 8027EFA0 0027AC00 50 05 80 1E */ rlwimi r5, r0, 0x10, 0, 0xf
+/* 8027EFA4 0027AC04 3C 05 80 00 */ addis r0, r5, 0x8000
+/* 8027EFA8 0027AC08 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8027EFAC 0027AC0C A0 07 00 32 */ lhz r0, 0x32(r7)
+/* 8027EFB0 0027AC10 A0 A7 00 30 */ lhz r5, 0x30(r7)
+/* 8027EFB4 0027AC14 50 05 80 1E */ rlwimi r5, r0, 0x10, 0, 0xf
+/* 8027EFB8 0027AC18 90 A4 00 1C */ stw r5, 0x1c(r4)
+lbl_8027EFBC:
+/* 8027EFBC 0027AC1C 88 0D A9 D0 */ lbz r0, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027EFC0 0027AC20 2C 00 00 00 */ cmpwi r0, 0
+/* 8027EFC4 0027AC24 41 82 00 38 */ beq lbl_8027EFFC
+/* 8027EFC8 0027AC28 3D 00 80 51 */ lis r8, lbl_80515FB0@ha
+/* 8027EFCC 0027AC2C 3C C0 80 51 */ lis r6, lbl_80515FD4@ha
+/* 8027EFD0 0027AC30 39 08 5F B0 */ addi r8, r8, lbl_80515FB0@l
+/* 8027EFD4 0027AC34 38 C6 5F D4 */ addi r6, r6, lbl_80515FD4@l
+/* 8027EFD8 0027AC38 80 E8 00 14 */ lwz r7, 0x14(r8)
+/* 8027EFDC 0027AC3C 80 A8 00 1C */ lwz r5, 0x1c(r8)
+/* 8027EFE0 0027AC40 80 86 00 18 */ lwz r4, 0x18(r6)
+/* 8027EFE4 0027AC44 88 06 00 20 */ lbz r0, 0x20(r6)
+/* 8027EFE8 0027AC48 90 E6 00 14 */ stw r7, 0x14(r6)
+/* 8027EFEC 0027AC4C 90 A6 00 1C */ stw r5, 0x1c(r6)
+/* 8027EFF0 0027AC50 90 88 00 18 */ stw r4, 0x18(r8)
+/* 8027EFF4 0027AC54 98 08 00 20 */ stb r0, 0x20(r8)
+/* 8027EFF8 0027AC58 48 00 00 34 */ b lbl_8027F02C
+lbl_8027EFFC:
+/* 8027EFFC 0027AC5C 2C 06 00 00 */ cmpwi r6, 0
+/* 8027F000 0027AC60 41 82 00 2C */ beq lbl_8027F02C
+/* 8027F004 0027AC64 3C A0 80 51 */ lis r5, lbl_80515FD4@ha
+/* 8027F008 0027AC68 38 A5 5F D4 */ addi r5, r5, lbl_80515FD4@l
+/* 8027F00C 0027AC6C 80 85 00 14 */ lwz r4, 0x14(r5)
+/* 8027F010 0027AC70 80 05 00 18 */ lwz r0, 0x18(r5)
+/* 8027F014 0027AC74 7C 84 00 51 */ subf. r4, r4, r0
+/* 8027F018 0027AC78 90 85 00 1C */ stw r4, 0x1c(r5)
+/* 8027F01C 0027AC7C 40 80 00 10 */ bge lbl_8027F02C
+/* 8027F020 0027AC80 80 05 00 08 */ lwz r0, 8(r5)
+/* 8027F024 0027AC84 7C 04 02 14 */ add r0, r4, r0
+/* 8027F028 0027AC88 90 05 00 1C */ stw r0, 0x1c(r5)
+lbl_8027F02C:
+/* 8027F02C 0027AC8C 4B FE F7 59 */ bl OSRestoreInterrupts
+/* 8027F030 0027AC90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027F034 0027AC94 7C 08 03 A6 */ mtlr r0
+/* 8027F038 0027AC98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027F03C 0027AC9C 4E 80 00 20 */ blr
+
+.global __GXIsGPFifoReady
+__GXIsGPFifoReady:
+/* 8027F040 0027ACA0 88 6D A9 B9 */ lbz r3, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027F044 0027ACA4 4E 80 00 20 */ blr
+
+.global GXGetGPStatus
+GXGetGPStatus:
+/* 8027F048 0027ACA8 81 0D A9 94 */ lwz r8, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F04C 0027ACAC 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F050 0027ACB0 A0 08 00 00 */ lhz r0, 0(r8)
+/* 8027F054 0027ACB4 90 09 00 0C */ stw r0, 0xc(r9)
+/* 8027F058 0027ACB8 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 8027F05C 0027ACBC 98 03 00 00 */ stb r0, 0(r3)
+/* 8027F060 0027ACC0 80 09 00 0C */ lwz r0, 0xc(r9)
+/* 8027F064 0027ACC4 54 00 FF FE */ rlwinm r0, r0, 0x1f, 0x1f, 0x1f
+/* 8027F068 0027ACC8 98 04 00 00 */ stb r0, 0(r4)
+/* 8027F06C 0027ACCC 80 09 00 0C */ lwz r0, 0xc(r9)
+/* 8027F070 0027ACD0 54 00 F7 FE */ rlwinm r0, r0, 0x1e, 0x1f, 0x1f
+/* 8027F074 0027ACD4 98 05 00 00 */ stb r0, 0(r5)
+/* 8027F078 0027ACD8 80 09 00 0C */ lwz r0, 0xc(r9)
+/* 8027F07C 0027ACDC 54 00 EF FE */ rlwinm r0, r0, 0x1d, 0x1f, 0x1f
+/* 8027F080 0027ACE0 98 06 00 00 */ stb r0, 0(r6)
+/* 8027F084 0027ACE4 80 09 00 0C */ lwz r0, 0xc(r9)
+/* 8027F088 0027ACE8 54 00 E7 FE */ rlwinm r0, r0, 0x1c, 0x1f, 0x1f
+/* 8027F08C 0027ACEC 98 07 00 00 */ stb r0, 0(r7)
+/* 8027F090 0027ACF0 4E 80 00 20 */ blr
+
+.global GXGetCPUFifo
+GXGetCPUFifo:
+/* 8027F094 0027ACF4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027F098 0027ACF8 7C 08 02 A6 */ mflr r0
+/* 8027F09C 0027ACFC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027F0A0 0027AD00 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027F0A4 0027AD04 7C 7F 1B 78 */ mr r31, r3
+/* 8027F0A8 0027AD08 88 0D A9 B8 */ lbz r0, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027F0AC 0027AD0C 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F0B0 0027AD10 40 82 00 0C */ bne lbl_8027F0BC
+/* 8027F0B4 0027AD14 38 60 00 00 */ li r3, 0
+/* 8027F0B8 0027AD18 48 00 00 5C */ b lbl_8027F114
+lbl_8027F0BC:
+/* 8027F0BC 0027AD1C 48 00 15 E9 */ bl GXFlush
+/* 8027F0C0 0027AD20 4B FF FE 81 */ bl __GXSaveFifo
+/* 8027F0C4 0027AD24 3C A0 80 51 */ lis r5, lbl_80510004@ha
+/* 8027F0C8 0027AD28 84 85 5F D4 */ lwzu r4, 0x5fd4(r5)
+/* 8027F0CC 0027AD2C 38 60 00 01 */ li r3, 1
+/* 8027F0D0 0027AD30 80 05 00 04 */ lwz r0, lbl_80510004@l(r5)
+/* 8027F0D4 0027AD34 90 9F 00 00 */ stw r4, 0(r31)
+/* 8027F0D8 0027AD38 90 1F 00 04 */ stw r0, 4(r31)
+/* 8027F0DC 0027AD3C 80 85 00 08 */ lwz r4, 8(r5)
+/* 8027F0E0 0027AD40 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 8027F0E4 0027AD44 90 9F 00 08 */ stw r4, 8(r31)
+/* 8027F0E8 0027AD48 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8027F0EC 0027AD4C 80 85 00 10 */ lwz r4, 0x10(r5)
+/* 8027F0F0 0027AD50 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 8027F0F4 0027AD54 90 9F 00 10 */ stw r4, 0x10(r31)
+/* 8027F0F8 0027AD58 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8027F0FC 0027AD5C 80 85 00 18 */ lwz r4, 0x18(r5)
+/* 8027F100 0027AD60 80 05 00 1C */ lwz r0, 0x1c(r5)
+/* 8027F104 0027AD64 90 9F 00 18 */ stw r4, 0x18(r31)
+/* 8027F108 0027AD68 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8027F10C 0027AD6C 80 05 00 20 */ lwz r0, 0x20(r5)
+/* 8027F110 0027AD70 90 1F 00 20 */ stw r0, 0x20(r31)
+lbl_8027F114:
+/* 8027F114 0027AD74 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027F118 0027AD78 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027F11C 0027AD7C 7C 08 03 A6 */ mtlr r0
+/* 8027F120 0027AD80 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027F124 0027AD84 4E 80 00 20 */ blr
+
+# either GXGetFifoPtrs or GXGetFifoLimits
+.global func_8027F128
+func_8027F128:
+/* 8027F128 0027AD88 80 C3 00 14 */ lwz r6, 0x14(r3)
+/* 8027F12C 0027AD8C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8027F130 0027AD90 90 C4 00 00 */ stw r6, 0(r4)
+/* 8027F134 0027AD94 90 05 00 00 */ stw r0, 0(r5)
+/* 8027F138 0027AD98 4E 80 00 20 */ blr
+
+.global GXGetFifoCount
+GXGetFifoCount:
+/* 8027F13C 0027AD9C 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8027F140 0027ADA0 4E 80 00 20 */ blr
+
+.global GXGetFifoWrap
+GXGetFifoWrap:
+/* 8027F144 0027ADA4 88 63 00 20 */ lbz r3, 0x20(r3)
+/* 8027F148 0027ADA8 4E 80 00 20 */ blr
+
+.global GXSetBreakPtCallback
+GXSetBreakPtCallback:
+/* 8027F14C 0027ADAC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027F150 0027ADB0 7C 08 02 A6 */ mflr r0
+/* 8027F154 0027ADB4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027F158 0027ADB8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027F15C 0027ADBC 93 C1 00 08 */ stw r30, 8(r1)
+/* 8027F160 0027ADC0 7C 7E 1B 78 */ mr r30, r3
+/* 8027F164 0027ADC4 83 ED A9 C4 */ lwz r31, lbl_8063FC84-_SDA_BASE_(r13)
+/* 8027F168 0027ADC8 4B FE F5 F5 */ bl OSDisableInterrupts
+/* 8027F16C 0027ADCC 93 CD A9 C4 */ stw r30, lbl_8063FC84-_SDA_BASE_(r13)
+/* 8027F170 0027ADD0 4B FE F6 15 */ bl OSRestoreInterrupts
+/* 8027F174 0027ADD4 7F E3 FB 78 */ mr r3, r31
+/* 8027F178 0027ADD8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027F17C 0027ADDC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8027F180 0027ADE0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027F184 0027ADE4 7C 08 03 A6 */ mtlr r0
+/* 8027F188 0027ADE8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027F18C 0027ADEC 4E 80 00 20 */ blr
+
+.global GXDisableBreakPt
+GXDisableBreakPt:
+/* 8027F190 0027ADF0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027F194 0027ADF4 7C 08 02 A6 */ mflr r0
+/* 8027F198 0027ADF8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027F19C 0027ADFC 4B FE F5 C1 */ bl OSDisableInterrupts
+/* 8027F1A0 0027AE00 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F1A4 0027AE04 38 00 00 00 */ li r0, 0
+/* 8027F1A8 0027AE08 80 86 00 08 */ lwz r4, 8(r6)
+/* 8027F1AC 0027AE0C 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
+/* 8027F1B0 0027AE10 54 85 06 F2 */ rlwinm r5, r4, 0, 0x1b, 0x19
+/* 8027F1B4 0027AE14 90 A6 00 08 */ stw r5, 8(r6)
+/* 8027F1B8 0027AE18 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F1BC 0027AE1C B0 A4 00 02 */ sth r5, 2(r4)
+/* 8027F1C0 0027AE20 90 0D A9 C0 */ stw r0, lbl_8063FC80-_SDA_BASE_(r13)
+/* 8027F1C4 0027AE24 4B FE F5 C1 */ bl OSRestoreInterrupts
+/* 8027F1C8 0027AE28 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027F1CC 0027AE2C 7C 08 03 A6 */ mtlr r0
+/* 8027F1D0 0027AE30 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027F1D4 0027AE34 4E 80 00 20 */ blr
+
+.global __GXFifoInit
+__GXFifoInit:
+/* 8027F1D8 0027AE38 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027F1DC 0027AE3C 7C 08 02 A6 */ mflr r0
+/* 8027F1E0 0027AE40 3C 80 80 28 */ lis r4, GXCPInterruptHandler@ha
+/* 8027F1E4 0027AE44 38 60 00 11 */ li r3, 0x11
+/* 8027F1E8 0027AE48 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027F1EC 0027AE4C 38 84 E7 EC */ addi r4, r4, GXCPInterruptHandler@l
+/* 8027F1F0 0027AE50 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027F1F4 0027AE54 4B FE F5 B5 */ bl __OSSetInterruptHandler
+/* 8027F1F8 0027AE58 38 60 40 00 */ li r3, 0x4000
+/* 8027F1FC 0027AE5C 4B FE F9 71 */ bl __OSUnmaskInterrupts
+/* 8027F200 0027AE60 4B FF 20 F9 */ bl OSGetCurrentThread
+/* 8027F204 0027AE64 3B E0 00 00 */ li r31, 0
+/* 8027F208 0027AE68 90 6D A9 CC */ stw r3, lbl_8063FC8C-_SDA_BASE_(r13)
+/* 8027F20C 0027AE6C 3C 60 80 51 */ lis r3, lbl_80515FD4@ha
+/* 8027F210 0027AE70 38 80 00 00 */ li r4, 0
+/* 8027F214 0027AE74 93 ED A9 C8 */ stw r31, lbl_8063FC88-_SDA_BASE_(r13)
+/* 8027F218 0027AE78 38 63 5F D4 */ addi r3, r3, lbl_80515FD4@l
+/* 8027F21C 0027AE7C 38 A0 00 24 */ li r5, 0x24
+/* 8027F220 0027AE80 4B D8 4E E5 */ bl memset
+/* 8027F224 0027AE84 3C 60 80 51 */ lis r3, lbl_80515FB0@ha
+/* 8027F228 0027AE88 38 80 00 00 */ li r4, 0
+/* 8027F22C 0027AE8C 38 63 5F B0 */ addi r3, r3, lbl_80515FB0@l
+/* 8027F230 0027AE90 38 A0 00 24 */ li r5, 0x24
+/* 8027F234 0027AE94 4B D8 4E D1 */ bl memset
+/* 8027F238 0027AE98 9B ED A9 B8 */ stb r31, lbl_8063FC78-_SDA_BASE_(r13)
+/* 8027F23C 0027AE9C 9B ED A9 B9 */ stb r31, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027F240 0027AEA0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027F244 0027AEA4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027F248 0027AEA8 7C 08 03 A6 */ mtlr r0
+/* 8027F24C 0027AEAC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027F250 0027AEB0 4E 80 00 20 */ blr
+
+.global __GXCleanGPFifo
+__GXCleanGPFifo:
+/* 8027F254 0027AEB4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027F258 0027AEB8 7C 08 02 A6 */ mflr r0
+/* 8027F25C 0027AEBC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027F260 0027AEC0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8027F264 0027AEC4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027F268 0027AEC8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027F26C 0027AECC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8027F270 0027AED0 88 0D A9 B9 */ lbz r0, lbl_8063FC79-_SDA_BASE_(r13)
+/* 8027F274 0027AED4 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F278 0027AED8 41 82 01 5C */ beq lbl_8027F3D4
+/* 8027F27C 0027AEDC 4B FE F4 E1 */ bl OSDisableInterrupts
+/* 8027F280 0027AEE0 83 A2 A0 D0 */ lwz r29, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F284 0027AEE4 3F C0 80 51 */ lis r30, lbl_80515FB0@ha
+/* 8027F288 0027AEE8 7C 7C 1B 78 */ mr r28, r3
+/* 8027F28C 0027AEEC 3B E0 00 00 */ li r31, 0
+/* 8027F290 0027AEF0 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027F294 0027AEF4 3B DE 5F B0 */ addi r30, r30, lbl_80515FB0@l
+/* 8027F298 0027AEF8 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 8027F29C 0027AEFC 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027F2A0 0027AF00 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2A4 0027AF04 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027F2A8 0027AF08 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027F2AC 0027AF0C 54 00 07 B6 */ rlwinm r0, r0, 0, 0x1e, 0x1b
+/* 8027F2B0 0027AF10 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027F2B4 0027AF14 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2B8 0027AF18 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027F2BC 0027AF1C 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8027F2C0 0027AF20 93 FE 00 1C */ stw r31, 0x1c(r30)
+/* 8027F2C4 0027AF24 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2C8 0027AF28 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 8027F2CC 0027AF2C B3 E3 00 30 */ sth r31, 0x30(r3)
+/* 8027F2D0 0027AF30 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8027F2D4 0027AF34 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2D8 0027AF38 B0 03 00 34 */ sth r0, 0x34(r3)
+/* 8027F2DC 0027AF3C 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 8027F2E0 0027AF40 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2E4 0027AF44 B0 03 00 38 */ sth r0, 0x38(r3)
+/* 8027F2E8 0027AF48 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8027F2EC 0027AF4C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F2F0 0027AF50 7C 00 86 70 */ srawi r0, r0, 0x10
+/* 8027F2F4 0027AF54 B0 03 00 32 */ sth r0, 0x32(r3)
+/* 8027F2F8 0027AF58 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8027F2FC 0027AF5C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F300 0027AF60 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027F304 0027AF64 B0 03 00 36 */ sth r0, 0x36(r3)
+/* 8027F308 0027AF68 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 8027F30C 0027AF6C 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F310 0027AF70 54 00 84 BE */ rlwinm r0, r0, 0x10, 0x12, 0x1f
+/* 8027F314 0027AF74 B0 03 00 3A */ sth r0, 0x3a(r3)
+/* 8027F318 0027AF78 4B FE 8F 49 */ bl PPCSync
+/* 8027F31C 0027AF7C 88 0D A9 D0 */ lbz r0, lbl_8063FC90-_SDA_BASE_(r13)
+/* 8027F320 0027AF80 2C 00 00 00 */ cmpwi r0, 0
+/* 8027F324 0027AF84 41 82 00 5C */ beq lbl_8027F380
+/* 8027F328 0027AF88 3C A0 80 51 */ lis r5, lbl_80515FD4@ha
+/* 8027F32C 0027AF8C 80 9E 00 18 */ lwz r4, 0x18(r30)
+/* 8027F330 0027AF90 38 A5 5F D4 */ addi r5, r5, lbl_80515FD4@l
+/* 8027F334 0027AF94 80 7E 00 14 */ lwz r3, 0x14(r30)
+/* 8027F338 0027AF98 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8027F33C 0027AF9C 50 9F 00 F4 */ rlwimi r31, r4, 0, 3, 0x1a
+/* 8027F340 0027AFA0 90 65 00 14 */ stw r3, 0x14(r5)
+/* 8027F344 0027AFA4 80 6D A9 90 */ lwz r3, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027F348 0027AFA8 90 85 00 18 */ stw r4, 0x18(r5)
+/* 8027F34C 0027AFAC 90 05 00 1C */ stw r0, 0x1c(r5)
+/* 8027F350 0027AFB0 93 E3 00 14 */ stw r31, 0x14(r3)
+/* 8027F354 0027AFB4 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027F358 0027AFB8 60 00 00 04 */ ori r0, r0, 4
+/* 8027F35C 0027AFBC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
+/* 8027F360 0027AFC0 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027F364 0027AFC4 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F368 0027AFC8 B0 03 00 02 */ sth r0, 2(r3)
+/* 8027F36C 0027AFCC 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027F370 0027AFD0 60 00 00 10 */ ori r0, r0, 0x10
+/* 8027F374 0027AFD4 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027F378 0027AFD8 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F37C 0027AFDC B0 03 00 02 */ sth r0, 2(r3)
+lbl_8027F380:
+/* 8027F380 0027AFE0 80 9D 00 08 */ lwz r4, 8(r29)
+/* 8027F384 0027AFE4 38 00 00 00 */ li r0, 0
+/* 8027F388 0027AFE8 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027F38C 0027AFEC 7F 83 E3 78 */ mr r3, r28
+/* 8027F390 0027AFF0 54 84 07 FA */ rlwinm r4, r4, 0, 0x1f, 0x1d
+/* 8027F394 0027AFF4 54 85 06 F2 */ rlwinm r5, r4, 0, 0x1b, 0x19
+/* 8027F398 0027AFF8 90 BD 00 08 */ stw r5, 8(r29)
+/* 8027F39C 0027AFFC 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F3A0 0027B000 B0 A4 00 02 */ sth r5, 2(r4)
+/* 8027F3A4 0027B004 90 0D A9 C0 */ stw r0, lbl_8063FC80-_SDA_BASE_(r13)
+/* 8027F3A8 0027B008 80 06 00 10 */ lwz r0, 0x10(r6)
+/* 8027F3AC 0027B00C 60 00 00 03 */ ori r0, r0, 3
+/* 8027F3B0 0027B010 90 06 00 10 */ stw r0, 0x10(r6)
+/* 8027F3B4 0027B014 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F3B8 0027B018 B0 04 00 04 */ sth r0, 4(r4)
+/* 8027F3BC 0027B01C 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8027F3C0 0027B020 60 00 00 01 */ ori r0, r0, 1
+/* 8027F3C4 0027B024 90 1D 00 08 */ stw r0, 8(r29)
+/* 8027F3C8 0027B028 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027F3CC 0027B02C B0 04 00 02 */ sth r0, 2(r4)
+/* 8027F3D0 0027B030 4B FE F3 B5 */ bl OSRestoreInterrupts
+lbl_8027F3D4:
+/* 8027F3D4 0027B034 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027F3D8 0027B038 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027F3DC 0027B03C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027F3E0 0027B040 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8027F3E4 0027B044 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8027F3E8 0027B048 7C 08 03 A6 */ mtlr r0
+/* 8027F3EC 0027B04C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027F3F0 0027B050 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXFrameBuf.s b/asm/SDK/GX/GXFrameBuf.s
new file mode 100644
index 0000000..77b5434
--- /dev/null
+++ b/asm/SDK/GX/GXFrameBuf.s
@@ -0,0 +1,781 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetDispCopySrc
+GXSetDispCopySrc:
+/* 8028146C 0027D0CC 38 E0 00 00 */ li r7, 0
+/* 80281470 0027D0D0 38 05 FF FF */ addi r0, r5, -1
+/* 80281474 0027D0D4 50 67 05 BE */ rlwimi r7, r3, 0, 0x16, 0x1f
+/* 80281478 0027D0D8 38 60 00 00 */ li r3, 0
+/* 8028147C 0027D0DC 50 87 53 2A */ rlwimi r7, r4, 0xa, 0xc, 0x15
+/* 80281480 0027D0E0 38 80 00 49 */ li r4, 0x49
+/* 80281484 0027D0E4 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
+/* 80281488 0027D0E8 38 06 FF FF */ addi r0, r6, -1
+/* 8028148C 0027D0EC 50 03 53 2A */ rlwimi r3, r0, 0xa, 0xc, 0x15
+/* 80281490 0027D0F0 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281494 0027D0F4 50 87 C0 0E */ rlwimi r7, r4, 0x18, 0, 7
+/* 80281498 0027D0F8 38 00 00 4A */ li r0, 0x4a
+/* 8028149C 0027D0FC 90 E5 02 30 */ stw r7, 0x230(r5)
+/* 802814A0 0027D100 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 802814A4 0027D104 90 65 02 34 */ stw r3, 0x234(r5)
+/* 802814A8 0027D108 4E 80 00 20 */ blr
+
+.global GXSetTexCopySrc
+GXSetTexCopySrc:
+/* 802814AC 0027D10C 38 E0 00 00 */ li r7, 0
+/* 802814B0 0027D110 38 05 FF FF */ addi r0, r5, -1
+/* 802814B4 0027D114 50 67 05 BE */ rlwimi r7, r3, 0, 0x16, 0x1f
+/* 802814B8 0027D118 38 60 00 00 */ li r3, 0
+/* 802814BC 0027D11C 50 87 53 2A */ rlwimi r7, r4, 0xa, 0xc, 0x15
+/* 802814C0 0027D120 38 80 00 49 */ li r4, 0x49
+/* 802814C4 0027D124 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
+/* 802814C8 0027D128 38 06 FF FF */ addi r0, r6, -1
+/* 802814CC 0027D12C 50 03 53 2A */ rlwimi r3, r0, 0xa, 0xc, 0x15
+/* 802814D0 0027D130 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802814D4 0027D134 50 87 C0 0E */ rlwimi r7, r4, 0x18, 0, 7
+/* 802814D8 0027D138 38 00 00 4A */ li r0, 0x4a
+/* 802814DC 0027D13C 90 E5 02 40 */ stw r7, 0x240(r5)
+/* 802814E0 0027D140 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 802814E4 0027D144 90 65 02 44 */ stw r3, 0x244(r5)
+/* 802814E8 0027D148 4E 80 00 20 */ blr
+
+.global GXSetDispCopyDst
+GXSetDispCopyDst:
+/* 802814EC 0027D14C 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e
+/* 802814F0 0027D150 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802814F4 0027D154 7C 00 2E 70 */ srawi r0, r0, 5
+/* 802814F8 0027D158 38 60 00 00 */ li r3, 0
+/* 802814FC 0027D15C 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
+/* 80281500 0027D160 38 00 00 4D */ li r0, 0x4d
+/* 80281504 0027D164 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 80281508 0027D168 90 64 02 38 */ stw r3, 0x238(r4)
+/* 8028150C 0027D16C 4E 80 00 20 */ blr
+
+.global GXSetTexCopyDst
+GXSetTexCopyDst:
+/* 80281510 0027D170 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80281514 0027D174 7C 08 02 A6 */ mflr r0
+/* 80281518 0027D178 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028151C 0027D17C 2C 05 00 13 */ cmpwi r5, 0x13
+/* 80281520 0027D180 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80281524 0027D184 38 00 00 00 */ li r0, 0
+/* 80281528 0027D188 7C 69 1B 78 */ mr r9, r3
+/* 8028152C 0027D18C 7C 88 23 78 */ mr r8, r4
+/* 80281530 0027D190 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80281534 0027D194 54 BF 07 3E */ clrlwi r31, r5, 0x1c
+/* 80281538 0027D198 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8028153C 0027D19C 7C DE 33 78 */ mr r30, r6
+/* 80281540 0027D1A0 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80281544 0027D1A4 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80281548 0027D1A8 98 07 02 50 */ stb r0, 0x250(r7)
+/* 8028154C 0027D1AC 40 82 00 08 */ bne lbl_80281554
+/* 80281550 0027D1B0 3B E0 00 0B */ li r31, 0xb
+lbl_80281554:
+/* 80281554 0027D1B4 2C 05 00 26 */ cmpwi r5, 0x26
+/* 80281558 0027D1B8 41 82 00 1C */ beq lbl_80281574
+/* 8028155C 0027D1BC 40 80 00 30 */ bge lbl_8028158C
+/* 80281560 0027D1C0 2C 05 00 04 */ cmpwi r5, 4
+/* 80281564 0027D1C4 40 80 00 28 */ bge lbl_8028158C
+/* 80281568 0027D1C8 2C 05 00 00 */ cmpwi r5, 0
+/* 8028156C 0027D1CC 40 80 00 08 */ bge lbl_80281574
+/* 80281570 0027D1D0 48 00 00 1C */ b lbl_8028158C
+lbl_80281574:
+/* 80281574 0027D1D4 38 00 00 03 */ li r0, 3
+/* 80281578 0027D1D8 80 67 02 4C */ lwz r3, 0x24c(r7)
+/* 8028157C 0027D1DC 50 03 7B E0 */ rlwimi r3, r0, 0xf, 0xf, 0x10
+/* 80281580 0027D1E0 3B A7 02 4C */ addi r29, r7, 0x24c
+/* 80281584 0027D1E4 90 67 02 4C */ stw r3, 0x24c(r7)
+/* 80281588 0027D1E8 48 00 00 18 */ b lbl_802815A0
+lbl_8028158C:
+/* 8028158C 0027D1EC 38 00 00 02 */ li r0, 2
+/* 80281590 0027D1F0 80 67 02 4C */ lwz r3, 0x24c(r7)
+/* 80281594 0027D1F4 50 03 7B E0 */ rlwimi r3, r0, 0xf, 0xf, 0x10
+/* 80281598 0027D1F8 3B A7 02 4C */ addi r29, r7, 0x24c
+/* 8028159C 0027D1FC 90 67 02 4C */ stw r3, 0x24c(r7)
+lbl_802815A0:
+/* 802815A0 0027D200 54 A0 E7 FE */ rlwinm r0, r5, 0x1c, 0x1f, 0x1f
+/* 802815A4 0027D204 7C A3 2B 78 */ mr r3, r5
+/* 802815A8 0027D208 98 07 02 50 */ stb r0, 0x250(r7)
+/* 802815AC 0027D20C 7D 05 43 78 */ mr r5, r8
+/* 802815B0 0027D210 83 82 A0 D0 */ lwz r28, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802815B4 0027D214 7D 24 4B 78 */ mr r4, r9
+/* 802815B8 0027D218 80 1D 00 00 */ lwz r0, 0(r29)
+/* 802815BC 0027D21C 53 E0 07 38 */ rlwimi r0, r31, 0, 0x1c, 0x1c
+/* 802815C0 0027D220 38 C1 00 10 */ addi r6, r1, 0x10
+/* 802815C4 0027D224 38 E1 00 0C */ addi r7, r1, 0xc
+/* 802815C8 0027D228 90 1D 00 00 */ stw r0, 0(r29)
+/* 802815CC 0027D22C 39 01 00 08 */ addi r8, r1, 8
+/* 802815D0 0027D230 48 00 10 41 */ bl func_80282610
+/* 802815D4 0027D234 38 00 00 00 */ li r0, 0
+/* 802815D8 0027D238 38 60 00 00 */ li r3, 0
+/* 802815DC 0027D23C 90 1C 02 48 */ stw r0, 0x248(r28)
+/* 802815E0 0027D240 38 00 00 4D */ li r0, 0x4d
+/* 802815E4 0027D244 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 802815E8 0027D248 80 81 00 08 */ lwz r4, 8(r1)
+/* 802815EC 0027D24C 7C 85 21 D6 */ mullw r4, r5, r4
+/* 802815F0 0027D250 50 83 05 BE */ rlwimi r3, r4, 0, 0x16, 0x1f
+/* 802815F4 0027D254 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 802815F8 0027D258 90 7C 02 48 */ stw r3, 0x248(r28)
+/* 802815FC 0027D25C 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80281600 0027D260 53 C0 4D AC */ rlwimi r0, r30, 9, 0x16, 0x16
+/* 80281604 0027D264 53 E0 26 76 */ rlwimi r0, r31, 4, 0x19, 0x1b
+/* 80281608 0027D268 90 1D 00 00 */ stw r0, 0(r29)
+/* 8028160C 0027D26C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80281610 0027D270 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80281614 0027D274 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80281618 0027D278 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8028161C 0027D27C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80281620 0027D280 7C 08 03 A6 */ mtlr r0
+/* 80281624 0027D284 38 21 00 30 */ addi r1, r1, 0x30
+/* 80281628 0027D288 4E 80 00 20 */ blr
+
+.global GXSetDispCopyFrame2Field
+GXSetDispCopyFrame2Field:
+/* 8028162C 0027D28C 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281630 0027D290 80 04 02 3C */ lwz r0, 0x23c(r4)
+/* 80281634 0027D294 50 60 64 A6 */ rlwimi r0, r3, 0xc, 0x12, 0x13
+/* 80281638 0027D298 90 04 02 3C */ stw r0, 0x23c(r4)
+/* 8028163C 0027D29C 80 04 02 4C */ lwz r0, 0x24c(r4)
+/* 80281640 0027D2A0 54 00 05 22 */ rlwinm r0, r0, 0, 0x14, 0x11
+/* 80281644 0027D2A4 90 04 02 4C */ stw r0, 0x24c(r4)
+/* 80281648 0027D2A8 4E 80 00 20 */ blr
+
+.global GXSetCopyClamp
+GXSetCopyClamp:
+/* 8028164C 0027D2AC 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281650 0027D2B0 80 04 02 3C */ lwz r0, 0x23c(r4)
+/* 80281654 0027D2B4 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
+/* 80281658 0027D2B8 50 60 07 BC */ rlwimi r0, r3, 0, 0x1e, 0x1e
+/* 8028165C 0027D2BC 90 04 02 3C */ stw r0, 0x23c(r4)
+/* 80281660 0027D2C0 80 04 02 4C */ lwz r0, 0x24c(r4)
+/* 80281664 0027D2C4 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
+/* 80281668 0027D2C8 50 60 07 BC */ rlwimi r0, r3, 0, 0x1e, 0x1e
+/* 8028166C 0027D2CC 90 04 02 4C */ stw r0, 0x24c(r4)
+/* 80281670 0027D2D0 4E 80 00 20 */ blr
+
+.global GXGetNumXfbLines
+GXGetNumXfbLines:
+/* 80281674 0027D2D4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80281678 0027D2D8 7C 08 02 A6 */ mflr r0
+/* 8028167C 0027D2DC C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
+/* 80281680 0027D2E0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80281684 0027D2E4 EC 20 08 24 */ fdivs f1, f0, f1
+/* 80281688 0027D2E8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8028168C 0027D2EC 7C 7F 1B 78 */ mr r31, r3
+/* 80281690 0027D2F0 4B F4 59 71 */ bl __cvt_fp2unsigned
+/* 80281694 0027D2F4 38 1F FF FF */ addi r0, r31, -1
+/* 80281698 0027D2F8 54 64 05 FE */ clrlwi r4, r3, 0x17
+/* 8028169C 0027D2FC 54 00 40 2E */ slwi r0, r0, 8
+/* 802816A0 0027D300 7C 60 23 96 */ divwu r3, r0, r4
+/* 802816A4 0027D304 28 04 00 80 */ cmplwi r4, 0x80
+/* 802816A8 0027D308 38 63 00 01 */ addi r3, r3, 1
+/* 802816AC 0027D30C 40 81 00 30 */ ble lbl_802816DC
+/* 802816B0 0027D310 28 04 01 00 */ cmplwi r4, 0x100
+/* 802816B4 0027D314 40 80 00 28 */ bge lbl_802816DC
+/* 802816B8 0027D318 48 00 00 08 */ b lbl_802816C0
+lbl_802816BC:
+/* 802816BC 0027D31C 54 84 F8 7E */ srwi r4, r4, 1
+lbl_802816C0:
+/* 802816C0 0027D320 54 80 07 FF */ clrlwi. r0, r4, 0x1f
+/* 802816C4 0027D324 41 82 FF F8 */ beq lbl_802816BC
+/* 802816C8 0027D328 7C 1F 23 96 */ divwu r0, r31, r4
+/* 802816CC 0027D32C 7C 00 21 D6 */ mullw r0, r0, r4
+/* 802816D0 0027D330 7C 00 F8 51 */ subf. r0, r0, r31
+/* 802816D4 0027D334 40 82 00 08 */ bne lbl_802816DC
+/* 802816D8 0027D338 38 63 00 01 */ addi r3, r3, 1
+lbl_802816DC:
+/* 802816DC 0027D33C 28 03 04 00 */ cmplwi r3, 0x400
+/* 802816E0 0027D340 40 81 00 08 */ ble lbl_802816E8
+/* 802816E4 0027D344 38 60 04 00 */ li r3, 0x400
+lbl_802816E8:
+/* 802816E8 0027D348 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802816EC 0027D34C 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 802816F0 0027D350 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802816F4 0027D354 7C 08 03 A6 */ mtlr r0
+/* 802816F8 0027D358 38 21 00 10 */ addi r1, r1, 0x10
+/* 802816FC 0027D35C 4E 80 00 20 */ blr
+
+.global GXGetYScaleFactor
+GXGetYScaleFactor:
+/* 80281700 0027D360 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 80281704 0027D364 7C 08 02 A6 */ mflr r0
+/* 80281708 0027D368 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8028170C 0027D36C DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 80281710 0027D370 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
+/* 80281714 0027D374 DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 80281718 0027D378 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
+/* 8028171C 0027D37C DB A1 00 40 */ stfd f29, 0x40(r1)
+/* 80281720 0027D380 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
+/* 80281724 0027D384 DB 81 00 30 */ stfd f28, 0x30(r1)
+/* 80281728 0027D388 F3 81 00 38 */ psq_st f28, 56(r1), 0, qr0
+/* 8028172C 0027D38C 3C 00 43 30 */ lis r0, 0x4330
+/* 80281730 0027D390 C8 62 A1 00 */ lfd f3, lbl_80642700-_SDA2_BASE_(r2)
+/* 80281734 0027D394 90 01 00 08 */ stw r0, 8(r1)
+/* 80281738 0027D398 C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
+/* 8028173C 0027D39C 90 81 00 0C */ stw r4, 0xc(r1)
+/* 80281740 0027D3A0 C8 21 00 08 */ lfd f1, 8(r1)
+/* 80281744 0027D3A4 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80281748 0027D3A8 EC 41 18 28 */ fsubs f2, f1, f3
+/* 8028174C 0027D3AC 90 61 00 14 */ stw r3, 0x14(r1)
+/* 80281750 0027D3B0 C8 21 00 10 */ lfd f1, 0x10(r1)
+/* 80281754 0027D3B4 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80281758 0027D3B8 EC 21 18 28 */ fsubs f1, f1, f3
+/* 8028175C 0027D3BC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80281760 0027D3C0 EF 82 08 24 */ fdivs f28, f2, f1
+/* 80281764 0027D3C4 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80281768 0027D3C8 7C 9D 23 78 */ mr r29, r4
+/* 8028176C 0027D3CC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80281770 0027D3D0 7C 7C 1B 78 */ mr r28, r3
+/* 80281774 0027D3D4 7F BE EB 78 */ mr r30, r29
+/* 80281778 0027D3D8 EC 20 E0 24 */ fdivs f1, f0, f28
+/* 8028177C 0027D3DC 4B F4 58 85 */ bl __cvt_fp2unsigned
+/* 80281780 0027D3E0 38 1C FF FF */ addi r0, r28, -1
+/* 80281784 0027D3E4 54 64 05 FE */ clrlwi r4, r3, 0x17
+/* 80281788 0027D3E8 54 1F 40 2E */ slwi r31, r0, 8
+/* 8028178C 0027D3EC 7C 7F 23 96 */ divwu r3, r31, r4
+/* 80281790 0027D3F0 28 04 00 80 */ cmplwi r4, 0x80
+/* 80281794 0027D3F4 38 63 00 01 */ addi r3, r3, 1
+/* 80281798 0027D3F8 40 81 00 30 */ ble lbl_802817C8
+/* 8028179C 0027D3FC 28 04 01 00 */ cmplwi r4, 0x100
+/* 802817A0 0027D400 40 80 00 28 */ bge lbl_802817C8
+/* 802817A4 0027D404 48 00 00 08 */ b lbl_802817AC
+lbl_802817A8:
+/* 802817A8 0027D408 54 84 F8 7E */ srwi r4, r4, 1
+lbl_802817AC:
+/* 802817AC 0027D40C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
+/* 802817B0 0027D410 41 82 FF F8 */ beq lbl_802817A8
+/* 802817B4 0027D414 7C 1C 23 96 */ divwu r0, r28, r4
+/* 802817B8 0027D418 7C 00 21 D6 */ mullw r0, r0, r4
+/* 802817BC 0027D41C 7C 00 E0 51 */ subf. r0, r0, r28
+/* 802817C0 0027D420 40 82 00 08 */ bne lbl_802817C8
+/* 802817C4 0027D424 38 63 00 01 */ addi r3, r3, 1
+lbl_802817C8:
+/* 802817C8 0027D428 28 03 04 00 */ cmplwi r3, 0x400
+/* 802817CC 0027D42C 40 81 00 08 */ ble lbl_802817D4
+/* 802817D0 0027D430 38 60 04 00 */ li r3, 0x400
+lbl_802817D4:
+/* 802817D4 0027D434 CB E2 A1 00 */ lfd f31, lbl_80642700-_SDA2_BASE_(r2)
+/* 802817D8 0027D438 C3 C2 A0 F8 */ lfs f30, lbl_806426F8-_SDA2_BASE_(r2)
+/* 802817DC 0027D43C 48 00 00 78 */ b lbl_80281854
+lbl_802817E0:
+/* 802817E0 0027D440 3B DE FF FF */ addi r30, r30, -1
+/* 802817E4 0027D444 93 81 00 14 */ stw r28, 0x14(r1)
+/* 802817E8 0027D448 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 802817EC 0027D44C C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 802817F0 0027D450 C8 21 00 08 */ lfd f1, 8(r1)
+/* 802817F4 0027D454 EC 00 F8 28 */ fsubs f0, f0, f31
+/* 802817F8 0027D458 EC 21 F8 28 */ fsubs f1, f1, f31
+/* 802817FC 0027D45C EF 81 00 24 */ fdivs f28, f1, f0
+/* 80281800 0027D460 EC 3E E0 24 */ fdivs f1, f30, f28
+/* 80281804 0027D464 4B F4 57 FD */ bl __cvt_fp2unsigned
+/* 80281808 0027D468 54 64 05 FE */ clrlwi r4, r3, 0x17
+/* 8028180C 0027D46C 7C 7F 23 96 */ divwu r3, r31, r4
+/* 80281810 0027D470 28 04 00 80 */ cmplwi r4, 0x80
+/* 80281814 0027D474 38 63 00 01 */ addi r3, r3, 1
+/* 80281818 0027D478 40 81 00 30 */ ble lbl_80281848
+/* 8028181C 0027D47C 28 04 01 00 */ cmplwi r4, 0x100
+/* 80281820 0027D480 40 80 00 28 */ bge lbl_80281848
+/* 80281824 0027D484 48 00 00 08 */ b lbl_8028182C
+lbl_80281828:
+/* 80281828 0027D488 54 84 F8 7E */ srwi r4, r4, 1
+lbl_8028182C:
+/* 8028182C 0027D48C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
+/* 80281830 0027D490 41 82 FF F8 */ beq lbl_80281828
+/* 80281834 0027D494 7C 1C 23 96 */ divwu r0, r28, r4
+/* 80281838 0027D498 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8028183C 0027D49C 7C 00 E0 51 */ subf. r0, r0, r28
+/* 80281840 0027D4A0 40 82 00 08 */ bne lbl_80281848
+/* 80281844 0027D4A4 38 63 00 01 */ addi r3, r3, 1
+lbl_80281848:
+/* 80281848 0027D4A8 28 03 04 00 */ cmplwi r3, 0x400
+/* 8028184C 0027D4AC 40 81 00 08 */ ble lbl_80281854
+/* 80281850 0027D4B0 38 60 04 00 */ li r3, 0x400
+lbl_80281854:
+/* 80281854 0027D4B4 7C 03 E8 40 */ cmplw r3, r29
+/* 80281858 0027D4B8 41 81 FF 88 */ bgt lbl_802817E0
+/* 8028185C 0027D4BC FF A0 E0 90 */ fmr f29, f28
+/* 80281860 0027D4C0 CB C2 A1 00 */ lfd f30, lbl_80642700-_SDA2_BASE_(r2)
+/* 80281864 0027D4C4 C3 E2 A0 F8 */ lfs f31, lbl_806426F8-_SDA2_BASE_(r2)
+/* 80281868 0027D4C8 48 00 00 7C */ b lbl_802818E4
+lbl_8028186C:
+/* 8028186C 0027D4CC 3B DE 00 01 */ addi r30, r30, 1
+/* 80281870 0027D4D0 93 81 00 14 */ stw r28, 0x14(r1)
+/* 80281874 0027D4D4 FF A0 E0 90 */ fmr f29, f28
+/* 80281878 0027D4D8 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 8028187C 0027D4DC C8 01 00 10 */ lfd f0, 0x10(r1)
+/* 80281880 0027D4E0 C8 21 00 08 */ lfd f1, 8(r1)
+/* 80281884 0027D4E4 EC 00 F0 28 */ fsubs f0, f0, f30
+/* 80281888 0027D4E8 EC 21 F0 28 */ fsubs f1, f1, f30
+/* 8028188C 0027D4EC EF 81 00 24 */ fdivs f28, f1, f0
+/* 80281890 0027D4F0 EC 3F E0 24 */ fdivs f1, f31, f28
+/* 80281894 0027D4F4 4B F4 57 6D */ bl __cvt_fp2unsigned
+/* 80281898 0027D4F8 54 64 05 FE */ clrlwi r4, r3, 0x17
+/* 8028189C 0027D4FC 7C 7F 23 96 */ divwu r3, r31, r4
+/* 802818A0 0027D500 28 04 00 80 */ cmplwi r4, 0x80
+/* 802818A4 0027D504 38 63 00 01 */ addi r3, r3, 1
+/* 802818A8 0027D508 40 81 00 30 */ ble lbl_802818D8
+/* 802818AC 0027D50C 28 04 01 00 */ cmplwi r4, 0x100
+/* 802818B0 0027D510 40 80 00 28 */ bge lbl_802818D8
+/* 802818B4 0027D514 48 00 00 08 */ b lbl_802818BC
+lbl_802818B8:
+/* 802818B8 0027D518 54 84 F8 7E */ srwi r4, r4, 1
+lbl_802818BC:
+/* 802818BC 0027D51C 54 80 07 FF */ clrlwi. r0, r4, 0x1f
+/* 802818C0 0027D520 41 82 FF F8 */ beq lbl_802818B8
+/* 802818C4 0027D524 7C 1C 23 96 */ divwu r0, r28, r4
+/* 802818C8 0027D528 7C 00 21 D6 */ mullw r0, r0, r4
+/* 802818CC 0027D52C 7C 00 E0 51 */ subf. r0, r0, r28
+/* 802818D0 0027D530 40 82 00 08 */ bne lbl_802818D8
+/* 802818D4 0027D534 38 63 00 01 */ addi r3, r3, 1
+lbl_802818D8:
+/* 802818D8 0027D538 28 03 04 00 */ cmplwi r3, 0x400
+/* 802818DC 0027D53C 40 81 00 08 */ ble lbl_802818E4
+/* 802818E0 0027D540 38 60 04 00 */ li r3, 0x400
+lbl_802818E4:
+/* 802818E4 0027D544 7C 03 E8 40 */ cmplw r3, r29
+/* 802818E8 0027D548 41 80 FF 84 */ blt lbl_8028186C
+/* 802818EC 0027D54C FC 20 E8 90 */ fmr f1, f29
+/* 802818F0 0027D550 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
+/* 802818F4 0027D554 CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 802818F8 0027D558 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
+/* 802818FC 0027D55C CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 80281900 0027D560 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
+/* 80281904 0027D564 CB A1 00 40 */ lfd f29, 0x40(r1)
+/* 80281908 0027D568 E3 81 00 38 */ psq_l f28, 56(r1), 0, qr0
+/* 8028190C 0027D56C CB 81 00 30 */ lfd f28, 0x30(r1)
+/* 80281910 0027D570 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80281914 0027D574 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80281918 0027D578 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8028191C 0027D57C 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80281920 0027D580 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 80281924 0027D584 7C 08 03 A6 */ mtlr r0
+/* 80281928 0027D588 38 21 00 70 */ addi r1, r1, 0x70
+/* 8028192C 0027D58C 4E 80 00 20 */ blr
+
+.global GXSetDispCopyYScale
+GXSetDispCopyYScale:
+/* 80281930 0027D590 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80281934 0027D594 7C 08 02 A6 */ mflr r0
+/* 80281938 0027D598 C0 02 A0 F8 */ lfs f0, lbl_806426F8-_SDA2_BASE_(r2)
+/* 8028193C 0027D59C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80281940 0027D5A0 EC 20 08 24 */ fdivs f1, f0, f1
+/* 80281944 0027D5A4 4B F4 56 BD */ bl __cvt_fp2unsigned
+/* 80281948 0027D5A8 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 8028194C 0027D5AC 38 00 00 61 */ li r0, 0x61
+/* 80281950 0027D5B0 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80281954 0027D5B4 38 00 00 4E */ li r0, 0x4e
+/* 80281958 0027D5B8 38 A0 00 00 */ li r5, 0
+/* 8028195C 0027D5BC 54 67 05 FE */ clrlwi r7, r3, 0x17
+/* 80281960 0027D5C0 50 65 05 FE */ rlwimi r5, r3, 0, 0x17, 0x1f
+/* 80281964 0027D5C4 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281968 0027D5C8 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
+/* 8028196C 0027D5CC 38 00 00 00 */ li r0, 0
+/* 80281970 0027D5D0 90 A4 80 00 */ stw r5, -0x8000(r4)
+/* 80281974 0027D5D4 20 67 01 00 */ subfic r3, r7, 0x100
+/* 80281978 0027D5D8 28 07 00 80 */ cmplwi r7, 0x80
+/* 8028197C 0027D5DC B0 06 00 02 */ sth r0, 2(r6)
+/* 80281980 0027D5E0 38 07 FF 00 */ addi r0, r7, -256
+/* 80281984 0027D5E4 7C 63 03 78 */ or r3, r3, r0
+/* 80281988 0027D5E8 80 06 02 3C */ lwz r0, 0x23c(r6)
+/* 8028198C 0027D5EC 50 60 5D 6A */ rlwimi r0, r3, 0xb, 0x15, 0x15
+/* 80281990 0027D5F0 90 06 02 3C */ stw r0, 0x23c(r6)
+/* 80281994 0027D5F4 80 06 02 34 */ lwz r0, 0x234(r6)
+/* 80281998 0027D5F8 54 03 B5 BE */ rlwinm r3, r0, 0x16, 0x16, 0x1f
+/* 8028199C 0027D5FC 38 83 00 01 */ addi r4, r3, 1
+/* 802819A0 0027D600 38 04 FF FF */ addi r0, r4, -1
+/* 802819A4 0027D604 54 00 40 2E */ slwi r0, r0, 8
+/* 802819A8 0027D608 7C 60 3B 96 */ divwu r3, r0, r7
+/* 802819AC 0027D60C 38 63 00 01 */ addi r3, r3, 1
+/* 802819B0 0027D610 40 81 00 30 */ ble lbl_802819E0
+/* 802819B4 0027D614 28 07 01 00 */ cmplwi r7, 0x100
+/* 802819B8 0027D618 40 80 00 28 */ bge lbl_802819E0
+/* 802819BC 0027D61C 48 00 00 08 */ b lbl_802819C4
+lbl_802819C0:
+/* 802819C0 0027D620 54 E7 F8 7E */ srwi r7, r7, 1
+lbl_802819C4:
+/* 802819C4 0027D624 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
+/* 802819C8 0027D628 41 82 FF F8 */ beq lbl_802819C0
+/* 802819CC 0027D62C 7C 04 3B 96 */ divwu r0, r4, r7
+/* 802819D0 0027D630 7C 00 39 D6 */ mullw r0, r0, r7
+/* 802819D4 0027D634 7C 00 20 51 */ subf. r0, r0, r4
+/* 802819D8 0027D638 40 82 00 08 */ bne lbl_802819E0
+/* 802819DC 0027D63C 38 63 00 01 */ addi r3, r3, 1
+lbl_802819E0:
+/* 802819E0 0027D640 28 03 04 00 */ cmplwi r3, 0x400
+/* 802819E4 0027D644 40 81 00 08 */ ble lbl_802819EC
+/* 802819E8 0027D648 38 60 04 00 */ li r3, 0x400
+lbl_802819EC:
+/* 802819EC 0027D64C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802819F0 0027D650 7C 08 03 A6 */ mtlr r0
+/* 802819F4 0027D654 38 21 00 10 */ addi r1, r1, 0x10
+/* 802819F8 0027D658 4E 80 00 20 */ blr
+
+.global GXSetCopyClear
+GXSetCopyClear:
+/* 802819FC 0027D65C 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80281A00 0027D660 3C E0 CC 01 */ lis r7, 0xCC008000@ha
+/* 80281A04 0027D664 39 00 00 61 */ li r8, 0x61
+/* 80281A08 0027D668 88 03 00 03 */ lbz r0, 3(r3)
+/* 80281A0C 0027D66C 39 40 00 00 */ li r10, 0
+/* 80281A10 0027D670 99 07 80 00 */ stb r8, 0xCC008000@l(r7)
+/* 80281A14 0027D674 50 CA 06 3E */ rlwimi r10, r6, 0, 0x18, 0x1f
+/* 80281A18 0027D678 39 20 00 4F */ li r9, 0x4f
+/* 80281A1C 0027D67C 50 0A 44 2E */ rlwimi r10, r0, 8, 0x10, 0x17
+/* 80281A20 0027D680 88 03 00 02 */ lbz r0, 2(r3)
+/* 80281A24 0027D684 51 2A C0 0E */ rlwimi r10, r9, 0x18, 0, 7
+/* 80281A28 0027D688 38 C0 00 00 */ li r6, 0
+/* 80281A2C 0027D68C 91 47 80 00 */ stw r10, -0x8000(r7)
+/* 80281A30 0027D690 50 06 06 3E */ rlwimi r6, r0, 0, 0x18, 0x1f
+/* 80281A34 0027D694 88 63 00 01 */ lbz r3, 1(r3)
+/* 80281A38 0027D698 38 00 00 50 */ li r0, 0x50
+/* 80281A3C 0027D69C 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281A40 0027D6A0 38 A0 00 00 */ li r5, 0
+/* 80281A44 0027D6A4 50 66 44 2E */ rlwimi r6, r3, 8, 0x10, 0x17
+/* 80281A48 0027D6A8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281A4C 0027D6AC 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 80281A50 0027D6B0 38 00 00 51 */ li r0, 0x51
+/* 80281A54 0027D6B4 90 C7 80 00 */ stw r6, -0x8000(r7)
+/* 80281A58 0027D6B8 50 85 02 3E */ rlwimi r5, r4, 0, 8, 0x1f
+/* 80281A5C 0027D6BC 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
+/* 80281A60 0027D6C0 38 00 00 00 */ li r0, 0
+/* 80281A64 0027D6C4 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281A68 0027D6C8 90 A7 80 00 */ stw r5, -0x8000(r7)
+/* 80281A6C 0027D6CC B0 03 00 02 */ sth r0, 2(r3)
+/* 80281A70 0027D6D0 4E 80 00 20 */ blr
+
+.global GXSetCopyFilter
+GXSetCopyFilter:
+/* 80281A74 0027D6D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80281A78 0027D6D8 41 82 00 F8 */ beq lbl_80281B70
+/* 80281A7C 0027D6DC 89 04 00 00 */ lbz r8, 0(r4)
+/* 80281A80 0027D6E0 38 00 00 00 */ li r0, 0
+/* 80281A84 0027D6E4 89 44 00 01 */ lbz r10, 1(r4)
+/* 80281A88 0027D6E8 38 60 00 00 */ li r3, 0
+/* 80281A8C 0027D6EC 51 00 07 3E */ rlwimi r0, r8, 0, 0x1c, 0x1f
+/* 80281A90 0027D6F0 88 E4 00 06 */ lbz r7, 6(r4)
+/* 80281A94 0027D6F4 51 40 26 36 */ rlwimi r0, r10, 4, 0x18, 0x1b
+/* 80281A98 0027D6F8 89 04 00 0C */ lbz r8, 0xc(r4)
+/* 80281A9C 0027D6FC 50 E3 07 3E */ rlwimi r3, r7, 0, 0x1c, 0x1f
+/* 80281AA0 0027D700 38 E0 00 00 */ li r7, 0
+/* 80281AA4 0027D704 51 07 07 3E */ rlwimi r7, r8, 0, 0x1c, 0x1f
+/* 80281AA8 0027D708 89 44 00 0D */ lbz r10, 0xd(r4)
+/* 80281AAC 0027D70C 89 64 00 07 */ lbz r11, 7(r4)
+/* 80281AB0 0027D710 39 00 00 00 */ li r8, 0
+/* 80281AB4 0027D714 51 47 26 36 */ rlwimi r7, r10, 4, 0x18, 0x1b
+/* 80281AB8 0027D718 89 44 00 02 */ lbz r10, 2(r4)
+/* 80281ABC 0027D71C 89 24 00 12 */ lbz r9, 0x12(r4)
+/* 80281AC0 0027D720 51 63 26 36 */ rlwimi r3, r11, 4, 0x18, 0x1b
+/* 80281AC4 0027D724 51 40 45 2E */ rlwimi r0, r10, 8, 0x14, 0x17
+/* 80281AC8 0027D728 89 44 00 0E */ lbz r10, 0xe(r4)
+/* 80281ACC 0027D72C 51 28 07 3E */ rlwimi r8, r9, 0, 0x1c, 0x1f
+/* 80281AD0 0027D730 89 24 00 13 */ lbz r9, 0x13(r4)
+/* 80281AD4 0027D734 51 47 45 2E */ rlwimi r7, r10, 8, 0x14, 0x17
+/* 80281AD8 0027D738 89 44 00 03 */ lbz r10, 3(r4)
+/* 80281ADC 0027D73C 51 28 26 36 */ rlwimi r8, r9, 4, 0x18, 0x1b
+/* 80281AE0 0027D740 89 24 00 14 */ lbz r9, 0x14(r4)
+/* 80281AE4 0027D744 51 40 64 26 */ rlwimi r0, r10, 0xc, 0x10, 0x13
+/* 80281AE8 0027D748 89 44 00 0F */ lbz r10, 0xf(r4)
+/* 80281AEC 0027D74C 51 28 45 2E */ rlwimi r8, r9, 8, 0x14, 0x17
+/* 80281AF0 0027D750 89 24 00 15 */ lbz r9, 0x15(r4)
+/* 80281AF4 0027D754 51 47 64 26 */ rlwimi r7, r10, 0xc, 0x10, 0x13
+/* 80281AF8 0027D758 89 44 00 04 */ lbz r10, 4(r4)
+/* 80281AFC 0027D75C 89 64 00 08 */ lbz r11, 8(r4)
+/* 80281B00 0027D760 51 28 64 26 */ rlwimi r8, r9, 0xc, 0x10, 0x13
+/* 80281B04 0027D764 51 40 83 1E */ rlwimi r0, r10, 0x10, 0xc, 0xf
+/* 80281B08 0027D768 89 44 00 10 */ lbz r10, 0x10(r4)
+/* 80281B0C 0027D76C 89 24 00 16 */ lbz r9, 0x16(r4)
+/* 80281B10 0027D770 51 63 45 2E */ rlwimi r3, r11, 8, 0x14, 0x17
+/* 80281B14 0027D774 89 64 00 09 */ lbz r11, 9(r4)
+/* 80281B18 0027D778 51 47 83 1E */ rlwimi r7, r10, 0x10, 0xc, 0xf
+/* 80281B1C 0027D77C 89 44 00 05 */ lbz r10, 5(r4)
+/* 80281B20 0027D780 51 28 83 1E */ rlwimi r8, r9, 0x10, 0xc, 0xf
+/* 80281B24 0027D784 89 24 00 11 */ lbz r9, 0x11(r4)
+/* 80281B28 0027D788 51 63 64 26 */ rlwimi r3, r11, 0xc, 0x10, 0x13
+/* 80281B2C 0027D78C 89 64 00 0A */ lbz r11, 0xa(r4)
+/* 80281B30 0027D790 51 40 A2 16 */ rlwimi r0, r10, 0x14, 8, 0xb
+/* 80281B34 0027D794 89 44 00 0B */ lbz r10, 0xb(r4)
+/* 80281B38 0027D798 51 27 A2 16 */ rlwimi r7, r9, 0x14, 8, 0xb
+/* 80281B3C 0027D79C 88 84 00 17 */ lbz r4, 0x17(r4)
+/* 80281B40 0027D7A0 39 20 00 01 */ li r9, 1
+/* 80281B44 0027D7A4 51 63 83 1E */ rlwimi r3, r11, 0x10, 0xc, 0xf
+/* 80281B48 0027D7A8 51 43 A2 16 */ rlwimi r3, r10, 0x14, 8, 0xb
+/* 80281B4C 0027D7AC 50 88 A2 16 */ rlwimi r8, r4, 0x14, 8, 0xb
+/* 80281B50 0027D7B0 51 20 C0 0E */ rlwimi r0, r9, 0x18, 0, 7
+/* 80281B54 0027D7B4 39 40 00 02 */ li r10, 2
+/* 80281B58 0027D7B8 39 20 00 03 */ li r9, 3
+/* 80281B5C 0027D7BC 38 80 00 04 */ li r4, 4
+/* 80281B60 0027D7C0 51 43 C0 0E */ rlwimi r3, r10, 0x18, 0, 7
+/* 80281B64 0027D7C4 51 27 C0 0E */ rlwimi r7, r9, 0x18, 0, 7
+/* 80281B68 0027D7C8 50 88 C0 0E */ rlwimi r8, r4, 0x18, 0, 7
+/* 80281B6C 0027D7CC 48 00 00 24 */ b lbl_80281B90
+lbl_80281B70:
+/* 80281B70 0027D7D0 3D 00 01 66 */ lis r8, 0x01666666@ha
+/* 80281B74 0027D7D4 3C 60 02 66 */ lis r3, 0x02666666@ha
+/* 80281B78 0027D7D8 3C E0 03 66 */ lis r7, 0x03666666@ha
+/* 80281B7C 0027D7DC 3C 80 04 66 */ lis r4, 0x04666666@ha
+/* 80281B80 0027D7E0 38 08 66 66 */ addi r0, r8, 0x01666666@l
+/* 80281B84 0027D7E4 38 63 66 66 */ addi r3, r3, 0x02666666@l
+/* 80281B88 0027D7E8 38 E7 66 66 */ addi r7, r7, 0x03666666@l
+/* 80281B8C 0027D7EC 39 04 66 66 */ addi r8, r4, 0x04666666@l
+lbl_80281B90:
+/* 80281B90 0027D7F0 3D 20 CC 01 */ lis r9, 0xCC008000@ha
+/* 80281B94 0027D7F4 39 40 00 61 */ li r10, 0x61
+/* 80281B98 0027D7F8 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
+/* 80281B9C 0027D7FC 2C 05 00 00 */ cmpwi r5, 0
+/* 80281BA0 0027D800 38 80 00 53 */ li r4, 0x53
+/* 80281BA4 0027D804 39 60 00 00 */ li r11, 0
+/* 80281BA8 0027D808 90 09 80 00 */ stw r0, -0x8000(r9)
+/* 80281BAC 0027D80C 38 00 00 54 */ li r0, 0x54
+/* 80281BB0 0027D810 39 80 00 00 */ li r12, 0
+/* 80281BB4 0027D814 50 8B C0 0E */ rlwimi r11, r4, 0x18, 0, 7
+/* 80281BB8 0027D818 99 49 80 00 */ stb r10, -0x8000(r9)
+/* 80281BBC 0027D81C 50 0C C0 0E */ rlwimi r12, r0, 0x18, 0, 7
+/* 80281BC0 0027D820 90 69 80 00 */ stw r3, -0x8000(r9)
+/* 80281BC4 0027D824 99 49 80 00 */ stb r10, -0x8000(r9)
+/* 80281BC8 0027D828 90 E9 80 00 */ stw r7, -0x8000(r9)
+/* 80281BCC 0027D82C 99 49 80 00 */ stb r10, -0x8000(r9)
+/* 80281BD0 0027D830 91 09 80 00 */ stw r8, -0x8000(r9)
+/* 80281BD4 0027D834 41 82 00 40 */ beq lbl_80281C14
+/* 80281BD8 0027D838 88 86 00 00 */ lbz r4, 0(r6)
+/* 80281BDC 0027D83C 88 06 00 04 */ lbz r0, 4(r6)
+/* 80281BE0 0027D840 50 8B 06 BE */ rlwimi r11, r4, 0, 0x1a, 0x1f
+/* 80281BE4 0027D844 88 66 00 01 */ lbz r3, 1(r6)
+/* 80281BE8 0027D848 50 0C 06 BE */ rlwimi r12, r0, 0, 0x1a, 0x1f
+/* 80281BEC 0027D84C 88 A6 00 02 */ lbz r5, 2(r6)
+/* 80281BF0 0027D850 50 6B 35 32 */ rlwimi r11, r3, 6, 0x14, 0x19
+/* 80281BF4 0027D854 88 66 00 05 */ lbz r3, 5(r6)
+/* 80281BF8 0027D858 88 86 00 03 */ lbz r4, 3(r6)
+/* 80281BFC 0027D85C 50 AB 63 A6 */ rlwimi r11, r5, 0xc, 0xe, 0x13
+/* 80281C00 0027D860 88 06 00 06 */ lbz r0, 6(r6)
+/* 80281C04 0027D864 50 6C 35 32 */ rlwimi r12, r3, 6, 0x14, 0x19
+/* 80281C08 0027D868 50 8B 92 1A */ rlwimi r11, r4, 0x12, 8, 0xd
+/* 80281C0C 0027D86C 50 0C 63 A6 */ rlwimi r12, r0, 0xc, 0xe, 0x13
+/* 80281C10 0027D870 48 00 00 20 */ b lbl_80281C30
+lbl_80281C14:
+/* 80281C14 0027D874 38 60 00 15 */ li r3, 0x15
+/* 80281C18 0027D878 55 6B 00 26 */ rlwinm r11, r11, 0, 0, 0x13
+/* 80281C1C 0027D87C 50 6C 06 BE */ rlwimi r12, r3, 0, 0x1a, 0x1f
+/* 80281C20 0027D880 38 00 00 16 */ li r0, 0x16
+/* 80281C24 0027D884 50 6B 63 A6 */ rlwimi r11, r3, 0xc, 0xe, 0x13
+/* 80281C28 0027D888 50 0B 92 1A */ rlwimi r11, r0, 0x12, 8, 0xd
+/* 80281C2C 0027D88C 55 8C 06 9A */ rlwinm r12, r12, 0, 0x1a, 0xd
+lbl_80281C30:
+/* 80281C30 0027D890 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80281C34 0027D894 38 A0 00 61 */ li r5, 0x61
+/* 80281C38 0027D898 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80281C3C 0027D89C 38 00 00 00 */ li r0, 0
+/* 80281C40 0027D8A0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281C44 0027D8A4 91 64 80 00 */ stw r11, -0x8000(r4)
+/* 80281C48 0027D8A8 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80281C4C 0027D8AC 91 84 80 00 */ stw r12, -0x8000(r4)
+/* 80281C50 0027D8B0 B0 03 00 02 */ sth r0, 2(r3)
+/* 80281C54 0027D8B4 4E 80 00 20 */ blr
+
+.global GXSetDispCopyGamma
+GXSetDispCopyGamma:
+/* 80281C58 0027D8B8 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281C5C 0027D8BC 80 04 02 3C */ lwz r0, 0x23c(r4)
+/* 80281C60 0027D8C0 50 60 3D F0 */ rlwimi r0, r3, 7, 0x17, 0x18
+/* 80281C64 0027D8C4 90 04 02 3C */ stw r0, 0x23c(r4)
+/* 80281C68 0027D8C8 4E 80 00 20 */ blr
+
+.global GXCopyDisp
+GXCopyDisp:
+/* 80281C6C 0027D8CC 2C 04 00 00 */ cmpwi r4, 0
+/* 80281C70 0027D8D0 41 82 00 30 */ beq lbl_80281CA0
+/* 80281C74 0027D8D4 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281C78 0027D8D8 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80281C7C 0027D8DC 38 00 00 61 */ li r0, 0x61
+/* 80281C80 0027D8E0 80 C7 02 28 */ lwz r6, 0x228(r7)
+/* 80281C84 0027D8E4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 80281C88 0027D8E8 60 C6 00 0F */ ori r6, r6, 0xf
+/* 80281C8C 0027D8EC 90 C5 80 00 */ stw r6, -0x8000(r5)
+/* 80281C90 0027D8F0 80 C7 02 20 */ lwz r6, 0x220(r7)
+/* 80281C94 0027D8F4 98 05 80 00 */ stb r0, -0x8000(r5)
+/* 80281C98 0027D8F8 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
+/* 80281C9C 0027D8FC 90 05 80 00 */ stw r0, -0x8000(r5)
+lbl_80281CA0:
+/* 80281CA0 0027D900 2C 04 00 00 */ cmpwi r4, 0
+/* 80281CA4 0027D904 39 80 00 00 */ li r12, 0
+/* 80281CA8 0027D908 40 82 00 1C */ bne lbl_80281CC4
+/* 80281CAC 0027D90C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281CB0 0027D910 80 05 02 2C */ lwz r0, 0x22c(r5)
+/* 80281CB4 0027D914 39 45 02 2C */ addi r10, r5, 0x22c
+/* 80281CB8 0027D918 54 00 07 7E */ clrlwi r0, r0, 0x1d
+/* 80281CBC 0027D91C 28 00 00 03 */ cmplwi r0, 3
+/* 80281CC0 0027D920 40 82 00 34 */ bne lbl_80281CF4
+lbl_80281CC4:
+/* 80281CC4 0027D924 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281CC8 0027D928 80 E5 02 2C */ lwz r7, 0x22c(r5)
+/* 80281CCC 0027D92C 39 45 02 2C */ addi r10, r5, 0x22c
+/* 80281CD0 0027D930 54 E0 D7 FE */ rlwinm r0, r7, 0x1a, 0x1f, 0x1f
+/* 80281CD4 0027D934 28 00 00 01 */ cmplwi r0, 1
+/* 80281CD8 0027D938 40 82 00 1C */ bne lbl_80281CF4
+/* 80281CDC 0027D93C 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 80281CE0 0027D940 38 00 00 61 */ li r0, 0x61
+/* 80281CE4 0027D944 98 06 80 00 */ stb r0, 0xCC008000@l(r6)
+/* 80281CE8 0027D948 54 E0 06 B0 */ rlwinm r0, r7, 0, 0x1a, 0x18
+/* 80281CEC 0027D94C 39 80 00 01 */ li r12, 1
+/* 80281CF0 0027D950 90 06 80 00 */ stw r0, -0x8000(r6)
+lbl_80281CF4:
+/* 80281CF4 0027D954 3D 00 CC 01 */ lis r8, 0xCC008000@ha
+/* 80281CF8 0027D958 39 20 00 61 */ li r9, 0x61
+/* 80281CFC 0027D95C 99 28 80 00 */ stb r9, 0xCC008000@l(r8)
+/* 80281D00 0027D960 38 C0 00 00 */ li r6, 0
+/* 80281D04 0027D964 81 62 A0 D0 */ lwz r11, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281D08 0027D968 50 66 DA 3E */ rlwimi r6, r3, 0x1b, 8, 0x1f
+/* 80281D0C 0027D96C 38 60 00 4B */ li r3, 0x4b
+/* 80281D10 0027D970 38 00 00 52 */ li r0, 0x52
+/* 80281D14 0027D974 80 EB 02 30 */ lwz r7, 0x230(r11)
+/* 80281D18 0027D978 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7
+/* 80281D1C 0027D97C 2C 04 00 00 */ cmpwi r4, 0
+/* 80281D20 0027D980 90 E8 80 00 */ stw r7, -0x8000(r8)
+/* 80281D24 0027D984 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D28 0027D988 80 6B 02 34 */ lwz r3, 0x234(r11)
+/* 80281D2C 0027D98C 90 68 80 00 */ stw r3, -0x8000(r8)
+/* 80281D30 0027D990 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D34 0027D994 80 6B 02 38 */ lwz r3, 0x238(r11)
+/* 80281D38 0027D998 90 68 80 00 */ stw r3, -0x8000(r8)
+/* 80281D3C 0027D99C 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D40 0027D9A0 90 C8 80 00 */ stw r6, -0x8000(r8)
+/* 80281D44 0027D9A4 80 6B 02 3C */ lwz r3, 0x23c(r11)
+/* 80281D48 0027D9A8 50 83 5D 28 */ rlwimi r3, r4, 0xb, 0x14, 0x14
+/* 80281D4C 0027D9AC 60 63 40 00 */ ori r3, r3, 0x4000
+/* 80281D50 0027D9B0 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 80281D54 0027D9B4 90 6B 02 3C */ stw r3, 0x23c(r11)
+/* 80281D58 0027D9B8 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D5C 0027D9BC 80 0B 02 3C */ lwz r0, 0x23c(r11)
+/* 80281D60 0027D9C0 90 08 80 00 */ stw r0, -0x8000(r8)
+/* 80281D64 0027D9C4 41 82 00 1C */ beq lbl_80281D80
+/* 80281D68 0027D9C8 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D6C 0027D9CC 80 0B 02 28 */ lwz r0, 0x228(r11)
+/* 80281D70 0027D9D0 90 08 80 00 */ stw r0, -0x8000(r8)
+/* 80281D74 0027D9D4 99 28 80 00 */ stb r9, -0x8000(r8)
+/* 80281D78 0027D9D8 80 0B 02 20 */ lwz r0, 0x220(r11)
+/* 80281D7C 0027D9DC 90 08 80 00 */ stw r0, -0x8000(r8)
+lbl_80281D80:
+/* 80281D80 0027D9E0 2C 0C 00 00 */ cmpwi r12, 0
+/* 80281D84 0027D9E4 41 82 00 18 */ beq lbl_80281D9C
+/* 80281D88 0027D9E8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281D8C 0027D9EC 38 00 00 61 */ li r0, 0x61
+/* 80281D90 0027D9F0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80281D94 0027D9F4 80 0A 00 00 */ lwz r0, 0(r10)
+/* 80281D98 0027D9F8 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80281D9C:
+/* 80281D9C 0027D9FC 38 00 00 00 */ li r0, 0
+/* 80281DA0 0027DA00 B0 05 00 02 */ sth r0, 2(r5)
+/* 80281DA4 0027DA04 4E 80 00 20 */ blr
+
+.global GXCopyTex
+GXCopyTex:
+/* 80281DA8 0027DA08 2C 04 00 00 */ cmpwi r4, 0
+/* 80281DAC 0027DA0C 41 82 00 30 */ beq lbl_80281DDC
+/* 80281DB0 0027DA10 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281DB4 0027DA14 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80281DB8 0027DA18 38 00 00 61 */ li r0, 0x61
+/* 80281DBC 0027DA1C 80 C7 02 28 */ lwz r6, 0x228(r7)
+/* 80281DC0 0027DA20 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 80281DC4 0027DA24 60 C6 00 0F */ ori r6, r6, 0xf
+/* 80281DC8 0027DA28 90 C5 80 00 */ stw r6, -0x8000(r5)
+/* 80281DCC 0027DA2C 80 C7 02 20 */ lwz r6, 0x220(r7)
+/* 80281DD0 0027DA30 98 05 80 00 */ stb r0, -0x8000(r5)
+/* 80281DD4 0027DA34 54 C0 00 3A */ rlwinm r0, r6, 0, 0, 0x1d
+/* 80281DD8 0027DA38 90 05 80 00 */ stw r0, -0x8000(r5)
+lbl_80281DDC:
+/* 80281DDC 0027DA3C 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281DE0 0027DA40 39 60 00 00 */ li r11, 0
+/* 80281DE4 0027DA44 88 09 02 50 */ lbz r0, 0x250(r9)
+/* 80281DE8 0027DA48 80 C9 02 2C */ lwz r6, 0x22c(r9)
+/* 80281DEC 0027DA4C 2C 00 00 00 */ cmpwi r0, 0
+/* 80281DF0 0027DA50 41 82 00 1C */ beq lbl_80281E0C
+/* 80281DF4 0027DA54 54 C0 07 7E */ clrlwi r0, r6, 0x1d
+/* 80281DF8 0027DA58 28 00 00 03 */ cmplwi r0, 3
+/* 80281DFC 0027DA5C 41 82 00 10 */ beq lbl_80281E0C
+/* 80281E00 0027DA60 38 00 00 03 */ li r0, 3
+/* 80281E04 0027DA64 39 60 00 01 */ li r11, 1
+/* 80281E08 0027DA68 50 06 07 7E */ rlwimi r6, r0, 0, 0x1d, 0x1f
+lbl_80281E0C:
+/* 80281E0C 0027DA6C 2C 04 00 00 */ cmpwi r4, 0
+/* 80281E10 0027DA70 40 82 00 10 */ bne lbl_80281E20
+/* 80281E14 0027DA74 54 C0 07 7E */ clrlwi r0, r6, 0x1d
+/* 80281E18 0027DA78 28 00 00 03 */ cmplwi r0, 3
+/* 80281E1C 0027DA7C 40 82 00 18 */ bne lbl_80281E34
+lbl_80281E20:
+/* 80281E20 0027DA80 54 C0 D7 FE */ rlwinm r0, r6, 0x1a, 0x1f, 0x1f
+/* 80281E24 0027DA84 28 00 00 01 */ cmplwi r0, 1
+/* 80281E28 0027DA88 40 82 00 0C */ bne lbl_80281E34
+/* 80281E2C 0027DA8C 39 60 00 01 */ li r11, 1
+/* 80281E30 0027DA90 54 C6 06 B0 */ rlwinm r6, r6, 0, 0x1a, 0x18
+lbl_80281E34:
+/* 80281E34 0027DA94 2C 0B 00 00 */ cmpwi r11, 0
+/* 80281E38 0027DA98 41 82 00 14 */ beq lbl_80281E4C
+/* 80281E3C 0027DA9C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80281E40 0027DAA0 38 00 00 61 */ li r0, 0x61
+/* 80281E44 0027DAA4 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 80281E48 0027DAA8 90 C5 80 00 */ stw r6, -0x8000(r5)
+lbl_80281E4C:
+/* 80281E4C 0027DAAC 3C E0 CC 01 */ lis r7, 0xCC008000@ha
+/* 80281E50 0027DAB0 39 00 00 61 */ li r8, 0x61
+/* 80281E54 0027DAB4 99 07 80 00 */ stb r8, 0xCC008000@l(r7)
+/* 80281E58 0027DAB8 38 A0 00 00 */ li r5, 0
+/* 80281E5C 0027DABC 81 42 A0 D0 */ lwz r10, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281E60 0027DAC0 50 65 DA 3E */ rlwimi r5, r3, 0x1b, 8, 0x1f
+/* 80281E64 0027DAC4 38 60 00 4B */ li r3, 0x4b
+/* 80281E68 0027DAC8 38 00 00 52 */ li r0, 0x52
+/* 80281E6C 0027DACC 80 CA 02 40 */ lwz r6, 0x240(r10)
+/* 80281E70 0027DAD0 50 65 C0 0E */ rlwimi r5, r3, 0x18, 0, 7
+/* 80281E74 0027DAD4 2C 04 00 00 */ cmpwi r4, 0
+/* 80281E78 0027DAD8 90 C7 80 00 */ stw r6, -0x8000(r7)
+/* 80281E7C 0027DADC 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281E80 0027DAE0 80 6A 02 44 */ lwz r3, 0x244(r10)
+/* 80281E84 0027DAE4 90 67 80 00 */ stw r3, -0x8000(r7)
+/* 80281E88 0027DAE8 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281E8C 0027DAEC 80 6A 02 48 */ lwz r3, 0x248(r10)
+/* 80281E90 0027DAF0 90 67 80 00 */ stw r3, -0x8000(r7)
+/* 80281E94 0027DAF4 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281E98 0027DAF8 90 A7 80 00 */ stw r5, -0x8000(r7)
+/* 80281E9C 0027DAFC 80 6A 02 4C */ lwz r3, 0x24c(r10)
+/* 80281EA0 0027DB00 50 83 5D 28 */ rlwimi r3, r4, 0xb, 0x14, 0x14
+/* 80281EA4 0027DB04 54 63 04 A0 */ rlwinm r3, r3, 0, 0x12, 0x10
+/* 80281EA8 0027DB08 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
+/* 80281EAC 0027DB0C 90 6A 02 4C */ stw r3, 0x24c(r10)
+/* 80281EB0 0027DB10 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281EB4 0027DB14 80 0A 02 4C */ lwz r0, 0x24c(r10)
+/* 80281EB8 0027DB18 90 07 80 00 */ stw r0, -0x8000(r7)
+/* 80281EBC 0027DB1C 41 82 00 1C */ beq lbl_80281ED8
+/* 80281EC0 0027DB20 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281EC4 0027DB24 80 0A 02 28 */ lwz r0, 0x228(r10)
+/* 80281EC8 0027DB28 90 07 80 00 */ stw r0, -0x8000(r7)
+/* 80281ECC 0027DB2C 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 80281ED0 0027DB30 80 0A 02 20 */ lwz r0, 0x220(r10)
+/* 80281ED4 0027DB34 90 07 80 00 */ stw r0, -0x8000(r7)
+lbl_80281ED8:
+/* 80281ED8 0027DB38 2C 0B 00 00 */ cmpwi r11, 0
+/* 80281EDC 0027DB3C 41 82 00 18 */ beq lbl_80281EF4
+/* 80281EE0 0027DB40 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281EE4 0027DB44 38 00 00 61 */ li r0, 0x61
+/* 80281EE8 0027DB48 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80281EEC 0027DB4C 80 09 02 2C */ lwz r0, 0x22c(r9)
+/* 80281EF0 0027DB50 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80281EF4:
+/* 80281EF4 0027DB54 38 00 00 00 */ li r0, 0
+/* 80281EF8 0027DB58 B0 09 00 02 */ sth r0, 2(r9)
+/* 80281EFC 0027DB5C 4E 80 00 20 */ blr
+
+.global GXClearBoundingBox
+GXClearBoundingBox:
+/* 80281F00 0027DB60 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80281F04 0027DB64 38 C0 00 61 */ li r6, 0x61
+/* 80281F08 0027DB68 3C 60 55 00 */ lis r3, 0x550003FF@ha
+/* 80281F0C 0027DB6C 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 80281F10 0027DB70 38 03 03 FF */ addi r0, r3, 0x550003FF@l
+/* 80281F14 0027DB74 90 05 80 00 */ stw r0, -0x8000(r5)
+/* 80281F18 0027DB78 3C 60 56 00 */ lis r3, 0x560003FF@ha
+/* 80281F1C 0027DB7C 38 83 03 FF */ addi r4, r3, 0x560003FF@l
+/* 80281F20 0027DB80 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281F24 0027DB84 98 C5 80 00 */ stb r6, -0x8000(r5)
+/* 80281F28 0027DB88 38 00 00 00 */ li r0, 0
+/* 80281F2C 0027DB8C 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80281F30 0027DB90 B0 03 00 02 */ sth r0, 2(r3)
+/* 80281F34 0027DB94 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXGeometry.s b/asm/SDK/GX/GXGeometry.s
new file mode 100644
index 0000000..7c343d3
--- /dev/null
+++ b/asm/SDK/GX/GXGeometry.s
@@ -0,0 +1,422 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __GXSetDirtyState
+__GXSetDirtyState:
+/* 80280ED0 0027CB30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280ED4 0027CB34 7C 08 02 A6 */ mflr r0
+/* 80280ED8 0027CB38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80280EDC 0027CB3C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80280EE0 0027CB40 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280EE4 0027CB44 93 C1 00 08 */ stw r30, 8(r1)
+/* 80280EE8 0027CB48 83 DF 05 FC */ lwz r30, 0x5fc(r31)
+/* 80280EEC 0027CB4C 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
+/* 80280EF0 0027CB50 41 82 00 08 */ beq lbl_80280EF8
+/* 80280EF4 0027CB54 48 00 1F B5 */ bl func_80282EA8
+lbl_80280EF8:
+/* 80280EF8 0027CB58 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
+/* 80280EFC 0027CB5C 41 82 00 08 */ beq lbl_80280F04
+/* 80280F00 0027CB60 48 00 2B E9 */ bl func_80283AE8
+lbl_80280F04:
+/* 80280F04 0027CB64 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
+/* 80280F08 0027CB68 41 82 00 24 */ beq lbl_80280F2C
+/* 80280F0C 0027CB6C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80280F10 0027CB70 38 00 00 61 */ li r0, 0x61
+/* 80280F14 0027CB74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80280F18 0027CB78 38 00 00 00 */ li r0, 0
+/* 80280F1C 0027CB7C 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280F20 0027CB80 80 65 02 54 */ lwz r3, 0x254(r5)
+/* 80280F24 0027CB84 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80280F28 0027CB88 B0 05 00 02 */ sth r0, 2(r5)
+lbl_80280F2C:
+/* 80280F2C 0027CB8C 57 C0 07 39 */ rlwinm. r0, r30, 0, 0x1c, 0x1c
+/* 80280F30 0027CB90 41 82 00 08 */ beq lbl_80280F38
+/* 80280F34 0027CB94 4B FF E9 31 */ bl __GXSetVCD
+lbl_80280F38:
+/* 80280F38 0027CB98 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
+/* 80280F3C 0027CB9C 41 82 00 08 */ beq lbl_80280F44
+/* 80280F40 0027CBA0 4B FF F0 DD */ bl __GXSetVAT
+lbl_80280F44:
+/* 80280F44 0027CBA4 57 C0 06 F9 */ rlwinm. r0, r30, 0, 0x1b, 0x1c
+/* 80280F48 0027CBA8 41 82 00 08 */ beq lbl_80280F50
+/* 80280F4C 0027CBAC 4B FF E9 C9 */ bl __GXCalculateVLim
+lbl_80280F50:
+/* 80280F50 0027CBB0 57 DE 00 2F */ rlwinm. r30, r30, 0, 0, 0x17
+/* 80280F54 0027CBB4 41 82 01 D4 */ beq lbl_80281128
+/* 80280F58 0027CBB8 57 C4 05 2F */ rlwinm. r4, r30, 0, 0x14, 0x17
+/* 80280F5C 0027CBBC 41 82 00 94 */ beq lbl_80280FF0
+/* 80280F60 0027CBC0 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
+/* 80280F64 0027CBC4 41 82 00 20 */ beq lbl_80280F84
+/* 80280F68 0027CBC8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280F6C 0027CBCC 38 00 00 10 */ li r0, 0x10
+/* 80280F70 0027CBD0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80280F74 0027CBD4 38 00 10 0A */ li r0, 0x100a
+/* 80280F78 0027CBD8 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280F7C 0027CBDC 80 1F 00 A8 */ lwz r0, 0xa8(r31)
+/* 80280F80 0027CBE0 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80280F84:
+/* 80280F84 0027CBE4 54 80 05 AD */ rlwinm. r0, r4, 0, 0x16, 0x16
+/* 80280F88 0027CBE8 41 82 00 20 */ beq lbl_80280FA8
+/* 80280F8C 0027CBEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280F90 0027CBF0 38 00 00 10 */ li r0, 0x10
+/* 80280F94 0027CBF4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80280F98 0027CBF8 38 00 10 0B */ li r0, 0x100b
+/* 80280F9C 0027CBFC 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280FA0 0027CC00 80 1F 00 AC */ lwz r0, 0xac(r31)
+/* 80280FA4 0027CC04 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80280FA8:
+/* 80280FA8 0027CC08 54 80 05 6B */ rlwinm. r0, r4, 0, 0x15, 0x15
+/* 80280FAC 0027CC0C 41 82 00 20 */ beq lbl_80280FCC
+/* 80280FB0 0027CC10 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280FB4 0027CC14 38 00 00 10 */ li r0, 0x10
+/* 80280FB8 0027CC18 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80280FBC 0027CC1C 38 00 10 0C */ li r0, 0x100c
+/* 80280FC0 0027CC20 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280FC4 0027CC24 80 1F 00 B0 */ lwz r0, 0xb0(r31)
+/* 80280FC8 0027CC28 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80280FCC:
+/* 80280FCC 0027CC2C 54 80 05 29 */ rlwinm. r0, r4, 0, 0x14, 0x14
+/* 80280FD0 0027CC30 41 82 00 20 */ beq lbl_80280FF0
+/* 80280FD4 0027CC34 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280FD8 0027CC38 38 00 00 10 */ li r0, 0x10
+/* 80280FDC 0027CC3C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80280FE0 0027CC40 38 00 10 0D */ li r0, 0x100d
+/* 80280FE4 0027CC44 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280FE8 0027CC48 80 1F 00 B4 */ lwz r0, 0xb4(r31)
+/* 80280FEC 0027CC4C 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80280FF0:
+/* 80280FF0 0027CC50 57 C7 01 CE */ rlwinm r7, r30, 0, 7, 7
+/* 80280FF4 0027CC54 53 C7 04 27 */ rlwimi. r7, r30, 0, 0x10, 0x13
+/* 80280FF8 0027CC58 41 82 00 70 */ beq lbl_80281068
+/* 80280FFC 0027CC5C 54 E0 01 CF */ rlwinm. r0, r7, 0, 7, 7
+/* 80281000 0027CC60 38 C0 10 0E */ li r6, 0x100e
+/* 80281004 0027CC64 41 82 00 24 */ beq lbl_80281028
+/* 80281008 0027CC68 80 BF 02 54 */ lwz r5, 0x254(r31)
+/* 8028100C 0027CC6C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281010 0027CC70 38 80 00 10 */ li r4, 0x10
+/* 80281014 0027CC74 38 00 10 09 */ li r0, 0x1009
+/* 80281018 0027CC78 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
+/* 8028101C 0027CC7C 54 A4 E7 7E */ rlwinm r4, r5, 0x1c, 0x1d, 0x1f
+/* 80281020 0027CC80 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80281024 0027CC84 90 83 80 00 */ stw r4, -0x8000(r3)
+lbl_80281028:
+/* 80281028 0027CC88 7F E5 FB 78 */ mr r5, r31
+/* 8028102C 0027CC8C 54 E7 A7 3E */ rlwinm r7, r7, 0x14, 0x1c, 0x1f
+/* 80281030 0027CC90 38 80 00 10 */ li r4, 0x10
+/* 80281034 0027CC94 3C 60 CC 01 */ lis r3, 0xcc01
+/* 80281038 0027CC98 48 00 00 28 */ b lbl_80281060
+lbl_8028103C:
+/* 8028103C 0027CC9C 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
+/* 80281040 0027CCA0 41 82 00 14 */ beq lbl_80281054
+/* 80281044 0027CCA4 98 83 80 00 */ stb r4, -0x8000(r3)
+/* 80281048 0027CCA8 90 C3 80 00 */ stw r6, -0x8000(r3)
+/* 8028104C 0027CCAC 80 05 00 B8 */ lwz r0, 0xb8(r5)
+/* 80281050 0027CCB0 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_80281054:
+/* 80281054 0027CCB4 54 E7 F8 7E */ srwi r7, r7, 1
+/* 80281058 0027CCB8 38 A5 00 04 */ addi r5, r5, 4
+/* 8028105C 0027CCBC 38 C6 00 01 */ addi r6, r6, 1
+lbl_80281060:
+/* 80281060 0027CCC0 2C 07 00 00 */ cmpwi r7, 0
+/* 80281064 0027CCC4 40 82 FF D8 */ bne lbl_8028103C
+lbl_80281068:
+/* 80281068 0027CCC8 77 C8 02 FF */ andis. r8, r30, 0x2ff
+/* 8028106C 0027CCCC 41 82 00 84 */ beq lbl_802810F0
+/* 80281070 0027CCD0 55 00 01 8D */ rlwinm. r0, r8, 0, 6, 6
+/* 80281074 0027CCD4 38 C0 10 40 */ li r6, 0x1040
+/* 80281078 0027CCD8 41 82 00 24 */ beq lbl_8028109C
+/* 8028107C 0027CCDC 80 BF 02 54 */ lwz r5, 0x254(r31)
+/* 80281080 0027CCE0 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281084 0027CCE4 38 80 00 10 */ li r4, 0x10
+/* 80281088 0027CCE8 38 00 10 3F */ li r0, 0x103f
+/* 8028108C 0027CCEC 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
+/* 80281090 0027CCF0 54 A4 07 3E */ clrlwi r4, r5, 0x1c
+/* 80281094 0027CCF4 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80281098 0027CCF8 90 83 80 00 */ stw r4, -0x8000(r3)
+lbl_8028109C:
+/* 8028109C 0027CCFC 7F E7 FB 78 */ mr r7, r31
+/* 802810A0 0027CD00 55 08 86 3E */ rlwinm r8, r8, 0x10, 0x18, 0x1f
+/* 802810A4 0027CD04 38 80 00 10 */ li r4, 0x10
+/* 802810A8 0027CD08 3C 60 CC 01 */ lis r3, 0xcc01
+/* 802810AC 0027CD0C 48 00 00 3C */ b lbl_802810E8
+lbl_802810B0:
+/* 802810B0 0027CD10 55 00 07 FF */ clrlwi. r0, r8, 0x1f
+/* 802810B4 0027CD14 38 A6 00 10 */ addi r5, r6, 0x10
+/* 802810B8 0027CD18 41 82 00 24 */ beq lbl_802810DC
+/* 802810BC 0027CD1C 98 83 80 00 */ stb r4, -0x8000(r3)
+/* 802810C0 0027CD20 90 C3 80 00 */ stw r6, -0x8000(r3)
+/* 802810C4 0027CD24 80 07 00 C8 */ lwz r0, 0xc8(r7)
+/* 802810C8 0027CD28 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802810CC 0027CD2C 98 83 80 00 */ stb r4, -0x8000(r3)
+/* 802810D0 0027CD30 90 A3 80 00 */ stw r5, -0x8000(r3)
+/* 802810D4 0027CD34 80 07 00 E8 */ lwz r0, 0xe8(r7)
+/* 802810D8 0027CD38 90 03 80 00 */ stw r0, -0x8000(r3)
+lbl_802810DC:
+/* 802810DC 0027CD3C 55 08 F8 7E */ srwi r8, r8, 1
+/* 802810E0 0027CD40 38 C6 00 01 */ addi r6, r6, 1
+/* 802810E4 0027CD44 38 E7 00 04 */ addi r7, r7, 4
+lbl_802810E8:
+/* 802810E8 0027CD48 2C 08 00 00 */ cmpwi r8, 0
+/* 802810EC 0027CD4C 40 82 FF C4 */ bne lbl_802810B0
+lbl_802810F0:
+/* 802810F0 0027CD50 57 C0 01 4B */ rlwinm. r0, r30, 0, 5, 5
+/* 802810F4 0027CD54 41 82 00 14 */ beq lbl_80281108
+/* 802810F8 0027CD58 38 60 00 00 */ li r3, 0
+/* 802810FC 0027CD5C 48 00 5C CD */ bl func_80286DC8
+/* 80281100 0027CD60 38 60 00 05 */ li r3, 5
+/* 80281104 0027CD64 48 00 5C C5 */ bl func_80286DC8
+lbl_80281108:
+/* 80281108 0027CD68 57 C0 00 C7 */ rlwinm. r0, r30, 0, 3, 3
+/* 8028110C 0027CD6C 41 82 00 08 */ beq lbl_80281114
+/* 80281110 0027CD70 48 00 5A F5 */ bl func_80286C04
+lbl_80281114:
+/* 80281114 0027CD74 57 C0 01 09 */ rlwinm. r0, r30, 0, 4, 4
+/* 80281118 0027CD78 41 82 00 08 */ beq lbl_80281120
+/* 8028111C 0027CD7C 48 00 58 79 */ bl func_80286994
+lbl_80281120:
+/* 80281120 0027CD80 38 00 00 01 */ li r0, 1
+/* 80281124 0027CD84 B0 1F 00 02 */ sth r0, 2(r31)
+lbl_80281128:
+/* 80281128 0027CD88 38 00 00 00 */ li r0, 0
+/* 8028112C 0027CD8C 90 1F 05 FC */ stw r0, 0x5fc(r31)
+/* 80281130 0027CD90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80281134 0027CD94 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80281138 0027CD98 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8028113C 0027CD9C 7C 08 03 A6 */ mtlr r0
+/* 80281140 0027CDA0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80281144 0027CDA4 4E 80 00 20 */ blr
+
+.global GXBegin
+GXBegin:
+/* 80281148 0027CDA8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8028114C 0027CDAC 7C 08 02 A6 */ mflr r0
+/* 80281150 0027CDB0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80281154 0027CDB4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80281158 0027CDB8 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028115C 0027CDBC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80281160 0027CDC0 7C BE 2B 78 */ mr r30, r5
+/* 80281164 0027CDC4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80281168 0027CDC8 7C 9D 23 78 */ mr r29, r4
+/* 8028116C 0027CDCC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80281170 0027CDD0 7C 7C 1B 78 */ mr r28, r3
+/* 80281174 0027CDD4 80 1F 05 FC */ lwz r0, 0x5fc(r31)
+/* 80281178 0027CDD8 2C 00 00 00 */ cmpwi r0, 0
+/* 8028117C 0027CDDC 41 82 00 08 */ beq lbl_80281184
+/* 80281180 0027CDE0 4B FF FD 51 */ bl __GXSetDirtyState
+lbl_80281184:
+/* 80281184 0027CDE4 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80281188 0027CDE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8028118C 0027CDEC 40 82 00 D8 */ bne lbl_80281264
+/* 80281190 0027CDF0 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281194 0027CDF4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281198 0027CDF8 38 00 00 98 */ li r0, 0x98
+/* 8028119C 0027CDFC 38 C0 00 00 */ li r6, 0
+/* 802811A0 0027CE00 A0 A7 00 04 */ lhz r5, 4(r7)
+/* 802811A4 0027CE04 A0 87 00 06 */ lhz r4, 6(r7)
+/* 802811A8 0027CE08 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 802811AC 0027CE0C 7C A5 21 D7 */ mullw. r5, r5, r4
+/* 802811B0 0027CE10 A0 07 00 04 */ lhz r0, 4(r7)
+/* 802811B4 0027CE14 B0 03 80 00 */ sth r0, -0x8000(r3)
+/* 802811B8 0027CE18 41 82 00 A4 */ beq lbl_8028125C
+/* 802811BC 0027CE1C 38 65 00 03 */ addi r3, r5, 3
+/* 802811C0 0027CE20 38 E5 FF E0 */ addi r7, r5, -32
+/* 802811C4 0027CE24 54 60 F0 BE */ srwi r0, r3, 2
+/* 802811C8 0027CE28 28 00 00 08 */ cmplwi r0, 8
+/* 802811CC 0027CE2C 40 81 00 68 */ ble lbl_80281234
+/* 802811D0 0027CE30 28 03 00 03 */ cmplwi r3, 3
+/* 802811D4 0027CE34 38 00 00 00 */ li r0, 0
+/* 802811D8 0027CE38 41 80 00 10 */ blt lbl_802811E8
+/* 802811DC 0027CE3C 7C 05 18 40 */ cmplw r5, r3
+/* 802811E0 0027CE40 41 81 00 08 */ bgt lbl_802811E8
+/* 802811E4 0027CE44 38 00 00 01 */ li r0, 1
+lbl_802811E8:
+/* 802811E8 0027CE48 2C 00 00 00 */ cmpwi r0, 0
+/* 802811EC 0027CE4C 41 82 00 48 */ beq lbl_80281234
+/* 802811F0 0027CE50 38 07 00 1F */ addi r0, r7, 0x1f
+/* 802811F4 0027CE54 38 80 00 00 */ li r4, 0
+/* 802811F8 0027CE58 54 00 D9 7E */ srwi r0, r0, 5
+/* 802811FC 0027CE5C 3C 60 CC 01 */ lis r3, 0xcc01
+/* 80281200 0027CE60 7C 09 03 A6 */ mtctr r0
+/* 80281204 0027CE64 28 07 00 00 */ cmplwi r7, 0
+/* 80281208 0027CE68 40 81 00 2C */ ble lbl_80281234
+lbl_8028120C:
+/* 8028120C 0027CE6C 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281210 0027CE70 38 C6 00 20 */ addi r6, r6, 0x20
+/* 80281214 0027CE74 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281218 0027CE78 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028121C 0027CE7C 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281220 0027CE80 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281224 0027CE84 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281228 0027CE88 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028122C 0027CE8C 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281230 0027CE90 42 00 FF DC */ bdnz lbl_8028120C
+lbl_80281234:
+/* 80281234 0027CE94 38 05 00 03 */ addi r0, r5, 3
+/* 80281238 0027CE98 38 80 00 00 */ li r4, 0
+/* 8028123C 0027CE9C 7C 06 00 50 */ subf r0, r6, r0
+/* 80281240 0027CEA0 3C 60 CC 01 */ lis r3, 0xcc01
+/* 80281244 0027CEA4 54 00 F0 BE */ srwi r0, r0, 2
+/* 80281248 0027CEA8 7C 09 03 A6 */ mtctr r0
+/* 8028124C 0027CEAC 7C 06 28 40 */ cmplw r6, r5
+/* 80281250 0027CEB0 40 80 00 0C */ bge lbl_8028125C
+lbl_80281254:
+/* 80281254 0027CEB4 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281258 0027CEB8 42 00 FF FC */ bdnz lbl_80281254
+lbl_8028125C:
+/* 8028125C 0027CEBC 38 00 00 01 */ li r0, 1
+/* 80281260 0027CEC0 B0 1F 00 02 */ sth r0, 2(r31)
+lbl_80281264:
+/* 80281264 0027CEC4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80281268 0027CEC8 7F A0 E3 78 */ or r0, r29, r28
+/* 8028126C 0027CECC 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 80281270 0027CED0 B3 C3 80 00 */ sth r30, -0x8000(r3)
+/* 80281274 0027CED4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80281278 0027CED8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8028127C 0027CEDC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80281280 0027CEE0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80281284 0027CEE4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80281288 0027CEE8 7C 08 03 A6 */ mtlr r0
+/* 8028128C 0027CEEC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80281290 0027CEF0 4E 80 00 20 */ blr
+
+.global __GXSendFlushPrim
+__GXSendFlushPrim:
+/* 80281294 0027CEF4 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281298 0027CEF8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 8028129C 0027CEFC 38 00 00 98 */ li r0, 0x98
+/* 802812A0 0027CF00 38 E0 00 00 */ li r7, 0
+/* 802812A4 0027CF04 A0 A6 00 04 */ lhz r5, 4(r6)
+/* 802812A8 0027CF08 A0 86 00 06 */ lhz r4, 6(r6)
+/* 802812AC 0027CF0C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
+/* 802812B0 0027CF10 7D 05 21 D7 */ mullw. r8, r5, r4
+/* 802812B4 0027CF14 A0 06 00 04 */ lhz r0, 4(r6)
+/* 802812B8 0027CF18 B0 03 80 00 */ sth r0, -0x8000(r3)
+/* 802812BC 0027CF1C 41 82 00 A4 */ beq lbl_80281360
+/* 802812C0 0027CF20 38 68 00 03 */ addi r3, r8, 3
+/* 802812C4 0027CF24 38 A8 FF E0 */ addi r5, r8, -32
+/* 802812C8 0027CF28 54 60 F0 BE */ srwi r0, r3, 2
+/* 802812CC 0027CF2C 28 00 00 08 */ cmplwi r0, 8
+/* 802812D0 0027CF30 40 81 00 68 */ ble lbl_80281338
+/* 802812D4 0027CF34 28 03 00 03 */ cmplwi r3, 3
+/* 802812D8 0027CF38 38 00 00 00 */ li r0, 0
+/* 802812DC 0027CF3C 41 80 00 10 */ blt lbl_802812EC
+/* 802812E0 0027CF40 7C 08 18 40 */ cmplw r8, r3
+/* 802812E4 0027CF44 41 81 00 08 */ bgt lbl_802812EC
+/* 802812E8 0027CF48 38 00 00 01 */ li r0, 1
+lbl_802812EC:
+/* 802812EC 0027CF4C 2C 00 00 00 */ cmpwi r0, 0
+/* 802812F0 0027CF50 41 82 00 48 */ beq lbl_80281338
+/* 802812F4 0027CF54 38 05 00 1F */ addi r0, r5, 0x1f
+/* 802812F8 0027CF58 38 80 00 00 */ li r4, 0
+/* 802812FC 0027CF5C 54 00 D9 7E */ srwi r0, r0, 5
+/* 80281300 0027CF60 3C 60 CC 01 */ lis r3, 0xcc01
+/* 80281304 0027CF64 7C 09 03 A6 */ mtctr r0
+/* 80281308 0027CF68 28 05 00 00 */ cmplwi r5, 0
+/* 8028130C 0027CF6C 40 81 00 2C */ ble lbl_80281338
+lbl_80281310:
+/* 80281310 0027CF70 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281314 0027CF74 38 E7 00 20 */ addi r7, r7, 0x20
+/* 80281318 0027CF78 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028131C 0027CF7C 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281320 0027CF80 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281324 0027CF84 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281328 0027CF88 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028132C 0027CF8C 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281330 0027CF90 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 80281334 0027CF94 42 00 FF DC */ bdnz lbl_80281310
+lbl_80281338:
+/* 80281338 0027CF98 38 08 00 03 */ addi r0, r8, 3
+/* 8028133C 0027CF9C 38 80 00 00 */ li r4, 0
+/* 80281340 0027CFA0 7C 07 00 50 */ subf r0, r7, r0
+/* 80281344 0027CFA4 3C 60 CC 01 */ lis r3, 0xcc01
+/* 80281348 0027CFA8 54 00 F0 BE */ srwi r0, r0, 2
+/* 8028134C 0027CFAC 7C 09 03 A6 */ mtctr r0
+/* 80281350 0027CFB0 7C 07 40 40 */ cmplw r7, r8
+/* 80281354 0027CFB4 40 80 00 0C */ bge lbl_80281360
+lbl_80281358:
+/* 80281358 0027CFB8 90 83 80 00 */ stw r4, -0x8000(r3)
+/* 8028135C 0027CFBC 42 00 FF FC */ bdnz lbl_80281358
+lbl_80281360:
+/* 80281360 0027CFC0 38 00 00 01 */ li r0, 1
+/* 80281364 0027CFC4 B0 06 00 02 */ sth r0, 2(r6)
+/* 80281368 0027CFC8 4E 80 00 20 */ blr
+
+.global GXSetLineWidth
+GXSetLineWidth:
+/* 8028136C 0027CFCC 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281370 0027CFD0 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80281374 0027CFD4 38 C0 00 61 */ li r6, 0x61
+/* 80281378 0027CFD8 38 00 00 00 */ li r0, 0
+/* 8028137C 0027CFDC 80 E8 00 7C */ lwz r7, 0x7c(r8)
+/* 80281380 0027CFE0 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
+/* 80281384 0027CFE4 50 87 83 5E */ rlwimi r7, r4, 0x10, 0xd, 0xf
+/* 80281388 0027CFE8 90 E8 00 7C */ stw r7, 0x7c(r8)
+/* 8028138C 0027CFEC 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 80281390 0027CFF0 80 68 00 7C */ lwz r3, 0x7c(r8)
+/* 80281394 0027CFF4 90 65 80 00 */ stw r3, -0x8000(r5)
+/* 80281398 0027CFF8 B0 08 00 02 */ sth r0, 2(r8)
+/* 8028139C 0027CFFC 4E 80 00 20 */ blr
+
+.global GXSetPointSize
+GXSetPointSize:
+/* 802813A0 0027D000 81 02 A0 D0 */ lwz r8, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802813A4 0027D004 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 802813A8 0027D008 38 C0 00 61 */ li r6, 0x61
+/* 802813AC 0027D00C 38 00 00 00 */ li r0, 0
+/* 802813B0 0027D010 80 E8 00 7C */ lwz r7, 0x7c(r8)
+/* 802813B4 0027D014 50 67 44 2E */ rlwimi r7, r3, 8, 0x10, 0x17
+/* 802813B8 0027D018 50 87 9A 98 */ rlwimi r7, r4, 0x13, 0xa, 0xc
+/* 802813BC 0027D01C 90 E8 00 7C */ stw r7, 0x7c(r8)
+/* 802813C0 0027D020 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
+/* 802813C4 0027D024 80 68 00 7C */ lwz r3, 0x7c(r8)
+/* 802813C8 0027D028 90 65 80 00 */ stw r3, -0x8000(r5)
+/* 802813CC 0027D02C B0 08 00 02 */ sth r0, 2(r8)
+/* 802813D0 0027D030 4E 80 00 20 */ blr
+
+.global GXEnableTexOffsets
+GXEnableTexOffsets:
+/* 802813D4 0027D034 81 22 A0 D0 */ lwz r9, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802813D8 0027D038 54 60 10 3A */ slwi r0, r3, 2
+/* 802813DC 0027D03C 3C C0 CC 01 */ lis r6, 0xCC008000@ha
+/* 802813E0 0027D040 38 60 00 61 */ li r3, 0x61
+/* 802813E4 0027D044 7D 09 02 14 */ add r8, r9, r0
+/* 802813E8 0027D048 38 00 00 00 */ li r0, 0
+/* 802813EC 0027D04C 80 E8 01 08 */ lwz r7, 0x108(r8)
+/* 802813F0 0027D050 50 87 93 5A */ rlwimi r7, r4, 0x12, 0xd, 0xd
+/* 802813F4 0027D054 50 A7 9B 18 */ rlwimi r7, r5, 0x13, 0xc, 0xc
+/* 802813F8 0027D058 90 E8 01 08 */ stw r7, 0x108(r8)
+/* 802813FC 0027D05C 98 66 80 00 */ stb r3, 0xCC008000@l(r6)
+/* 80281400 0027D060 80 68 01 08 */ lwz r3, 0x108(r8)
+/* 80281404 0027D064 90 66 80 00 */ stw r3, -0x8000(r6)
+/* 80281408 0027D068 B0 09 00 02 */ sth r0, 2(r9)
+/* 8028140C 0027D06C 4E 80 00 20 */ blr
+
+.global GXSetCullMode
+GXSetCullMode:
+/* 80281410 0027D070 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80281414 0027D074 54 65 FF FE */ rlwinm r5, r3, 0x1f, 0x1f, 0x1f
+/* 80281418 0027D078 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e
+/* 8028141C 0027D07C 80 04 02 54 */ lwz r0, 0x254(r4)
+/* 80281420 0027D080 50 A0 74 22 */ rlwimi r0, r5, 0xe, 0x10, 0x11
+/* 80281424 0027D084 90 04 02 54 */ stw r0, 0x254(r4)
+/* 80281428 0027D088 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 8028142C 0027D08C 60 00 00 04 */ ori r0, r0, 4
+/* 80281430 0027D090 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 80281434 0027D094 4E 80 00 20 */ blr
+
+.global GXSetCoPlanar
+GXSetCoPlanar:
+/* 80281438 0027D098 80 E2 A0 D0 */ lwz r7, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028143C 0027D09C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80281440 0027D0A0 38 A0 00 61 */ li r5, 0x61
+/* 80281444 0027D0A4 3C 00 FE 08 */ lis r0, 0xfe08
+/* 80281448 0027D0A8 80 C7 02 54 */ lwz r6, 0x254(r7)
+/* 8028144C 0027D0AC 50 66 9B 18 */ rlwimi r6, r3, 0x13, 0xc, 0xc
+/* 80281450 0027D0B0 90 C7 02 54 */ stw r6, 0x254(r7)
+/* 80281454 0027D0B4 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80281458 0027D0B8 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 8028145C 0027D0BC 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80281460 0027D0C0 80 07 02 54 */ lwz r0, 0x254(r7)
+/* 80281464 0027D0C4 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 80281468 0027D0C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXInit.s b/asm/SDK/GX/GXInit.s
new file mode 100644
index 0000000..2fcd736
--- /dev/null
+++ b/asm/SDK/GX/GXInit.s
@@ -0,0 +1,1194 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __GXDefaultTexRegionCallback
+__GXDefaultTexRegionCallback:
+/* 8027D624 00279284 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027D628 00279288 7C 08 02 A6 */ mflr r0
+/* 8027D62C 0027928C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027D630 00279290 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8027D634 00279294 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027D638 00279298 7C 9E 23 78 */ mr r30, r4
+/* 8027D63C 0027929C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027D640 002792A0 7C 7D 1B 78 */ mr r29, r3
+/* 8027D644 002792A4 48 00 54 01 */ bl func_80282A44
+/* 8027D648 002792A8 7C 7F 1B 78 */ mr r31, r3
+/* 8027D64C 002792AC 7F A3 EB 78 */ mr r3, r29
+/* 8027D650 002792B0 48 00 53 FD */ bl func_80282A4C
+/* 8027D654 002792B4 57 C0 E8 04 */ slwi r0, r30, 0x1d
+/* 8027D658 002792B8 57 C4 0F FE */ srwi r4, r30, 0x1f
+/* 8027D65C 002792BC 7C 04 00 50 */ subf r0, r4, r0
+/* 8027D660 002792C0 2C 1F 00 07 */ cmpwi r31, 7
+/* 8027D664 002792C4 54 00 18 3E */ rotlwi r0, r0, 3
+/* 8027D668 002792C8 7F C0 22 14 */ add r30, r0, r4
+/* 8027D66C 002792CC 41 82 00 64 */ beq lbl_8027D6D0
+/* 8027D670 002792D0 40 80 00 10 */ bge lbl_8027D680
+/* 8027D674 002792D4 2C 1F 00 06 */ cmpwi r31, 6
+/* 8027D678 002792D8 40 80 00 14 */ bge lbl_8027D68C
+/* 8027D67C 002792DC 48 00 00 54 */ b lbl_8027D6D0
+lbl_8027D680:
+/* 8027D680 002792E0 2C 1F 00 0B */ cmpwi r31, 0xb
+/* 8027D684 002792E4 40 80 00 4C */ bge lbl_8027D6D0
+/* 8027D688 002792E8 48 00 00 34 */ b lbl_8027D6BC
+lbl_8027D68C:
+/* 8027D68C 002792EC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8027D690 002792F0 41 82 00 18 */ beq lbl_8027D6A8
+/* 8027D694 002792F4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D698 002792F8 57 C0 20 36 */ slwi r0, r30, 4
+/* 8027D69C 002792FC 7C 63 02 14 */ add r3, r3, r0
+/* 8027D6A0 00279300 38 63 03 58 */ addi r3, r3, 0x358
+/* 8027D6A4 00279304 48 00 00 58 */ b lbl_8027D6FC
+lbl_8027D6A8:
+/* 8027D6A8 00279308 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D6AC 0027930C 57 C0 20 36 */ slwi r0, r30, 4
+/* 8027D6B0 00279310 7C 63 02 14 */ add r3, r3, r0
+/* 8027D6B4 00279314 38 63 02 D8 */ addi r3, r3, 0x2d8
+/* 8027D6B8 00279318 48 00 00 44 */ b lbl_8027D6FC
+lbl_8027D6BC:
+/* 8027D6BC 0027931C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D6C0 00279320 57 C0 20 36 */ slwi r0, r30, 4
+/* 8027D6C4 00279324 7C 63 02 14 */ add r3, r3, r0
+/* 8027D6C8 00279328 38 63 02 58 */ addi r3, r3, 0x258
+/* 8027D6CC 0027932C 48 00 00 30 */ b lbl_8027D6FC
+lbl_8027D6D0:
+/* 8027D6D0 00279330 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 8027D6D4 00279334 41 82 00 18 */ beq lbl_8027D6EC
+/* 8027D6D8 00279338 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D6DC 0027933C 57 C0 20 36 */ slwi r0, r30, 4
+/* 8027D6E0 00279340 7C 63 02 14 */ add r3, r3, r0
+/* 8027D6E4 00279344 38 63 02 D8 */ addi r3, r3, 0x2d8
+/* 8027D6E8 00279348 48 00 00 14 */ b lbl_8027D6FC
+lbl_8027D6EC:
+/* 8027D6EC 0027934C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D6F0 00279350 57 C0 20 36 */ slwi r0, r30, 4
+/* 8027D6F4 00279354 7C 63 02 14 */ add r3, r3, r0
+/* 8027D6F8 00279358 38 63 02 58 */ addi r3, r3, 0x258
+lbl_8027D6FC:
+/* 8027D6FC 0027935C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027D700 00279360 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027D704 00279364 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8027D708 00279368 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8027D70C 0027936C 7C 08 03 A6 */ mtlr r0
+/* 8027D710 00279370 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027D714 00279374 4E 80 00 20 */ blr
+
+.global __GXDefaultTlutRegionCallback
+__GXDefaultTlutRegionCallback:
+/* 8027D718 00279378 28 03 00 14 */ cmplwi r3, 0x14
+/* 8027D71C 0027937C 41 80 00 0C */ blt lbl_8027D728
+/* 8027D720 00279380 38 60 00 00 */ li r3, 0
+/* 8027D724 00279384 4E 80 00 20 */ blr
+lbl_8027D728:
+/* 8027D728 00279388 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D72C 0027938C 54 60 20 36 */ slwi r0, r3, 4
+/* 8027D730 00279390 7C 64 02 14 */ add r3, r4, r0
+/* 8027D734 00279394 38 63 03 D8 */ addi r3, r3, 0x3d8
+/* 8027D738 00279398 4E 80 00 20 */ blr
+
+.global __GXShutdown
+__GXShutdown:
+/* 8027D73C 0027939C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027D740 002793A0 7C 08 02 A6 */ mflr r0
+/* 8027D744 002793A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8027D748 002793A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027D74C 002793AC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027D750 002793B0 40 82 00 D8 */ bne lbl_8027D828
+/* 8027D754 002793B4 80 0D A9 B0 */ lwz r0, lbl_8063FC70-_SDA_BASE_(r13)
+/* 8027D758 002793B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027D75C 002793BC 40 82 00 48 */ bne lbl_8027D7A4
+/* 8027D760 002793C0 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 8027D764 002793C4 A0 85 00 4E */ lhz r4, 0x4e(r5)
+lbl_8027D768:
+/* 8027D768 002793C8 7C 80 23 78 */ mr r0, r4
+/* 8027D76C 002793CC A0 65 00 50 */ lhz r3, 0x50(r5)
+/* 8027D770 002793D0 A0 85 00 4E */ lhz r4, 0x4e(r5)
+/* 8027D774 002793D4 7C 04 00 40 */ cmplw r4, r0
+/* 8027D778 002793D8 40 82 FF F0 */ bne lbl_8027D768
+/* 8027D77C 002793DC 54 80 80 1E */ slwi r0, r4, 0x10
+/* 8027D780 002793E0 7C 00 1B 78 */ or r0, r0, r3
+/* 8027D784 002793E4 90 0D A9 A0 */ stw r0, lbl_8063FC60-_SDA_BASE_(r13)
+/* 8027D788 002793E8 4B FF 50 31 */ bl OSGetTime
+/* 8027D78C 002793EC 38 00 00 01 */ li r0, 1
+/* 8027D790 002793F0 90 6D A9 A8 */ stw r3, lbl_8063FC68-_SDA_BASE_(r13)
+/* 8027D794 002793F4 38 60 00 00 */ li r3, 0
+/* 8027D798 002793F8 90 8D A9 AC */ stw r4, lbl_8063FC6C-_SDA_BASE_(r13)
+/* 8027D79C 002793FC 90 0D A9 B0 */ stw r0, lbl_8063FC70-_SDA_BASE_(r13)
+/* 8027D7A0 00279400 48 00 00 F4 */ b lbl_8027D894
+lbl_8027D7A4:
+/* 8027D7A4 00279404 4B FF 50 15 */ bl OSGetTime
+/* 8027D7A8 00279408 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 8027D7AC 0027940C A0 E5 00 4E */ lhz r7, 0x4e(r5)
+lbl_8027D7B0:
+/* 8027D7B0 00279410 7C E0 3B 78 */ mr r0, r7
+/* 8027D7B4 00279414 A1 45 00 50 */ lhz r10, 0x50(r5)
+/* 8027D7B8 00279418 A0 E5 00 4E */ lhz r7, 0x4e(r5)
+/* 8027D7BC 0027941C 7C 07 00 40 */ cmplw r7, r0
+/* 8027D7C0 00279420 40 82 FF F0 */ bne lbl_8027D7B0
+/* 8027D7C4 00279424 80 AD A9 AC */ lwz r5, lbl_8063FC6C-_SDA_BASE_(r13)
+/* 8027D7C8 00279428 38 00 00 00 */ li r0, 0
+/* 8027D7CC 0027942C 80 CD A9 A8 */ lwz r6, lbl_8063FC68-_SDA_BASE_(r13)
+/* 8027D7D0 00279430 54 E9 80 1E */ slwi r9, r7, 0x10
+/* 8027D7D4 00279434 7D 05 20 10 */ subfc r8, r5, r4
+/* 8027D7D8 00279438 38 A0 00 0A */ li r5, 0xa
+/* 8027D7DC 0027943C 7C E6 19 10 */ subfe r7, r6, r3
+/* 8027D7E0 00279440 6C 06 80 00 */ xoris r6, r0, 0x8000
+/* 8027D7E4 00279444 7C A5 40 10 */ subfc r5, r5, r8
+/* 8027D7E8 00279448 6C E0 80 00 */ xoris r0, r7, 0x8000
+/* 8027D7EC 0027944C 7C C6 01 10 */ subfe r6, r6, r0
+/* 8027D7F0 00279450 7D 25 53 78 */ or r5, r9, r10
+/* 8027D7F4 00279454 7C C0 01 10 */ subfe r6, r0, r0
+/* 8027D7F8 00279458 7C C6 00 D1 */ neg. r6, r6
+/* 8027D7FC 0027945C 41 82 00 0C */ beq lbl_8027D808
+/* 8027D800 00279460 38 60 00 00 */ li r3, 0
+/* 8027D804 00279464 48 00 00 90 */ b lbl_8027D894
+lbl_8027D808:
+/* 8027D808 00279468 80 0D A9 A0 */ lwz r0, lbl_8063FC60-_SDA_BASE_(r13)
+/* 8027D80C 0027946C 7C 05 00 40 */ cmplw r5, r0
+/* 8027D810 00279470 41 82 00 80 */ beq lbl_8027D890
+/* 8027D814 00279474 90 6D A9 A8 */ stw r3, lbl_8063FC68-_SDA_BASE_(r13)
+/* 8027D818 00279478 38 60 00 00 */ li r3, 0
+/* 8027D81C 0027947C 90 AD A9 A0 */ stw r5, lbl_8063FC60-_SDA_BASE_(r13)
+/* 8027D820 00279480 90 8D A9 AC */ stw r4, lbl_8063FC6C-_SDA_BASE_(r13)
+/* 8027D824 00279484 48 00 00 70 */ b lbl_8027D894
+lbl_8027D828:
+/* 8027D828 00279488 38 60 00 00 */ li r3, 0
+/* 8027D82C 0027948C 48 00 19 21 */ bl GXSetBreakPtCallback
+/* 8027D830 00279490 38 60 00 00 */ li r3, 0
+/* 8027D834 00279494 48 00 34 AD */ bl GXSetDrawSyncCallback
+/* 8027D838 00279498 38 60 00 00 */ li r3, 0
+/* 8027D83C 0027949C 48 00 35 6D */ bl GXSetDrawDoneCallback
+/* 8027D840 002794A0 3B E0 00 00 */ li r31, 0
+/* 8027D844 002794A4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 8027D848 002794A8 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
+/* 8027D84C 002794AC 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D850 002794B0 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D854 002794B4 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D858 002794B8 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D85C 002794BC 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D860 002794C0 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D864 002794C4 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 8027D868 002794C8 4B FE A9 F9 */ bl PPCSync
+/* 8027D86C 002794CC 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027D870 002794D0 38 A0 00 03 */ li r5, 3
+/* 8027D874 002794D4 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D878 002794D8 38 00 00 01 */ li r0, 1
+/* 8027D87C 002794DC B3 E4 00 02 */ sth r31, 2(r4)
+/* 8027D880 002794E0 80 8D A9 94 */ lwz r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027D884 002794E4 B0 A4 00 04 */ sth r5, 4(r4)
+/* 8027D888 002794E8 98 03 05 FA */ stb r0, 0x5fa(r3)
+/* 8027D88C 002794EC 48 00 2E A9 */ bl __GXAbort
+lbl_8027D890:
+/* 8027D890 002794F0 38 60 00 01 */ li r3, 1
+lbl_8027D894:
+/* 8027D894 002794F4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027D898 002794F8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027D89C 002794FC 7C 08 03 A6 */ mtlr r0
+/* 8027D8A0 00279500 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027D8A4 00279504 4E 80 00 20 */ blr
+
+.global __GXInitRevisionBits
+__GXInitRevisionBits:
+/* 8027D8A8 00279508 38 00 00 02 */ li r0, 2
+/* 8027D8AC 0027950C 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027D8B0 00279510 38 E0 00 00 */ li r7, 0
+/* 8027D8B4 00279514 38 A0 00 08 */ li r5, 8
+/* 8027D8B8 00279518 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 8027D8BC 0027951C 7C 09 03 A6 */ mtctr r0
+lbl_8027D8C0:
+/* 8027D8C0 00279520 80 06 00 1C */ lwz r0, 0x1c(r6)
+/* 8027D8C4 00279524 60 E3 00 80 */ ori r3, r7, 0x80
+/* 8027D8C8 00279528 38 E7 00 01 */ addi r7, r7, 1
+/* 8027D8CC 0027952C 64 00 40 00 */ oris r0, r0, 0x4000
+/* 8027D8D0 00279530 90 06 00 1C */ stw r0, 0x1c(r6)
+/* 8027D8D4 00279534 80 06 00 3C */ lwz r0, 0x3c(r6)
+/* 8027D8D8 00279538 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027D8DC 0027953C 90 06 00 3C */ stw r0, 0x3c(r6)
+/* 8027D8E0 00279540 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 8027D8E4 00279544 98 64 80 00 */ stb r3, -0x8000(r4)
+/* 8027D8E8 00279548 60 E3 00 80 */ ori r3, r7, 0x80
+/* 8027D8EC 0027954C 38 E7 00 01 */ addi r7, r7, 1
+/* 8027D8F0 00279550 80 06 00 3C */ lwz r0, 0x3c(r6)
+/* 8027D8F4 00279554 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 8027D8F8 00279558 80 06 00 20 */ lwz r0, 0x20(r6)
+/* 8027D8FC 0027955C 64 00 40 00 */ oris r0, r0, 0x4000
+/* 8027D900 00279560 90 06 00 20 */ stw r0, 0x20(r6)
+/* 8027D904 00279564 80 06 00 40 */ lwz r0, 0x40(r6)
+/* 8027D908 00279568 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027D90C 0027956C 90 06 00 40 */ stw r0, 0x40(r6)
+/* 8027D910 00279570 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 8027D914 00279574 98 64 80 00 */ stb r3, -0x8000(r4)
+/* 8027D918 00279578 60 E3 00 80 */ ori r3, r7, 0x80
+/* 8027D91C 0027957C 38 E7 00 01 */ addi r7, r7, 1
+/* 8027D920 00279580 80 06 00 40 */ lwz r0, 0x40(r6)
+/* 8027D924 00279584 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 8027D928 00279588 80 06 00 24 */ lwz r0, 0x24(r6)
+/* 8027D92C 0027958C 64 00 40 00 */ oris r0, r0, 0x4000
+/* 8027D930 00279590 90 06 00 24 */ stw r0, 0x24(r6)
+/* 8027D934 00279594 80 06 00 44 */ lwz r0, 0x44(r6)
+/* 8027D938 00279598 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027D93C 0027959C 90 06 00 44 */ stw r0, 0x44(r6)
+/* 8027D940 002795A0 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 8027D944 002795A4 98 64 80 00 */ stb r3, -0x8000(r4)
+/* 8027D948 002795A8 60 E3 00 80 */ ori r3, r7, 0x80
+/* 8027D94C 002795AC 38 E7 00 01 */ addi r7, r7, 1
+/* 8027D950 002795B0 80 06 00 44 */ lwz r0, 0x44(r6)
+/* 8027D954 002795B4 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 8027D958 002795B8 80 06 00 28 */ lwz r0, 0x28(r6)
+/* 8027D95C 002795BC 64 00 40 00 */ oris r0, r0, 0x4000
+/* 8027D960 002795C0 90 06 00 28 */ stw r0, 0x28(r6)
+/* 8027D964 002795C4 80 06 00 48 */ lwz r0, 0x48(r6)
+/* 8027D968 002795C8 64 00 80 00 */ oris r0, r0, 0x8000
+/* 8027D96C 002795CC 90 06 00 48 */ stw r0, 0x48(r6)
+/* 8027D970 002795D0 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 8027D974 002795D4 98 64 80 00 */ stb r3, -0x8000(r4)
+/* 8027D978 002795D8 80 06 00 48 */ lwz r0, 0x48(r6)
+/* 8027D97C 002795DC 38 C6 00 10 */ addi r6, r6, 0x10
+/* 8027D980 002795E0 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 8027D984 002795E4 42 00 FF 3C */ bdnz lbl_8027D8C0
+/* 8027D988 002795E8 3C E0 CC 01 */ lis r7, 0xCC008000@ha
+/* 8027D98C 002795EC 39 00 00 10 */ li r8, 0x10
+/* 8027D990 002795F0 99 07 80 00 */ stb r8, 0xCC008000@l(r7)
+/* 8027D994 002795F4 38 80 00 00 */ li r4, 0
+/* 8027D998 002795F8 38 00 10 00 */ li r0, 0x1000
+/* 8027D99C 002795FC 38 A0 10 12 */ li r5, 0x1012
+/* 8027D9A0 00279600 90 07 80 00 */ stw r0, -0x8000(r7)
+/* 8027D9A4 00279604 60 83 00 3F */ ori r3, r4, 0x3f
+/* 8027D9A8 00279608 60 86 00 01 */ ori r6, r4, 1
+/* 8027D9AC 0027960C 38 00 00 61 */ li r0, 0x61
+/* 8027D9B0 00279610 90 67 80 00 */ stw r3, -0x8000(r7)
+/* 8027D9B4 00279614 38 60 00 58 */ li r3, 0x58
+/* 8027D9B8 00279618 60 84 00 0F */ ori r4, r4, 0xf
+/* 8027D9BC 0027961C 99 07 80 00 */ stb r8, -0x8000(r7)
+/* 8027D9C0 00279620 50 64 C0 0E */ rlwimi r4, r3, 0x18, 0, 7
+/* 8027D9C4 00279624 90 A7 80 00 */ stw r5, -0x8000(r7)
+/* 8027D9C8 00279628 90 C7 80 00 */ stw r6, -0x8000(r7)
+/* 8027D9CC 0027962C 98 07 80 00 */ stb r0, -0x8000(r7)
+/* 8027D9D0 00279630 90 87 80 00 */ stw r4, -0x8000(r7)
+/* 8027D9D4 00279634 4E 80 00 20 */ blr
+
+.global GXInit
+GXInit:
+/* 8027D9D8 00279638 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027D9DC 0027963C 7C 08 02 A6 */ mflr r0
+/* 8027D9E0 00279640 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027D9E4 00279644 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027D9E8 00279648 4B F4 97 3D */ bl _savegpr_26
+/* 8027D9EC 0027964C 7C 7B 1B 78 */ mr r27, r3
+/* 8027D9F0 00279650 80 6D 88 50 */ lwz r3, lbl_8063DB10-_SDA_BASE_(r13)
+/* 8027D9F4 00279654 7C 9A 23 78 */ mr r26, r4
+/* 8027D9F8 00279658 4B FE BC 59 */ bl OSRegisterVersion
+/* 8027D9FC 0027965C 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027DA00 00279660 38 00 00 00 */ li r0, 0
+/* 8027DA04 00279664 3B A0 00 01 */ li r29, 1
+/* 8027DA08 00279668 38 60 00 01 */ li r3, 1
+/* 8027DA0C 0027966C 98 1F 05 F8 */ stb r0, 0x5f8(r31)
+/* 8027DA10 00279670 38 80 00 00 */ li r4, 0
+/* 8027DA14 00279674 9B BF 05 F9 */ stb r29, 0x5f9(r31)
+/* 8027DA18 00279678 9B BF 05 FA */ stb r29, 0x5fa(r31)
+/* 8027DA1C 0027967C 90 1F 05 E4 */ stw r0, 0x5e4(r31)
+/* 8027DA20 00279680 90 1F 05 E8 */ stw r0, 0x5e8(r31)
+/* 8027DA24 00279684 48 00 2B F5 */ bl GXSetMisc
+/* 8027DA28 00279688 3C 80 CC 00 */ lis r4, 0xCC003000@ha
+/* 8027DA2C 0027968C 38 A4 30 00 */ addi r5, r4, 0xCC003000@l
+/* 8027DA30 00279690 90 8D A9 94 */ stw r4, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027DA34 00279694 38 64 10 00 */ addi r3, r4, 0x1000
+/* 8027DA38 00279698 38 04 40 00 */ addi r0, r4, 0x4000
+/* 8027DA3C 0027969C 90 AD A9 90 */ stw r5, lbl_8063FC50-_SDA_BASE_(r13)
+/* 8027DA40 002796A0 90 6D A9 98 */ stw r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 8027DA44 002796A4 90 0D A9 9C */ stw r0, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 8027DA48 002796A8 48 00 17 91 */ bl __GXFifoInit
+/* 8027DA4C 002796AC 3F 80 80 51 */ lis r28, lbl_80515930@ha
+/* 8027DA50 002796B0 7F 64 DB 78 */ mr r4, r27
+/* 8027DA54 002796B4 7F 45 D3 78 */ mr r5, r26
+/* 8027DA58 002796B8 38 7C 59 30 */ addi r3, r28, lbl_80515930@l
+/* 8027DA5C 002796BC 48 00 0E F1 */ bl GXInitFifoBase
+/* 8027DA60 002796C0 38 7C 59 30 */ addi r3, r28, 0x5930
+/* 8027DA64 002796C4 48 00 10 6D */ bl GXSetCPUFifo
+/* 8027DA68 002796C8 38 7C 59 30 */ addi r3, r28, 0x5930
+/* 8027DA6C 002796CC 48 00 12 45 */ bl GXSetGPFifo
+/* 8027DA70 002796D0 80 0D A9 B4 */ lwz r0, lbl_8063FC74-_SDA_BASE_(r13)
+/* 8027DA74 002796D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8027DA78 002796D8 40 82 00 14 */ bne lbl_8027DA8C
+/* 8027DA7C 002796DC 3C 60 80 43 */ lis r3, lbl_80434CD0@ha
+/* 8027DA80 002796E0 38 63 4C D0 */ addi r3, r3, lbl_80434CD0@l
+/* 8027DA84 002796E4 4B FF 22 0D */ bl OSRegisterShutdownFunction
+/* 8027DA88 002796E8 93 AD A9 B4 */ stw r29, lbl_8063FC74-_SDA_BASE_(r13)
+lbl_8027DA8C:
+/* 8027DA8C 002796EC 48 00 33 E1 */ bl __GXPEInit
+/* 8027DA90 002796F0 4B FE A8 65 */ bl PPCMfhid2
+/* 8027DA94 002796F4 3C 80 0C 01 */ lis r4, 0x0C008000@ha
+/* 8027DA98 002796F8 7C 7C 1B 78 */ mr r28, r3
+/* 8027DA9C 002796FC 38 64 80 00 */ addi r3, r4, 0x0C008000@l
+/* 8027DAA0 00279700 4B FE A8 71 */ bl PPCMtwpar
+/* 8027DAA4 00279704 67 83 40 00 */ oris r3, r28, 0x4000
+/* 8027DAA8 00279708 4B FE A8 55 */ bl PPCMthid2
+/* 8027DAAC 0027970C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027DAB0 00279710 39 00 00 00 */ li r8, 0
+/* 8027DAB4 00279714 38 00 00 0F */ li r0, 0xf
+/* 8027DAB8 00279718 38 A0 00 FF */ li r5, 0xff
+/* 8027DABC 0027971C 91 03 02 54 */ stw r8, 0x254(r3)
+/* 8027DAC0 00279720 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7
+/* 8027DAC4 00279724 38 00 00 22 */ li r0, 0x22
+/* 8027DAC8 00279728 38 80 00 00 */ li r4, 0
+/* 8027DACC 0027972C 90 A3 01 74 */ stw r5, 0x174(r3)
+/* 8027DAD0 00279730 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 8027DAD4 00279734 38 00 00 08 */ li r0, 8
+/* 8027DAD8 00279738 7C 69 1B 78 */ mr r9, r3
+/* 8027DADC 0027973C 90 83 00 7C */ stw r4, 0x7c(r3)
+/* 8027DAE0 00279740 3B 40 00 00 */ li r26, 0
+/* 8027DAE4 00279744 39 40 00 C0 */ li r10, 0xc0
+/* 8027DAE8 00279748 38 C0 00 FF */ li r6, 0xff
+/* 8027DAEC 0027974C 7C 09 03 A6 */ mtctr r0
+lbl_8027DAF0:
+/* 8027DAF0 00279750 91 09 01 80 */ stw r8, 0x180(r9)
+/* 8027DAF4 00279754 57 4C F8 7E */ srwi r12, r26, 1
+/* 8027DAF8 00279758 57 47 08 3A */ rlwinm r7, r26, 1, 0, 0x1d
+/* 8027DAFC 0027975C 39 6A 00 01 */ addi r11, r10, 1
+/* 8027DB00 00279760 91 09 01 C0 */ stw r8, 0x1c0(r9)
+/* 8027DB04 00279764 7F 63 3A 14 */ add r27, r3, r7
+/* 8027DB08 00279768 3B 5A 00 01 */ addi r26, r26, 1
+/* 8027DB0C 0027976C 38 AC 00 F6 */ addi r5, r12, 0xf6
+/* 8027DB10 00279770 91 1B 01 50 */ stw r8, 0x150(r27)
+/* 8027DB14 00279774 38 0C 00 28 */ addi r0, r12, 0x28
+/* 8027DB18 00279778 57 47 08 3A */ rlwinm r7, r26, 1, 0, 0x1d
+/* 8027DB1C 0027977C 57 4C F8 7E */ srwi r12, r26, 1
+/* 8027DB20 00279780 90 C9 05 A4 */ stw r6, 0x5a4(r9)
+/* 8027DB24 00279784 3B 5A 00 01 */ addi r26, r26, 1
+/* 8027DB28 00279788 80 89 01 80 */ lwz r4, 0x180(r9)
+/* 8027DB2C 0027978C 51 44 C0 0E */ rlwimi r4, r10, 0x18, 0, 7
+/* 8027DB30 00279790 90 89 01 80 */ stw r4, 0x180(r9)
+/* 8027DB34 00279794 80 89 01 C0 */ lwz r4, 0x1c0(r9)
+/* 8027DB38 00279798 51 64 C0 0E */ rlwimi r4, r11, 0x18, 0, 7
+/* 8027DB3C 0027979C 39 6A 00 03 */ addi r11, r10, 3
+/* 8027DB40 002797A0 39 4A 00 02 */ addi r10, r10, 2
+/* 8027DB44 002797A4 90 89 01 C0 */ stw r4, 0x1c0(r9)
+/* 8027DB48 002797A8 80 9B 02 00 */ lwz r4, 0x200(r27)
+/* 8027DB4C 002797AC 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DB50 002797B0 38 AC 00 F6 */ addi r5, r12, 0xf6
+/* 8027DB54 002797B4 90 9B 02 00 */ stw r4, 0x200(r27)
+/* 8027DB58 002797B8 80 9B 01 50 */ lwz r4, 0x150(r27)
+/* 8027DB5C 002797BC 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 8027DB60 002797C0 38 0C 00 28 */ addi r0, r12, 0x28
+/* 8027DB64 002797C4 90 9B 01 50 */ stw r4, 0x150(r27)
+/* 8027DB68 002797C8 7F 63 3A 14 */ add r27, r3, r7
+/* 8027DB6C 002797CC 91 09 01 84 */ stw r8, 0x184(r9)
+/* 8027DB70 002797D0 91 09 01 C4 */ stw r8, 0x1c4(r9)
+/* 8027DB74 002797D4 91 1B 01 50 */ stw r8, 0x150(r27)
+/* 8027DB78 002797D8 90 C9 05 A8 */ stw r6, 0x5a8(r9)
+/* 8027DB7C 002797DC 80 89 01 84 */ lwz r4, 0x184(r9)
+/* 8027DB80 002797E0 51 44 C0 0E */ rlwimi r4, r10, 0x18, 0, 7
+/* 8027DB84 002797E4 39 4A 00 02 */ addi r10, r10, 2
+/* 8027DB88 002797E8 90 89 01 84 */ stw r4, 0x184(r9)
+/* 8027DB8C 002797EC 80 89 01 C4 */ lwz r4, 0x1c4(r9)
+/* 8027DB90 002797F0 51 64 C0 0E */ rlwimi r4, r11, 0x18, 0, 7
+/* 8027DB94 002797F4 90 89 01 C4 */ stw r4, 0x1c4(r9)
+/* 8027DB98 002797F8 39 29 00 08 */ addi r9, r9, 8
+/* 8027DB9C 002797FC 80 9B 02 00 */ lwz r4, 0x200(r27)
+/* 8027DBA0 00279800 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DBA4 00279804 90 9B 02 00 */ stw r4, 0x200(r27)
+/* 8027DBA8 00279808 80 9B 01 50 */ lwz r4, 0x150(r27)
+/* 8027DBAC 0027980C 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 8027DBB0 00279810 90 9B 01 50 */ stw r4, 0x150(r27)
+/* 8027DBB4 00279814 42 00 FF 3C */ bdnz lbl_8027DAF0
+/* 8027DBB8 00279818 38 00 00 27 */ li r0, 0x27
+/* 8027DBBC 0027981C 38 80 00 00 */ li r4, 0
+/* 8027DBC0 00279820 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 8027DBC4 00279824 38 A0 00 30 */ li r5, 0x30
+/* 8027DBC8 00279828 38 00 00 02 */ li r0, 2
+/* 8027DBCC 0027982C 90 9F 01 70 */ stw r4, 0x170(r31)
+/* 8027DBD0 00279830 7C 09 03 A6 */ mtctr r0
+lbl_8027DBD4:
+/* 8027DBD4 00279834 38 80 00 00 */ li r4, 0
+/* 8027DBD8 00279838 38 C5 00 01 */ addi r6, r5, 1
+/* 8027DBDC 0027983C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DBE0 00279840 38 00 00 00 */ li r0, 0
+/* 8027DBE4 00279844 90 83 01 08 */ stw r4, 0x108(r3)
+/* 8027DBE8 00279848 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7
+/* 8027DBEC 0027984C 38 C5 00 03 */ addi r6, r5, 3
+/* 8027DBF0 00279850 38 A5 00 02 */ addi r5, r5, 2
+/* 8027DBF4 00279854 90 03 01 28 */ stw r0, 0x128(r3)
+/* 8027DBF8 00279858 38 80 00 00 */ li r4, 0
+/* 8027DBFC 0027985C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DC00 00279860 38 00 00 00 */ li r0, 0
+/* 8027DC04 00279864 90 83 01 0C */ stw r4, 0x10c(r3)
+/* 8027DC08 00279868 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7
+/* 8027DC0C 0027986C 38 C5 00 03 */ addi r6, r5, 3
+/* 8027DC10 00279870 38 A5 00 02 */ addi r5, r5, 2
+/* 8027DC14 00279874 90 03 01 2C */ stw r0, 0x12c(r3)
+/* 8027DC18 00279878 38 80 00 00 */ li r4, 0
+/* 8027DC1C 0027987C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DC20 00279880 38 00 00 00 */ li r0, 0
+/* 8027DC24 00279884 90 83 01 10 */ stw r4, 0x110(r3)
+/* 8027DC28 00279888 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7
+/* 8027DC2C 0027988C 38 C5 00 03 */ addi r6, r5, 3
+/* 8027DC30 00279890 38 A5 00 02 */ addi r5, r5, 2
+/* 8027DC34 00279894 90 03 01 30 */ stw r0, 0x130(r3)
+/* 8027DC38 00279898 38 80 00 00 */ li r4, 0
+/* 8027DC3C 0027989C 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
+/* 8027DC40 002798A0 38 00 00 00 */ li r0, 0
+/* 8027DC44 002798A4 90 83 01 14 */ stw r4, 0x114(r3)
+/* 8027DC48 002798A8 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7
+/* 8027DC4C 002798AC 38 A5 00 02 */ addi r5, r5, 2
+/* 8027DC50 002798B0 90 03 01 34 */ stw r0, 0x134(r3)
+/* 8027DC54 002798B4 38 63 00 10 */ addi r3, r3, 0x10
+/* 8027DC58 002798B8 42 00 FF 7C */ bdnz lbl_8027DBD4
+/* 8027DC5C 002798BC 83 C2 A0 D0 */ lwz r30, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027DC60 002798C0 3C 60 10 62 */ lis r3, 0x10624DD3@ha
+/* 8027DC64 002798C4 38 80 00 20 */ li r4, 0x20
+/* 8027DC68 002798C8 38 00 00 21 */ li r0, 0x21
+/* 8027DC6C 002798CC 80 BE 01 48 */ lwz r5, 0x148(r30)
+/* 8027DC70 002798D0 50 85 C0 0E */ rlwimi r5, r4, 0x18, 0, 7
+/* 8027DC74 002798D4 39 00 00 41 */ li r8, 0x41
+/* 8027DC78 002798D8 38 E0 00 42 */ li r7, 0x42
+/* 8027DC7C 002798DC 90 BE 01 48 */ stw r5, 0x148(r30)
+/* 8027DC80 002798E0 38 C0 00 40 */ li r6, 0x40
+/* 8027DC84 002798E4 38 A0 00 43 */ li r5, 0x43
+/* 8027DC88 002798E8 C0 22 A0 D4 */ lfs f1, lbl_806426D4-_SDA2_BASE_(r2)
+/* 8027DC8C 002798EC 80 9E 01 4C */ lwz r4, 0x14c(r30)
+/* 8027DC90 002798F0 50 04 C0 0E */ rlwimi r4, r0, 0x18, 0, 7
+/* 8027DC94 002798F4 C0 02 A0 D8 */ lfs f0, lbl_806426D8-_SDA2_BASE_(r2)
+/* 8027DC98 002798F8 38 00 00 00 */ li r0, 0
+/* 8027DC9C 002798FC 90 9E 01 4C */ stw r4, 0x14c(r30)
+/* 8027DCA0 00279900 3C 80 80 00 */ lis r4, 0x800000F8@ha
+/* 8027DCA4 00279904 38 63 4D D3 */ addi r3, r3, 0x10624DD3@l
+/* 8027DCA8 00279908 81 3E 02 20 */ lwz r9, 0x220(r30)
+/* 8027DCAC 0027990C 51 09 C0 0E */ rlwimi r9, r8, 0x18, 0, 7
+/* 8027DCB0 00279910 91 3E 02 20 */ stw r9, 0x220(r30)
+/* 8027DCB4 00279914 81 1E 02 24 */ lwz r8, 0x224(r30)
+/* 8027DCB8 00279918 50 E8 C0 0E */ rlwimi r8, r7, 0x18, 0, 7
+/* 8027DCBC 0027991C 91 1E 02 24 */ stw r8, 0x224(r30)
+/* 8027DCC0 00279920 80 FE 02 28 */ lwz r7, 0x228(r30)
+/* 8027DCC4 00279924 50 C7 C0 0E */ rlwimi r7, r6, 0x18, 0, 7
+/* 8027DCC8 00279928 90 FE 02 28 */ stw r7, 0x228(r30)
+/* 8027DCCC 0027992C 80 DE 02 2C */ lwz r6, 0x22c(r30)
+/* 8027DCD0 00279930 50 A6 C0 0E */ rlwimi r6, r5, 0x18, 0, 7
+/* 8027DCD4 00279934 90 DE 02 2C */ stw r6, 0x22c(r30)
+/* 8027DCD8 00279938 80 BE 02 4C */ lwz r5, 0x24c(r30)
+/* 8027DCDC 0027993C 54 A5 06 6C */ rlwinm r5, r5, 0, 0x19, 0x16
+/* 8027DCE0 00279940 90 BE 02 4C */ stw r5, 0x24c(r30)
+/* 8027DCE4 00279944 D0 3E 05 60 */ stfs f1, 0x560(r30)
+/* 8027DCE8 00279948 D0 1E 05 5C */ stfs f0, 0x55c(r30)
+/* 8027DCEC 0027994C 90 1E 05 FC */ stw r0, 0x5fc(r30)
+/* 8027DCF0 00279950 98 1E 05 FB */ stb r0, 0x5fb(r30)
+/* 8027DCF4 00279954 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4)
+/* 8027DCF8 00279958 7C 03 00 16 */ mulhwu r0, r3, r0
+/* 8027DCFC 0027995C 54 1A D9 7E */ srwi r26, r0, 5
+/* 8027DD00 00279960 48 00 5E 1D */ bl func_80283B1C
+/* 8027DD04 00279964 57 40 AA FE */ srwi r0, r26, 0xb
+/* 8027DD08 00279968 3F A0 CC 01 */ lis r29, 0xCC008000@ha
+/* 8027DD0C 0027996C 3B 80 00 61 */ li r28, 0x61
+/* 8027DD10 00279970 64 00 69 00 */ oris r0, r0, 0x6900
+/* 8027DD14 00279974 9B 9D 80 00 */ stb r28, 0xCC008000@l(r29)
+/* 8027DD18 00279978 60 00 04 00 */ ori r0, r0, 0x400
+/* 8027DD1C 0027997C 90 1D 80 00 */ stw r0, -0x8000(r29)
+/* 8027DD20 00279980 48 00 5D FD */ bl func_80283B1C
+/* 8027DD24 00279984 3C 60 3E 10 */ lis r3, 0x3E0F83E1@ha
+/* 8027DD28 00279988 9B 9D 80 00 */ stb r28, -0x8000(r29)
+/* 8027DD2C 0027998C 38 03 83 E1 */ addi r0, r3, 0x3E0F83E1@l
+/* 8027DD30 00279990 7C 00 D0 16 */ mulhwu r0, r0, r26
+/* 8027DD34 00279994 54 00 B2 BE */ srwi r0, r0, 0xa
+/* 8027DD38 00279998 64 00 46 00 */ oris r0, r0, 0x4600
+/* 8027DD3C 0027999C 60 00 02 00 */ ori r0, r0, 0x200
+/* 8027DD40 002799A0 90 1D 80 00 */ stw r0, -0x8000(r29)
+/* 8027DD44 002799A4 4B FF FB 65 */ bl __GXInitRevisionBits
+/* 8027DD48 002799A8 3F 80 80 43 */ lis r28, lbl_80434C10@ha
+/* 8027DD4C 002799AC 3B BE 02 58 */ addi r29, r30, 0x258
+/* 8027DD50 002799B0 3B 7E 02 D8 */ addi r27, r30, 0x2d8
+/* 8027DD54 002799B4 3B DE 03 58 */ addi r30, r30, 0x358
+/* 8027DD58 002799B8 3B 9C 4C 10 */ addi r28, r28, lbl_80434C10@l
+/* 8027DD5C 002799BC 3B 40 00 00 */ li r26, 0
+lbl_8027DD60:
+/* 8027DD60 002799C0 80 BC 00 00 */ lwz r5, 0(r28)
+/* 8027DD64 002799C4 7F A3 EB 78 */ mr r3, r29
+/* 8027DD68 002799C8 80 FC 00 20 */ lwz r7, 0x20(r28)
+/* 8027DD6C 002799CC 38 80 00 00 */ li r4, 0
+/* 8027DD70 002799D0 38 C0 00 00 */ li r6, 0
+/* 8027DD74 002799D4 39 00 00 00 */ li r8, 0
+/* 8027DD78 002799D8 48 00 4F 5D */ bl func_80282CD4
+/* 8027DD7C 002799DC 80 BC 00 40 */ lwz r5, 0x40(r28)
+/* 8027DD80 002799E0 7F 63 DB 78 */ mr r3, r27
+/* 8027DD84 002799E4 80 FC 00 60 */ lwz r7, 0x60(r28)
+/* 8027DD88 002799E8 38 80 00 00 */ li r4, 0
+/* 8027DD8C 002799EC 38 C0 00 00 */ li r6, 0
+/* 8027DD90 002799F0 39 00 00 00 */ li r8, 0
+/* 8027DD94 002799F4 48 00 4F 41 */ bl func_80282CD4
+/* 8027DD98 002799F8 80 BC 00 80 */ lwz r5, 0x80(r28)
+/* 8027DD9C 002799FC 7F C3 F3 78 */ mr r3, r30
+/* 8027DDA0 00279A00 80 FC 00 A0 */ lwz r7, 0xa0(r28)
+/* 8027DDA4 00279A04 38 80 00 01 */ li r4, 1
+/* 8027DDA8 00279A08 38 C0 00 00 */ li r6, 0
+/* 8027DDAC 00279A0C 39 00 00 00 */ li r8, 0
+/* 8027DDB0 00279A10 48 00 4F 25 */ bl func_80282CD4
+/* 8027DDB4 00279A14 3B 5A 00 01 */ addi r26, r26, 1
+/* 8027DDB8 00279A18 3B BD 00 10 */ addi r29, r29, 0x10
+/* 8027DDBC 00279A1C 28 1A 00 08 */ cmplwi r26, 8
+/* 8027DDC0 00279A20 3B 7B 00 10 */ addi r27, r27, 0x10
+/* 8027DDC4 00279A24 3B DE 00 10 */ addi r30, r30, 0x10
+/* 8027DDC8 00279A28 3B 9C 00 04 */ addi r28, r28, 4
+/* 8027DDCC 00279A2C 41 80 FF 94 */ blt lbl_8027DD60
+/* 8027DDD0 00279A30 3B BF 03 D8 */ addi r29, r31, 0x3d8
+/* 8027DDD4 00279A34 3B 60 00 00 */ li r27, 0
+/* 8027DDD8 00279A38 3F 80 00 0C */ lis r28, 0xc
+lbl_8027DDDC:
+/* 8027DDDC 00279A3C 7F A3 EB 78 */ mr r3, r29
+/* 8027DDE0 00279A40 7F 84 E3 78 */ mr r4, r28
+/* 8027DDE4 00279A44 38 A0 00 10 */ li r5, 0x10
+/* 8027DDE8 00279A48 48 00 4F A1 */ bl func_80282D88
+/* 8027DDEC 00279A4C 3B 7B 00 01 */ addi r27, r27, 1
+/* 8027DDF0 00279A50 3B BD 00 10 */ addi r29, r29, 0x10
+/* 8027DDF4 00279A54 28 1B 00 10 */ cmplwi r27, 0x10
+/* 8027DDF8 00279A58 3B 9C 20 00 */ addi r28, r28, 0x2000
+/* 8027DDFC 00279A5C 41 80 FF E0 */ blt lbl_8027DDDC
+/* 8027DE00 00279A60 3B BF 03 D8 */ addi r29, r31, 0x3d8
+/* 8027DE04 00279A64 3B 60 00 00 */ li r27, 0
+/* 8027DE08 00279A68 3F 80 00 0E */ lis r28, 0xe
+lbl_8027DE0C:
+/* 8027DE0C 00279A6C 38 1B 00 10 */ addi r0, r27, 0x10
+/* 8027DE10 00279A70 7F 84 E3 78 */ mr r4, r28
+/* 8027DE14 00279A74 54 00 20 36 */ slwi r0, r0, 4
+/* 8027DE18 00279A78 38 A0 00 40 */ li r5, 0x40
+/* 8027DE1C 00279A7C 7C 7D 02 14 */ add r3, r29, r0
+/* 8027DE20 00279A80 48 00 4F 69 */ bl func_80282D88
+/* 8027DE24 00279A84 3B 7B 00 01 */ addi r27, r27, 1
+/* 8027DE28 00279A88 3F 9C 00 01 */ addis r28, r28, 1
+/* 8027DE2C 00279A8C 28 1B 00 04 */ cmplwi r27, 4
+/* 8027DE30 00279A90 3B 9C 80 00 */ addi r28, r28, -32768
+/* 8027DE34 00279A94 41 80 FF D8 */ blt lbl_8027DE0C
+/* 8027DE38 00279A98 80 6D A9 94 */ lwz r3, lbl_8063FC54-_SDA_BASE_(r13)
+/* 8027DE3C 00279A9C 39 80 00 00 */ li r12, 0
+/* 8027DE40 00279AA0 3D 20 CC 01 */ lis r9, 0xCC008000@ha
+/* 8027DE44 00279AA4 39 40 00 08 */ li r10, 8
+/* 8027DE48 00279AA8 B1 83 00 06 */ sth r12, 6(r3)
+/* 8027DE4C 00279AAC 38 60 00 20 */ li r3, 0x20
+/* 8027DE50 00279AB0 39 00 00 10 */ li r8, 0x10
+/* 8027DE54 00279AB4 38 E0 10 06 */ li r7, 0x1006
+/* 8027DE58 00279AB8 80 1F 05 F4 */ lwz r0, 0x5f4(r31)
+/* 8027DE5C 00279ABC 38 C0 00 61 */ li r6, 0x61
+/* 8027DE60 00279AC0 3C A0 23 00 */ lis r5, 0x2300
+/* 8027DE64 00279AC4 3C 80 24 00 */ lis r4, 0x2400
+/* 8027DE68 00279AC8 54 0B 07 2E */ rlwinm r11, r0, 0, 0x1c, 0x17
+/* 8027DE6C 00279ACC 3C 00 67 00 */ lis r0, 0x6700
+/* 8027DE70 00279AD0 91 7F 05 F4 */ stw r11, 0x5f4(r31)
+/* 8027DE74 00279AD4 99 49 80 00 */ stb r10, 0xCC008000@l(r9)
+/* 8027DE78 00279AD8 98 69 80 00 */ stb r3, -0x8000(r9)
+/* 8027DE7C 00279ADC 80 7F 05 F4 */ lwz r3, 0x5f4(r31)
+/* 8027DE80 00279AE0 90 69 80 00 */ stw r3, -0x8000(r9)
+/* 8027DE84 00279AE4 38 60 00 00 */ li r3, 0
+/* 8027DE88 00279AE8 99 09 80 00 */ stb r8, -0x8000(r9)
+/* 8027DE8C 00279AEC 90 E9 80 00 */ stw r7, -0x8000(r9)
+/* 8027DE90 00279AF0 91 89 80 00 */ stw r12, -0x8000(r9)
+/* 8027DE94 00279AF4 98 C9 80 00 */ stb r6, -0x8000(r9)
+/* 8027DE98 00279AF8 90 A9 80 00 */ stw r5, -0x8000(r9)
+/* 8027DE9C 00279AFC 98 C9 80 00 */ stb r6, -0x8000(r9)
+/* 8027DEA0 00279B00 90 89 80 00 */ stw r4, -0x8000(r9)
+/* 8027DEA4 00279B04 98 C9 80 00 */ stb r6, -0x8000(r9)
+/* 8027DEA8 00279B08 90 09 80 00 */ stw r0, -0x8000(r9)
+/* 8027DEAC 00279B0C 48 00 5C 41 */ bl func_80283AEC
+/* 8027DEB0 00279B10 38 60 00 02 */ li r3, 2
+/* 8027DEB4 00279B14 48 00 51 5D */ bl func_80283010
+/* 8027DEB8 00279B18 48 00 00 25 */ bl __GXInitGX
+/* 8027DEBC 00279B1C 3C 60 80 51 */ lis r3, lbl_80515930@ha
+/* 8027DEC0 00279B20 39 61 00 20 */ addi r11, r1, 0x20
+/* 8027DEC4 00279B24 38 63 59 30 */ addi r3, r3, lbl_80515930@l
+/* 8027DEC8 00279B28 4B F4 92 A9 */ bl _restgpr_26
+/* 8027DECC 00279B2C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027DED0 00279B30 7C 08 03 A6 */ mtlr r0
+/* 8027DED4 00279B34 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027DED8 00279B38 4E 80 00 20 */ blr
+
+.global __GXInitGX
+__GXInitGX:
+/* 8027DEDC 00279B3C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 8027DEE0 00279B40 7C 08 02 A6 */ mflr r0
+/* 8027DEE4 00279B44 3D 40 43 30 */ lis r10, 0x4330
+/* 8027DEE8 00279B48 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8027DEEC 00279B4C 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 8027DEF0 00279B50 3B E0 00 00 */ li r31, 0
+/* 8027DEF4 00279B54 93 C1 00 98 */ stw r30, 0x98(r1)
+/* 8027DEF8 00279B58 3F C0 80 43 */ lis r30, lbl_80434AA0@ha
+/* 8027DEFC 00279B5C 3B DE 4A A0 */ addi r30, r30, lbl_80434AA0@l
+/* 8027DF00 00279B60 93 A1 00 94 */ stw r29, 0x94(r1)
+/* 8027DF04 00279B64 93 81 00 90 */ stw r28, 0x90(r1)
+/* 8027DF08 00279B68 89 22 A0 DC */ lbz r9, lbl_806426DC-_SDA2_BASE_(r2)
+/* 8027DF0C 00279B6C 89 02 A0 DD */ lbz r8, lbl_806426DD-_SDA2_BASE_(r2)
+/* 8027DF10 00279B70 88 E2 A0 DE */ lbz r7, lbl_806426DE-_SDA2_BASE_(r2)
+/* 8027DF14 00279B74 88 C2 A0 DF */ lbz r6, lbl_806426DF-_SDA2_BASE_(r2)
+/* 8027DF18 00279B78 88 A2 A0 E0 */ lbz r5, lbl_806426E0-_SDA2_BASE_(r2)
+/* 8027DF1C 00279B7C 88 82 A0 E1 */ lbz r4, lbl_806426E1-_SDA2_BASE_(r2)
+/* 8027DF20 00279B80 88 62 A0 E2 */ lbz r3, lbl_806426E2-_SDA2_BASE_(r2)
+/* 8027DF24 00279B84 88 02 A0 E3 */ lbz r0, lbl_806426E3-_SDA2_BASE_(r2)
+/* 8027DF28 00279B88 91 41 00 78 */ stw r10, 0x78(r1)
+/* 8027DF2C 00279B8C 91 41 00 80 */ stw r10, 0x80(r1)
+/* 8027DF30 00279B90 99 21 00 24 */ stb r9, 0x24(r1)
+/* 8027DF34 00279B94 99 01 00 25 */ stb r8, 0x25(r1)
+/* 8027DF38 00279B98 98 E1 00 26 */ stb r7, 0x26(r1)
+/* 8027DF3C 00279B9C 98 C1 00 27 */ stb r6, 0x27(r1)
+/* 8027DF40 00279BA0 98 A1 00 20 */ stb r5, 0x20(r1)
+/* 8027DF44 00279BA4 98 81 00 21 */ stb r4, 0x21(r1)
+/* 8027DF48 00279BA8 98 61 00 22 */ stb r3, 0x22(r1)
+/* 8027DF4C 00279BAC 98 01 00 23 */ stb r0, 0x23(r1)
+/* 8027DF50 00279BB0 4B FF BA 85 */ bl VIGetTvFormat
+/* 8027DF54 00279BB4 2C 03 00 02 */ cmpwi r3, 2
+/* 8027DF58 00279BB8 41 82 00 48 */ beq lbl_8027DFA0
+/* 8027DF5C 00279BBC 40 80 00 14 */ bge lbl_8027DF70
+/* 8027DF60 00279BC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8027DF64 00279BC4 41 82 00 18 */ beq lbl_8027DF7C
+/* 8027DF68 00279BC8 40 80 00 20 */ bge lbl_8027DF88
+/* 8027DF6C 00279BCC 48 00 00 40 */ b lbl_8027DFAC
+lbl_8027DF70:
+/* 8027DF70 00279BD0 2C 03 00 05 */ cmpwi r3, 5
+/* 8027DF74 00279BD4 41 82 00 20 */ beq lbl_8027DF94
+/* 8027DF78 00279BD8 48 00 00 34 */ b lbl_8027DFAC
+lbl_8027DF7C:
+/* 8027DF7C 00279BDC 3F A0 80 43 */ lis r29, lbl_80435078@ha
+/* 8027DF80 00279BE0 3B BD 50 78 */ addi r29, r29, lbl_80435078@l
+/* 8027DF84 00279BE4 48 00 00 30 */ b lbl_8027DFB4
+lbl_8027DF88:
+/* 8027DF88 00279BE8 3F A0 80 43 */ lis r29, lbl_80435474@ha
+/* 8027DF8C 00279BEC 3B BD 54 74 */ addi r29, r29, lbl_80435474@l
+/* 8027DF90 00279BF0 48 00 00 24 */ b lbl_8027DFB4
+lbl_8027DF94:
+/* 8027DF94 00279BF4 3F A0 80 43 */ lis r29, lbl_80435618@ha
+/* 8027DF98 00279BF8 3B BD 56 18 */ addi r29, r29, lbl_80435618@l
+/* 8027DF9C 00279BFC 48 00 00 18 */ b lbl_8027DFB4
+lbl_8027DFA0:
+/* 8027DFA0 00279C00 3F A0 80 43 */ lis r29, lbl_804352D0@ha
+/* 8027DFA4 00279C04 3B BD 52 D0 */ addi r29, r29, lbl_804352D0@l
+/* 8027DFA8 00279C08 48 00 00 0C */ b lbl_8027DFB4
+lbl_8027DFAC:
+/* 8027DFAC 00279C0C 3F A0 80 43 */ lis r29, lbl_80435078@ha
+/* 8027DFB0 00279C10 3B BD 50 78 */ addi r29, r29, lbl_80435078@l
+lbl_8027DFB4:
+/* 8027DFB4 00279C14 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027DFB8 00279C18 3C 80 01 00 */ lis r4, 0x00FFFFFF@ha
+/* 8027DFBC 00279C1C 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8027DFC0 00279C20 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 8027DFC4 00279C24 38 84 FF FF */ addi r4, r4, 0x00FFFFFF@l
+/* 8027DFC8 00279C28 48 00 3A 35 */ bl GXSetCopyClear
+/* 8027DFCC 00279C2C 38 60 00 00 */ li r3, 0
+/* 8027DFD0 00279C30 38 80 00 01 */ li r4, 1
+/* 8027DFD4 00279C34 38 A0 00 04 */ li r5, 4
+/* 8027DFD8 00279C38 38 C0 00 3C */ li r6, 0x3c
+/* 8027DFDC 00279C3C 38 E0 00 00 */ li r7, 0
+/* 8027DFE0 00279C40 39 00 00 7D */ li r8, 0x7d
+/* 8027DFE4 00279C44 48 00 23 E9 */ bl GXSetTexCoordGen2
+/* 8027DFE8 00279C48 38 60 00 01 */ li r3, 1
+/* 8027DFEC 00279C4C 38 80 00 01 */ li r4, 1
+/* 8027DFF0 00279C50 38 A0 00 05 */ li r5, 5
+/* 8027DFF4 00279C54 38 C0 00 3C */ li r6, 0x3c
+/* 8027DFF8 00279C58 38 E0 00 00 */ li r7, 0
+/* 8027DFFC 00279C5C 39 00 00 7D */ li r8, 0x7d
+/* 8027E000 00279C60 48 00 23 CD */ bl GXSetTexCoordGen2
+/* 8027E004 00279C64 38 60 00 02 */ li r3, 2
+/* 8027E008 00279C68 38 80 00 01 */ li r4, 1
+/* 8027E00C 00279C6C 38 A0 00 06 */ li r5, 6
+/* 8027E010 00279C70 38 C0 00 3C */ li r6, 0x3c
+/* 8027E014 00279C74 38 E0 00 00 */ li r7, 0
+/* 8027E018 00279C78 39 00 00 7D */ li r8, 0x7d
+/* 8027E01C 00279C7C 48 00 23 B1 */ bl GXSetTexCoordGen2
+/* 8027E020 00279C80 38 60 00 03 */ li r3, 3
+/* 8027E024 00279C84 38 80 00 01 */ li r4, 1
+/* 8027E028 00279C88 38 A0 00 07 */ li r5, 7
+/* 8027E02C 00279C8C 38 C0 00 3C */ li r6, 0x3c
+/* 8027E030 00279C90 38 E0 00 00 */ li r7, 0
+/* 8027E034 00279C94 39 00 00 7D */ li r8, 0x7d
+/* 8027E038 00279C98 48 00 23 95 */ bl GXSetTexCoordGen2
+/* 8027E03C 00279C9C 38 60 00 04 */ li r3, 4
+/* 8027E040 00279CA0 38 80 00 01 */ li r4, 1
+/* 8027E044 00279CA4 38 A0 00 08 */ li r5, 8
+/* 8027E048 00279CA8 38 C0 00 3C */ li r6, 0x3c
+/* 8027E04C 00279CAC 38 E0 00 00 */ li r7, 0
+/* 8027E050 00279CB0 39 00 00 7D */ li r8, 0x7d
+/* 8027E054 00279CB4 48 00 23 79 */ bl GXSetTexCoordGen2
+/* 8027E058 00279CB8 38 60 00 05 */ li r3, 5
+/* 8027E05C 00279CBC 38 80 00 01 */ li r4, 1
+/* 8027E060 00279CC0 38 A0 00 09 */ li r5, 9
+/* 8027E064 00279CC4 38 C0 00 3C */ li r6, 0x3c
+/* 8027E068 00279CC8 38 E0 00 00 */ li r7, 0
+/* 8027E06C 00279CCC 39 00 00 7D */ li r8, 0x7d
+/* 8027E070 00279CD0 48 00 23 5D */ bl GXSetTexCoordGen2
+/* 8027E074 00279CD4 38 60 00 06 */ li r3, 6
+/* 8027E078 00279CD8 38 80 00 01 */ li r4, 1
+/* 8027E07C 00279CDC 38 A0 00 0A */ li r5, 0xa
+/* 8027E080 00279CE0 38 C0 00 3C */ li r6, 0x3c
+/* 8027E084 00279CE4 38 E0 00 00 */ li r7, 0
+/* 8027E088 00279CE8 39 00 00 7D */ li r8, 0x7d
+/* 8027E08C 00279CEC 48 00 23 41 */ bl GXSetTexCoordGen2
+/* 8027E090 00279CF0 38 60 00 07 */ li r3, 7
+/* 8027E094 00279CF4 38 80 00 01 */ li r4, 1
+/* 8027E098 00279CF8 38 A0 00 0B */ li r5, 0xb
+/* 8027E09C 00279CFC 38 C0 00 3C */ li r6, 0x3c
+/* 8027E0A0 00279D00 38 E0 00 00 */ li r7, 0
+/* 8027E0A4 00279D04 39 00 00 7D */ li r8, 0x7d
+/* 8027E0A8 00279D08 48 00 23 25 */ bl GXSetTexCoordGen2
+/* 8027E0AC 00279D0C 38 60 00 01 */ li r3, 1
+/* 8027E0B0 00279D10 48 00 25 45 */ bl GXSetNumTexGens
+/* 8027E0B4 00279D14 48 00 1B D1 */ bl GXClearVtxDesc
+/* 8027E0B8 00279D18 48 00 23 05 */ bl GXInvalidateVtxCache
+/* 8027E0BC 00279D1C 3B 80 00 09 */ li r28, 9
+lbl_8027E0C0:
+/* 8027E0C0 00279D20 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8027E0C4 00279D24 7F 83 E3 78 */ mr r3, r28
+/* 8027E0C8 00279D28 38 A0 00 00 */ li r5, 0
+/* 8027E0CC 00279D2C 48 00 22 B1 */ bl GXSetArray
+/* 8027E0D0 00279D30 3B 9C 00 01 */ addi r28, r28, 1
+/* 8027E0D4 00279D34 28 1C 00 18 */ cmplwi r28, 0x18
+/* 8027E0D8 00279D38 40 81 FF E8 */ ble lbl_8027E0C0
+/* 8027E0DC 00279D3C 3B 80 00 00 */ li r28, 0
+lbl_8027E0E0:
+/* 8027E0E0 00279D40 7F 83 E3 78 */ mr r3, r28
+/* 8027E0E4 00279D44 38 9E 00 80 */ addi r4, r30, 0x80
+/* 8027E0E8 00279D48 48 00 1D 71 */ bl GXSetVtxAttrFmtv
+/* 8027E0EC 00279D4C 3B 9C 00 01 */ addi r28, r28, 1
+/* 8027E0F0 00279D50 28 1C 00 08 */ cmplwi r28, 8
+/* 8027E0F4 00279D54 41 80 FF EC */ blt lbl_8027E0E0
+/* 8027E0F8 00279D58 38 60 00 06 */ li r3, 6
+/* 8027E0FC 00279D5C 38 80 00 00 */ li r4, 0
+/* 8027E100 00279D60 48 00 32 6D */ bl GXSetLineWidth
+/* 8027E104 00279D64 38 60 00 06 */ li r3, 6
+/* 8027E108 00279D68 38 80 00 00 */ li r4, 0
+/* 8027E10C 00279D6C 48 00 32 95 */ bl GXSetPointSize
+/* 8027E110 00279D70 38 60 00 00 */ li r3, 0
+/* 8027E114 00279D74 38 80 00 00 */ li r4, 0
+/* 8027E118 00279D78 38 A0 00 00 */ li r5, 0
+/* 8027E11C 00279D7C 48 00 32 B9 */ bl GXEnableTexOffsets
+/* 8027E120 00279D80 38 60 00 01 */ li r3, 1
+/* 8027E124 00279D84 38 80 00 00 */ li r4, 0
+/* 8027E128 00279D88 38 A0 00 00 */ li r5, 0
+/* 8027E12C 00279D8C 48 00 32 A9 */ bl GXEnableTexOffsets
+/* 8027E130 00279D90 38 60 00 02 */ li r3, 2
+/* 8027E134 00279D94 38 80 00 00 */ li r4, 0
+/* 8027E138 00279D98 38 A0 00 00 */ li r5, 0
+/* 8027E13C 00279D9C 48 00 32 99 */ bl GXEnableTexOffsets
+/* 8027E140 00279DA0 38 60 00 03 */ li r3, 3
+/* 8027E144 00279DA4 38 80 00 00 */ li r4, 0
+/* 8027E148 00279DA8 38 A0 00 00 */ li r5, 0
+/* 8027E14C 00279DAC 48 00 32 89 */ bl GXEnableTexOffsets
+/* 8027E150 00279DB0 38 60 00 04 */ li r3, 4
+/* 8027E154 00279DB4 38 80 00 00 */ li r4, 0
+/* 8027E158 00279DB8 38 A0 00 00 */ li r5, 0
+/* 8027E15C 00279DBC 48 00 32 79 */ bl GXEnableTexOffsets
+/* 8027E160 00279DC0 38 60 00 05 */ li r3, 5
+/* 8027E164 00279DC4 38 80 00 00 */ li r4, 0
+/* 8027E168 00279DC8 38 A0 00 00 */ li r5, 0
+/* 8027E16C 00279DCC 48 00 32 69 */ bl GXEnableTexOffsets
+/* 8027E170 00279DD0 38 60 00 06 */ li r3, 6
+/* 8027E174 00279DD4 38 80 00 00 */ li r4, 0
+/* 8027E178 00279DD8 38 A0 00 00 */ li r5, 0
+/* 8027E17C 00279DDC 48 00 32 59 */ bl GXEnableTexOffsets
+/* 8027E180 00279DE0 38 60 00 07 */ li r3, 7
+/* 8027E184 00279DE4 38 80 00 00 */ li r4, 0
+/* 8027E188 00279DE8 38 A0 00 00 */ li r5, 0
+/* 8027E18C 00279DEC 48 00 32 49 */ bl GXEnableTexOffsets
+/* 8027E190 00279DF0 C0 02 A0 D8 */ lfs f0, lbl_806426D8-_SDA2_BASE_(r2)
+/* 8027E194 00279DF4 38 61 00 48 */ addi r3, r1, 0x48
+/* 8027E198 00279DF8 C0 22 A0 E4 */ lfs f1, lbl_806426E4-_SDA2_BASE_(r2)
+/* 8027E19C 00279DFC 38 80 00 00 */ li r4, 0
+/* 8027E1A0 00279E00 D0 01 00 4C */ stfs f0, 0x4c(r1)
+/* 8027E1A4 00279E04 D0 21 00 48 */ stfs f1, 0x48(r1)
+/* 8027E1A8 00279E08 D0 01 00 50 */ stfs f0, 0x50(r1)
+/* 8027E1AC 00279E0C D0 01 00 54 */ stfs f0, 0x54(r1)
+/* 8027E1B0 00279E10 D0 01 00 58 */ stfs f0, 0x58(r1)
+/* 8027E1B4 00279E14 D0 21 00 5C */ stfs f1, 0x5c(r1)
+/* 8027E1B8 00279E18 D0 01 00 60 */ stfs f0, 0x60(r1)
+/* 8027E1BC 00279E1C D0 01 00 64 */ stfs f0, 0x64(r1)
+/* 8027E1C0 00279E20 D0 01 00 68 */ stfs f0, 0x68(r1)
+/* 8027E1C4 00279E24 D0 01 00 6C */ stfs f0, 0x6c(r1)
+/* 8027E1C8 00279E28 D0 21 00 70 */ stfs f1, 0x70(r1)
+/* 8027E1CC 00279E2C D0 01 00 74 */ stfs f0, 0x74(r1)
+/* 8027E1D0 00279E30 48 00 88 B9 */ bl GXLoadPosMtxImm
+/* 8027E1D4 00279E34 38 61 00 48 */ addi r3, r1, 0x48
+/* 8027E1D8 00279E38 38 80 00 00 */ li r4, 0
+/* 8027E1DC 00279E3C 48 00 88 FD */ bl func_80286AD8
+/* 8027E1E0 00279E40 38 60 00 00 */ li r3, 0
+/* 8027E1E4 00279E44 48 00 89 4D */ bl func_80286B30
+/* 8027E1E8 00279E48 38 61 00 48 */ addi r3, r1, 0x48
+/* 8027E1EC 00279E4C 38 80 00 3C */ li r4, 0x3c
+/* 8027E1F0 00279E50 38 A0 00 00 */ li r5, 0
+/* 8027E1F4 00279E54 48 00 89 5D */ bl func_80286B50
+/* 8027E1F8 00279E58 38 61 00 48 */ addi r3, r1, 0x48
+/* 8027E1FC 00279E5C 38 80 00 7D */ li r4, 0x7d
+/* 8027E200 00279E60 38 A0 00 00 */ li r5, 0
+/* 8027E204 00279E64 48 00 89 4D */ bl func_80286B50
+/* 8027E208 00279E68 A0 7D 00 04 */ lhz r3, 4(r29)
+/* 8027E20C 00279E6C A0 1D 00 08 */ lhz r0, 8(r29)
+/* 8027E210 00279E70 90 61 00 7C */ stw r3, 0x7c(r1)
+/* 8027E214 00279E74 C0 22 A0 D8 */ lfs f1, lbl_806426D8-_SDA2_BASE_(r2)
+/* 8027E218 00279E78 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8027E21C 00279E7C C8 82 A0 F0 */ lfd f4, lbl_806426F0-_SDA2_BASE_(r2)
+/* 8027E220 00279E80 FC 40 08 90 */ fmr f2, f1
+/* 8027E224 00279E84 C8 61 00 78 */ lfd f3, 0x78(r1)
+/* 8027E228 00279E88 FC A0 08 90 */ fmr f5, f1
+/* 8027E22C 00279E8C C8 01 00 80 */ lfd f0, 0x80(r1)
+/* 8027E230 00279E90 EC 63 20 28 */ fsubs f3, f3, f4
+/* 8027E234 00279E94 C0 C2 A0 E4 */ lfs f6, lbl_806426E4-_SDA2_BASE_(r2)
+/* 8027E238 00279E98 EC 80 20 28 */ fsubs f4, f0, f4
+/* 8027E23C 00279E9C 48 00 8A 95 */ bl func_80286CD0
+/* 8027E240 00279EA0 38 7E 01 50 */ addi r3, r30, 0x150
+/* 8027E244 00279EA4 48 00 87 F9 */ bl func_80286A3C
+/* 8027E248 00279EA8 38 60 00 00 */ li r3, 0
+/* 8027E24C 00279EAC 48 00 31 ED */ bl GXSetCoPlanar
+/* 8027E250 00279EB0 38 60 00 02 */ li r3, 2
+/* 8027E254 00279EB4 48 00 31 BD */ bl GXSetCullMode
+/* 8027E258 00279EB8 38 60 00 00 */ li r3, 0
+/* 8027E25C 00279EBC 48 00 8B 45 */ bl func_80286DA0
+/* 8027E260 00279EC0 A0 BD 00 04 */ lhz r5, 4(r29)
+/* 8027E264 00279EC4 38 60 00 00 */ li r3, 0
+/* 8027E268 00279EC8 A0 DD 00 06 */ lhz r6, 6(r29)
+/* 8027E26C 00279ECC 38 80 00 00 */ li r4, 0
+/* 8027E270 00279ED0 48 00 8A 8D */ bl func_80286CFC
+/* 8027E274 00279ED4 38 60 00 00 */ li r3, 0
+/* 8027E278 00279ED8 38 80 00 00 */ li r4, 0
+/* 8027E27C 00279EDC 48 00 8A E9 */ bl func_80286D64
+/* 8027E280 00279EE0 38 60 00 00 */ li r3, 0
+/* 8027E284 00279EE4 48 00 42 C5 */ bl GXSetNumChans
+/* 8027E288 00279EE8 38 60 00 04 */ li r3, 4
+/* 8027E28C 00279EEC 38 80 00 00 */ li r4, 0
+/* 8027E290 00279EF0 38 A0 00 00 */ li r5, 0
+/* 8027E294 00279EF4 38 C0 00 01 */ li r6, 1
+/* 8027E298 00279EF8 38 E0 00 00 */ li r7, 0
+/* 8027E29C 00279EFC 39 00 00 00 */ li r8, 0
+/* 8027E2A0 00279F00 39 20 00 02 */ li r9, 2
+/* 8027E2A4 00279F04 48 00 42 C9 */ bl GXSetChanCtrl
+/* 8027E2A8 00279F08 93 E1 00 18 */ stw r31, 0x18(r1)
+/* 8027E2AC 00279F0C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8027E2B0 00279F10 38 60 00 04 */ li r3, 4
+/* 8027E2B4 00279F14 48 00 40 E5 */ bl GXSetChanAmbColor
+/* 8027E2B8 00279F18 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 8027E2BC 00279F1C 38 81 00 14 */ addi r4, r1, 0x14
+/* 8027E2C0 00279F20 38 60 00 04 */ li r3, 4
+/* 8027E2C4 00279F24 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027E2C8 00279F28 48 00 41 A9 */ bl GXSetChanMatColor
+/* 8027E2CC 00279F2C 38 60 00 05 */ li r3, 5
+/* 8027E2D0 00279F30 38 80 00 00 */ li r4, 0
+/* 8027E2D4 00279F34 38 A0 00 00 */ li r5, 0
+/* 8027E2D8 00279F38 38 C0 00 01 */ li r6, 1
+/* 8027E2DC 00279F3C 38 E0 00 00 */ li r7, 0
+/* 8027E2E0 00279F40 39 00 00 00 */ li r8, 0
+/* 8027E2E4 00279F44 39 20 00 02 */ li r9, 2
+/* 8027E2E8 00279F48 48 00 42 85 */ bl GXSetChanCtrl
+/* 8027E2EC 00279F4C 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 8027E2F0 00279F50 38 81 00 10 */ addi r4, r1, 0x10
+/* 8027E2F4 00279F54 38 60 00 05 */ li r3, 5
+/* 8027E2F8 00279F58 48 00 40 A1 */ bl GXSetChanAmbColor
+/* 8027E2FC 00279F5C 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 8027E300 00279F60 38 81 00 0C */ addi r4, r1, 0xc
+/* 8027E304 00279F64 38 60 00 05 */ li r3, 5
+/* 8027E308 00279F68 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8027E30C 00279F6C 48 00 41 65 */ bl GXSetChanMatColor
+/* 8027E310 00279F70 48 00 4A 99 */ bl func_80282DA8
+/* 8027E314 00279F74 3C 60 80 28 */ lis r3, __GXDefaultTexRegionCallback@ha
+/* 8027E318 00279F78 38 63 D6 24 */ addi r3, r3, __GXDefaultTexRegionCallback@l
+/* 8027E31C 00279F7C 48 00 4A D5 */ bl func_80282DF0
+/* 8027E320 00279F80 3C 60 80 28 */ lis r3, __GXDefaultTlutRegionCallback@ha
+/* 8027E324 00279F84 38 63 D7 18 */ addi r3, r3, __GXDefaultTlutRegionCallback@l
+/* 8027E328 00279F88 48 00 4A DD */ bl func_80282E04
+/* 8027E32C 00279F8C 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E330 00279F90 38 9E 00 60 */ addi r4, r30, 0x60
+/* 8027E334 00279F94 38 A0 00 04 */ li r5, 4
+/* 8027E338 00279F98 38 C0 00 04 */ li r6, 4
+/* 8027E33C 00279F9C 38 E0 00 03 */ li r7, 3
+/* 8027E340 00279FA0 39 00 00 00 */ li r8, 0
+/* 8027E344 00279FA4 39 20 00 00 */ li r9, 0
+/* 8027E348 00279FA8 39 40 00 00 */ li r10, 0
+/* 8027E34C 00279FAC 48 00 43 85 */ bl func_802826D0
+/* 8027E350 00279FB0 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E354 00279FB4 38 80 00 00 */ li r4, 0
+/* 8027E358 00279FB8 48 00 48 6D */ bl func_80282BC4
+/* 8027E35C 00279FBC 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E360 00279FC0 38 80 00 01 */ li r4, 1
+/* 8027E364 00279FC4 48 00 48 61 */ bl func_80282BC4
+/* 8027E368 00279FC8 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E36C 00279FCC 38 80 00 02 */ li r4, 2
+/* 8027E370 00279FD0 48 00 48 55 */ bl func_80282BC4
+/* 8027E374 00279FD4 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E378 00279FD8 38 80 00 03 */ li r4, 3
+/* 8027E37C 00279FDC 48 00 48 49 */ bl func_80282BC4
+/* 8027E380 00279FE0 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E384 00279FE4 38 80 00 04 */ li r4, 4
+/* 8027E388 00279FE8 48 00 48 3D */ bl func_80282BC4
+/* 8027E38C 00279FEC 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E390 00279FF0 38 80 00 05 */ li r4, 5
+/* 8027E394 00279FF4 48 00 48 31 */ bl func_80282BC4
+/* 8027E398 00279FF8 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E39C 00279FFC 38 80 00 06 */ li r4, 6
+/* 8027E3A0 0027A000 48 00 48 25 */ bl func_80282BC4
+/* 8027E3A4 0027A004 38 61 00 28 */ addi r3, r1, 0x28
+/* 8027E3A8 0027A008 38 80 00 07 */ li r4, 7
+/* 8027E3AC 0027A00C 48 00 48 19 */ bl func_80282BC4
+/* 8027E3B0 0027A010 38 60 00 00 */ li r3, 0
+/* 8027E3B4 0027A014 38 80 00 00 */ li r4, 0
+/* 8027E3B8 0027A018 38 A0 00 00 */ li r5, 0
+/* 8027E3BC 0027A01C 38 C0 00 04 */ li r6, 4
+/* 8027E3C0 0027A020 48 00 5C 81 */ bl func_80284040
+/* 8027E3C4 0027A024 38 60 00 01 */ li r3, 1
+/* 8027E3C8 0027A028 38 80 00 01 */ li r4, 1
+/* 8027E3CC 0027A02C 38 A0 00 01 */ li r5, 1
+/* 8027E3D0 0027A030 38 C0 00 04 */ li r6, 4
+/* 8027E3D4 0027A034 48 00 5C 6D */ bl func_80284040
+/* 8027E3D8 0027A038 38 60 00 02 */ li r3, 2
+/* 8027E3DC 0027A03C 38 80 00 02 */ li r4, 2
+/* 8027E3E0 0027A040 38 A0 00 02 */ li r5, 2
+/* 8027E3E4 0027A044 38 C0 00 04 */ li r6, 4
+/* 8027E3E8 0027A048 48 00 5C 59 */ bl func_80284040
+/* 8027E3EC 0027A04C 38 60 00 03 */ li r3, 3
+/* 8027E3F0 0027A050 38 80 00 03 */ li r4, 3
+/* 8027E3F4 0027A054 38 A0 00 03 */ li r5, 3
+/* 8027E3F8 0027A058 38 C0 00 04 */ li r6, 4
+/* 8027E3FC 0027A05C 48 00 5C 45 */ bl func_80284040
+/* 8027E400 0027A060 38 60 00 04 */ li r3, 4
+/* 8027E404 0027A064 38 80 00 04 */ li r4, 4
+/* 8027E408 0027A068 38 A0 00 04 */ li r5, 4
+/* 8027E40C 0027A06C 38 C0 00 04 */ li r6, 4
+/* 8027E410 0027A070 48 00 5C 31 */ bl func_80284040
+/* 8027E414 0027A074 38 60 00 05 */ li r3, 5
+/* 8027E418 0027A078 38 80 00 05 */ li r4, 5
+/* 8027E41C 0027A07C 38 A0 00 05 */ li r5, 5
+/* 8027E420 0027A080 38 C0 00 04 */ li r6, 4
+/* 8027E424 0027A084 48 00 5C 1D */ bl func_80284040
+/* 8027E428 0027A088 38 60 00 06 */ li r3, 6
+/* 8027E42C 0027A08C 38 80 00 06 */ li r4, 6
+/* 8027E430 0027A090 38 A0 00 06 */ li r5, 6
+/* 8027E434 0027A094 38 C0 00 04 */ li r6, 4
+/* 8027E438 0027A098 48 00 5C 09 */ bl func_80284040
+/* 8027E43C 0027A09C 38 60 00 07 */ li r3, 7
+/* 8027E440 0027A0A0 38 80 00 07 */ li r4, 7
+/* 8027E444 0027A0A4 38 A0 00 07 */ li r5, 7
+/* 8027E448 0027A0A8 38 C0 00 04 */ li r6, 4
+/* 8027E44C 0027A0AC 48 00 5B F5 */ bl func_80284040
+/* 8027E450 0027A0B0 38 60 00 08 */ li r3, 8
+/* 8027E454 0027A0B4 38 80 00 FF */ li r4, 0xff
+/* 8027E458 0027A0B8 38 A0 00 FF */ li r5, 0xff
+/* 8027E45C 0027A0BC 38 C0 00 FF */ li r6, 0xff
+/* 8027E460 0027A0C0 48 00 5B E1 */ bl func_80284040
+/* 8027E464 0027A0C4 38 60 00 09 */ li r3, 9
+/* 8027E468 0027A0C8 38 80 00 FF */ li r4, 0xff
+/* 8027E46C 0027A0CC 38 A0 00 FF */ li r5, 0xff
+/* 8027E470 0027A0D0 38 C0 00 FF */ li r6, 0xff
+/* 8027E474 0027A0D4 48 00 5B CD */ bl func_80284040
+/* 8027E478 0027A0D8 38 60 00 0A */ li r3, 0xa
+/* 8027E47C 0027A0DC 38 80 00 FF */ li r4, 0xff
+/* 8027E480 0027A0E0 38 A0 00 FF */ li r5, 0xff
+/* 8027E484 0027A0E4 38 C0 00 FF */ li r6, 0xff
+/* 8027E488 0027A0E8 48 00 5B B9 */ bl func_80284040
+/* 8027E48C 0027A0EC 38 60 00 0B */ li r3, 0xb
+/* 8027E490 0027A0F0 38 80 00 FF */ li r4, 0xff
+/* 8027E494 0027A0F4 38 A0 00 FF */ li r5, 0xff
+/* 8027E498 0027A0F8 38 C0 00 FF */ li r6, 0xff
+/* 8027E49C 0027A0FC 48 00 5B A5 */ bl func_80284040
+/* 8027E4A0 0027A100 38 60 00 0C */ li r3, 0xc
+/* 8027E4A4 0027A104 38 80 00 FF */ li r4, 0xff
+/* 8027E4A8 0027A108 38 A0 00 FF */ li r5, 0xff
+/* 8027E4AC 0027A10C 38 C0 00 FF */ li r6, 0xff
+/* 8027E4B0 0027A110 48 00 5B 91 */ bl func_80284040
+/* 8027E4B4 0027A114 38 60 00 0D */ li r3, 0xd
+/* 8027E4B8 0027A118 38 80 00 FF */ li r4, 0xff
+/* 8027E4BC 0027A11C 38 A0 00 FF */ li r5, 0xff
+/* 8027E4C0 0027A120 38 C0 00 FF */ li r6, 0xff
+/* 8027E4C4 0027A124 48 00 5B 7D */ bl func_80284040
+/* 8027E4C8 0027A128 38 60 00 0E */ li r3, 0xe
+/* 8027E4CC 0027A12C 38 80 00 FF */ li r4, 0xff
+/* 8027E4D0 0027A130 38 A0 00 FF */ li r5, 0xff
+/* 8027E4D4 0027A134 38 C0 00 FF */ li r6, 0xff
+/* 8027E4D8 0027A138 48 00 5B 69 */ bl func_80284040
+/* 8027E4DC 0027A13C 38 60 00 0F */ li r3, 0xf
+/* 8027E4E0 0027A140 38 80 00 FF */ li r4, 0xff
+/* 8027E4E4 0027A144 38 A0 00 FF */ li r5, 0xff
+/* 8027E4E8 0027A148 38 C0 00 FF */ li r6, 0xff
+/* 8027E4EC 0027A14C 48 00 5B 55 */ bl func_80284040
+/* 8027E4F0 0027A150 38 60 00 01 */ li r3, 1
+/* 8027E4F4 0027A154 48 00 5C A9 */ bl func_8028419C
+/* 8027E4F8 0027A158 38 60 00 00 */ li r3, 0
+/* 8027E4FC 0027A15C 38 80 00 03 */ li r4, 3
+/* 8027E500 0027A160 48 00 56 41 */ bl func_80283B40
+/* 8027E504 0027A164 38 60 00 07 */ li r3, 7
+/* 8027E508 0027A168 38 80 00 00 */ li r4, 0
+/* 8027E50C 0027A16C 38 A0 00 00 */ li r5, 0
+/* 8027E510 0027A170 38 C0 00 07 */ li r6, 7
+/* 8027E514 0027A174 38 E0 00 00 */ li r7, 0
+/* 8027E518 0027A178 48 00 5A 65 */ bl func_80283F7C
+/* 8027E51C 0027A17C 38 60 00 00 */ li r3, 0
+/* 8027E520 0027A180 38 80 00 11 */ li r4, 0x11
+/* 8027E524 0027A184 38 A0 00 00 */ li r5, 0
+/* 8027E528 0027A188 48 00 5A 8D */ bl func_80283FB4
+/* 8027E52C 0027A18C 3B 80 00 00 */ li r28, 0
+lbl_8027E530:
+/* 8027E530 0027A190 7F 83 E3 78 */ mr r3, r28
+/* 8027E534 0027A194 38 80 00 06 */ li r4, 6
+/* 8027E538 0027A198 48 00 58 ED */ bl func_80283E24
+/* 8027E53C 0027A19C 7F 83 E3 78 */ mr r3, r28
+/* 8027E540 0027A1A0 38 80 00 00 */ li r4, 0
+/* 8027E544 0027A1A4 48 00 59 31 */ bl func_80283E74
+/* 8027E548 0027A1A8 7F 83 E3 78 */ mr r3, r28
+/* 8027E54C 0027A1AC 38 80 00 00 */ li r4, 0
+/* 8027E550 0027A1B0 38 A0 00 00 */ li r5, 0
+/* 8027E554 0027A1B4 48 00 59 71 */ bl func_80283EC4
+/* 8027E558 0027A1B8 3B 9C 00 01 */ addi r28, r28, 1
+/* 8027E55C 0027A1BC 28 1C 00 10 */ cmplwi r28, 0x10
+/* 8027E560 0027A1C0 41 80 FF D0 */ blt lbl_8027E530
+/* 8027E564 0027A1C4 38 60 00 00 */ li r3, 0
+/* 8027E568 0027A1C8 38 80 00 00 */ li r4, 0
+/* 8027E56C 0027A1CC 38 A0 00 01 */ li r5, 1
+/* 8027E570 0027A1D0 38 C0 00 02 */ li r6, 2
+/* 8027E574 0027A1D4 38 E0 00 03 */ li r7, 3
+/* 8027E578 0027A1D8 48 00 59 89 */ bl func_80283F00
+/* 8027E57C 0027A1DC 38 60 00 01 */ li r3, 1
+/* 8027E580 0027A1E0 38 80 00 00 */ li r4, 0
+/* 8027E584 0027A1E4 38 A0 00 00 */ li r5, 0
+/* 8027E588 0027A1E8 38 C0 00 00 */ li r6, 0
+/* 8027E58C 0027A1EC 38 E0 00 03 */ li r7, 3
+/* 8027E590 0027A1F0 48 00 59 71 */ bl func_80283F00
+/* 8027E594 0027A1F4 38 60 00 02 */ li r3, 2
+/* 8027E598 0027A1F8 38 80 00 01 */ li r4, 1
+/* 8027E59C 0027A1FC 38 A0 00 01 */ li r5, 1
+/* 8027E5A0 0027A200 38 C0 00 01 */ li r6, 1
+/* 8027E5A4 0027A204 38 E0 00 03 */ li r7, 3
+/* 8027E5A8 0027A208 48 00 59 59 */ bl func_80283F00
+/* 8027E5AC 0027A20C 38 60 00 03 */ li r3, 3
+/* 8027E5B0 0027A210 38 80 00 02 */ li r4, 2
+/* 8027E5B4 0027A214 38 A0 00 02 */ li r5, 2
+/* 8027E5B8 0027A218 38 C0 00 02 */ li r6, 2
+/* 8027E5BC 0027A21C 38 E0 00 03 */ li r7, 3
+/* 8027E5C0 0027A220 48 00 59 41 */ bl func_80283F00
+/* 8027E5C4 0027A224 3B 80 00 00 */ li r28, 0
+lbl_8027E5C8:
+/* 8027E5C8 0027A228 7F 83 E3 78 */ mr r3, r28
+/* 8027E5CC 0027A22C 48 00 51 45 */ bl func_80283710
+/* 8027E5D0 0027A230 3B 9C 00 01 */ addi r28, r28, 1
+/* 8027E5D4 0027A234 28 1C 00 10 */ cmplwi r28, 0x10
+/* 8027E5D8 0027A238 41 80 FF F0 */ blt lbl_8027E5C8
+/* 8027E5DC 0027A23C 38 60 00 00 */ li r3, 0
+/* 8027E5E0 0027A240 48 00 51 11 */ bl func_802836F0
+/* 8027E5E4 0027A244 38 60 00 00 */ li r3, 0
+/* 8027E5E8 0027A248 38 80 00 00 */ li r4, 0
+/* 8027E5EC 0027A24C 38 A0 00 00 */ li r5, 0
+/* 8027E5F0 0027A250 48 00 4F 31 */ bl func_80283520
+/* 8027E5F4 0027A254 38 60 00 01 */ li r3, 1
+/* 8027E5F8 0027A258 38 80 00 00 */ li r4, 0
+/* 8027E5FC 0027A25C 38 A0 00 00 */ li r5, 0
+/* 8027E600 0027A260 48 00 4F 21 */ bl func_80283520
+/* 8027E604 0027A264 38 60 00 02 */ li r3, 2
+/* 8027E608 0027A268 38 80 00 00 */ li r4, 0
+/* 8027E60C 0027A26C 38 A0 00 00 */ li r5, 0
+/* 8027E610 0027A270 48 00 4F 11 */ bl func_80283520
+/* 8027E614 0027A274 38 60 00 03 */ li r3, 3
+/* 8027E618 0027A278 38 80 00 00 */ li r4, 0
+/* 8027E61C 0027A27C 38 A0 00 00 */ li r5, 0
+/* 8027E620 0027A280 48 00 4F 01 */ bl func_80283520
+/* 8027E624 0027A284 C0 42 A0 E4 */ lfs f2, lbl_806426E4-_SDA2_BASE_(r2)
+/* 8027E628 0027A288 38 81 00 08 */ addi r4, r1, 8
+/* 8027E62C 0027A28C 93 E1 00 08 */ stw r31, 8(r1)
+/* 8027E630 0027A290 38 60 00 00 */ li r3, 0
+/* 8027E634 0027A294 FC 80 10 90 */ fmr f4, f2
+/* 8027E638 0027A298 C0 22 A0 D8 */ lfs f1, lbl_806426D8-_SDA2_BASE_(r2)
+/* 8027E63C 0027A29C C0 62 A0 E8 */ lfs f3, lbl_806426E8-_SDA2_BASE_(r2)
+/* 8027E640 0027A2A0 48 00 5B 81 */ bl func_802841C0
+/* 8027E644 0027A2A4 38 60 00 00 */ li r3, 0
+/* 8027E648 0027A2A8 38 80 00 00 */ li r4, 0
+/* 8027E64C 0027A2AC 38 A0 00 00 */ li r5, 0
+/* 8027E650 0027A2B0 48 00 5F 29 */ bl func_80284578
+/* 8027E654 0027A2B4 38 60 00 00 */ li r3, 0
+/* 8027E658 0027A2B8 38 80 00 04 */ li r4, 4
+/* 8027E65C 0027A2BC 38 A0 00 05 */ li r5, 5
+/* 8027E660 0027A2C0 38 C0 00 00 */ li r6, 0
+/* 8027E664 0027A2C4 48 00 60 39 */ bl func_8028469C
+/* 8027E668 0027A2C8 38 60 00 01 */ li r3, 1
+/* 8027E66C 0027A2CC 48 00 60 81 */ bl func_802846EC
+/* 8027E670 0027A2D0 38 60 00 01 */ li r3, 1
+/* 8027E674 0027A2D4 48 00 60 A5 */ bl func_80284718
+/* 8027E678 0027A2D8 38 60 00 01 */ li r3, 1
+/* 8027E67C 0027A2DC 38 80 00 03 */ li r4, 3
+/* 8027E680 0027A2E0 38 A0 00 01 */ li r5, 1
+/* 8027E684 0027A2E4 48 00 60 C1 */ bl func_80284744
+/* 8027E688 0027A2E8 38 60 00 01 */ li r3, 1
+/* 8027E68C 0027A2EC 48 00 60 ED */ bl func_80284778
+/* 8027E690 0027A2F0 38 60 00 01 */ li r3, 1
+/* 8027E694 0027A2F4 48 00 61 BD */ bl func_80284850
+/* 8027E698 0027A2F8 38 60 00 00 */ li r3, 0
+/* 8027E69C 0027A2FC 38 80 00 00 */ li r4, 0
+/* 8027E6A0 0027A300 48 00 61 DD */ bl func_8028487C
+/* 8027E6A4 0027A304 38 60 00 00 */ li r3, 0
+/* 8027E6A8 0027A308 38 80 00 00 */ li r4, 0
+/* 8027E6AC 0027A30C 48 00 60 FD */ bl func_802847A8
+/* 8027E6B0 0027A310 38 60 00 01 */ li r3, 1
+/* 8027E6B4 0027A314 38 80 00 01 */ li r4, 1
+/* 8027E6B8 0027A318 48 00 61 F5 */ bl func_802848AC
+/* 8027E6BC 0027A31C A0 1D 00 08 */ lhz r0, 8(r29)
+/* 8027E6C0 0027A320 A0 7D 00 10 */ lhz r3, 0x10(r29)
+/* 8027E6C4 0027A324 54 00 08 3C */ slwi r0, r0, 1
+/* 8027E6C8 0027A328 7C 03 00 00 */ cmpw r3, r0
+/* 8027E6CC 0027A32C 40 82 00 0C */ bne lbl_8027E6D8
+/* 8027E6D0 0027A330 38 80 00 01 */ li r4, 1
+/* 8027E6D4 0027A334 48 00 00 08 */ b lbl_8027E6DC
+lbl_8027E6D8:
+/* 8027E6D8 0027A338 38 80 00 00 */ li r4, 0
+lbl_8027E6DC:
+/* 8027E6DC 0027A33C 88 7D 00 18 */ lbz r3, 0x18(r29)
+/* 8027E6E0 0027A340 48 00 62 01 */ bl func_802848E0
+/* 8027E6E4 0027A344 A0 BD 00 04 */ lhz r5, 4(r29)
+/* 8027E6E8 0027A348 38 60 00 00 */ li r3, 0
+/* 8027E6EC 0027A34C A0 DD 00 06 */ lhz r6, 6(r29)
+/* 8027E6F0 0027A350 38 80 00 00 */ li r4, 0
+/* 8027E6F4 0027A354 48 00 2D 79 */ bl GXSetDispCopySrc
+/* 8027E6F8 0027A358 A0 7D 00 04 */ lhz r3, 4(r29)
+/* 8027E6FC 0027A35C A0 9D 00 06 */ lhz r4, 6(r29)
+/* 8027E700 0027A360 48 00 2D ED */ bl GXSetDispCopyDst
+/* 8027E704 0027A364 A0 7D 00 08 */ lhz r3, 8(r29)
+/* 8027E708 0027A368 A0 1D 00 06 */ lhz r0, 6(r29)
+/* 8027E70C 0027A36C 90 61 00 7C */ stw r3, 0x7c(r1)
+/* 8027E710 0027A370 C8 42 A0 F0 */ lfd f2, lbl_806426F0-_SDA2_BASE_(r2)
+/* 8027E714 0027A374 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8027E718 0027A378 C8 21 00 78 */ lfd f1, 0x78(r1)
+/* 8027E71C 0027A37C C8 01 00 80 */ lfd f0, 0x80(r1)
+/* 8027E720 0027A380 EC 21 10 28 */ fsubs f1, f1, f2
+/* 8027E724 0027A384 EC 00 10 28 */ fsubs f0, f0, f2
+/* 8027E728 0027A388 EC 21 00 24 */ fdivs f1, f1, f0
+/* 8027E72C 0027A38C 48 00 32 05 */ bl GXSetDispCopyYScale
+/* 8027E730 0027A390 38 60 00 03 */ li r3, 3
+/* 8027E734 0027A394 48 00 2F 19 */ bl GXSetCopyClamp
+/* 8027E738 0027A398 88 7D 00 19 */ lbz r3, 0x19(r29)
+/* 8027E73C 0027A39C 38 9D 00 1A */ addi r4, r29, 0x1a
+/* 8027E740 0027A3A0 38 DD 00 32 */ addi r6, r29, 0x32
+/* 8027E744 0027A3A4 38 A0 00 01 */ li r5, 1
+/* 8027E748 0027A3A8 48 00 33 2D */ bl GXSetCopyFilter
+/* 8027E74C 0027A3AC 38 60 00 00 */ li r3, 0
+/* 8027E750 0027A3B0 48 00 35 09 */ bl GXSetDispCopyGamma
+/* 8027E754 0027A3B4 38 60 00 00 */ li r3, 0
+/* 8027E758 0027A3B8 48 00 2E D5 */ bl GXSetDispCopyFrame2Field
+/* 8027E75C 0027A3BC 48 00 37 A5 */ bl GXClearBoundingBox
+/* 8027E760 0027A3C0 38 60 00 01 */ li r3, 1
+/* 8027E764 0027A3C4 48 00 25 21 */ bl GXPokeColorUpdate
+/* 8027E768 0027A3C8 38 60 00 01 */ li r3, 1
+/* 8027E76C 0027A3CC 48 00 24 A9 */ bl GXPokeAlphaUpdate
+/* 8027E770 0027A3D0 38 60 00 00 */ li r3, 0
+/* 8027E774 0027A3D4 48 00 25 3D */ bl GXPokeDither
+/* 8027E778 0027A3D8 38 60 00 00 */ li r3, 0
+/* 8027E77C 0027A3DC 38 80 00 00 */ li r4, 0
+/* 8027E780 0027A3E0 38 A0 00 01 */ li r5, 1
+/* 8027E784 0027A3E4 38 C0 00 0F */ li r6, 0xf
+/* 8027E788 0027A3E8 48 00 24 A1 */ bl GXPokeBlendMode
+/* 8027E78C 0027A3EC 38 60 00 07 */ li r3, 7
+/* 8027E790 0027A3F0 38 80 00 00 */ li r4, 0
+/* 8027E794 0027A3F4 48 00 24 59 */ bl GXPokeAlphaMode
+/* 8027E798 0027A3F8 38 60 00 01 */ li r3, 1
+/* 8027E79C 0027A3FC 48 00 24 61 */ bl GXPokeAlphaRead
+/* 8027E7A0 0027A400 38 60 00 00 */ li r3, 0
+/* 8027E7A4 0027A404 38 80 00 00 */ li r4, 0
+/* 8027E7A8 0027A408 48 00 24 F1 */ bl GXPokeDstAlpha
+/* 8027E7AC 0027A40C 38 60 00 01 */ li r3, 1
+/* 8027E7B0 0027A410 38 80 00 07 */ li r4, 7
+/* 8027E7B4 0027A414 38 A0 00 01 */ li r5, 1
+/* 8027E7B8 0027A418 48 00 25 0D */ bl GXPokeZMode
+/* 8027E7BC 0027A41C 38 60 00 23 */ li r3, 0x23
+/* 8027E7C0 0027A420 38 80 00 16 */ li r4, 0x16
+/* 8027E7C4 0027A424 48 00 86 8D */ bl func_80286E50
+/* 8027E7C8 0027A428 48 00 8E B5 */ bl GXClearGPMetric
+/* 8027E7CC 0027A42C 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 8027E7D0 0027A430 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 8027E7D4 0027A434 83 C1 00 98 */ lwz r30, 0x98(r1)
+/* 8027E7D8 0027A438 83 A1 00 94 */ lwz r29, 0x94(r1)
+/* 8027E7DC 0027A43C 83 81 00 90 */ lwz r28, 0x90(r1)
+/* 8027E7E0 0027A440 7C 08 03 A6 */ mtlr r0
+/* 8027E7E4 0027A444 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 8027E7E8 0027A448 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXLight.s b/asm/SDK/GX/GXLight.s
new file mode 100644
index 0000000..4c45792
--- /dev/null
+++ b/asm/SDK/GX/GXLight.s
@@ -0,0 +1,512 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXInitLightAttn
+GXInitLightAttn:
+/* 80281F38 0027DB98 D0 23 00 10 */ stfs f1, 0x10(r3)
+/* 80281F3C 0027DB9C D0 43 00 14 */ stfs f2, 0x14(r3)
+/* 80281F40 0027DBA0 D0 63 00 18 */ stfs f3, 0x18(r3)
+/* 80281F44 0027DBA4 D0 83 00 1C */ stfs f4, 0x1c(r3)
+/* 80281F48 0027DBA8 D0 A3 00 20 */ stfs f5, 0x20(r3)
+/* 80281F4C 0027DBAC D0 C3 00 24 */ stfs f6, 0x24(r3)
+/* 80281F50 0027DBB0 4E 80 00 20 */ blr
+
+.global GXInitLightSpot
+GXInitLightSpot:
+/* 80281F54 0027DBB4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80281F58 0027DBB8 7C 08 02 A6 */ mflr r0
+/* 80281F5C 0027DBBC C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2)
+/* 80281F60 0027DBC0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80281F64 0027DBC4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80281F68 0027DBC8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80281F6C 0027DBCC 7C 9F 23 78 */ mr r31, r4
+/* 80281F70 0027DBD0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80281F74 0027DBD4 7C 7E 1B 78 */ mr r30, r3
+/* 80281F78 0027DBD8 4C 40 13 82 */ cror 2, 0, 2
+/* 80281F7C 0027DBDC 41 82 00 10 */ beq lbl_80281F8C
+/* 80281F80 0027DBE0 C0 02 A1 0C */ lfs f0, lbl_8064270C-_SDA2_BASE_(r2)
+/* 80281F84 0027DBE4 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80281F88 0027DBE8 40 81 00 08 */ ble lbl_80281F90
+lbl_80281F8C:
+/* 80281F8C 0027DBEC 3B E0 00 00 */ li r31, 0
+lbl_80281F90:
+/* 80281F90 0027DBF0 C0 42 A1 10 */ lfs f2, lbl_80642710-_SDA2_BASE_(r2)
+/* 80281F94 0027DBF4 C0 02 A1 14 */ lfs f0, lbl_80642714-_SDA2_BASE_(r2)
+/* 80281F98 0027DBF8 EC 22 00 72 */ fmuls f1, f2, f1
+/* 80281F9C 0027DBFC EC 21 00 24 */ fdivs f1, f1, f0
+/* 80281FA0 0027DC00 4B F5 20 D9 */ bl cos
+/* 80281FA4 0027DC04 28 1F 00 06 */ cmplwi r31, 6
+/* 80281FA8 0027DC08 FC A0 08 18 */ frsp f5, f1
+/* 80281FAC 0027DC0C 41 81 01 00 */ bgt lbl_802820AC
+/* 80281FB0 0027DC10 3C 60 80 43 */ lis r3, lbl_80435780@ha
+/* 80281FB4 0027DC14 57 E0 10 3A */ slwi r0, r31, 2
+/* 80281FB8 0027DC18 38 63 57 80 */ addi r3, r3, lbl_80435780@l
+/* 80281FBC 0027DC1C 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80281FC0 0027DC20 7C 69 03 A6 */ mtctr r3
+/* 80281FC4 0027DC24 4E 80 04 20 */ bctr
+/* 80281FC8 0027DC28 C0 02 A1 18 */ lfs f0, lbl_80642718-_SDA2_BASE_(r2)
+/* 80281FCC 0027DC2C C0 22 A1 1C */ lfs f1, lbl_8064271C-_SDA2_BASE_(r2)
+/* 80281FD0 0027DC30 EC 60 01 72 */ fmuls f3, f0, f5
+/* 80281FD4 0027DC34 C0 C2 A1 08 */ lfs f6, lbl_80642708-_SDA2_BASE_(r2)
+/* 80281FD8 0027DC38 48 00 00 E0 */ b lbl_802820B8
+/* 80281FDC 0027DC3C C0 42 A1 20 */ lfs f2, lbl_80642720-_SDA2_BASE_(r2)
+/* 80281FE0 0027DC40 FC 00 28 50 */ fneg f0, f5
+/* 80281FE4 0027DC44 C0 C2 A1 08 */ lfs f6, lbl_80642708-_SDA2_BASE_(r2)
+/* 80281FE8 0027DC48 EC 22 28 28 */ fsubs f1, f2, f5
+/* 80281FEC 0027DC4C EC 22 08 24 */ fdivs f1, f2, f1
+/* 80281FF0 0027DC50 EC 60 00 72 */ fmuls f3, f0, f1
+/* 80281FF4 0027DC54 48 00 00 C4 */ b lbl_802820B8
+/* 80281FF8 0027DC58 C0 42 A1 20 */ lfs f2, lbl_80642720-_SDA2_BASE_(r2)
+/* 80281FFC 0027DC5C FC 00 28 50 */ fneg f0, f5
+/* 80282000 0027DC60 C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2)
+/* 80282004 0027DC64 EC 22 28 28 */ fsubs f1, f2, f5
+/* 80282008 0027DC68 EC C2 08 24 */ fdivs f6, f2, f1
+/* 8028200C 0027DC6C EC 20 01 B2 */ fmuls f1, f0, f6
+/* 80282010 0027DC70 48 00 00 A8 */ b lbl_802820B8
+/* 80282014 0027DC74 C0 62 A1 20 */ lfs f3, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282018 0027DC78 C0 22 A1 24 */ lfs f1, lbl_80642724-_SDA2_BASE_(r2)
+/* 8028201C 0027DC7C EC 43 28 28 */ fsubs f2, f3, f5
+/* 80282020 0027DC80 EC 05 08 28 */ fsubs f0, f5, f1
+/* 80282024 0027DC84 EC 42 00 B2 */ fmuls f2, f2, f2
+/* 80282028 0027DC88 EC 05 00 32 */ fmuls f0, f5, f0
+/* 8028202C 0027DC8C EC 43 10 24 */ fdivs f2, f3, f2
+/* 80282030 0027DC90 EC 62 00 32 */ fmuls f3, f2, f0
+/* 80282034 0027DC94 EC 21 00 B2 */ fmuls f1, f1, f2
+/* 80282038 0027DC98 FC C0 10 50 */ fneg f6, f2
+/* 8028203C 0027DC9C 48 00 00 7C */ b lbl_802820B8
+/* 80282040 0027DCA0 C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282044 0027DCA4 C0 02 A1 2C */ lfs f0, lbl_8064272C-_SDA2_BASE_(r2)
+/* 80282048 0027DCA8 EC 64 28 28 */ fsubs f3, f4, f5
+/* 8028204C 0027DCAC C0 42 A1 28 */ lfs f2, lbl_80642728-_SDA2_BASE_(r2)
+/* 80282050 0027DCB0 EC 24 28 2A */ fadds f1, f4, f5
+/* 80282054 0027DCB4 EC 63 00 F2 */ fmuls f3, f3, f3
+/* 80282058 0027DCB8 EC 00 00 72 */ fmuls f0, f0, f1
+/* 8028205C 0027DCBC EC 24 18 24 */ fdivs f1, f4, f3
+/* 80282060 0027DCC0 EC C2 00 72 */ fmuls f6, f2, f1
+/* 80282064 0027DCC4 EC 20 00 72 */ fmuls f1, f0, f1
+/* 80282068 0027DCC8 EC 66 01 72 */ fmuls f3, f6, f5
+/* 8028206C 0027DCCC 48 00 00 4C */ b lbl_802820B8
+/* 80282070 0027DCD0 C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282074 0027DCD4 C0 02 A1 24 */ lfs f0, lbl_80642724-_SDA2_BASE_(r2)
+/* 80282078 0027DCD8 EC 64 28 28 */ fsubs f3, f4, f5
+/* 8028207C 0027DCDC C0 22 A1 2C */ lfs f1, lbl_8064272C-_SDA2_BASE_(r2)
+/* 80282080 0027DCE0 EC 40 01 72 */ fmuls f2, f0, f5
+/* 80282084 0027DCE4 C0 02 A1 30 */ lfs f0, lbl_80642730-_SDA2_BASE_(r2)
+/* 80282088 0027DCE8 EC 21 01 72 */ fmuls f1, f1, f5
+/* 8028208C 0027DCEC EC 63 00 F2 */ fmuls f3, f3, f3
+/* 80282090 0027DCF0 EC 42 01 72 */ fmuls f2, f2, f5
+/* 80282094 0027DCF4 EC 64 18 24 */ fdivs f3, f4, f3
+/* 80282098 0027DCF8 EC 43 00 B2 */ fmuls f2, f3, f2
+/* 8028209C 0027DCFC EC 21 00 F2 */ fmuls f1, f1, f3
+/* 802820A0 0027DD00 EC C0 00 F2 */ fmuls f6, f0, f3
+/* 802820A4 0027DD04 EC 64 10 28 */ fsubs f3, f4, f2
+/* 802820A8 0027DD08 48 00 00 10 */ b lbl_802820B8
+lbl_802820AC:
+/* 802820AC 0027DD0C C0 22 A1 08 */ lfs f1, lbl_80642708-_SDA2_BASE_(r2)
+/* 802820B0 0027DD10 C0 62 A1 20 */ lfs f3, lbl_80642720-_SDA2_BASE_(r2)
+/* 802820B4 0027DD14 FC C0 08 90 */ fmr f6, f1
+lbl_802820B8:
+/* 802820B8 0027DD18 D0 7E 00 10 */ stfs f3, 0x10(r30)
+/* 802820BC 0027DD1C D0 3E 00 14 */ stfs f1, 0x14(r30)
+/* 802820C0 0027DD20 D0 DE 00 18 */ stfs f6, 0x18(r30)
+/* 802820C4 0027DD24 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802820C8 0027DD28 83 C1 00 08 */ lwz r30, 8(r1)
+/* 802820CC 0027DD2C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802820D0 0027DD30 7C 08 03 A6 */ mtlr r0
+/* 802820D4 0027DD34 38 21 00 10 */ addi r1, r1, 0x10
+/* 802820D8 0027DD38 4E 80 00 20 */ blr
+
+.global GXInitLightDistAttn
+GXInitLightDistAttn:
+/* 802820DC 0027DD3C C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2)
+/* 802820E0 0027DD40 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 802820E4 0027DD44 40 80 00 08 */ bge lbl_802820EC
+/* 802820E8 0027DD48 38 80 00 00 */ li r4, 0
+lbl_802820EC:
+/* 802820EC 0027DD4C C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2)
+/* 802820F0 0027DD50 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 802820F4 0027DD54 4C 40 13 82 */ cror 2, 0, 2
+/* 802820F8 0027DD58 41 82 00 14 */ beq lbl_8028210C
+/* 802820FC 0027DD5C C0 02 A1 20 */ lfs f0, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282100 0027DD60 FC 02 00 40 */ fcmpo cr0, f2, f0
+/* 80282104 0027DD64 4C 41 13 82 */ cror 2, 1, 2
+/* 80282108 0027DD68 40 82 00 08 */ bne lbl_80282110
+lbl_8028210C:
+/* 8028210C 0027DD6C 38 80 00 00 */ li r4, 0
+lbl_80282110:
+/* 80282110 0027DD70 2C 04 00 02 */ cmpwi r4, 2
+/* 80282114 0027DD74 41 82 00 3C */ beq lbl_80282150
+/* 80282118 0027DD78 40 80 00 14 */ bge lbl_8028212C
+/* 8028211C 0027DD7C 2C 04 00 00 */ cmpwi r4, 0
+/* 80282120 0027DD80 41 82 00 70 */ beq lbl_80282190
+/* 80282124 0027DD84 40 80 00 14 */ bge lbl_80282138
+/* 80282128 0027DD88 48 00 00 68 */ b lbl_80282190
+lbl_8028212C:
+/* 8028212C 0027DD8C 2C 04 00 04 */ cmpwi r4, 4
+/* 80282130 0027DD90 40 80 00 60 */ bge lbl_80282190
+/* 80282134 0027DD94 48 00 00 40 */ b lbl_80282174
+lbl_80282138:
+/* 80282138 0027DD98 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2)
+/* 8028213C 0027DD9C EC 02 00 72 */ fmuls f0, f2, f1
+/* 80282140 0027DDA0 C0 82 A1 08 */ lfs f4, lbl_80642708-_SDA2_BASE_(r2)
+/* 80282144 0027DDA4 EC 25 10 28 */ fsubs f1, f5, f2
+/* 80282148 0027DDA8 EC 61 00 24 */ fdivs f3, f1, f0
+/* 8028214C 0027DDAC 48 00 00 50 */ b lbl_8028219C
+lbl_80282150:
+/* 80282150 0027DDB0 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282154 0027DDB4 EC 62 00 72 */ fmuls f3, f2, f1
+/* 80282158 0027DDB8 C0 82 A1 34 */ lfs f4, lbl_80642734-_SDA2_BASE_(r2)
+/* 8028215C 0027DDBC EC 45 10 28 */ fsubs f2, f5, f2
+/* 80282160 0027DDC0 EC 01 00 F2 */ fmuls f0, f1, f3
+/* 80282164 0027DDC4 EC 24 00 B2 */ fmuls f1, f4, f2
+/* 80282168 0027DDC8 EC 61 18 24 */ fdivs f3, f1, f3
+/* 8028216C 0027DDCC EC 81 00 24 */ fdivs f4, f1, f0
+/* 80282170 0027DDD0 48 00 00 2C */ b lbl_8028219C
+lbl_80282174:
+/* 80282174 0027DDD4 EC 02 00 72 */ fmuls f0, f2, f1
+/* 80282178 0027DDD8 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2)
+/* 8028217C 0027DDDC C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2)
+/* 80282180 0027DDE0 EC 45 10 28 */ fsubs f2, f5, f2
+/* 80282184 0027DDE4 EC 01 00 32 */ fmuls f0, f1, f0
+/* 80282188 0027DDE8 EC 82 00 24 */ fdivs f4, f2, f0
+/* 8028218C 0027DDEC 48 00 00 10 */ b lbl_8028219C
+lbl_80282190:
+/* 80282190 0027DDF0 C0 62 A1 08 */ lfs f3, lbl_80642708-_SDA2_BASE_(r2)
+/* 80282194 0027DDF4 C0 A2 A1 20 */ lfs f5, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282198 0027DDF8 FC 80 18 90 */ fmr f4, f3
+lbl_8028219C:
+/* 8028219C 0027DDFC D0 A3 00 1C */ stfs f5, 0x1c(r3)
+/* 802821A0 0027DE00 D0 63 00 20 */ stfs f3, 0x20(r3)
+/* 802821A4 0027DE04 D0 83 00 24 */ stfs f4, 0x24(r3)
+/* 802821A8 0027DE08 4E 80 00 20 */ blr
+
+.global GXInitLightPos
+GXInitLightPos:
+/* 802821AC 0027DE0C D0 23 00 28 */ stfs f1, 0x28(r3)
+/* 802821B0 0027DE10 D0 43 00 2C */ stfs f2, 0x2c(r3)
+/* 802821B4 0027DE14 D0 63 00 30 */ stfs f3, 0x30(r3)
+/* 802821B8 0027DE18 4E 80 00 20 */ blr
+
+.global GXInitLightDir
+GXInitLightDir:
+/* 802821BC 0027DE1C FC 80 08 50 */ fneg f4, f1
+/* 802821C0 0027DE20 FC 20 10 50 */ fneg f1, f2
+/* 802821C4 0027DE24 FC 00 18 50 */ fneg f0, f3
+/* 802821C8 0027DE28 D0 83 00 34 */ stfs f4, 0x34(r3)
+/* 802821CC 0027DE2C D0 23 00 38 */ stfs f1, 0x38(r3)
+/* 802821D0 0027DE30 D0 03 00 3C */ stfs f0, 0x3c(r3)
+/* 802821D4 0027DE34 4E 80 00 20 */ blr
+
+.global GXInitSpecularDir
+GXInitSpecularDir:
+/* 802821D8 0027DE38 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 802821DC 0027DE3C 7C 08 02 A6 */ mflr r0
+/* 802821E0 0027DE40 90 01 00 74 */ stw r0, 0x74(r1)
+/* 802821E4 0027DE44 DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 802821E8 0027DE48 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
+/* 802821EC 0027DE4C DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 802821F0 0027DE50 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
+/* 802821F4 0027DE54 DB A1 00 40 */ stfd f29, 0x40(r1)
+/* 802821F8 0027DE58 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
+/* 802821FC 0027DE5C DB 81 00 30 */ stfd f28, 0x30(r1)
+/* 80282200 0027DE60 F3 81 00 38 */ psq_st f28, 56(r1), 0, qr0
+/* 80282204 0027DE64 DB 61 00 20 */ stfd f27, 0x20(r1)
+/* 80282208 0027DE68 F3 61 00 28 */ psq_st f27, 40(r1), 0, qr0
+/* 8028220C 0027DE6C DB 41 00 10 */ stfd f26, 0x10(r1)
+/* 80282210 0027DE70 F3 41 00 18 */ psq_st f26, 24(r1), 0, qr0
+/* 80282214 0027DE74 FF E0 08 50 */ fneg f31, f1
+/* 80282218 0027DE78 FF C0 10 50 */ fneg f30, f2
+/* 8028221C 0027DE7C C0 82 A1 20 */ lfs f4, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282220 0027DE80 FC C0 18 50 */ fneg f6, f3
+/* 80282224 0027DE84 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80282228 0027DE88 EC BF 07 F2 */ fmuls f5, f31, f31
+/* 8028222C 0027DE8C FF 40 08 90 */ fmr f26, f1
+/* 80282230 0027DE90 EF A4 30 2A */ fadds f29, f4, f6
+/* 80282234 0027DE94 C0 02 A1 08 */ lfs f0, lbl_80642708-_SDA2_BASE_(r2)
+/* 80282238 0027DE98 EC 9E 07 B2 */ fmuls f4, f30, f30
+/* 8028223C 0027DE9C 7C 7F 1B 78 */ mr r31, r3
+/* 80282240 0027DEA0 FF 60 10 90 */ fmr f27, f2
+/* 80282244 0027DEA4 EC DD 07 72 */ fmuls f6, f29, f29
+/* 80282248 0027DEA8 EC 25 20 2A */ fadds f1, f5, f4
+/* 8028224C 0027DEAC FF 80 18 90 */ fmr f28, f3
+/* 80282250 0027DEB0 EC 26 08 2A */ fadds f1, f6, f1
+/* 80282254 0027DEB4 FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 80282258 0027DEB8 41 82 00 14 */ beq lbl_8028226C
+/* 8028225C 0027DEBC 4B F5 25 D9 */ bl sqrt
+/* 80282260 0027DEC0 FC 20 08 18 */ frsp f1, f1
+/* 80282264 0027DEC4 C0 02 A1 20 */ lfs f0, lbl_80642720-_SDA2_BASE_(r2)
+/* 80282268 0027DEC8 EC 20 08 24 */ fdivs f1, f0, f1
+lbl_8028226C:
+/* 8028226C 0027DECC C0 02 A1 38 */ lfs f0, lbl_80642738-_SDA2_BASE_(r2)
+/* 80282270 0027DED0 EC BF 00 72 */ fmuls f5, f31, f1
+/* 80282274 0027DED4 EC 9E 00 72 */ fmuls f4, f30, f1
+/* 80282278 0027DED8 EC 7D 00 72 */ fmuls f3, f29, f1
+/* 8028227C 0027DEDC EC 40 06 B2 */ fmuls f2, f0, f26
+/* 80282280 0027DEE0 D0 BF 00 34 */ stfs f5, 0x34(r31)
+/* 80282284 0027DEE4 EC 20 06 F2 */ fmuls f1, f0, f27
+/* 80282288 0027DEE8 EC 00 07 32 */ fmuls f0, f0, f28
+/* 8028228C 0027DEEC D0 9F 00 38 */ stfs f4, 0x38(r31)
+/* 80282290 0027DEF0 D0 7F 00 3C */ stfs f3, 0x3c(r31)
+/* 80282294 0027DEF4 D0 5F 00 28 */ stfs f2, 0x28(r31)
+/* 80282298 0027DEF8 D0 3F 00 2C */ stfs f1, 0x2c(r31)
+/* 8028229C 0027DEFC D0 1F 00 30 */ stfs f0, 0x30(r31)
+/* 802822A0 0027DF00 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
+/* 802822A4 0027DF04 CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 802822A8 0027DF08 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
+/* 802822AC 0027DF0C CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 802822B0 0027DF10 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
+/* 802822B4 0027DF14 CB A1 00 40 */ lfd f29, 0x40(r1)
+/* 802822B8 0027DF18 E3 81 00 38 */ psq_l f28, 56(r1), 0, qr0
+/* 802822BC 0027DF1C CB 81 00 30 */ lfd f28, 0x30(r1)
+/* 802822C0 0027DF20 E3 61 00 28 */ psq_l f27, 40(r1), 0, qr0
+/* 802822C4 0027DF24 CB 61 00 20 */ lfd f27, 0x20(r1)
+/* 802822C8 0027DF28 E3 41 00 18 */ psq_l f26, 24(r1), 0, qr0
+/* 802822CC 0027DF2C CB 41 00 10 */ lfd f26, 0x10(r1)
+/* 802822D0 0027DF30 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802822D4 0027DF34 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 802822D8 0027DF38 7C 08 03 A6 */ mtlr r0
+/* 802822DC 0027DF3C 38 21 00 70 */ addi r1, r1, 0x70
+/* 802822E0 0027DF40 4E 80 00 20 */ blr
+
+.global GXInitSpecularDirHA
+GXInitSpecularDirHA:
+/* 802822E4 0027DF44 C0 02 A1 38 */ lfs f0, lbl_80642738-_SDA2_BASE_(r2)
+/* 802822E8 0027DF48 D0 83 00 34 */ stfs f4, 0x34(r3)
+/* 802822EC 0027DF4C EC 80 00 72 */ fmuls f4, f0, f1
+/* 802822F0 0027DF50 EC 20 00 B2 */ fmuls f1, f0, f2
+/* 802822F4 0027DF54 D0 A3 00 38 */ stfs f5, 0x38(r3)
+/* 802822F8 0027DF58 EC 00 00 F2 */ fmuls f0, f0, f3
+/* 802822FC 0027DF5C D0 C3 00 3C */ stfs f6, 0x3c(r3)
+/* 80282300 0027DF60 D0 83 00 28 */ stfs f4, 0x28(r3)
+/* 80282304 0027DF64 D0 23 00 2C */ stfs f1, 0x2c(r3)
+/* 80282308 0027DF68 D0 03 00 30 */ stfs f0, 0x30(r3)
+/* 8028230C 0027DF6C 4E 80 00 20 */ blr
+
+.global GXInitLightColor
+GXInitLightColor:
+/* 80282310 0027DF70 80 04 00 00 */ lwz r0, 0(r4)
+/* 80282314 0027DF74 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80282318 0027DF78 4E 80 00 20 */ blr
+
+.global GXLoadLightObjImm
+GXLoadLightObjImm:
+/* 8028231C 0027DF7C 7C 80 00 34 */ cntlzw r0, r4
+/* 80282320 0027DF80 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80282324 0027DF84 20 A0 00 1F */ subfic r5, r0, 0x1f
+/* 80282328 0027DF88 38 00 00 10 */ li r0, 0x10
+/* 8028232C 0027DF8C 54 A5 26 76 */ rlwinm r5, r5, 4, 0x19, 0x1b
+/* 80282330 0027DF90 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80282334 0027DF94 38 05 06 00 */ addi r0, r5, 0x600
+/* 80282338 0027DF98 64 00 00 0F */ oris r0, r0, 0xf
+/* 8028233C 0027DF9C 90 04 80 00 */ stw r0, -0x8000(r4)
+/* 80282340 0027DFA0 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80282344 0027DFA4 7C C6 32 78 */ xor r6, r6, r6
+/* 80282348 0027DFA8 E0 A3 00 10 */ psq_l f5, 16(r3), 0, qr0
+/* 8028234C 0027DFAC E0 83 00 18 */ psq_l f4, 24(r3), 0, qr0
+/* 80282350 0027DFB0 E0 63 00 20 */ psq_l f3, 32(r3), 0, qr0
+/* 80282354 0027DFB4 E0 43 00 28 */ psq_l f2, 40(r3), 0, qr0
+/* 80282358 0027DFB8 E0 23 00 30 */ psq_l f1, 48(r3), 0, qr0
+/* 8028235C 0027DFBC E0 03 00 38 */ psq_l f0, 56(r3), 0, qr0
+/* 80282360 0027DFC0 94 C4 80 00 */ stwu r6, -0x8000(r4)
+/* 80282364 0027DFC4 90 C4 00 00 */ stw r6, 0(r4)
+/* 80282368 0027DFC8 90 C4 00 00 */ stw r6, 0(r4)
+/* 8028236C 0027DFCC 90 04 00 00 */ stw r0, 0(r4)
+/* 80282370 0027DFD0 F0 A4 00 00 */ psq_st f5, 0(r4), 0, qr0
+/* 80282374 0027DFD4 F0 84 00 00 */ psq_st f4, 0(r4), 0, qr0
+/* 80282378 0027DFD8 F0 64 00 00 */ psq_st f3, 0(r4), 0, qr0
+/* 8028237C 0027DFDC F0 44 00 00 */ psq_st f2, 0(r4), 0, qr0
+/* 80282380 0027DFE0 F0 24 00 00 */ psq_st f1, 0(r4), 0, qr0
+/* 80282384 0027DFE4 F0 04 00 00 */ psq_st f0, 0(r4), 0, qr0
+/* 80282388 0027DFE8 38 00 00 01 */ li r0, 1
+/* 8028238C 0027DFEC 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282390 0027DFF0 B0 03 00 02 */ sth r0, 2(r3)
+/* 80282394 0027DFF4 4E 80 00 20 */ blr
+
+.global GXSetChanAmbColor
+GXSetChanAmbColor:
+/* 80282398 0027DFF8 2C 03 00 03 */ cmpwi r3, 3
+/* 8028239C 0027DFFC 41 82 00 78 */ beq lbl_80282414
+/* 802823A0 0027E000 40 80 00 1C */ bge lbl_802823BC
+/* 802823A4 0027E004 2C 03 00 01 */ cmpwi r3, 1
+/* 802823A8 0027E008 41 82 00 3C */ beq lbl_802823E4
+/* 802823AC 0027E00C 40 80 00 50 */ bge lbl_802823FC
+/* 802823B0 0027E010 2C 03 00 00 */ cmpwi r3, 0
+/* 802823B4 0027E014 40 80 00 18 */ bge lbl_802823CC
+/* 802823B8 0027E018 4E 80 00 20 */ blr
+lbl_802823BC:
+/* 802823BC 0027E01C 2C 03 00 05 */ cmpwi r3, 5
+/* 802823C0 0027E020 41 82 00 78 */ beq lbl_80282438
+/* 802823C4 0027E024 4C 80 00 20 */ bgelr
+/* 802823C8 0027E028 48 00 00 64 */ b lbl_8028242C
+lbl_802823CC:
+/* 802823CC 0027E02C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802823D0 0027E030 39 00 00 00 */ li r8, 0
+/* 802823D4 0027E034 80 04 00 00 */ lwz r0, 0(r4)
+/* 802823D8 0027E038 80 E3 00 A8 */ lwz r7, 0xa8(r3)
+/* 802823DC 0027E03C 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17
+/* 802823E0 0027E040 48 00 00 68 */ b lbl_80282448
+lbl_802823E4:
+/* 802823E4 0027E044 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802823E8 0027E048 39 00 00 01 */ li r8, 1
+/* 802823EC 0027E04C 80 04 00 00 */ lwz r0, 0(r4)
+/* 802823F0 0027E050 80 E3 00 AC */ lwz r7, 0xac(r3)
+/* 802823F4 0027E054 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17
+/* 802823F8 0027E058 48 00 00 50 */ b lbl_80282448
+lbl_802823FC:
+/* 802823FC 0027E05C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282400 0027E060 39 00 00 00 */ li r8, 0
+/* 80282404 0027E064 88 04 00 03 */ lbz r0, 3(r4)
+/* 80282408 0027E068 80 E3 00 A8 */ lwz r7, 0xa8(r3)
+/* 8028240C 0027E06C 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f
+/* 80282410 0027E070 48 00 00 38 */ b lbl_80282448
+lbl_80282414:
+/* 80282414 0027E074 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282418 0027E078 39 00 00 01 */ li r8, 1
+/* 8028241C 0027E07C 88 04 00 03 */ lbz r0, 3(r4)
+/* 80282420 0027E080 80 E3 00 AC */ lwz r7, 0xac(r3)
+/* 80282424 0027E084 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f
+/* 80282428 0027E088 48 00 00 20 */ b lbl_80282448
+lbl_8028242C:
+/* 8028242C 0027E08C 80 E4 00 00 */ lwz r7, 0(r4)
+/* 80282430 0027E090 39 00 00 00 */ li r8, 0
+/* 80282434 0027E094 48 00 00 14 */ b lbl_80282448
+lbl_80282438:
+/* 80282438 0027E098 80 E4 00 00 */ lwz r7, 0(r4)
+/* 8028243C 0027E09C 39 00 00 01 */ li r8, 1
+/* 80282440 0027E0A0 48 00 00 08 */ b lbl_80282448
+/* 80282444 0027E0A4 4E 80 00 20 */ blr
+lbl_80282448:
+/* 80282448 0027E0A8 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028244C 0027E0AC 38 60 01 00 */ li r3, 0x100
+/* 80282450 0027E0B0 55 00 10 3A */ slwi r0, r8, 2
+/* 80282454 0027E0B4 80 A6 05 FC */ lwz r5, 0x5fc(r6)
+/* 80282458 0027E0B8 7C 64 40 30 */ slw r4, r3, r8
+/* 8028245C 0027E0BC 7C 66 02 14 */ add r3, r6, r0
+/* 80282460 0027E0C0 7C A0 23 78 */ or r0, r5, r4
+/* 80282464 0027E0C4 90 06 05 FC */ stw r0, 0x5fc(r6)
+/* 80282468 0027E0C8 90 E3 00 A8 */ stw r7, 0xa8(r3)
+/* 8028246C 0027E0CC 4E 80 00 20 */ blr
+
+.global GXSetChanMatColor
+GXSetChanMatColor:
+/* 80282470 0027E0D0 2C 03 00 03 */ cmpwi r3, 3
+/* 80282474 0027E0D4 41 82 00 78 */ beq lbl_802824EC
+/* 80282478 0027E0D8 40 80 00 1C */ bge lbl_80282494
+/* 8028247C 0027E0DC 2C 03 00 01 */ cmpwi r3, 1
+/* 80282480 0027E0E0 41 82 00 3C */ beq lbl_802824BC
+/* 80282484 0027E0E4 40 80 00 50 */ bge lbl_802824D4
+/* 80282488 0027E0E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8028248C 0027E0EC 40 80 00 18 */ bge lbl_802824A4
+/* 80282490 0027E0F0 4E 80 00 20 */ blr
+lbl_80282494:
+/* 80282494 0027E0F4 2C 03 00 05 */ cmpwi r3, 5
+/* 80282498 0027E0F8 41 82 00 78 */ beq lbl_80282510
+/* 8028249C 0027E0FC 4C 80 00 20 */ bgelr
+/* 802824A0 0027E100 48 00 00 64 */ b lbl_80282504
+lbl_802824A4:
+/* 802824A4 0027E104 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802824A8 0027E108 39 00 00 00 */ li r8, 0
+/* 802824AC 0027E10C 80 04 00 00 */ lwz r0, 0(r4)
+/* 802824B0 0027E110 80 E3 00 B0 */ lwz r7, 0xb0(r3)
+/* 802824B4 0027E114 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17
+/* 802824B8 0027E118 48 00 00 68 */ b lbl_80282520
+lbl_802824BC:
+/* 802824BC 0027E11C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802824C0 0027E120 39 00 00 01 */ li r8, 1
+/* 802824C4 0027E124 80 04 00 00 */ lwz r0, 0(r4)
+/* 802824C8 0027E128 80 E3 00 B4 */ lwz r7, 0xb4(r3)
+/* 802824CC 0027E12C 50 07 00 2E */ rlwimi r7, r0, 0, 0, 0x17
+/* 802824D0 0027E130 48 00 00 50 */ b lbl_80282520
+lbl_802824D4:
+/* 802824D4 0027E134 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802824D8 0027E138 39 00 00 00 */ li r8, 0
+/* 802824DC 0027E13C 88 04 00 03 */ lbz r0, 3(r4)
+/* 802824E0 0027E140 80 E3 00 B0 */ lwz r7, 0xb0(r3)
+/* 802824E4 0027E144 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f
+/* 802824E8 0027E148 48 00 00 38 */ b lbl_80282520
+lbl_802824EC:
+/* 802824EC 0027E14C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802824F0 0027E150 39 00 00 01 */ li r8, 1
+/* 802824F4 0027E154 88 04 00 03 */ lbz r0, 3(r4)
+/* 802824F8 0027E158 80 E3 00 B4 */ lwz r7, 0xb4(r3)
+/* 802824FC 0027E15C 50 07 06 3E */ rlwimi r7, r0, 0, 0x18, 0x1f
+/* 80282500 0027E160 48 00 00 20 */ b lbl_80282520
+lbl_80282504:
+/* 80282504 0027E164 80 E4 00 00 */ lwz r7, 0(r4)
+/* 80282508 0027E168 39 00 00 00 */ li r8, 0
+/* 8028250C 0027E16C 48 00 00 14 */ b lbl_80282520
+lbl_80282510:
+/* 80282510 0027E170 80 E4 00 00 */ lwz r7, 0(r4)
+/* 80282514 0027E174 39 00 00 01 */ li r8, 1
+/* 80282518 0027E178 48 00 00 08 */ b lbl_80282520
+/* 8028251C 0027E17C 4E 80 00 20 */ blr
+lbl_80282520:
+/* 80282520 0027E180 80 C2 A0 D0 */ lwz r6, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80282524 0027E184 38 60 04 00 */ li r3, 0x400
+/* 80282528 0027E188 55 00 10 3A */ slwi r0, r8, 2
+/* 8028252C 0027E18C 80 A6 05 FC */ lwz r5, 0x5fc(r6)
+/* 80282530 0027E190 7C 64 40 30 */ slw r4, r3, r8
+/* 80282534 0027E194 7C 66 02 14 */ add r3, r6, r0
+/* 80282538 0027E198 7C A0 23 78 */ or r0, r5, r4
+/* 8028253C 0027E19C 90 06 05 FC */ stw r0, 0x5fc(r6)
+/* 80282540 0027E1A0 90 E3 00 B0 */ stw r7, 0xb0(r3)
+/* 80282544 0027E1A4 4E 80 00 20 */ blr
+
+.global GXSetNumChans
+GXSetNumChans:
+/* 80282548 0027E1A8 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028254C 0027E1AC 80 04 02 54 */ lwz r0, 0x254(r4)
+/* 80282550 0027E1B0 50 60 26 76 */ rlwimi r0, r3, 4, 0x19, 0x1b
+/* 80282554 0027E1B4 90 04 02 54 */ stw r0, 0x254(r4)
+/* 80282558 0027E1B8 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 8028255C 0027E1BC 64 00 01 00 */ oris r0, r0, 0x100
+/* 80282560 0027E1C0 60 00 00 04 */ ori r0, r0, 4
+/* 80282564 0027E1C4 90 04 05 FC */ stw r0, 0x5fc(r4)
+/* 80282568 0027E1C8 4E 80 00 20 */ blr
+
+.global GXSetChanCtrl
+GXSetChanCtrl:
+/* 8028256C 0027E1CC 2C 09 00 00 */ cmpwi r9, 0
+/* 80282570 0027E1D0 39 40 00 00 */ li r10, 0
+/* 80282574 0027E1D4 50 8A 0F BC */ rlwimi r10, r4, 1, 0x1e, 0x1e
+/* 80282578 0027E1D8 54 6B 07 BE */ clrlwi r11, r3, 0x1e
+/* 8028257C 0027E1DC 50 CA 07 FE */ rlwimi r10, r6, 0, 0x1f, 0x1f
+/* 80282580 0027E1E0 50 AA 36 72 */ rlwimi r10, r5, 6, 0x19, 0x19
+/* 80282584 0027E1E4 40 82 00 08 */ bne lbl_8028258C
+/* 80282588 0027E1E8 39 00 00 00 */ li r8, 0
+lbl_8028258C:
+/* 8028258C 0027E1EC 20 A9 00 02 */ subfic r5, r9, 2
+/* 80282590 0027E1F0 38 89 FF FE */ addi r4, r9, -2
+/* 80282594 0027E1F4 7C 09 00 D0 */ neg r0, r9
+/* 80282598 0027E1F8 51 0A 3D F0 */ rlwimi r10, r8, 7, 0x17, 0x18
+/* 8028259C 0027E1FC 7C A4 23 78 */ or r4, r5, r4
+/* 802825A0 0027E200 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802825A4 0027E204 50 8A 55 AC */ rlwimi r10, r4, 0xa, 0x16, 0x16
+/* 802825A8 0027E208 7C 00 4B 78 */ or r0, r0, r9
+/* 802825AC 0027E20C 50 0A 5D 6A */ rlwimi r10, r0, 0xb, 0x15, 0x15
+/* 802825B0 0027E210 55 64 10 3A */ slwi r4, r11, 2
+/* 802825B4 0027E214 50 EA 16 BA */ rlwimi r10, r7, 2, 0x1a, 0x1d
+/* 802825B8 0027E218 38 00 10 00 */ li r0, 0x1000
+/* 802825BC 0027E21C 7C 85 22 14 */ add r4, r5, r4
+/* 802825C0 0027E220 2C 03 00 04 */ cmpwi r3, 4
+/* 802825C4 0027E224 50 EA 3C 68 */ rlwimi r10, r7, 7, 0x11, 0x14
+/* 802825C8 0027E228 7C 00 58 30 */ slw r0, r0, r11
+/* 802825CC 0027E22C 91 44 00 B8 */ stw r10, 0xb8(r4)
+/* 802825D0 0027E230 80 85 05 FC */ lwz r4, 0x5fc(r5)
+/* 802825D4 0027E234 7C 80 03 78 */ or r0, r4, r0
+/* 802825D8 0027E238 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 802825DC 0027E23C 40 82 00 18 */ bne lbl_802825F4
+/* 802825E0 0027E240 91 45 00 C0 */ stw r10, 0xc0(r5)
+/* 802825E4 0027E244 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 802825E8 0027E248 60 00 50 00 */ ori r0, r0, 0x5000
+/* 802825EC 0027E24C 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 802825F0 0027E250 4E 80 00 20 */ blr
+lbl_802825F4:
+/* 802825F4 0027E254 2C 03 00 05 */ cmpwi r3, 5
+/* 802825F8 0027E258 4C 82 00 20 */ bnelr
+/* 802825FC 0027E25C 91 45 00 C4 */ stw r10, 0xc4(r5)
+/* 80282600 0027E260 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 80282604 0027E264 60 00 A0 00 */ ori r0, r0, 0xa000
+/* 80282608 0027E268 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 8028260C 0027E26C 4E 80 00 20 */ blr
diff --git a/asm/SDK/GX/GXMisc.s b/asm/SDK/GX/GXMisc.s
new file mode 100644
index 0000000..197662d
--- /dev/null
+++ b/asm/SDK/GX/GXMisc.s
@@ -0,0 +1,657 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GXSetMisc
+GXSetMisc:
+/* 80280618 0027C278 2C 03 00 02 */ cmpwi r3, 2
+/* 8028061C 0027C27C 41 82 00 58 */ beq lbl_80280674
+/* 80280620 0027C280 40 80 00 14 */ bge lbl_80280634
+/* 80280624 0027C284 2C 03 00 00 */ cmpwi r3, 0
+/* 80280628 0027C288 4D 82 00 20 */ beqlr
+/* 8028062C 0027C28C 40 80 00 14 */ bge lbl_80280640
+/* 80280630 0027C290 4E 80 00 20 */ blr
+lbl_80280634:
+/* 80280634 0027C294 2C 03 00 04 */ cmpwi r3, 4
+/* 80280638 0027C298 4C 80 00 20 */ bgelr
+/* 8028063C 0027C29C 48 00 00 50 */ b lbl_8028068C
+lbl_80280640:
+/* 80280640 0027C2A0 54 80 04 3F */ clrlwi. r0, r4, 0x10
+/* 80280644 0027C2A4 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280648 0027C2A8 B0 85 00 04 */ sth r4, 4(r5)
+/* 8028064C 0027C2AC 7C 03 00 34 */ cntlzw r3, r0
+/* 80280650 0027C2B0 38 00 00 01 */ li r0, 1
+/* 80280654 0027C2B4 54 63 DC 3E */ rlwinm r3, r3, 0x1b, 0x10, 0x1f
+/* 80280658 0027C2B8 B0 65 00 00 */ sth r3, 0(r5)
+/* 8028065C 0027C2BC B0 05 00 02 */ sth r0, 2(r5)
+/* 80280660 0027C2C0 4D 82 00 20 */ beqlr
+/* 80280664 0027C2C4 80 05 05 FC */ lwz r0, 0x5fc(r5)
+/* 80280668 0027C2C8 60 00 00 08 */ ori r0, r0, 8
+/* 8028066C 0027C2CC 90 05 05 FC */ stw r0, 0x5fc(r5)
+/* 80280670 0027C2D0 4E 80 00 20 */ blr
+lbl_80280674:
+/* 80280674 0027C2D4 7C 04 00 D0 */ neg r0, r4
+/* 80280678 0027C2D8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028067C 0027C2DC 7C 00 23 78 */ or r0, r0, r4
+/* 80280680 0027C2E0 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 80280684 0027C2E4 98 03 05 F9 */ stb r0, 0x5f9(r3)
+/* 80280688 0027C2E8 4E 80 00 20 */ blr
+lbl_8028068C:
+/* 8028068C 0027C2EC 7C 04 00 D0 */ neg r0, r4
+/* 80280690 0027C2F0 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280694 0027C2F4 7C 00 23 78 */ or r0, r0, r4
+/* 80280698 0027C2F8 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8028069C 0027C2FC 98 03 05 FA */ stb r0, 0x5fa(r3)
+/* 802806A0 0027C300 4E 80 00 20 */ blr
+
+.global GXFlush
+GXFlush:
+/* 802806A4 0027C304 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802806A8 0027C308 7C 08 02 A6 */ mflr r0
+/* 802806AC 0027C30C 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802806B0 0027C310 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802806B4 0027C314 80 03 05 FC */ lwz r0, 0x5fc(r3)
+/* 802806B8 0027C318 2C 00 00 00 */ cmpwi r0, 0
+/* 802806BC 0027C31C 41 82 00 08 */ beq lbl_802806C4
+/* 802806C0 0027C320 48 00 08 11 */ bl __GXSetDirtyState
+lbl_802806C4:
+/* 802806C4 0027C324 38 00 00 00 */ li r0, 0
+/* 802806C8 0027C328 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 802806CC 0027C32C 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
+/* 802806D0 0027C330 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806D4 0027C334 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806D8 0027C338 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806DC 0027C33C 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806E0 0027C340 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806E4 0027C344 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806E8 0027C348 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 802806EC 0027C34C 4B FE 7B 75 */ bl PPCSync
+/* 802806F0 0027C350 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802806F4 0027C354 7C 08 03 A6 */ mtlr r0
+/* 802806F8 0027C358 38 21 00 10 */ addi r1, r1, 0x10
+/* 802806FC 0027C35C 4E 80 00 20 */ blr
+
+.global GXResetWriteGatherPipe
+GXResetWriteGatherPipe:
+/* 80280700 0027C360 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280704 0027C364 7C 08 02 A6 */ mflr r0
+/* 80280708 0027C368 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_8028070C:
+/* 8028070C 0027C36C 4B FE 7B F9 */ bl PPCMfwpar
+/* 80280710 0027C370 54 60 07 FF */ clrlwi. r0, r3, 0x1f
+/* 80280714 0027C374 40 82 FF F8 */ bne lbl_8028070C
+/* 80280718 0027C378 3C 60 0C 01 */ lis r3, 0x0C008000@ha
+/* 8028071C 0027C37C 38 63 80 00 */ addi r3, r3, 0x0C008000@l
+/* 80280720 0027C380 4B FE 7B F1 */ bl PPCMtwpar
+/* 80280724 0027C384 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80280728 0027C388 7C 08 03 A6 */ mtlr r0
+/* 8028072C 0027C38C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80280730 0027C390 4E 80 00 20 */ blr
+
+.global __GXAbort
+__GXAbort:
+/* 80280734 0027C394 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80280738 0027C398 7C 08 02 A6 */ mflr r0
+/* 8028073C 0027C39C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80280740 0027C3A0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80280744 0027C3A4 4B F4 69 E5 */ bl _savegpr_27
+/* 80280748 0027C3A8 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 8028074C 0027C3AC 88 03 05 FA */ lbz r0, 0x5fa(r3)
+/* 80280750 0027C3B0 2C 00 00 00 */ cmpwi r0, 0
+/* 80280754 0027C3B4 41 82 00 A0 */ beq lbl_802807F4
+/* 80280758 0027C3B8 4B FF E8 E9 */ bl __GXIsGPFifoReady
+/* 8028075C 0027C3BC 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 80280760 0027C3C0 41 82 00 94 */ beq lbl_802807F4
+/* 80280764 0027C3C4 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 80280768 0027C3C8 A0 05 00 4E */ lhz r0, 0x4e(r5)
+lbl_8028076C:
+/* 8028076C 0027C3CC 7C 03 03 78 */ mr r3, r0
+/* 80280770 0027C3D0 A0 85 00 50 */ lhz r4, 0x50(r5)
+/* 80280774 0027C3D4 A0 05 00 4E */ lhz r0, 0x4e(r5)
+/* 80280778 0027C3D8 7C 00 18 40 */ cmplw r0, r3
+/* 8028077C 0027C3DC 40 82 FF F0 */ bne lbl_8028076C
+/* 80280780 0027C3E0 54 03 80 1E */ slwi r3, r0, 0x10
+/* 80280784 0027C3E4 38 00 00 00 */ li r0, 0
+/* 80280788 0027C3E8 7C 7B 23 78 */ or r27, r3, r4
+/* 8028078C 0027C3EC 3B A0 00 08 */ li r29, 8
+/* 80280790 0027C3F0 6C 1C 80 00 */ xoris r28, r0, 0x8000
+lbl_80280794:
+/* 80280794 0027C3F4 4B FF 20 25 */ bl OSGetTime
+/* 80280798 0027C3F8 7C 9F 23 78 */ mr r31, r4
+/* 8028079C 0027C3FC 7C 7E 1B 78 */ mr r30, r3
+lbl_802807A0:
+/* 802807A0 0027C400 4B FF 20 19 */ bl OSGetTime
+/* 802807A4 0027C404 7C 9F 20 10 */ subfc r4, r31, r4
+/* 802807A8 0027C408 7C 1E 19 10 */ subfe r0, r30, r3
+/* 802807AC 0027C40C 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 802807B0 0027C410 7C 04 E8 10 */ subfc r0, r4, r29
+/* 802807B4 0027C414 7C 63 E1 10 */ subfe r3, r3, r28
+/* 802807B8 0027C418 7C 7C E1 10 */ subfe r3, r28, r28
+/* 802807BC 0027C41C 7C 63 00 D1 */ neg. r3, r3
+/* 802807C0 0027C420 41 82 FF E0 */ beq lbl_802807A0
+/* 802807C4 0027C424 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 802807C8 0027C428 A0 05 00 4E */ lhz r0, 0x4e(r5)
+lbl_802807CC:
+/* 802807CC 0027C42C 7C 03 03 78 */ mr r3, r0
+/* 802807D0 0027C430 A0 85 00 50 */ lhz r4, 0x50(r5)
+/* 802807D4 0027C434 A0 05 00 4E */ lhz r0, 0x4e(r5)
+/* 802807D8 0027C438 7C 00 18 40 */ cmplw r0, r3
+/* 802807DC 0027C43C 40 82 FF F0 */ bne lbl_802807CC
+/* 802807E0 0027C440 54 00 80 1E */ slwi r0, r0, 0x10
+/* 802807E4 0027C444 7C 00 23 78 */ or r0, r0, r4
+/* 802807E8 0027C448 7C 00 D8 40 */ cmplw r0, r27
+/* 802807EC 0027C44C 7C 1B 03 78 */ mr r27, r0
+/* 802807F0 0027C450 40 82 FF A4 */ bne lbl_80280794
+lbl_802807F4:
+/* 802807F4 0027C454 38 00 00 01 */ li r0, 1
+/* 802807F8 0027C458 3C 60 CC 00 */ lis r3, 0xCC003018@ha
+/* 802807FC 0027C45C 90 03 30 18 */ stw r0, 0xCC003018@l(r3)
+/* 80280800 0027C460 4B FF 1F B9 */ bl OSGetTime
+/* 80280804 0027C464 38 00 00 00 */ li r0, 0
+/* 80280808 0027C468 7C 9F 23 78 */ mr r31, r4
+/* 8028080C 0027C46C 7C 7E 1B 78 */ mr r30, r3
+/* 80280810 0027C470 3B A0 00 32 */ li r29, 0x32
+/* 80280814 0027C474 6C 1C 80 00 */ xoris r28, r0, 0x8000
+lbl_80280818:
+/* 80280818 0027C478 4B FF 1F A1 */ bl OSGetTime
+/* 8028081C 0027C47C 7C 9F 20 10 */ subfc r4, r31, r4
+/* 80280820 0027C480 7C 1E 19 10 */ subfe r0, r30, r3
+/* 80280824 0027C484 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 80280828 0027C488 7C 04 E8 10 */ subfc r0, r4, r29
+/* 8028082C 0027C48C 7C 63 E1 10 */ subfe r3, r3, r28
+/* 80280830 0027C490 7C 7C E1 10 */ subfe r3, r28, r28
+/* 80280834 0027C494 7C 63 00 D1 */ neg. r3, r3
+/* 80280838 0027C498 41 82 FF E0 */ beq lbl_80280818
+/* 8028083C 0027C49C 3B C0 00 00 */ li r30, 0
+/* 80280840 0027C4A0 3C 60 CC 00 */ lis r3, 0xCC003018@ha
+/* 80280844 0027C4A4 93 C3 30 18 */ stw r30, 0xCC003018@l(r3)
+/* 80280848 0027C4A8 4B FF 1F 71 */ bl OSGetTime
+/* 8028084C 0027C4AC 6F DF 80 00 */ xoris r31, r30, 0x8000
+/* 80280850 0027C4B0 7C 9C 23 78 */ mr r28, r4
+/* 80280854 0027C4B4 7C 7D 1B 78 */ mr r29, r3
+/* 80280858 0027C4B8 3B C0 00 05 */ li r30, 5
+lbl_8028085C:
+/* 8028085C 0027C4BC 4B FF 1F 5D */ bl OSGetTime
+/* 80280860 0027C4C0 7C 9C 20 10 */ subfc r4, r28, r4
+/* 80280864 0027C4C4 7C 1D 19 10 */ subfe r0, r29, r3
+/* 80280868 0027C4C8 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 8028086C 0027C4CC 7C 04 F0 10 */ subfc r0, r4, r30
+/* 80280870 0027C4D0 7C 63 F9 10 */ subfe r3, r3, r31
+/* 80280874 0027C4D4 7C 7F F9 10 */ subfe r3, r31, r31
+/* 80280878 0027C4D8 7C 63 00 D1 */ neg. r3, r3
+/* 8028087C 0027C4DC 41 82 FF E0 */ beq lbl_8028085C
+/* 80280880 0027C4E0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80280884 0027C4E4 4B F4 68 F1 */ bl _restgpr_27
+/* 80280888 0027C4E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8028088C 0027C4EC 7C 08 03 A6 */ mtlr r0
+/* 80280890 0027C4F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80280894 0027C4F4 4E 80 00 20 */ blr
+
+.global GXAbortFrame
+GXAbortFrame:
+/* 80280898 0027C4F8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8028089C 0027C4FC 7C 08 02 A6 */ mflr r0
+/* 802808A0 0027C500 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802808A4 0027C504 39 61 00 20 */ addi r11, r1, 0x20
+/* 802808A8 0027C508 4B F4 68 7D */ bl _savegpr_26
+/* 802808AC 0027C50C 83 E2 A0 D0 */ lwz r31, lbl_806426D0-_SDA2_BASE_(r2)
+/* 802808B0 0027C510 88 1F 05 FA */ lbz r0, 0x5fa(r31)
+/* 802808B4 0027C514 2C 00 00 00 */ cmpwi r0, 0
+/* 802808B8 0027C518 41 82 00 A0 */ beq lbl_80280958
+/* 802808BC 0027C51C 4B FF E7 85 */ bl __GXIsGPFifoReady
+/* 802808C0 0027C520 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802808C4 0027C524 41 82 00 94 */ beq lbl_80280958
+/* 802808C8 0027C528 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 802808CC 0027C52C A0 65 00 4E */ lhz r3, 0x4e(r5)
+lbl_802808D0:
+/* 802808D0 0027C530 7C 60 1B 78 */ mr r0, r3
+/* 802808D4 0027C534 A0 85 00 50 */ lhz r4, 0x50(r5)
+/* 802808D8 0027C538 A0 65 00 4E */ lhz r3, 0x4e(r5)
+/* 802808DC 0027C53C 7C 03 00 40 */ cmplw r3, r0
+/* 802808E0 0027C540 40 82 FF F0 */ bne lbl_802808D0
+/* 802808E4 0027C544 54 63 80 1E */ slwi r3, r3, 0x10
+/* 802808E8 0027C548 38 00 00 00 */ li r0, 0
+/* 802808EC 0027C54C 7C 7A 23 78 */ or r26, r3, r4
+/* 802808F0 0027C550 3B 80 00 08 */ li r28, 8
+/* 802808F4 0027C554 6C 1B 80 00 */ xoris r27, r0, 0x8000
+lbl_802808F8:
+/* 802808F8 0027C558 4B FF 1E C1 */ bl OSGetTime
+/* 802808FC 0027C55C 7C 9E 23 78 */ mr r30, r4
+/* 80280900 0027C560 7C 7D 1B 78 */ mr r29, r3
+lbl_80280904:
+/* 80280904 0027C564 4B FF 1E B5 */ bl OSGetTime
+/* 80280908 0027C568 7C 9E 20 10 */ subfc r4, r30, r4
+/* 8028090C 0027C56C 7C 1D 19 10 */ subfe r0, r29, r3
+/* 80280910 0027C570 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 80280914 0027C574 7C 04 E0 10 */ subfc r0, r4, r28
+/* 80280918 0027C578 7C 63 D9 10 */ subfe r3, r3, r27
+/* 8028091C 0027C57C 7C 7B D9 10 */ subfe r3, r27, r27
+/* 80280920 0027C580 7C 63 00 D1 */ neg. r3, r3
+/* 80280924 0027C584 41 82 FF E0 */ beq lbl_80280904
+/* 80280928 0027C588 80 AD A9 9C */ lwz r5, lbl_8063FC5C-_SDA_BASE_(r13)
+/* 8028092C 0027C58C A0 85 00 4E */ lhz r4, 0x4e(r5)
+lbl_80280930:
+/* 80280930 0027C590 7C 80 23 78 */ mr r0, r4
+/* 80280934 0027C594 A0 65 00 50 */ lhz r3, 0x50(r5)
+/* 80280938 0027C598 A0 85 00 4E */ lhz r4, 0x4e(r5)
+/* 8028093C 0027C59C 7C 04 00 40 */ cmplw r4, r0
+/* 80280940 0027C5A0 40 82 FF F0 */ bne lbl_80280930
+/* 80280944 0027C5A4 54 80 80 1E */ slwi r0, r4, 0x10
+/* 80280948 0027C5A8 7C 00 1B 78 */ or r0, r0, r3
+/* 8028094C 0027C5AC 7C 00 D0 40 */ cmplw r0, r26
+/* 80280950 0027C5B0 7C 1A 03 78 */ mr r26, r0
+/* 80280954 0027C5B4 40 82 FF A4 */ bne lbl_802808F8
+lbl_80280958:
+/* 80280958 0027C5B8 38 00 00 01 */ li r0, 1
+/* 8028095C 0027C5BC 3C 60 CC 00 */ lis r3, 0xCC003018@ha
+/* 80280960 0027C5C0 90 03 30 18 */ stw r0, 0xCC003018@l(r3)
+/* 80280964 0027C5C4 4B FF 1E 55 */ bl OSGetTime
+/* 80280968 0027C5C8 38 00 00 00 */ li r0, 0
+/* 8028096C 0027C5CC 7C 9E 23 78 */ mr r30, r4
+/* 80280970 0027C5D0 7C 7D 1B 78 */ mr r29, r3
+/* 80280974 0027C5D4 3B 80 00 32 */ li r28, 0x32
+/* 80280978 0027C5D8 6C 1B 80 00 */ xoris r27, r0, 0x8000
+lbl_8028097C:
+/* 8028097C 0027C5DC 4B FF 1E 3D */ bl OSGetTime
+/* 80280980 0027C5E0 7C 9E 20 10 */ subfc r4, r30, r4
+/* 80280984 0027C5E4 7C 1D 19 10 */ subfe r0, r29, r3
+/* 80280988 0027C5E8 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 8028098C 0027C5EC 7C 04 E0 10 */ subfc r0, r4, r28
+/* 80280990 0027C5F0 7C 63 D9 10 */ subfe r3, r3, r27
+/* 80280994 0027C5F4 7C 7B D9 10 */ subfe r3, r27, r27
+/* 80280998 0027C5F8 7C 63 00 D1 */ neg. r3, r3
+/* 8028099C 0027C5FC 41 82 FF E0 */ beq lbl_8028097C
+/* 802809A0 0027C600 3B A0 00 00 */ li r29, 0
+/* 802809A4 0027C604 3C 60 CC 00 */ lis r3, 0xCC003018@ha
+/* 802809A8 0027C608 93 A3 30 18 */ stw r29, 0xCC003018@l(r3)
+/* 802809AC 0027C60C 4B FF 1E 0D */ bl OSGetTime
+/* 802809B0 0027C610 6F BE 80 00 */ xoris r30, r29, 0x8000
+/* 802809B4 0027C614 7C 9B 23 78 */ mr r27, r4
+/* 802809B8 0027C618 7C 7C 1B 78 */ mr r28, r3
+/* 802809BC 0027C61C 3B A0 00 05 */ li r29, 5
+lbl_802809C0:
+/* 802809C0 0027C620 4B FF 1D F9 */ bl OSGetTime
+/* 802809C4 0027C624 7C 9B 20 10 */ subfc r4, r27, r4
+/* 802809C8 0027C628 7C 1C 19 10 */ subfe r0, r28, r3
+/* 802809CC 0027C62C 6C 03 80 00 */ xoris r3, r0, 0x8000
+/* 802809D0 0027C630 7C 04 E8 10 */ subfc r0, r4, r29
+/* 802809D4 0027C634 7C 63 F1 10 */ subfe r3, r3, r30
+/* 802809D8 0027C638 7C 7E F1 10 */ subfe r3, r30, r30
+/* 802809DC 0027C63C 7C 63 00 D1 */ neg. r3, r3
+/* 802809E0 0027C640 41 82 FF E0 */ beq lbl_802809C0
+/* 802809E4 0027C644 4B FF E6 5D */ bl __GXIsGPFifoReady
+/* 802809E8 0027C648 54 60 06 3F */ clrlwi. r0, r3, 0x18
+/* 802809EC 0027C64C 41 82 00 48 */ beq lbl_80280A34
+/* 802809F0 0027C650 4B FF E8 65 */ bl __GXCleanGPFifo
+/* 802809F4 0027C654 4B FF CE B5 */ bl __GXInitRevisionBits
+/* 802809F8 0027C658 38 00 00 00 */ li r0, 0
+/* 802809FC 0027C65C 90 1F 05 FC */ stw r0, 0x5fc(r31)
+/* 80280A00 0027C660 48 00 00 08 */ b lbl_80280A08
+/* 80280A04 0027C664 48 00 04 CD */ bl __GXSetDirtyState
+lbl_80280A08:
+/* 80280A08 0027C668 38 00 00 00 */ li r0, 0
+/* 80280A0C 0027C66C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280A10 0027C670 90 03 80 00 */ stw r0, 0xCC008000@l(r3)
+/* 80280A14 0027C674 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A18 0027C678 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A1C 0027C67C 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A20 0027C680 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A24 0027C684 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A28 0027C688 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A2C 0027C68C 90 03 80 00 */ stw r0, -0x8000(r3)
+/* 80280A30 0027C690 4B FE 78 31 */ bl PPCSync
+lbl_80280A34:
+/* 80280A34 0027C694 39 61 00 20 */ addi r11, r1, 0x20
+/* 80280A38 0027C698 4B F4 67 39 */ bl _restgpr_26
+/* 80280A3C 0027C69C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80280A40 0027C6A0 7C 08 03 A6 */ mtlr r0
+/* 80280A44 0027C6A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80280A48 0027C6A8 4E 80 00 20 */ blr
+
+.global GXSetDrawSync
+GXSetDrawSync:
+/* 80280A4C 0027C6AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80280A50 0027C6B0 7C 08 02 A6 */ mflr r0
+/* 80280A54 0027C6B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80280A58 0027C6B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80280A5C 0027C6BC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80280A60 0027C6C0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80280A64 0027C6C4 7C 7D 1B 78 */ mr r29, r3
+/* 80280A68 0027C6C8 4B FE DC F5 */ bl OSDisableInterrupts
+/* 80280A6C 0027C6CC 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80280A70 0027C6D0 38 A0 00 61 */ li r5, 0x61
+/* 80280A74 0027C6D4 98 A4 80 00 */ stb r5, 0xCC008000@l(r4)
+/* 80280A78 0027C6D8 67 A6 48 00 */ oris r6, r29, 0x4800
+/* 80280A7C 0027C6DC 38 00 00 47 */ li r0, 0x47
+/* 80280A80 0027C6E0 83 C2 A0 D0 */ lwz r30, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280A84 0027C6E4 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80280A88 0027C6E8 53 A6 04 3E */ rlwimi r6, r29, 0, 0x10, 0x1f
+/* 80280A8C 0027C6EC 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
+/* 80280A90 0027C6F0 7C 7D 1B 78 */ mr r29, r3
+/* 80280A94 0027C6F4 98 A4 80 00 */ stb r5, -0x8000(r4)
+/* 80280A98 0027C6F8 90 C4 80 00 */ stw r6, -0x8000(r4)
+/* 80280A9C 0027C6FC 80 1E 05 FC */ lwz r0, 0x5fc(r30)
+/* 80280AA0 0027C700 2C 00 00 00 */ cmpwi r0, 0
+/* 80280AA4 0027C704 41 82 00 08 */ beq lbl_80280AAC
+/* 80280AA8 0027C708 48 00 04 29 */ bl __GXSetDirtyState
+lbl_80280AAC:
+/* 80280AAC 0027C70C 3B E0 00 00 */ li r31, 0
+/* 80280AB0 0027C710 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280AB4 0027C714 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
+/* 80280AB8 0027C718 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280ABC 0027C71C 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280AC0 0027C720 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280AC4 0027C724 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280AC8 0027C728 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280ACC 0027C72C 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280AD0 0027C730 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280AD4 0027C734 4B FE 77 8D */ bl PPCSync
+/* 80280AD8 0027C738 7F A3 EB 78 */ mr r3, r29
+/* 80280ADC 0027C73C 4B FE DC A9 */ bl OSRestoreInterrupts
+/* 80280AE0 0027C740 B3 FE 00 02 */ sth r31, 2(r30)
+/* 80280AE4 0027C744 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80280AE8 0027C748 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80280AEC 0027C74C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80280AF0 0027C750 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80280AF4 0027C754 7C 08 03 A6 */ mtlr r0
+/* 80280AF8 0027C758 38 21 00 20 */ addi r1, r1, 0x20
+/* 80280AFC 0027C75C 4E 80 00 20 */ blr
+
+.global GXReadDrawSync
+GXReadDrawSync:
+/* 80280B00 0027C760 80 6D A9 98 */ lwz r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280B04 0027C764 A0 63 00 0E */ lhz r3, 0xe(r3)
+/* 80280B08 0027C768 4E 80 00 20 */ blr
+
+.global GXSetDrawDone
+GXSetDrawDone:
+/* 80280B0C 0027C76C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280B10 0027C770 7C 08 02 A6 */ mflr r0
+/* 80280B14 0027C774 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80280B18 0027C778 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80280B1C 0027C77C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80280B20 0027C780 4B FE DC 3D */ bl OSDisableInterrupts
+/* 80280B24 0027C784 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80280B28 0027C788 38 00 00 61 */ li r0, 0x61
+/* 80280B2C 0027C78C 3C 80 45 00 */ lis r4, 0x45000002@ha
+/* 80280B30 0027C790 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 80280B34 0027C794 38 04 00 02 */ addi r0, r4, 0x45000002@l
+/* 80280B38 0027C798 80 82 A0 D0 */ lwz r4, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280B3C 0027C79C 90 05 80 00 */ stw r0, -0x8000(r5)
+/* 80280B40 0027C7A0 7C 7E 1B 78 */ mr r30, r3
+/* 80280B44 0027C7A4 80 04 05 FC */ lwz r0, 0x5fc(r4)
+/* 80280B48 0027C7A8 2C 00 00 00 */ cmpwi r0, 0
+/* 80280B4C 0027C7AC 41 82 00 08 */ beq lbl_80280B54
+/* 80280B50 0027C7B0 48 00 03 81 */ bl __GXSetDirtyState
+lbl_80280B54:
+/* 80280B54 0027C7B4 3B E0 00 00 */ li r31, 0
+/* 80280B58 0027C7B8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
+/* 80280B5C 0027C7BC 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
+/* 80280B60 0027C7C0 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B64 0027C7C4 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B68 0027C7C8 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B6C 0027C7CC 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B70 0027C7D0 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B74 0027C7D4 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B78 0027C7D8 93 E3 80 00 */ stw r31, -0x8000(r3)
+/* 80280B7C 0027C7DC 4B FE 76 E5 */ bl PPCSync
+/* 80280B80 0027C7E0 9B ED A9 E0 */ stb r31, lbl_8063FCA0-_SDA_BASE_(r13)
+/* 80280B84 0027C7E4 7F C3 F3 78 */ mr r3, r30
+/* 80280B88 0027C7E8 4B FE DB FD */ bl OSRestoreInterrupts
+/* 80280B8C 0027C7EC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80280B90 0027C7F0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80280B94 0027C7F4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80280B98 0027C7F8 7C 08 03 A6 */ mtlr r0
+/* 80280B9C 0027C7FC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80280BA0 0027C800 4E 80 00 20 */ blr
+
+.global GXPixModeSync
+GXPixModeSync:
+/* 80280BA4 0027C804 3C 80 CC 01 */ lis r4, 0xCC008000@ha
+/* 80280BA8 0027C808 38 00 00 61 */ li r0, 0x61
+/* 80280BAC 0027C80C 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
+/* 80280BB0 0027C810 38 00 00 00 */ li r0, 0
+/* 80280BB4 0027C814 80 A2 A0 D0 */ lwz r5, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280BB8 0027C818 80 65 02 2C */ lwz r3, 0x22c(r5)
+/* 80280BBC 0027C81C 90 64 80 00 */ stw r3, -0x8000(r4)
+/* 80280BC0 0027C820 B0 05 00 02 */ sth r0, 2(r5)
+/* 80280BC4 0027C824 4E 80 00 20 */ blr
+
+.global GXTexModeSync
+GXTexModeSync:
+/* 80280BC8 0027C828 3C A0 CC 01 */ lis r5, 0xCC008000@ha
+/* 80280BCC 0027C82C 38 00 00 61 */ li r0, 0x61
+/* 80280BD0 0027C830 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
+/* 80280BD4 0027C834 3C 80 63 00 */ lis r4, 0x6300
+/* 80280BD8 0027C838 80 62 A0 D0 */ lwz r3, lbl_806426D0-_SDA2_BASE_(r2)
+/* 80280BDC 0027C83C 38 00 00 00 */ li r0, 0
+/* 80280BE0 0027C840 90 85 80 00 */ stw r4, -0x8000(r5)
+/* 80280BE4 0027C844 B0 03 00 02 */ sth r0, 2(r3)
+/* 80280BE8 0027C848 4E 80 00 20 */ blr
+
+.global GXPokeAlphaMode
+GXPokeAlphaMode:
+/* 80280BEC 0027C84C 80 AD A9 98 */ lwz r5, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280BF0 0027C850 50 64 40 2E */ rlwimi r4, r3, 8, 0, 0x17
+/* 80280BF4 0027C854 B0 85 00 06 */ sth r4, 6(r5)
+/* 80280BF8 0027C858 4E 80 00 20 */ blr
+
+.global GXPokeAlphaRead
+GXPokeAlphaRead:
+/* 80280BFC 0027C85C 38 00 00 00 */ li r0, 0
+/* 80280C00 0027C860 80 8D A9 98 */ lwz r4, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C04 0027C864 50 60 07 BE */ rlwimi r0, r3, 0, 0x1e, 0x1f
+/* 80280C08 0027C868 60 00 00 04 */ ori r0, r0, 4
+/* 80280C0C 0027C86C B0 04 00 08 */ sth r0, 8(r4)
+/* 80280C10 0027C870 4E 80 00 20 */ blr
+
+.global GXPokeAlphaUpdate
+GXPokeAlphaUpdate:
+/* 80280C14 0027C874 80 8D A9 98 */ lwz r4, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C18 0027C878 A0 04 00 02 */ lhz r0, 2(r4)
+/* 80280C1C 0027C87C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
+/* 80280C20 0027C880 B0 04 00 02 */ sth r0, 2(r4)
+/* 80280C24 0027C884 4E 80 00 20 */ blr
+
+.global GXPokeBlendMode
+GXPokeBlendMode:
+/* 80280C28 0027C888 80 ED A9 98 */ lwz r7, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C2C 0027C88C 2C 03 00 01 */ cmpwi r3, 1
+/* 80280C30 0027C890 38 00 00 00 */ li r0, 0
+/* 80280C34 0027C894 A1 27 00 02 */ lhz r9, 2(r7)
+/* 80280C38 0027C898 41 82 00 0C */ beq lbl_80280C44
+/* 80280C3C 0027C89C 2C 03 00 03 */ cmpwi r3, 3
+/* 80280C40 0027C8A0 40 82 00 08 */ bne lbl_80280C48
+lbl_80280C44:
+/* 80280C44 0027C8A4 38 00 00 01 */ li r0, 1
+lbl_80280C48:
+/* 80280C48 0027C8A8 38 E3 FF FD */ addi r7, r3, -3
+/* 80280C4C 0027C8AC 50 09 07 FE */ rlwimi r9, r0, 0, 0x1f, 0x1f
+/* 80280C50 0027C8B0 38 03 FF FE */ addi r0, r3, -2
+/* 80280C54 0027C8B4 80 6D A9 98 */ lwz r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C58 0027C8B8 7C E8 00 34 */ cntlzw r8, r7
+/* 80280C5C 0027C8BC 7C 07 00 34 */ cntlzw r7, r0
+/* 80280C60 0027C8C0 38 00 00 41 */ li r0, 0x41
+/* 80280C64 0027C8C4 51 09 35 28 */ rlwimi r9, r8, 6, 0x14, 0x14
+/* 80280C68 0027C8C8 50 E9 E7 BC */ rlwimi r9, r7, 0x1c, 0x1e, 0x1e
+/* 80280C6C 0027C8CC 50 C9 64 26 */ rlwimi r9, r6, 0xc, 0x10, 0x13
+/* 80280C70 0027C8D0 50 89 45 6E */ rlwimi r9, r4, 8, 0x15, 0x17
+/* 80280C74 0027C8D4 50 A9 2E 34 */ rlwimi r9, r5, 5, 0x18, 0x1a
+/* 80280C78 0027C8D8 50 09 C0 0E */ rlwimi r9, r0, 0x18, 0, 7
+/* 80280C7C 0027C8DC B1 23 00 02 */ sth r9, 2(r3)
+/* 80280C80 0027C8E0 4E 80 00 20 */ blr
+
+.global GXPokeColorUpdate
+GXPokeColorUpdate:
+/* 80280C84 0027C8E4 80 8D A9 98 */ lwz r4, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C88 0027C8E8 A0 04 00 02 */ lhz r0, 2(r4)
+/* 80280C8C 0027C8EC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
+/* 80280C90 0027C8F0 B0 04 00 02 */ sth r0, 2(r4)
+/* 80280C94 0027C8F4 4E 80 00 20 */ blr
+
+.global GXPokeDstAlpha
+GXPokeDstAlpha:
+/* 80280C98 0027C8F8 80 AD A9 98 */ lwz r5, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280C9C 0027C8FC 38 00 00 00 */ li r0, 0
+/* 80280CA0 0027C900 50 80 06 3E */ rlwimi r0, r4, 0, 0x18, 0x1f
+/* 80280CA4 0027C904 50 60 45 EE */ rlwimi r0, r3, 8, 0x17, 0x17
+/* 80280CA8 0027C908 B0 05 00 04 */ sth r0, 4(r5)
+/* 80280CAC 0027C90C 4E 80 00 20 */ blr
+
+.global GXPokeDither
+GXPokeDither:
+/* 80280CB0 0027C910 80 8D A9 98 */ lwz r4, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280CB4 0027C914 A0 04 00 02 */ lhz r0, 2(r4)
+/* 80280CB8 0027C918 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
+/* 80280CBC 0027C91C B0 04 00 02 */ sth r0, 2(r4)
+/* 80280CC0 0027C920 4E 80 00 20 */ blr
+
+.global GXPokeZMode
+GXPokeZMode:
+/* 80280CC4 0027C924 80 CD A9 98 */ lwz r6, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280CC8 0027C928 38 00 00 00 */ li r0, 0
+/* 80280CCC 0027C92C 50 60 07 FE */ rlwimi r0, r3, 0, 0x1f, 0x1f
+/* 80280CD0 0027C930 50 80 0F 3C */ rlwimi r0, r4, 1, 0x1c, 0x1e
+/* 80280CD4 0027C934 50 A0 26 F6 */ rlwimi r0, r5, 4, 0x1b, 0x1b
+/* 80280CD8 0027C938 B0 06 00 00 */ sth r0, 0(r6)
+/* 80280CDC 0027C93C 4E 80 00 20 */ blr
+
+.global GXSetDrawSyncCallback
+GXSetDrawSyncCallback:
+/* 80280CE0 0027C940 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280CE4 0027C944 7C 08 02 A6 */ mflr r0
+/* 80280CE8 0027C948 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80280CEC 0027C94C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80280CF0 0027C950 93 C1 00 08 */ stw r30, 8(r1)
+/* 80280CF4 0027C954 7C 7E 1B 78 */ mr r30, r3
+/* 80280CF8 0027C958 83 ED A9 E8 */ lwz r31, lbl_8063FCA8-_SDA_BASE_(r13)
+/* 80280CFC 0027C95C 4B FE DA 61 */ bl OSDisableInterrupts
+/* 80280D00 0027C960 93 CD A9 E8 */ stw r30, lbl_8063FCA8-_SDA_BASE_(r13)
+/* 80280D04 0027C964 4B FE DA 81 */ bl OSRestoreInterrupts
+/* 80280D08 0027C968 7F E3 FB 78 */ mr r3, r31
+/* 80280D0C 0027C96C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80280D10 0027C970 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80280D14 0027C974 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80280D18 0027C978 7C 08 03 A6 */ mtlr r0
+/* 80280D1C 0027C97C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80280D20 0027C980 4E 80 00 20 */ blr
+
+.global GXTokenInterruptHandler
+GXTokenInterruptHandler:
+/* 80280D24 0027C984 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 80280D28 0027C988 7C 08 02 A6 */ mflr r0
+/* 80280D2C 0027C98C 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 80280D30 0027C990 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 80280D34 0027C994 93 C1 02 D8 */ stw r30, 0x2d8(r1)
+/* 80280D38 0027C998 7C 9E 23 78 */ mr r30, r4
+/* 80280D3C 0027C99C 80 0D A9 E8 */ lwz r0, lbl_8063FCA8-_SDA_BASE_(r13)
+/* 80280D40 0027C9A0 80 6D A9 98 */ lwz r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280D44 0027C9A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80280D48 0027C9A8 A3 E3 00 0E */ lhz r31, 0xe(r3)
+/* 80280D4C 0027C9AC 41 82 00 34 */ beq lbl_80280D80
+/* 80280D50 0027C9B0 38 61 00 08 */ addi r3, r1, 8
+/* 80280D54 0027C9B4 4B FE A3 3D */ bl OSClearContext
+/* 80280D58 0027C9B8 38 61 00 08 */ addi r3, r1, 8
+/* 80280D5C 0027C9BC 4B FE A1 0D */ bl OSSetCurrentContext
+/* 80280D60 0027C9C0 81 8D A9 E8 */ lwz r12, lbl_8063FCA8-_SDA_BASE_(r13)
+/* 80280D64 0027C9C4 7F E3 FB 78 */ mr r3, r31
+/* 80280D68 0027C9C8 7D 89 03 A6 */ mtctr r12
+/* 80280D6C 0027C9CC 4E 80 04 21 */ bctrl
+/* 80280D70 0027C9D0 38 61 00 08 */ addi r3, r1, 8
+/* 80280D74 0027C9D4 4B FE A3 1D */ bl OSClearContext
+/* 80280D78 0027C9D8 7F C3 F3 78 */ mr r3, r30
+/* 80280D7C 0027C9DC 4B FE A0 ED */ bl OSSetCurrentContext
+lbl_80280D80:
+/* 80280D80 0027C9E0 80 6D A9 98 */ lwz r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280D84 0027C9E4 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80280D88 0027C9E8 60 00 00 04 */ ori r0, r0, 4
+/* 80280D8C 0027C9EC B0 03 00 0A */ sth r0, 0xa(r3)
+/* 80280D90 0027C9F0 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 80280D94 0027C9F4 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 80280D98 0027C9F8 83 C1 02 D8 */ lwz r30, 0x2d8(r1)
+/* 80280D9C 0027C9FC 7C 08 03 A6 */ mtlr r0
+/* 80280DA0 0027CA00 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 80280DA4 0027CA04 4E 80 00 20 */ blr
+
+.global GXSetDrawDoneCallback
+GXSetDrawDoneCallback:
+/* 80280DA8 0027CA08 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280DAC 0027CA0C 7C 08 02 A6 */ mflr r0
+/* 80280DB0 0027CA10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80280DB4 0027CA14 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80280DB8 0027CA18 93 C1 00 08 */ stw r30, 8(r1)
+/* 80280DBC 0027CA1C 7C 7E 1B 78 */ mr r30, r3
+/* 80280DC0 0027CA20 83 ED A9 E4 */ lwz r31, lbl_8063FCA4-_SDA_BASE_(r13)
+/* 80280DC4 0027CA24 4B FE D9 99 */ bl OSDisableInterrupts
+/* 80280DC8 0027CA28 93 CD A9 E4 */ stw r30, lbl_8063FCA4-_SDA_BASE_(r13)
+/* 80280DCC 0027CA2C 4B FE D9 B9 */ bl OSRestoreInterrupts
+/* 80280DD0 0027CA30 7F E3 FB 78 */ mr r3, r31
+/* 80280DD4 0027CA34 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80280DD8 0027CA38 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80280DDC 0027CA3C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80280DE0 0027CA40 7C 08 03 A6 */ mtlr r0
+/* 80280DE4 0027CA44 38 21 00 10 */ addi r1, r1, 0x10
+/* 80280DE8 0027CA48 4E 80 00 20 */ blr
+
+GXFinishInterruptHandler:
+/* 80280DEC 0027CA4C 94 21 FD 20 */ stwu r1, -0x2e0(r1)
+/* 80280DF0 0027CA50 7C 08 02 A6 */ mflr r0
+/* 80280DF4 0027CA54 38 60 00 01 */ li r3, 1
+/* 80280DF8 0027CA58 90 01 02 E4 */ stw r0, 0x2e4(r1)
+/* 80280DFC 0027CA5C 93 E1 02 DC */ stw r31, 0x2dc(r1)
+/* 80280E00 0027CA60 7C 9F 23 78 */ mr r31, r4
+/* 80280E04 0027CA64 80 AD A9 98 */ lwz r5, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280E08 0027CA68 A0 05 00 0A */ lhz r0, 0xa(r5)
+/* 80280E0C 0027CA6C 60 00 00 08 */ ori r0, r0, 8
+/* 80280E10 0027CA70 B0 05 00 0A */ sth r0, 0xa(r5)
+/* 80280E14 0027CA74 80 0D A9 E4 */ lwz r0, lbl_8063FCA4-_SDA_BASE_(r13)
+/* 80280E18 0027CA78 98 6D A9 E0 */ stb r3, lbl_8063FCA0-_SDA_BASE_(r13)
+/* 80280E1C 0027CA7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80280E20 0027CA80 41 82 00 30 */ beq lbl_80280E50
+/* 80280E24 0027CA84 38 61 00 08 */ addi r3, r1, 8
+/* 80280E28 0027CA88 4B FE A2 69 */ bl OSClearContext
+/* 80280E2C 0027CA8C 38 61 00 08 */ addi r3, r1, 8
+/* 80280E30 0027CA90 4B FE A0 39 */ bl OSSetCurrentContext
+/* 80280E34 0027CA94 81 8D A9 E4 */ lwz r12, lbl_8063FCA4-_SDA_BASE_(r13)
+/* 80280E38 0027CA98 7D 89 03 A6 */ mtctr r12
+/* 80280E3C 0027CA9C 4E 80 04 21 */ bctrl
+/* 80280E40 0027CAA0 38 61 00 08 */ addi r3, r1, 8
+/* 80280E44 0027CAA4 4B FE A2 4D */ bl OSClearContext
+/* 80280E48 0027CAA8 7F E3 FB 78 */ mr r3, r31
+/* 80280E4C 0027CAAC 4B FE A0 1D */ bl OSSetCurrentContext
+lbl_80280E50:
+/* 80280E50 0027CAB0 38 6D A9 D8 */ addi r3, r13, lbl_8063FC98-_SDA_BASE_
+/* 80280E54 0027CAB4 4B FF 16 0D */ bl OSWakeupThread
+/* 80280E58 0027CAB8 80 01 02 E4 */ lwz r0, 0x2e4(r1)
+/* 80280E5C 0027CABC 83 E1 02 DC */ lwz r31, 0x2dc(r1)
+/* 80280E60 0027CAC0 7C 08 03 A6 */ mtlr r0
+/* 80280E64 0027CAC4 38 21 02 E0 */ addi r1, r1, 0x2e0
+/* 80280E68 0027CAC8 4E 80 00 20 */ blr
+
+.global __GXPEInit
+__GXPEInit:
+/* 80280E6C 0027CACC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80280E70 0027CAD0 7C 08 02 A6 */ mflr r0
+/* 80280E74 0027CAD4 3C 80 80 28 */ lis r4, GXTokenInterruptHandler@ha
+/* 80280E78 0027CAD8 38 60 00 12 */ li r3, 0x12
+/* 80280E7C 0027CADC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80280E80 0027CAE0 38 84 0D 24 */ addi r4, r4, GXTokenInterruptHandler@l
+/* 80280E84 0027CAE4 4B FE D9 25 */ bl __OSSetInterruptHandler
+/* 80280E88 0027CAE8 3C 80 80 28 */ lis r4, GXFinishInterruptHandler@ha
+/* 80280E8C 0027CAEC 38 60 00 13 */ li r3, 0x13
+/* 80280E90 0027CAF0 38 84 0D EC */ addi r4, r4, GXFinishInterruptHandler@l
+/* 80280E94 0027CAF4 4B FE D9 15 */ bl __OSSetInterruptHandler
+/* 80280E98 0027CAF8 38 6D A9 D8 */ addi r3, r13, lbl_8063FC98-_SDA_BASE_
+/* 80280E9C 0027CAFC 4B FF 04 4D */ bl OSInitThreadQueue
+/* 80280EA0 0027CB00 38 60 20 00 */ li r3, 0x2000
+/* 80280EA4 0027CB04 4B FE DC C9 */ bl __OSUnmaskInterrupts
+/* 80280EA8 0027CB08 38 60 10 00 */ li r3, 0x1000
+/* 80280EAC 0027CB0C 4B FE DC C1 */ bl __OSUnmaskInterrupts
+/* 80280EB0 0027CB10 80 6D A9 98 */ lwz r3, lbl_8063FC58-_SDA_BASE_(r13)
+/* 80280EB4 0027CB14 A0 03 00 0A */ lhz r0, 0xa(r3)
+/* 80280EB8 0027CB18 60 00 00 0F */ ori r0, r0, 0xf
+/* 80280EBC 0027CB1C B0 03 00 0A */ sth r0, 0xa(r3)
+/* 80280EC0 0027CB20 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80280EC4 0027CB24 7C 08 03 A6 */ mtlr r0
+/* 80280EC8 0027CB28 38 21 00 10 */ addi r1, r1, 0x10
+/* 80280ECC 0027CB2C 4E 80 00 20 */ blr
diff --git a/asm/SDK/HBM/HBMBase.s b/asm/SDK/HBM/HBMBase.s
index 97d9efd..68c7acd 100644
--- a/asm/SDK/HBM/HBMBase.s
+++ b/asm/SDK/HBM/HBMBase.s
@@ -232,7 +232,7 @@ lbl_8039A30C:
/* 8039A358 00395FB8 38 60 00 80 */ li r3, 0x80
/* 8039A35C 00395FBC 38 80 00 00 */ li r4, 0
/* 8039A360 00395FC0 38 A0 00 04 */ li r5, 4
-/* 8039A364 00395FC4 4B EE 6D E5 */ bl func_80281148
+/* 8039A364 00395FC4 4B EE 6D E5 */ bl GXBegin
/* 8039A368 00395FC8 C0 02 A9 28 */ lfs f0, lbl_80642F28-_SDA2_BASE_(r2)
/* 8039A36C 00395FCC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 8039A370 00395FD0 D0 03 80 00 */ stfs f0, 0xCC008000@l(r3)
@@ -1500,7 +1500,7 @@ init__Q210homebutton10HomeButtonFv:
/* 8039B51C 0039717C 98 A3 00 8E */ stb r5, 0x8e(r3)
lbl_8039B520:
/* 8039B520 00397180 38 60 00 00 */ li r3, 0
-/* 8039B524 00397184 4B EE 5E ED */ bl func_80281410
+/* 8039B524 00397184 4B EE 5E ED */ bl GXSetCullMode
/* 8039B528 00397188 38 00 00 00 */ li r0, 0
/* 8039B52C 0039718C 90 1E 00 1C */ stw r0, 0x1c(r30)
/* 8039B530 00397190 90 1E 00 20 */ stw r0, 0x20(r30)
@@ -10089,7 +10089,7 @@ lbl_803A2F1C:
/* 803A2F8C 0039EBEC D0 03 00 48 */ stfs f0, 0x48(r3)
lbl_803A2F90:
/* 803A2F90 0039EBF0 38 60 00 00 */ li r3, 0
-/* 803A2F94 0039EBF4 4B ED E4 7D */ bl func_80281410
+/* 803A2F94 0039EBF4 4B ED E4 7D */ bl GXSetCullMode
/* 803A2F98 0039EBF8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803A2F9C 0039EBFC 7C 08 03 A6 */ mtlr r0
/* 803A2FA0 0039EC00 38 21 00 20 */ addi r1, r1, 0x20
@@ -10311,18 +10311,18 @@ initgx__10homebuttonFv:
/* 803A3288 0039EEE8 4B EE 38 01 */ bl GXLoadPosMtxImm
/* 803A328C 0039EEEC 38 60 00 00 */ li r3, 0
/* 803A3290 0039EEF0 4B EE 38 A1 */ bl func_80286B30
-/* 803A3294 0039EEF4 4B ED C9 F1 */ bl func_8027FC84
+/* 803A3294 0039EEF4 4B ED C9 F1 */ bl GXClearVtxDesc
/* 803A3298 0039EEF8 38 60 00 09 */ li r3, 9
/* 803A329C 0039EEFC 38 80 00 01 */ li r4, 1
-/* 803A32A0 0039EF00 4B ED C1 55 */ bl func_8027F3F4
+/* 803A32A0 0039EF00 4B ED C1 55 */ bl GXSetVtxDesc
/* 803A32A4 0039EF04 38 60 00 00 */ li r3, 0
/* 803A32A8 0039EF08 38 80 00 09 */ li r4, 9
/* 803A32AC 0039EF0C 38 A0 00 00 */ li r5, 0
/* 803A32B0 0039EF10 38 C0 00 04 */ li r6, 4
/* 803A32B4 0039EF14 38 E0 00 00 */ li r7, 0
-/* 803A32B8 0039EF18 4B ED CA 01 */ bl func_8027FCB8
+/* 803A32B8 0039EF18 4B ED CA 01 */ bl GXSetVtxAttrFmt
/* 803A32BC 0039EF1C 38 60 00 01 */ li r3, 1
-/* 803A32C0 0039EF20 4B ED F2 89 */ bl func_80282548
+/* 803A32C0 0039EF20 4B ED F2 89 */ bl GXSetNumChans
/* 803A32C4 0039EF24 38 60 00 04 */ li r3, 4
/* 803A32C8 0039EF28 38 80 00 00 */ li r4, 0
/* 803A32CC 0039EF2C 38 A0 00 00 */ li r5, 0
@@ -10330,7 +10330,7 @@ initgx__10homebuttonFv:
/* 803A32D4 0039EF34 38 E0 00 00 */ li r7, 0
/* 803A32D8 0039EF38 39 00 00 00 */ li r8, 0
/* 803A32DC 0039EF3C 39 20 00 02 */ li r9, 2
-/* 803A32E0 0039EF40 4B ED F2 8D */ bl func_8028256C
+/* 803A32E0 0039EF40 4B ED F2 8D */ bl GXSetChanCtrl
/* 803A32E4 0039EF44 38 60 00 05 */ li r3, 5
/* 803A32E8 0039EF48 38 80 00 00 */ li r4, 0
/* 803A32EC 0039EF4C 38 A0 00 00 */ li r5, 0
@@ -10338,9 +10338,9 @@ initgx__10homebuttonFv:
/* 803A32F4 0039EF54 38 E0 00 00 */ li r7, 0
/* 803A32F8 0039EF58 39 00 00 00 */ li r8, 0
/* 803A32FC 0039EF5C 39 20 00 02 */ li r9, 2
-/* 803A3300 0039EF60 4B ED F2 6D */ bl func_8028256C
+/* 803A3300 0039EF60 4B ED F2 6D */ bl GXSetChanCtrl
/* 803A3304 0039EF64 38 60 00 00 */ li r3, 0
-/* 803A3308 0039EF68 4B ED D2 ED */ bl func_802805F4
+/* 803A3308 0039EF68 4B ED D2 ED */ bl GXSetNumTexGens
/* 803A330C 0039EF6C 38 60 00 01 */ li r3, 1
/* 803A3310 0039EF70 4B EE 0E 8D */ bl func_8028419C
/* 803A3314 0039EF74 38 60 00 00 */ li r3, 0
diff --git a/asm/SDK/HBM/HBMGUIManager.s b/asm/SDK/HBM/HBMGUIManager.s
index 3e485f6..eab80b6 100644
--- a/asm/SDK/HBM/HBMGUIManager.s
+++ b/asm/SDK/HBM/HBMGUIManager.s
@@ -26,29 +26,29 @@ drawLine___Q210homebutton3guiFfffffUcR8_GXColor:
/* 803A39B0 0039F610 93 C1 00 38 */ stw r30, 0x38(r1)
/* 803A39B4 0039F614 FF E0 28 90 */ fmr f31, f5
/* 803A39B8 0039F618 7C 7E 1B 78 */ mr r30, r3
-/* 803A39BC 0039F61C 4B ED C2 C9 */ bl func_8027FC84
+/* 803A39BC 0039F61C 4B ED C2 C9 */ bl GXClearVtxDesc
/* 803A39C0 0039F620 38 60 00 09 */ li r3, 9
/* 803A39C4 0039F624 38 80 00 01 */ li r4, 1
-/* 803A39C8 0039F628 4B ED BA 2D */ bl func_8027F3F4
+/* 803A39C8 0039F628 4B ED BA 2D */ bl GXSetVtxDesc
/* 803A39CC 0039F62C 38 60 00 0B */ li r3, 0xb
/* 803A39D0 0039F630 38 80 00 01 */ li r4, 1
-/* 803A39D4 0039F634 4B ED BA 21 */ bl func_8027F3F4
+/* 803A39D4 0039F634 4B ED BA 21 */ bl GXSetVtxDesc
/* 803A39D8 0039F638 38 60 00 00 */ li r3, 0
/* 803A39DC 0039F63C 38 80 00 09 */ li r4, 9
/* 803A39E0 0039F640 38 A0 00 01 */ li r5, 1
/* 803A39E4 0039F644 38 C0 00 04 */ li r6, 4
/* 803A39E8 0039F648 38 E0 00 00 */ li r7, 0
-/* 803A39EC 0039F64C 4B ED C2 CD */ bl func_8027FCB8
+/* 803A39EC 0039F64C 4B ED C2 CD */ bl GXSetVtxAttrFmt
/* 803A39F0 0039F650 38 60 00 00 */ li r3, 0
/* 803A39F4 0039F654 38 80 00 0B */ li r4, 0xb
/* 803A39F8 0039F658 38 A0 00 01 */ li r5, 1
/* 803A39FC 0039F65C 38 C0 00 05 */ li r6, 5
/* 803A3A00 0039F660 38 E0 00 00 */ li r7, 0
-/* 803A3A04 0039F664 4B ED C2 B5 */ bl func_8027FCB8
+/* 803A3A04 0039F664 4B ED C2 B5 */ bl GXSetVtxAttrFmt
/* 803A3A08 0039F668 38 60 00 00 */ li r3, 0
-/* 803A3A0C 0039F66C 4B ED DA 05 */ bl func_80281410
+/* 803A3A0C 0039F66C 4B ED DA 05 */ bl GXSetCullMode
/* 803A3A10 0039F670 38 60 00 01 */ li r3, 1
-/* 803A3A14 0039F674 4B ED EB 35 */ bl func_80282548
+/* 803A3A14 0039F674 4B ED EB 35 */ bl GXSetNumChans
/* 803A3A18 0039F678 38 60 00 04 */ li r3, 4
/* 803A3A1C 0039F67C 38 80 00 00 */ li r4, 0
/* 803A3A20 0039F680 38 A0 00 01 */ li r5, 1
@@ -56,9 +56,9 @@ drawLine___Q210homebutton3guiFfffffUcR8_GXColor:
/* 803A3A28 0039F688 38 E0 00 00 */ li r7, 0
/* 803A3A2C 0039F68C 39 00 00 00 */ li r8, 0
/* 803A3A30 0039F690 39 20 00 02 */ li r9, 2
-/* 803A3A34 0039F694 4B ED EB 39 */ bl func_8028256C
+/* 803A3A34 0039F694 4B ED EB 39 */ bl GXSetChanCtrl
/* 803A3A38 0039F698 38 60 00 00 */ li r3, 0
-/* 803A3A3C 0039F69C 4B ED CB B9 */ bl func_802805F4
+/* 803A3A3C 0039F69C 4B ED CB B9 */ bl GXSetNumTexGens
/* 803A3A40 0039F6A0 38 60 00 01 */ li r3, 1
/* 803A3A44 0039F6A4 4B EE 07 59 */ bl func_8028419C
/* 803A3A48 0039F6A8 38 60 00 00 */ li r3, 0
@@ -84,11 +84,11 @@ drawLine___Q210homebutton3guiFfffffUcR8_GXColor:
/* 803A3A98 0039F6F8 4B EE 2F F1 */ bl GXLoadPosMtxImm
/* 803A3A9C 0039F6FC 7F C3 F3 78 */ mr r3, r30
/* 803A3AA0 0039F700 38 80 00 00 */ li r4, 0
-/* 803A3AA4 0039F704 4B ED D8 C9 */ bl func_8028136C
+/* 803A3AA4 0039F704 4B ED D8 C9 */ bl GXSetLineWidth
/* 803A3AA8 0039F708 38 60 00 A8 */ li r3, 0xa8
/* 803A3AAC 0039F70C 38 80 00 00 */ li r4, 0
/* 803A3AB0 0039F710 38 A0 00 02 */ li r5, 2
-/* 803A3AB4 0039F714 4B ED D6 95 */ bl func_80281148
+/* 803A3AB4 0039F714 4B ED D6 95 */ bl GXBegin
/* 803A3AB8 0039F718 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 803A3ABC 0039F71C D3 63 80 00 */ stfs f27, 0xCC008000@l(r3)
/* 803A3AC0 0039F720 D3 83 80 00 */ stfs f28, -0x8000(r3)
diff --git a/asm/SDK/MTX/quat.s b/asm/SDK/MTX/quat.s
index 189aad0..bcb16e1 100644
--- a/asm/SDK/MTX/quat.s
+++ b/asm/SDK/MTX/quat.s
@@ -28,9 +28,8 @@ PSQUATMultiply:
/* 8027D078 00278CD8 F0 A5 00 08 */ psq_st f5, 8(r5), 0, qr0
/* 8027D07C 00278CDC 4E 80 00 20 */ blr
-# either PSQUATNormalize or PSQUATInverse
-.global func_8027D080
-func_8027D080:
+.global PSQUATInverse
+PSQUATInverse:
/* 8027D080 00278CE0 E0 03 00 00 */ psq_l f0, 0(r3), 0, qr0
/* 8027D084 00278CE4 C0 A2 A0 B8 */ lfs f5, lbl_806426B8-_SDA2_BASE_(r2)
/* 8027D088 00278CE8 10 40 00 32 */ ps_mul f2, f0, f0
@@ -65,7 +64,7 @@ PSQUATDivide:
/* 8027D0EC 00278D4C 7C 7E 1B 78 */ mr r30, r3
/* 8027D0F0 00278D50 7C 83 23 78 */ mr r3, r4
/* 8027D0F4 00278D54 38 81 00 08 */ addi r4, r1, 8
-/* 8027D0F8 00278D58 4B FF FF 89 */ bl func_8027D080
+/* 8027D0F8 00278D58 4B FF FF 89 */ bl PSQUATInverse
/* 8027D0FC 00278D5C 7F C4 F3 78 */ mr r4, r30
/* 8027D100 00278D60 7F E5 FB 78 */ mr r5, r31
/* 8027D104 00278D64 38 61 00 08 */ addi r3, r1, 8
diff --git a/asm/SDK/OS/OSFatal.s b/asm/SDK/OS/OSFatal.s
index 48724b9..f497fed 100644
--- a/asm/SDK/OS/OSFatal.s
+++ b/asm/SDK/OS/OSFatal.s
@@ -391,7 +391,7 @@ lbl_8026D3E8:
/* 8026D3FC 0026905C 38 60 00 08 */ li r3, 8
/* 8026D400 00269060 38 84 95 94 */ addi r4, r4, OSDefaultExceptionHandler@l
/* 8026D404 00269064 4B FF C0 D1 */ bl __OSSetExceptionHandler
-/* 8026D408 00269068 48 01 34 91 */ bl func_80280898
+/* 8026D408 00269068 48 01 34 91 */ bl GXAbortFrame
/* 8026D40C 0026906C 3C 60 81 40 */ lis r3, 0x8140
/* 8026D410 00269070 4B FF CD 15 */ bl OSSetArenaLo
/* 8026D414 00269074 3C 60 80 00 */ lis r3, 0x80000038@ha