prime/asm/Kyoto/Graphics/CGX.s

1468 lines
71 KiB
ArmAsm

.include "macros.inc"
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CGX_cpp
.section .bss
.balign 8
.lcomm sVtxDescList, 0xF0, 4
.comm sGXState__3CGX, 0x260, 4
.section .sbss2, "", @nobits
.balign 8
# CGX
.global lbl_805AF4A0
lbl_805AF4A0:
.skip 0x8
.section .text, "ax"
.global GetFog__3CGXFP10_GXFogTypePfPfPfPfP8_GXColor
GetFog__3CGXFP10_GXFogTypePfPfPfPfP8_GXColor:
/* 80307BBC 00304B1C 28 03 00 00 */ cmplwi r3, 0
/* 80307BC0 00304B20 41 82 00 14 */ beq lbl_80307BD4
/* 80307BC4 00304B24 3D 20 80 5A */ lis r9, sGXState__3CGX@ha
/* 80307BC8 00304B28 39 29 53 EC */ addi r9, r9, sGXState__3CGX@l
/* 80307BCC 00304B2C 88 09 00 53 */ lbz r0, 0x53(r9)
/* 80307BD0 00304B30 90 03 00 00 */ stw r0, 0(r3)
lbl_80307BD4:
/* 80307BD4 00304B34 28 04 00 00 */ cmplwi r4, 0
/* 80307BD8 00304B38 41 82 00 14 */ beq lbl_80307BEC
/* 80307BDC 00304B3C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307BE0 00304B40 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80307BE4 00304B44 C0 03 02 4C */ lfs f0, 0x24c(r3)
/* 80307BE8 00304B48 D0 04 00 00 */ stfs f0, 0(r4)
lbl_80307BEC:
/* 80307BEC 00304B4C 28 05 00 00 */ cmplwi r5, 0
/* 80307BF0 00304B50 41 82 00 14 */ beq lbl_80307C04
/* 80307BF4 00304B54 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307BF8 00304B58 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80307BFC 00304B5C C0 03 02 50 */ lfs f0, 0x250(r3)
/* 80307C00 00304B60 D0 05 00 00 */ stfs f0, 0(r5)
lbl_80307C04:
/* 80307C04 00304B64 28 06 00 00 */ cmplwi r6, 0
/* 80307C08 00304B68 41 82 00 14 */ beq lbl_80307C1C
/* 80307C0C 00304B6C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307C10 00304B70 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80307C14 00304B74 C0 03 02 54 */ lfs f0, 0x254(r3)
/* 80307C18 00304B78 D0 06 00 00 */ stfs f0, 0(r6)
lbl_80307C1C:
/* 80307C1C 00304B7C 28 07 00 00 */ cmplwi r7, 0
/* 80307C20 00304B80 41 82 00 14 */ beq lbl_80307C34
/* 80307C24 00304B84 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307C28 00304B88 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80307C2C 00304B8C C0 03 02 58 */ lfs f0, 0x258(r3)
/* 80307C30 00304B90 D0 07 00 00 */ stfs f0, 0(r7)
lbl_80307C34:
/* 80307C34 00304B94 28 08 00 00 */ cmplwi r8, 0
/* 80307C38 00304B98 4D 82 00 20 */ beqlr
/* 80307C3C 00304B9C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307C40 00304BA0 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80307C44 00304BA4 80 03 02 5C */ lwz r0, 0x25c(r3)
/* 80307C48 00304BA8 90 08 00 00 */ stw r0, 0(r8)
/* 80307C4C 00304BAC 4E 80 00 20 */ blr
.global SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID
SetStandardTevColorAlphaOp__3CGXF13_GXTevStageID:
/* 80307C50 00304BB0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307C54 00304BB4 7C 08 02 A6 */ mflr r0
/* 80307C58 00304BB8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307C5C 00304BBC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80307C60 00304BC0 7C 7F 1B 78 */ mr r31, r3
/* 80307C64 00304BC4 1C 9F 00 1C */ mulli r4, r31, 0x1c
/* 80307C68 00304BC8 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307C6C 00304BCC 38 03 53 EC */ addi r0, r3, sGXState__3CGX@l
/* 80307C70 00304BD0 7C 60 22 14 */ add r3, r0, r4
/* 80307C74 00304BD4 80 03 00 70 */ lwz r0, 0x70(r3)
/* 80307C78 00304BD8 38 E3 00 68 */ addi r7, r3, 0x68
/* 80307C7C 00304BDC 28 00 01 00 */ cmplwi r0, 0x100
/* 80307C80 00304BE0 40 82 00 10 */ bne lbl_80307C90
/* 80307C84 00304BE4 80 07 00 0C */ lwz r0, 0xc(r7)
/* 80307C88 00304BE8 28 00 01 00 */ cmplwi r0, 0x100
/* 80307C8C 00304BEC 41 82 00 48 */ beq lbl_80307CD4
lbl_80307C90:
/* 80307C90 00304BF0 38 00 01 00 */ li r0, 0x100
/* 80307C94 00304BF4 7F E3 FB 78 */ mr r3, r31
/* 80307C98 00304BF8 90 07 00 0C */ stw r0, 0xc(r7)
/* 80307C9C 00304BFC 38 80 00 00 */ li r4, 0
/* 80307CA0 00304C00 38 A0 00 00 */ li r5, 0
/* 80307CA4 00304C04 38 C0 00 00 */ li r6, 0
/* 80307CA8 00304C08 90 07 00 08 */ stw r0, 8(r7)
/* 80307CAC 00304C0C 38 E0 00 01 */ li r7, 1
/* 80307CB0 00304C10 39 00 00 00 */ li r8, 0
/* 80307CB4 00304C14 48 07 38 79 */ bl GXSetTevColorOp
/* 80307CB8 00304C18 7F E3 FB 78 */ mr r3, r31
/* 80307CBC 00304C1C 38 80 00 00 */ li r4, 0
/* 80307CC0 00304C20 38 A0 00 00 */ li r5, 0
/* 80307CC4 00304C24 38 C0 00 00 */ li r6, 0
/* 80307CC8 00304C28 38 E0 00 01 */ li r7, 1
/* 80307CCC 00304C2C 39 00 00 00 */ li r8, 0
/* 80307CD0 00304C30 48 07 38 C5 */ bl GXSetTevAlphaOp
lbl_80307CD4:
/* 80307CD4 00304C34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307CD8 00304C38 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80307CDC 00304C3C 7C 08 03 A6 */ mtlr r0
/* 80307CE0 00304C40 38 21 00 10 */ addi r1, r1, 0x10
/* 80307CE4 00304C44 4E 80 00 20 */ blr
.global SetStandardDirectTev_Compressed__3CGXF13_GXTevStageIDUiUiUiUi
SetStandardDirectTev_Compressed__3CGXF13_GXTevStageIDUiUiUiUi:
/* 80307CE8 00304C48 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80307CEC 00304C4C 7C 08 02 A6 */ mflr r0
/* 80307CF0 00304C50 3D 00 80 5A */ lis r8, sGXState__3CGX@ha
/* 80307CF4 00304C54 90 01 00 24 */ stw r0, 0x24(r1)
/* 80307CF8 00304C58 38 08 53 EC */ addi r0, r8, sGXState__3CGX@l
/* 80307CFC 00304C5C BF 41 00 08 */ stmw r26, 8(r1)
/* 80307D00 00304C60 7C 7A 1B 78 */ mr r26, r3
/* 80307D04 00304C64 1D 3A 00 1C */ mulli r9, r26, 0x1c
/* 80307D08 00304C68 7C 9B 23 78 */ mr r27, r4
/* 80307D0C 00304C6C 7C BC 2B 78 */ mr r28, r5
/* 80307D10 00304C70 7C DD 33 78 */ mr r29, r6
/* 80307D14 00304C74 7C 80 4A 14 */ add r4, r0, r9
/* 80307D18 00304C78 7C FE 3B 78 */ mr r30, r7
/* 80307D1C 00304C7C 3B E4 00 68 */ addi r31, r4, 0x68
/* 80307D20 00304C80 80 04 00 78 */ lwz r0, 0x78(r4)
/* 80307D24 00304C84 28 00 00 00 */ cmplwi r0, 0
/* 80307D28 00304C88 41 82 00 10 */ beq lbl_80307D38
/* 80307D2C 00304C8C 38 00 00 00 */ li r0, 0
/* 80307D30 00304C90 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80307D34 00304C94 48 07 35 AD */ bl GXSetTevDirect
lbl_80307D38:
/* 80307D38 00304C98 80 1F 00 00 */ lwz r0, 0(r31)
/* 80307D3C 00304C9C 7C 00 D8 40 */ cmplw r0, r27
/* 80307D40 00304CA0 41 82 00 20 */ beq lbl_80307D60
/* 80307D44 00304CA4 93 7F 00 00 */ stw r27, 0(r31)
/* 80307D48 00304CA8 7F 43 D3 78 */ mr r3, r26
/* 80307D4C 00304CAC 57 64 06 FE */ clrlwi r4, r27, 0x1b
/* 80307D50 00304CB0 57 65 DE FE */ rlwinm r5, r27, 0x1b, 0x1b, 0x1f
/* 80307D54 00304CB4 57 66 B6 FE */ rlwinm r6, r27, 0x16, 0x1b, 0x1f
/* 80307D58 00304CB8 57 67 8E FE */ rlwinm r7, r27, 0x11, 0x1b, 0x1f
/* 80307D5C 00304CBC 48 07 37 49 */ bl GXSetTevColorIn
lbl_80307D60:
/* 80307D60 00304CC0 80 1F 00 04 */ lwz r0, 4(r31)
/* 80307D64 00304CC4 7C 00 E0 40 */ cmplw r0, r28
/* 80307D68 00304CC8 41 82 00 20 */ beq lbl_80307D88
/* 80307D6C 00304CCC 93 9F 00 04 */ stw r28, 4(r31)
/* 80307D70 00304CD0 7F 43 D3 78 */ mr r3, r26
/* 80307D74 00304CD4 57 84 06 FE */ clrlwi r4, r28, 0x1b
/* 80307D78 00304CD8 57 85 DE FE */ rlwinm r5, r28, 0x1b, 0x1b, 0x1f
/* 80307D7C 00304CDC 57 86 B6 FE */ rlwinm r6, r28, 0x16, 0x1b, 0x1f
/* 80307D80 00304CE0 57 87 8E FE */ rlwinm r7, r28, 0x11, 0x1b, 0x1f
/* 80307D84 00304CE4 48 07 37 65 */ bl GXSetTevAlphaIn
lbl_80307D88:
/* 80307D88 00304CE8 7C 1D F0 40 */ cmplw r29, r30
/* 80307D8C 00304CEC 40 82 00 10 */ bne lbl_80307D9C
/* 80307D90 00304CF0 57 A0 05 FE */ clrlwi r0, r29, 0x17
/* 80307D94 00304CF4 28 00 01 00 */ cmplwi r0, 0x100
/* 80307D98 00304CF8 41 82 00 20 */ beq lbl_80307DB8
lbl_80307D9C:
/* 80307D9C 00304CFC 7F 43 D3 78 */ mr r3, r26
/* 80307DA0 00304D00 7F A4 EB 78 */ mr r4, r29
/* 80307DA4 00304D04 48 00 0D 39 */ bl SetTevColorOp_Compressed__3CGXF13_GXTevStageIDUi
/* 80307DA8 00304D08 7F 43 D3 78 */ mr r3, r26
/* 80307DAC 00304D0C 7F C4 F3 78 */ mr r4, r30
/* 80307DB0 00304D10 48 00 0C 75 */ bl SetTevAlphaOp_Compressed__3CGXF13_GXTevStageIDUi
/* 80307DB4 00304D14 48 00 00 60 */ b lbl_80307E14
lbl_80307DB8:
/* 80307DB8 00304D18 80 1F 00 08 */ lwz r0, 8(r31)
/* 80307DBC 00304D1C 7C 1D 00 40 */ cmplw r29, r0
/* 80307DC0 00304D20 40 82 00 10 */ bne lbl_80307DD0
/* 80307DC4 00304D24 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80307DC8 00304D28 7C 1D 00 40 */ cmplw r29, r0
/* 80307DCC 00304D2C 41 82 00 48 */ beq lbl_80307E14
lbl_80307DD0:
/* 80307DD0 00304D30 93 BF 00 0C */ stw r29, 0xc(r31)
/* 80307DD4 00304D34 57 BE BF BE */ rlwinm r30, r29, 0x17, 0x1e, 0x1f
/* 80307DD8 00304D38 7F 43 D3 78 */ mr r3, r26
/* 80307DDC 00304D3C 38 80 00 00 */ li r4, 0
/* 80307DE0 00304D40 93 BF 00 08 */ stw r29, 8(r31)
/* 80307DE4 00304D44 7F C8 F3 78 */ mr r8, r30
/* 80307DE8 00304D48 38 A0 00 00 */ li r5, 0
/* 80307DEC 00304D4C 38 C0 00 00 */ li r6, 0
/* 80307DF0 00304D50 38 E0 00 01 */ li r7, 1
/* 80307DF4 00304D54 48 07 37 39 */ bl GXSetTevColorOp
/* 80307DF8 00304D58 7F 43 D3 78 */ mr r3, r26
/* 80307DFC 00304D5C 7F C8 F3 78 */ mr r8, r30
/* 80307E00 00304D60 38 80 00 00 */ li r4, 0
/* 80307E04 00304D64 38 A0 00 00 */ li r5, 0
/* 80307E08 00304D68 38 C0 00 00 */ li r6, 0
/* 80307E0C 00304D6C 38 E0 00 01 */ li r7, 1
/* 80307E10 00304D70 48 07 37 85 */ bl GXSetTevAlphaOp
lbl_80307E14:
/* 80307E14 00304D74 BB 41 00 08 */ lmw r26, 8(r1)
/* 80307E18 00304D78 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80307E1C 00304D7C 7C 08 03 A6 */ mtlr r0
/* 80307E20 00304D80 38 21 00 20 */ addi r1, r1, 0x20
/* 80307E24 00304D84 4E 80 00 20 */ blr
.global SetVtxDescv__3CGXFPC14_GXVtxDescList
SetVtxDescv__3CGXFPC14_GXVtxDescList:
/* 80307E28 00304D88 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307E2C 00304D8C 7C 08 02 A6 */ mflr r0
/* 80307E30 00304D90 38 C0 00 00 */ li r6, 0
/* 80307E34 00304D94 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307E38 00304D98 48 00 00 20 */ b lbl_80307E58
lbl_80307E3C:
/* 80307E3C 00304D9C 80 83 00 04 */ lwz r4, 4(r3)
/* 80307E40 00304DA0 38 05 FF F7 */ addi r0, r5, -9
/* 80307E44 00304DA4 54 00 08 3C */ slwi r0, r0, 1
/* 80307E48 00304DA8 38 63 00 08 */ addi r3, r3, 8
/* 80307E4C 00304DAC 54 84 07 BE */ clrlwi r4, r4, 0x1e
/* 80307E50 00304DB0 7C 80 00 30 */ slw r0, r4, r0
/* 80307E54 00304DB4 7C C6 03 78 */ or r6, r6, r0
lbl_80307E58:
/* 80307E58 00304DB8 80 A3 00 00 */ lwz r5, 0(r3)
/* 80307E5C 00304DBC 2C 05 00 FF */ cmpwi r5, 0xff
/* 80307E60 00304DC0 40 82 FF DC */ bne lbl_80307E3C
/* 80307E64 00304DC4 7C C3 33 78 */ mr r3, r6
/* 80307E68 00304DC8 48 00 00 95 */ bl SetVtxDescv_Compressed__3CGXFUi
/* 80307E6C 00304DCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307E70 00304DD0 7C 08 03 A6 */ mtlr r0
/* 80307E74 00304DD4 38 21 00 10 */ addi r1, r1, 0x10
/* 80307E78 00304DD8 4E 80 00 20 */ blr
.global ResetVtxDescv__3CGXFv
ResetVtxDescv__3CGXFv:
/* 80307E7C 00304DDC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307E80 00304DE0 7C 08 02 A6 */ mflr r0
/* 80307E84 00304DE4 3C 60 80 3D */ lis r3, lbl_803D73B8@ha
/* 80307E88 00304DE8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307E8C 00304DEC 38 63 73 B8 */ addi r3, r3, lbl_803D73B8@l
/* 80307E90 00304DF0 4B FF FF 99 */ bl SetVtxDescv__3CGXFPC14_GXVtxDescList
/* 80307E94 00304DF4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307E98 00304DF8 7C 08 03 A6 */ mtlr r0
/* 80307E9C 00304DFC 38 21 00 10 */ addi r1, r1, 0x10
/* 80307EA0 00304E00 4E 80 00 20 */ blr
.global SetVtxDesc__3CGXF7_GXAttr11_GXAttrType
SetVtxDesc__3CGXF7_GXAttr11_GXAttrType:
/* 80307EA4 00304E04 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307EA8 00304E08 7C 08 02 A6 */ mflr r0
/* 80307EAC 00304E0C 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80307EB0 00304E10 38 C3 FF F7 */ addi r6, r3, -9
/* 80307EB4 00304E14 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307EB8 00304E18 38 A5 53 EC */ addi r5, r5, sGXState__3CGX@l
/* 80307EBC 00304E1C 54 C7 08 3C */ slwi r7, r6, 1
/* 80307EC0 00304E20 38 00 00 03 */ li r0, 3
/* 80307EC4 00304E24 80 C5 00 48 */ lwz r6, 0x48(r5)
/* 80307EC8 00304E28 7C 08 38 30 */ slw r8, r0, r7
/* 80307ECC 00304E2C 7C 87 38 30 */ slw r7, r4, r7
/* 80307ED0 00304E30 7C C0 40 38 */ and r0, r6, r8
/* 80307ED4 00304E34 7C 07 00 40 */ cmplw r7, r0
/* 80307ED8 00304E38 41 82 00 14 */ beq lbl_80307EEC
/* 80307EDC 00304E3C 7C C0 40 78 */ andc r0, r6, r8
/* 80307EE0 00304E40 7C E0 03 78 */ or r0, r7, r0
/* 80307EE4 00304E44 90 05 00 48 */ stw r0, 0x48(r5)
/* 80307EE8 00304E48 48 06 F0 31 */ bl GXSetVtxDesc
lbl_80307EEC:
/* 80307EEC 00304E4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307EF0 00304E50 7C 08 03 A6 */ mtlr r0
/* 80307EF4 00304E54 38 21 00 10 */ addi r1, r1, 0x10
/* 80307EF8 00304E58 4E 80 00 20 */ blr
.global SetVtxDescv_Compressed__3CGXFUi
SetVtxDescv_Compressed__3CGXFUi:
/* 80307EFC 00304E5C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307F00 00304E60 7C 08 02 A6 */ mflr r0
/* 80307F04 00304E64 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80307F08 00304E68 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307F0C 00304E6C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80307F10 00304E70 7C 7F 1B 78 */ mr r31, r3
/* 80307F14 00304E74 93 C1 00 08 */ stw r30, 8(r1)
/* 80307F18 00304E78 3B C4 53 EC */ addi r30, r4, sGXState__3CGX@l
/* 80307F1C 00304E7C 80 BE 00 48 */ lwz r5, 0x48(r30)
/* 80307F20 00304E80 7C 1F 28 40 */ cmplw r31, r5
/* 80307F24 00304E84 41 82 00 7C */ beq lbl_80307FA0
/* 80307F28 00304E88 3C 60 80 48 */ lis r3, sVtxDescList@ha
/* 80307F2C 00304E8C 38 00 00 0B */ li r0, 0xb
/* 80307F30 00304E90 38 63 9B D0 */ addi r3, r3, sVtxDescList@l
/* 80307F34 00304E94 39 00 00 00 */ li r8, 0
/* 80307F38 00304E98 7C 67 1B 78 */ mr r7, r3
/* 80307F3C 00304E9C 38 C0 00 00 */ li r6, 0
/* 80307F40 00304EA0 38 80 00 03 */ li r4, 3
/* 80307F44 00304EA4 7C 09 03 A6 */ mtctr r0
lbl_80307F48:
/* 80307F48 00304EA8 7C 80 30 30 */ slw r0, r4, r6
/* 80307F4C 00304EAC 7F E3 00 38 */ and r3, r31, r0
/* 80307F50 00304EB0 7C A0 00 38 */ and r0, r5, r0
/* 80307F54 00304EB4 7C 03 00 40 */ cmplw r3, r0
/* 80307F58 00304EB8 41 82 00 1C */ beq lbl_80307F74
/* 80307F5C 00304EBC 38 68 00 09 */ addi r3, r8, 9
/* 80307F60 00304EC0 7F E0 34 30 */ srw r0, r31, r6
/* 80307F64 00304EC4 90 67 00 00 */ stw r3, 0(r7)
/* 80307F68 00304EC8 54 00 07 BE */ clrlwi r0, r0, 0x1e
/* 80307F6C 00304ECC 90 07 00 04 */ stw r0, 4(r7)
/* 80307F70 00304ED0 38 E7 00 08 */ addi r7, r7, 8
lbl_80307F74:
/* 80307F74 00304ED4 38 C6 00 02 */ addi r6, r6, 2
/* 80307F78 00304ED8 39 08 00 01 */ addi r8, r8, 1
/* 80307F7C 00304EDC 42 00 FF CC */ bdnz lbl_80307F48
/* 80307F80 00304EE0 38 00 00 FF */ li r0, 0xff
/* 80307F84 00304EE4 3C 60 80 48 */ lis r3, sVtxDescList@ha
/* 80307F88 00304EE8 90 07 00 00 */ stw r0, 0(r7)
/* 80307F8C 00304EEC 38 00 00 00 */ li r0, 0
/* 80307F90 00304EF0 38 63 9B D0 */ addi r3, r3, sVtxDescList@l
/* 80307F94 00304EF4 90 07 00 04 */ stw r0, 4(r7)
/* 80307F98 00304EF8 48 06 F2 D1 */ bl GXSetVtxDescv
/* 80307F9C 00304EFC 93 FE 00 48 */ stw r31, 0x48(r30)
lbl_80307FA0:
/* 80307FA0 00304F00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307FA4 00304F04 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80307FA8 00304F08 83 C1 00 08 */ lwz r30, 8(r1)
/* 80307FAC 00304F0C 7C 08 03 A6 */ mtlr r0
/* 80307FB0 00304F10 38 21 00 10 */ addi r1, r1, 0x10
/* 80307FB4 00304F14 4E 80 00 20 */ blr
.global SetIndTexMtxSTPointFive__3CGXF14_GXIndTexMtxIDSc
SetIndTexMtxSTPointFive__3CGXF14_GXIndTexMtxIDSc:
/* 80307FB8 00304F18 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307FBC 00304F1C 7C 08 02 A6 */ mflr r0
/* 80307FC0 00304F20 3C C0 80 3D */ lis r6, lbl_803D73A0@ha
/* 80307FC4 00304F24 7C 85 23 78 */ mr r5, r4
/* 80307FC8 00304F28 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307FCC 00304F2C 38 86 73 A0 */ addi r4, r6, lbl_803D73A0@l
/* 80307FD0 00304F30 48 07 2E F9 */ bl GXSetIndTexMtx
/* 80307FD4 00304F34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80307FD8 00304F38 7C 08 03 A6 */ mtlr r0
/* 80307FDC 00304F3C 38 21 00 10 */ addi r1, r1, 0x10
/* 80307FE0 00304F40 4E 80 00 20 */ blr
.global FlushState__3CGXFv
FlushState__3CGXFv:
/* 80307FE4 00304F44 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80307FE8 00304F48 7C 08 02 A6 */ mflr r0
/* 80307FEC 00304F4C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80307FF0 00304F50 90 01 00 14 */ stw r0, 0x14(r1)
/* 80307FF4 00304F54 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80307FF8 00304F58 3B E3 53 EC */ addi r31, r3, sGXState__3CGX@l
/* 80307FFC 00304F5C 93 C1 00 08 */ stw r30, 8(r1)
/* 80308000 00304F60 88 1F 00 4C */ lbz r0, 0x4c(r31)
/* 80308004 00304F64 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80308008 00304F68 41 82 00 1C */ beq lbl_80308024
/* 8030800C 00304F6C 88 7F 00 4E */ lbz r3, 0x4e(r31)
/* 80308010 00304F70 48 07 1B 21 */ bl GXSetNumChans
/* 80308014 00304F74 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80308018 00304F78 88 1F 00 4E */ lbz r0, 0x4e(r31)
/* 8030801C 00304F7C 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80308020 00304F80 98 03 00 4D */ stb r0, 0x4d(r3)
lbl_80308024:
/* 80308024 00304F84 88 1F 00 4C */ lbz r0, 0x4c(r31)
/* 80308028 00304F88 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8030802C 00304F8C 41 82 00 40 */ beq lbl_8030806C
/* 80308030 00304F90 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308034 00304F94 38 60 00 00 */ li r3, 0
/* 80308038 00304F98 3B C4 53 EC */ addi r30, r4, sGXState__3CGX@l
/* 8030803C 00304F9C A0 1E 00 34 */ lhz r0, 0x34(r30)
/* 80308040 00304FA0 54 07 EE 3E */ rlwinm r7, r0, 0x1d, 0x18, 0x1f
/* 80308044 00304FA4 54 04 07 FE */ clrlwi r4, r0, 0x1f
/* 80308048 00304FA8 54 05 FF FE */ rlwinm r5, r0, 0x1f, 0x1f, 0x1f
/* 8030804C 00304FAC 54 06 F7 FE */ rlwinm r6, r0, 0x1e, 0x1f, 0x1f
/* 80308050 00304FB0 54 08 AF BE */ rlwinm r8, r0, 0x15, 0x1e, 0x1f
/* 80308054 00304FB4 54 09 9F BE */ rlwinm r9, r0, 0x13, 0x1e, 0x1f
/* 80308058 00304FB8 48 07 1B 1D */ bl GXSetChanCtrl
/* 8030805C 00304FBC 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80308060 00304FC0 A0 1E 00 34 */ lhz r0, 0x34(r30)
/* 80308064 00304FC4 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80308068 00304FC8 B0 03 00 30 */ sth r0, 0x30(r3)
lbl_8030806C:
/* 8030806C 00304FCC 88 1F 00 4C */ lbz r0, 0x4c(r31)
/* 80308070 00304FD0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80308074 00304FD4 41 82 00 40 */ beq lbl_803080B4
/* 80308078 00304FD8 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 8030807C 00304FDC 38 60 00 01 */ li r3, 1
/* 80308080 00304FE0 3B C4 53 EC */ addi r30, r4, sGXState__3CGX@l
/* 80308084 00304FE4 A0 1E 00 36 */ lhz r0, 0x36(r30)
/* 80308088 00304FE8 54 07 EE 3E */ rlwinm r7, r0, 0x1d, 0x18, 0x1f
/* 8030808C 00304FEC 54 04 07 FE */ clrlwi r4, r0, 0x1f
/* 80308090 00304FF0 54 05 FF FE */ rlwinm r5, r0, 0x1f, 0x1f, 0x1f
/* 80308094 00304FF4 54 06 F7 FE */ rlwinm r6, r0, 0x1e, 0x1f, 0x1f
/* 80308098 00304FF8 54 08 AF BE */ rlwinm r8, r0, 0x15, 0x1e, 0x1f
/* 8030809C 00304FFC 54 09 9F BE */ rlwinm r9, r0, 0x13, 0x1e, 0x1f
/* 803080A0 00305000 48 07 1A D5 */ bl GXSetChanCtrl
/* 803080A4 00305004 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 803080A8 00305008 A0 1E 00 36 */ lhz r0, 0x36(r30)
/* 803080AC 0030500C 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 803080B0 00305010 B0 03 00 32 */ sth r0, 0x32(r3)
lbl_803080B4:
/* 803080B4 00305014 38 00 00 00 */ li r0, 0
/* 803080B8 00305018 98 1F 00 4C */ stb r0, 0x4c(r31)
/* 803080BC 0030501C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803080C0 00305020 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803080C4 00305024 83 C1 00 08 */ lwz r30, 8(r1)
/* 803080C8 00305028 7C 08 03 A6 */ mtlr r0
/* 803080CC 0030502C 38 21 00 10 */ addi r1, r1, 0x10
/* 803080D0 00305030 4E 80 00 20 */ blr
.global ResetGXStatesFull__3CGXFv
ResetGXStatesFull__3CGXFv:
/* 803080D4 00305034 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803080D8 00305038 7C 08 02 A6 */ mflr r0
/* 803080DC 0030503C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 803080E0 00305040 34 63 53 EC */ addic. r3, r3, sGXState__3CGX@l
/* 803080E4 00305044 90 01 00 14 */ stw r0, 0x14(r1)
/* 803080E8 00305048 41 82 00 08 */ beq lbl_803080F0
/* 803080EC 0030504C 48 00 01 B1 */ bl __ct__Q23CGX8SGXStateFv
lbl_803080F0:
/* 803080F0 00305050 48 00 00 15 */ bl ResetGXStates__3CGXFv
/* 803080F4 00305054 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803080F8 00305058 7C 08 03 A6 */ mtlr r0
/* 803080FC 0030505C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308100 00305060 4E 80 00 20 */ blr
.global ResetGXStates__3CGXFv
ResetGXStates__3CGXFv:
/* 80308104 00305064 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80308108 00305068 7C 08 02 A6 */ mflr r0
/* 8030810C 0030506C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80308110 00305070 90 01 00 24 */ stw r0, 0x24(r1)
/* 80308114 00305074 38 00 00 00 */ li r0, 0
/* 80308118 00305078 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 8030811C 0030507C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80308120 00305080 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80308124 00305084 90 03 00 48 */ stw r0, 0x48(r3)
/* 80308128 00305088 48 06 F6 2D */ bl GXClearVtxDesc
/* 8030812C 0030508C 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80308130 00305090 38 00 00 01 */ li r0, 1
/* 80308134 00305094 3B E3 53 EC */ addi r31, r3, sGXState__3CGX@l
/* 80308138 00305098 3B C0 00 00 */ li r30, 0
/* 8030813C 0030509C 90 1F 00 00 */ stw r0, 0(r31)
/* 80308140 003050A0 90 1F 00 04 */ stw r0, 4(r31)
/* 80308144 003050A4 90 1F 00 08 */ stw r0, 8(r31)
/* 80308148 003050A8 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8030814C 003050AC 90 1F 00 10 */ stw r0, 0x10(r31)
/* 80308150 003050B0 90 1F 00 14 */ stw r0, 0x14(r31)
/* 80308154 003050B4 90 1F 00 18 */ stw r0, 0x18(r31)
/* 80308158 003050B8 90 1F 00 1C */ stw r0, 0x1c(r31)
/* 8030815C 003050BC 90 1F 00 20 */ stw r0, 0x20(r31)
/* 80308160 003050C0 90 1F 00 24 */ stw r0, 0x24(r31)
/* 80308164 003050C4 90 1F 00 28 */ stw r0, 0x28(r31)
/* 80308168 003050C8 90 1F 00 2C */ stw r0, 0x2c(r31)
lbl_8030816C:
/* 8030816C 003050CC 7F C3 F3 78 */ mr r3, r30
/* 80308170 003050D0 48 00 5F D9 */ bl InvalidateTexmap__8CTextureF11_GXTexMapID
/* 80308174 003050D4 3B DE 00 01 */ addi r30, r30, 1
/* 80308178 003050D8 2C 1E 00 08 */ cmpwi r30, 8
/* 8030817C 003050DC 41 80 FF F0 */ blt lbl_8030816C
/* 80308180 003050E0 3B C0 00 00 */ li r30, 0
lbl_80308184:
/* 80308184 003050E4 80 1F 00 58 */ lwz r0, 0x58(r31)
/* 80308188 003050E8 7F C3 F3 78 */ mr r3, r30
/* 8030818C 003050EC 38 81 00 08 */ addi r4, r1, 8
/* 80308190 003050F0 90 01 00 08 */ stw r0, 8(r1)
/* 80308194 003050F4 48 07 35 51 */ bl GXSetTevKColor
/* 80308198 003050F8 3B DE 00 01 */ addi r30, r30, 1
/* 8030819C 003050FC 3B FF 00 04 */ addi r31, r31, 4
/* 803081A0 00305100 2C 1E 00 04 */ cmpwi r30, 4
/* 803081A4 00305104 41 80 FF E0 */ blt lbl_80308184
/* 803081A8 00305108 38 60 00 01 */ li r3, 1
/* 803081AC 0030510C 38 80 00 00 */ li r4, 0
/* 803081B0 00305110 38 A0 00 01 */ li r5, 1
/* 803081B4 00305114 38 C0 00 02 */ li r6, 2
/* 803081B8 00305118 38 E0 00 00 */ li r7, 0
/* 803081BC 0030511C 48 07 36 C9 */ bl GXSetTevSwapModeTable
/* 803081C0 00305120 38 60 00 02 */ li r3, 2
/* 803081C4 00305124 38 80 00 00 */ li r4, 0
/* 803081C8 00305128 38 A0 00 01 */ li r5, 1
/* 803081CC 0030512C 38 C0 00 02 */ li r6, 2
/* 803081D0 00305130 38 E0 00 01 */ li r7, 1
/* 803081D4 00305134 48 07 36 B1 */ bl GXSetTevSwapModeTable
/* 803081D8 00305138 38 60 00 03 */ li r3, 3
/* 803081DC 0030513C 38 80 00 00 */ li r4, 0
/* 803081E0 00305140 38 A0 00 01 */ li r5, 1
/* 803081E4 00305144 38 C0 00 02 */ li r6, 2
/* 803081E8 00305148 38 E0 00 02 */ li r7, 2
/* 803081EC 0030514C 48 07 36 99 */ bl GXSetTevSwapModeTable
/* 803081F0 00305150 38 60 00 07 */ li r3, 7
/* 803081F4 00305154 38 80 00 00 */ li r4, 0
/* 803081F8 00305158 38 A0 00 00 */ li r5, 0
/* 803081FC 0030515C 38 C0 00 07 */ li r6, 7
/* 80308200 00305160 38 E0 00 00 */ li r7, 0
/* 80308204 00305164 48 00 06 11 */ bl SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
/* 80308208 00305168 38 60 00 00 */ li r3, 0
/* 8030820C 0030516C 48 07 42 4D */ bl GXSetCurrentMtx
/* 80308210 00305170 38 60 00 00 */ li r3, 0
/* 80308214 00305174 48 00 04 7D */ bl SetNumIndStages__3CGXFUc
/* 80308218 00305178 3B C0 00 00 */ li r30, 0
lbl_8030821C:
/* 8030821C 0030517C 7F C3 F3 78 */ mr r3, r30
/* 80308220 00305180 38 80 00 00 */ li r4, 0
/* 80308224 00305184 38 A0 00 00 */ li r5, 0
/* 80308228 00305188 48 07 2E 01 */ bl GXSetIndTexCoordScale
/* 8030822C 0030518C 3B DE 00 01 */ addi r30, r30, 1
/* 80308230 00305190 2C 1E 00 04 */ cmpwi r30, 4
/* 80308234 00305194 41 80 FF E8 */ blt lbl_8030821C
/* 80308238 00305198 3B C0 00 00 */ li r30, 0
lbl_8030823C:
/* 8030823C 0030519C 7F C3 F3 78 */ mr r3, r30
/* 80308240 003051A0 48 00 05 05 */ bl SetTevDirect__3CGXF13_GXTevStageID
/* 80308244 003051A4 3B DE 00 01 */ addi r30, r30, 1
/* 80308248 003051A8 2C 1E 00 10 */ cmpwi r30, 0x10
/* 8030824C 003051AC 41 80 FF F0 */ blt lbl_8030823C
/* 80308250 003051B0 3B C0 00 00 */ li r30, 0
lbl_80308254:
/* 80308254 003051B4 7F C3 F3 78 */ mr r3, r30
/* 80308258 003051B8 38 80 00 00 */ li r4, 0
/* 8030825C 003051BC 38 A0 00 00 */ li r5, 0
/* 80308260 003051C0 38 C0 00 00 */ li r6, 0
/* 80308264 003051C4 48 07 26 4D */ bl GXSetTexCoordScaleManually
/* 80308268 003051C8 3B DE 00 01 */ addi r30, r30, 1
/* 8030826C 003051CC 2C 1E 00 08 */ cmpwi r30, 8
/* 80308270 003051D0 41 80 FF E4 */ blt lbl_80308254
/* 80308274 003051D4 38 60 00 00 */ li r3, 0
/* 80308278 003051D8 38 80 00 11 */ li r4, 0x11
/* 8030827C 003051DC 38 A0 00 00 */ li r5, 0
/* 80308280 003051E0 48 07 36 F1 */ bl GXSetZTexture
/* 80308284 003051E4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80308288 003051E8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8030828C 003051EC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80308290 003051F0 7C 08 03 A6 */ mtlr r0
/* 80308294 003051F4 38 21 00 20 */ addi r1, r1, 0x20
/* 80308298 003051F8 4E 80 00 20 */ blr
.global __ct__Q23CGX8SGXStateFv
__ct__Q23CGX8SGXStateFv:
/* 8030829C 003051FC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803082A0 00305200 7C 08 02 A6 */ mflr r0
/* 803082A4 00305204 39 20 00 00 */ li r9, 0
/* 803082A8 00305208 39 00 00 FF */ li r8, 0xff
/* 803082AC 0030520C 90 01 00 34 */ stw r0, 0x34(r1)
/* 803082B0 00305210 38 00 00 02 */ li r0, 2
/* 803082B4 00305214 3C A0 00 01 */ lis r5, 0x0000FFFF@ha
/* 803082B8 00305218 38 C0 00 1C */ li r6, 0x1c
/* 803082BC 0030521C BF 41 00 18 */ stmw r26, 0x18(r1)
/* 803082C0 00305220 7C 7F 1B 78 */ mr r31, r3
/* 803082C4 00305224 38 E0 00 10 */ li r7, 0x10
/* 803082C8 00305228 91 23 00 48 */ stw r9, 0x48(r3)
/* 803082CC 0030522C 3C 60 80 31 */ lis r3, __ct__Q23CGX9STevStateFv@ha
/* 803082D0 00305230 38 83 84 88 */ addi r4, r3, __ct__Q23CGX9STevStateFv@l
/* 803082D4 00305234 98 1F 00 4D */ stb r0, 0x4d(r31)
/* 803082D8 00305238 38 05 FF FF */ addi r0, r5, 0x0000FFFF@l
/* 803082DC 0030523C 38 7F 00 68 */ addi r3, r31, 0x68
/* 803082E0 00305240 38 A0 00 00 */ li r5, 0
/* 803082E4 00305244 99 3F 00 4E */ stb r9, 0x4e(r31)
/* 803082E8 00305248 99 1F 00 4F */ stb r8, 0x4f(r31)
/* 803082EC 0030524C 99 1F 00 50 */ stb r8, 0x50(r31)
/* 803082F0 00305250 99 1F 00 51 */ stb r8, 0x51(r31)
/* 803082F4 00305254 99 1F 00 52 */ stb r8, 0x52(r31)
/* 803082F8 00305258 99 3F 00 53 */ stb r9, 0x53(r31)
/* 803082FC 0030525C B0 1F 00 54 */ sth r0, 0x54(r31)
/* 80308300 00305260 B0 1F 00 56 */ sth r0, 0x56(r31)
/* 80308304 00305264 48 08 14 49 */ bl __construct_array
/* 80308308 00305268 3C 80 80 31 */ lis r4, __ct__Q23CGX9STexStateFv@ha
/* 8030830C 0030526C 38 7F 02 28 */ addi r3, r31, 0x228
/* 80308310 00305270 38 84 84 7C */ addi r4, r4, __ct__Q23CGX9STexStateFv@l
/* 80308314 00305274 38 A0 00 00 */ li r5, 0
/* 80308318 00305278 38 C0 00 04 */ li r6, 4
/* 8030831C 0030527C 38 E0 00 08 */ li r7, 8
/* 80308320 00305280 48 08 14 2D */ bl __construct_array
/* 80308324 00305284 38 00 FF FF */ li r0, -1
/* 80308328 00305288 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
/* 8030832C 0030528C 90 1F 02 48 */ stw r0, 0x248(r31)
/* 80308330 00305290 39 63 FF FF */ addi r11, r3, 0x0000FFFF@l
/* 80308334 00305294 C0 02 C7 9C */ lfs f0, lbl_805AE4BC@sda21(r2)
/* 80308338 00305298 38 00 00 00 */ li r0, 0
/* 8030833C 0030529C C0 22 C7 A0 */ lfs f1, lbl_805AE4C0@sda21(r2)
/* 80308340 003052A0 38 60 00 00 */ li r3, 0
/* 80308344 003052A4 D0 1F 02 4C */ stfs f0, 0x24c(r31)
/* 80308348 003052A8 38 80 00 00 */ li r4, 0
/* 8030834C 003052AC C0 02 C7 A4 */ lfs f0, lbl_805AE4C4@sda21(r2)
/* 80308350 003052B0 38 A0 00 00 */ li r5, 0
/* 80308354 003052B4 D0 3F 02 50 */ stfs f1, 0x250(r31)
/* 80308358 003052B8 38 C0 00 00 */ li r6, 0
/* 8030835C 003052BC 38 E0 00 00 */ li r7, 0
/* 80308360 003052C0 39 00 00 00 */ li r8, 0
/* 80308364 003052C4 D0 1F 02 54 */ stfs f0, 0x254(r31)
/* 80308368 003052C8 39 20 00 02 */ li r9, 2
/* 8030836C 003052CC D0 3F 02 58 */ stfs f1, 0x258(r31)
/* 80308370 003052D0 98 1F 02 5F */ stb r0, 0x25f(r31)
/* 80308374 003052D4 98 1F 02 5E */ stb r0, 0x25e(r31)
/* 80308378 003052D8 98 1F 02 5D */ stb r0, 0x25d(r31)
/* 8030837C 003052DC 98 1F 02 5C */ stb r0, 0x25c(r31)
/* 80308380 003052E0 81 42 D7 80 */ lwz r10, lbl_805AF4A0@sda21(r2)
/* 80308384 003052E4 80 02 C7 98 */ lwz r0, lbl_805AE4B8@sda21(r2)
/* 80308388 003052E8 91 41 00 0C */ stw r10, 0xc(r1)
/* 8030838C 003052EC B1 7F 00 30 */ sth r11, 0x30(r31)
/* 80308390 003052F0 89 41 00 0C */ lbz r10, 0xc(r1)
/* 80308394 003052F4 B1 7F 00 34 */ sth r11, 0x34(r31)
/* 80308398 003052F8 8B 81 00 0D */ lbz r28, 0xd(r1)
/* 8030839C 003052FC 99 5F 00 38 */ stb r10, 0x38(r31)
/* 803083A0 00305300 8B 61 00 0E */ lbz r27, 0xe(r1)
/* 803083A4 00305304 90 01 00 08 */ stw r0, 8(r1)
/* 803083A8 00305308 8B 41 00 0F */ lbz r26, 0xf(r1)
/* 803083AC 0030530C 9B 9F 00 39 */ stb r28, 0x39(r31)
/* 803083B0 00305310 88 01 00 08 */ lbz r0, 8(r1)
/* 803083B4 00305314 9B 7F 00 3A */ stb r27, 0x3a(r31)
/* 803083B8 00305318 89 81 00 09 */ lbz r12, 9(r1)
/* 803083BC 0030531C 9B 5F 00 3B */ stb r26, 0x3b(r31)
/* 803083C0 00305320 8B C1 00 0A */ lbz r30, 0xa(r1)
/* 803083C4 00305324 98 1F 00 40 */ stb r0, 0x40(r31)
/* 803083C8 00305328 8B A1 00 0B */ lbz r29, 0xb(r1)
/* 803083CC 0030532C 99 9F 00 41 */ stb r12, 0x41(r31)
/* 803083D0 00305330 9B DF 00 42 */ stb r30, 0x42(r31)
/* 803083D4 00305334 9B BF 00 43 */ stb r29, 0x43(r31)
/* 803083D8 00305338 B1 7F 00 32 */ sth r11, 0x32(r31)
/* 803083DC 0030533C B1 7F 00 36 */ sth r11, 0x36(r31)
/* 803083E0 00305340 99 5F 00 3C */ stb r10, 0x3c(r31)
/* 803083E4 00305344 9B 9F 00 3D */ stb r28, 0x3d(r31)
/* 803083E8 00305348 9B 7F 00 3E */ stb r27, 0x3e(r31)
/* 803083EC 0030534C 9B 5F 00 3F */ stb r26, 0x3f(r31)
/* 803083F0 00305350 98 1F 00 44 */ stb r0, 0x44(r31)
/* 803083F4 00305354 99 9F 00 45 */ stb r12, 0x45(r31)
/* 803083F8 00305358 9B DF 00 46 */ stb r30, 0x46(r31)
/* 803083FC 0030535C 9B BF 00 47 */ stb r29, 0x47(r31)
/* 80308400 00305360 99 5F 00 58 */ stb r10, 0x58(r31)
/* 80308404 00305364 9B 9F 00 59 */ stb r28, 0x59(r31)
/* 80308408 00305368 9B 7F 00 5A */ stb r27, 0x5a(r31)
/* 8030840C 0030536C 9B 5F 00 5B */ stb r26, 0x5b(r31)
/* 80308410 00305370 99 5F 00 5C */ stb r10, 0x5c(r31)
/* 80308414 00305374 9B 9F 00 5D */ stb r28, 0x5d(r31)
/* 80308418 00305378 9B 7F 00 5E */ stb r27, 0x5e(r31)
/* 8030841C 0030537C 9B 5F 00 5F */ stb r26, 0x5f(r31)
/* 80308420 00305380 99 5F 00 60 */ stb r10, 0x60(r31)
/* 80308424 00305384 9B 9F 00 61 */ stb r28, 0x61(r31)
/* 80308428 00305388 9B 7F 00 62 */ stb r27, 0x62(r31)
/* 8030842C 0030538C 9B 5F 00 63 */ stb r26, 0x63(r31)
/* 80308430 00305390 99 5F 00 64 */ stb r10, 0x64(r31)
/* 80308434 00305394 9B 9F 00 65 */ stb r28, 0x65(r31)
/* 80308438 00305398 9B 7F 00 66 */ stb r27, 0x66(r31)
/* 8030843C 0030539C 9B 5F 00 67 */ stb r26, 0x67(r31)
/* 80308440 003053A0 48 00 08 8D */ bl SetChanCtrl__3CGXFQ23CGX10EChannelIdUc11_GXColorSrc11_GXColorSrc10_GXLightID12_GXDiffuseFn9_GXAttnFn
/* 80308444 003053A4 38 60 00 01 */ li r3, 1
/* 80308448 003053A8 38 80 00 00 */ li r4, 0
/* 8030844C 003053AC 38 A0 00 00 */ li r5, 0
/* 80308450 003053B0 38 C0 00 00 */ li r6, 0
/* 80308454 003053B4 38 E0 00 00 */ li r7, 0
/* 80308458 003053B8 39 00 00 00 */ li r8, 0
/* 8030845C 003053BC 39 20 00 02 */ li r9, 2
/* 80308460 003053C0 48 00 08 6D */ bl SetChanCtrl__3CGXFQ23CGX10EChannelIdUc11_GXColorSrc11_GXColorSrc10_GXLightID12_GXDiffuseFn9_GXAttnFn
/* 80308464 003053C4 7F E3 FB 78 */ mr r3, r31
/* 80308468 003053C8 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 8030846C 003053CC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80308470 003053D0 7C 08 03 A6 */ mtlr r0
/* 80308474 003053D4 38 21 00 30 */ addi r1, r1, 0x30
/* 80308478 003053D8 4E 80 00 20 */ blr
.global __ct__Q23CGX9STexStateFv
__ct__Q23CGX9STexStateFv:
/* 8030847C 003053DC 38 00 00 00 */ li r0, 0
/* 80308480 003053E0 90 03 00 00 */ stw r0, 0(r3)
/* 80308484 003053E4 4E 80 00 20 */ blr
.global __ct__Q23CGX9STevStateFv
__ct__Q23CGX9STevStateFv:
/* 80308488 003053E8 38 A0 00 00 */ li r5, 0
/* 8030848C 003053EC 38 80 FF FF */ li r4, -1
/* 80308490 003053F0 90 A3 00 00 */ stw r5, 0(r3)
/* 80308494 003053F4 38 00 00 FF */ li r0, 0xff
/* 80308498 003053F8 90 A3 00 04 */ stw r5, 4(r3)
/* 8030849C 003053FC 90 A3 00 08 */ stw r5, 8(r3)
/* 803084A0 00305400 90 A3 00 0C */ stw r5, 0xc(r3)
/* 803084A4 00305404 90 A3 00 10 */ stw r5, 0x10(r3)
/* 803084A8 00305408 90 83 00 14 */ stw r4, 0x14(r3)
/* 803084AC 0030540C 98 03 00 18 */ stb r0, 0x18(r3)
/* 803084B0 00305410 98 03 00 19 */ stb r0, 0x19(r3)
/* 803084B4 00305414 4E 80 00 20 */ blr
.global SetLineWidth__3CGXFUc12_GXTexOffset
SetLineWidth__3CGXFUc12_GXTexOffset:
/* 803084B8 00305418 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803084BC 0030541C 7C 08 02 A6 */ mflr r0
/* 803084C0 00305420 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 803084C4 00305424 54 86 40 2E */ slwi r6, r4, 8
/* 803084C8 00305428 90 01 00 14 */ stw r0, 0x14(r1)
/* 803084CC 0030542C 38 A5 53 EC */ addi r5, r5, sGXState__3CGX@l
/* 803084D0 00305430 50 66 06 3E */ rlwimi r6, r3, 0, 0x18, 0x1f
/* 803084D4 00305434 A0 05 00 54 */ lhz r0, 0x54(r5)
/* 803084D8 00305438 54 C6 04 3E */ clrlwi r6, r6, 0x10
/* 803084DC 0030543C 7C 06 00 40 */ cmplw r6, r0
/* 803084E0 00305440 41 82 00 0C */ beq lbl_803084EC
/* 803084E4 00305444 B0 C5 00 54 */ sth r6, 0x54(r5)
/* 803084E8 00305448 48 07 05 85 */ bl GXSetLineWidth
lbl_803084EC:
/* 803084EC 0030544C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803084F0 00305450 7C 08 03 A6 */ mtlr r0
/* 803084F4 00305454 38 21 00 10 */ addi r1, r1, 0x10
/* 803084F8 00305458 4E 80 00 20 */ blr
.global SetFog__3CGXF10_GXFogTypeffffRC8_GXColor
SetFog__3CGXF10_GXFogTypeffffRC8_GXColor:
/* 803084FC 0030545C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308500 00305460 7C 08 02 A6 */ mflr r0
/* 80308504 00305464 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308508 00305468 90 01 00 14 */ stw r0, 0x14(r1)
/* 8030850C 0030546C 38 A5 53 EC */ addi r5, r5, sGXState__3CGX@l
/* 80308510 00305470 A0 05 00 56 */ lhz r0, 0x56(r5)
/* 80308514 00305474 80 84 00 00 */ lwz r4, 0(r4)
/* 80308518 00305478 54 00 06 34 */ rlwinm r0, r0, 0, 0x18, 0x1a
/* 8030851C 0030547C 98 65 00 53 */ stb r3, 0x53(r5)
/* 80308520 00305480 2C 00 00 20 */ cmpwi r0, 0x20
/* 80308524 00305484 D0 25 02 4C */ stfs f1, 0x24c(r5)
/* 80308528 00305488 D0 45 02 50 */ stfs f2, 0x250(r5)
/* 8030852C 0030548C D0 65 02 54 */ stfs f3, 0x254(r5)
/* 80308530 00305490 D0 85 02 58 */ stfs f4, 0x258(r5)
/* 80308534 00305494 90 85 02 5C */ stw r4, 0x25c(r5)
/* 80308538 00305498 40 82 00 10 */ bne lbl_80308548
/* 8030853C 0030549C 80 02 8C A8 */ lwz r0, black$localstatic3$apply_fog__3CGXFv@sda21(r2)
/* 80308540 003054A0 90 01 00 0C */ stw r0, 0xc(r1)
/* 80308544 003054A4 48 00 00 08 */ b lbl_8030854C
lbl_80308548:
/* 80308548 003054A8 90 81 00 0C */ stw r4, 0xc(r1)
lbl_8030854C:
/* 8030854C 003054AC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80308550 003054B0 38 81 00 08 */ addi r4, r1, 8
/* 80308554 003054B4 88 65 00 53 */ lbz r3, 0x53(r5)
/* 80308558 003054B8 90 01 00 08 */ stw r0, 8(r1)
/* 8030855C 003054BC C0 25 02 4C */ lfs f1, 0x24c(r5)
/* 80308560 003054C0 C0 45 02 50 */ lfs f2, 0x250(r5)
/* 80308564 003054C4 C0 65 02 54 */ lfs f3, 0x254(r5)
/* 80308568 003054C8 C0 85 02 58 */ lfs f4, 0x258(r5)
/* 8030856C 003054CC 48 07 36 91 */ bl GXSetFog
/* 80308570 003054D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308574 003054D4 7C 08 03 A6 */ mtlr r0
/* 80308578 003054D8 38 21 00 10 */ addi r1, r1, 0x10
/* 8030857C 003054DC 4E 80 00 20 */ blr
.global End__3CGXFv
End__3CGXFv:
/* 80308580 003054E0 4E 80 00 20 */ blr
.global Begin__3CGXF12_GXPrimitive9_GXVtxFmtUs
Begin__3CGXF12_GXPrimitive9_GXVtxFmtUs:
/* 80308584 003054E4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80308588 003054E8 7C 08 02 A6 */ mflr r0
/* 8030858C 003054EC 3C C0 80 5A */ lis r6, sGXState__3CGX@ha
/* 80308590 003054F0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80308594 003054F4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80308598 003054F8 7C BF 2B 78 */ mr r31, r5
/* 8030859C 003054FC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803085A0 00305500 7C 9E 23 78 */ mr r30, r4
/* 803085A4 00305504 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803085A8 00305508 7C 7D 1B 78 */ mr r29, r3
/* 803085AC 0030550C 38 66 53 EC */ addi r3, r6, sGXState__3CGX@l
/* 803085B0 00305510 88 03 00 4C */ lbz r0, 0x4c(r3)
/* 803085B4 00305514 28 00 00 00 */ cmplwi r0, 0
/* 803085B8 00305518 41 82 00 08 */ beq lbl_803085C0
/* 803085BC 0030551C 4B FF FA 29 */ bl FlushState__3CGXFv
lbl_803085C0:
/* 803085C0 00305520 7F A3 EB 78 */ mr r3, r29
/* 803085C4 00305524 7F C4 F3 78 */ mr r4, r30
/* 803085C8 00305528 7F E5 FB 78 */ mr r5, r31
/* 803085CC 0030552C 48 07 03 29 */ bl GXBegin
/* 803085D0 00305530 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803085D4 00305534 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803085D8 00305538 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803085DC 0030553C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803085E0 00305540 7C 08 03 A6 */ mtlr r0
/* 803085E4 00305544 38 21 00 20 */ addi r1, r1, 0x20
/* 803085E8 00305548 4E 80 00 20 */ blr
.global CallDisplayList__3CGXFPCvUl
CallDisplayList__3CGXFPCvUl:
/* 803085EC 0030554C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803085F0 00305550 7C 08 02 A6 */ mflr r0
/* 803085F4 00305554 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 803085F8 00305558 90 01 00 14 */ stw r0, 0x14(r1)
/* 803085FC 0030555C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80308600 00305560 7C 9F 23 78 */ mr r31, r4
/* 80308604 00305564 93 C1 00 08 */ stw r30, 8(r1)
/* 80308608 00305568 7C 7E 1B 78 */ mr r30, r3
/* 8030860C 0030556C 38 65 53 EC */ addi r3, r5, sGXState__3CGX@l
/* 80308610 00305570 88 03 00 4C */ lbz r0, 0x4c(r3)
/* 80308614 00305574 28 00 00 00 */ cmplwi r0, 0
/* 80308618 00305578 41 82 00 08 */ beq lbl_80308620
/* 8030861C 0030557C 4B FF F9 C9 */ bl FlushState__3CGXFv
lbl_80308620:
/* 80308620 00305580 7F C3 F3 78 */ mr r3, r30
/* 80308624 00305584 7F E4 FB 78 */ mr r4, r31
/* 80308628 00305588 48 07 3B AD */ bl GXCallDisplayList
/* 8030862C 0030558C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308630 00305590 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80308634 00305594 83 C1 00 08 */ lwz r30, 8(r1)
/* 80308638 00305598 7C 08 03 A6 */ mtlr r0
/* 8030863C 0030559C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308640 003055A0 4E 80 00 20 */ blr
.global SetArray__3CGXF7_GXAttrPCvUc
SetArray__3CGXF7_GXAttrPCvUc:
/* 80308644 003055A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308648 003055A8 7C 08 02 A6 */ mflr r0
/* 8030864C 003055AC 28 04 00 00 */ cmplwi r4, 0
/* 80308650 003055B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308654 003055B4 38 03 FF F7 */ addi r0, r3, -9
/* 80308658 003055B8 41 82 00 28 */ beq lbl_80308680
/* 8030865C 003055BC 3C C0 80 5A */ lis r6, sGXState__3CGX@ha
/* 80308660 003055C0 54 07 10 3A */ slwi r7, r0, 2
/* 80308664 003055C4 38 C6 53 EC */ addi r6, r6, sGXState__3CGX@l
/* 80308668 003055C8 7C 06 38 2E */ lwzx r0, r6, r7
/* 8030866C 003055CC 7C 00 20 40 */ cmplw r0, r4
/* 80308670 003055D0 40 82 00 08 */ bne lbl_80308678
/* 80308674 003055D4 48 00 00 0C */ b lbl_80308680
lbl_80308678:
/* 80308678 003055D8 7C 86 39 2E */ stwx r4, r6, r7
/* 8030867C 003055DC 48 06 F8 7D */ bl GXSetArray
lbl_80308680:
/* 80308680 003055E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308684 003055E4 7C 08 03 A6 */ mtlr r0
/* 80308688 003055E8 38 21 00 10 */ addi r1, r1, 0x10
/* 8030868C 003055EC 4E 80 00 20 */ blr
.global SetNumIndStages__3CGXFUc
SetNumIndStages__3CGXFUc:
/* 80308690 003055F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308694 003055F4 7C 08 02 A6 */ mflr r0
/* 80308698 003055F8 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 8030869C 003055FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803086A0 00305600 38 A4 53 EC */ addi r5, r4, sGXState__3CGX@l
/* 803086A4 00305604 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 803086A8 00305608 88 85 00 51 */ lbz r4, 0x51(r5)
/* 803086AC 0030560C 7C 04 00 40 */ cmplw r4, r0
/* 803086B0 00305610 41 82 00 0C */ beq lbl_803086BC
/* 803086B4 00305614 98 65 00 51 */ stb r3, 0x51(r5)
/* 803086B8 00305618 48 07 2C 01 */ bl GXSetNumIndStages
lbl_803086BC:
/* 803086BC 0030561C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803086C0 00305620 7C 08 03 A6 */ mtlr r0
/* 803086C4 00305624 38 21 00 10 */ addi r1, r1, 0x10
/* 803086C8 00305628 4E 80 00 20 */ blr
.global SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx
SetTexCoordGen__3CGXF13_GXTexCoordID13_GXTexGenType12_GXTexGenSrc9_GXTexMtxUc11_GXPTTexMtx:
/* 803086CC 0030562C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803086D0 00305630 7C 08 02 A6 */ mflr r0
/* 803086D4 00305634 3D 20 55 55 */ lis r9, 0x55555556@ha
/* 803086D8 00305638 3D 80 80 5A */ lis r12, sGXState__3CGX@ha
/* 803086DC 0030563C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803086E0 00305640 39 49 55 56 */ addi r10, r9, 0x55555556@l
/* 803086E4 00305644 38 06 FF E2 */ addi r0, r6, -30
/* 803086E8 00305648 54 A9 25 F6 */ rlwinm r9, r5, 4, 0x17, 0x1b
/* 803086EC 0030564C 7D 4A 00 96 */ mulhw r10, r10, r0
/* 803086F0 00305650 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803086F4 00305654 54 7F 10 3A */ slwi r31, r3, 2
/* 803086F8 00305658 38 0C 53 EC */ addi r0, r12, sGXState__3CGX@l
/* 803086FC 0030565C 39 68 FF C0 */ addi r11, r8, -64
/* 80308700 00305660 7D 80 FA 14 */ add r12, r0, r31
/* 80308704 00305664 55 40 0F FE */ srwi r0, r10, 0x1f
/* 80308708 00305668 50 89 07 3E */ rlwimi r9, r4, 0, 0x1c, 0x1f
/* 8030870C 0030566C 7C 0A 02 14 */ add r0, r10, r0
/* 80308710 00305670 50 09 4C AC */ rlwimi r9, r0, 9, 0x12, 0x16
/* 80308714 00305674 84 0C 02 28 */ lwzu r0, 0x228(r12)
/* 80308718 00305678 50 E9 74 62 */ rlwimi r9, r7, 0xe, 0x11, 0x11
/* 8030871C 0030567C 51 69 7A E0 */ rlwimi r9, r11, 0xf, 0xb, 0x10
/* 80308720 00305680 7C 00 48 40 */ cmplw r0, r9
/* 80308724 00305684 41 82 00 0C */ beq lbl_80308730
/* 80308728 00305688 91 2C 00 00 */ stw r9, 0(r12)
/* 8030872C 0030568C 48 06 F8 69 */ bl GXSetTexCoordGen2
lbl_80308730:
/* 80308730 00305690 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308734 00305694 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80308738 00305698 7C 08 03 A6 */ mtlr r0
/* 8030873C 0030569C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308740 003056A0 4E 80 00 20 */ blr
.global SetTevDirect__3CGXF13_GXTevStageID
SetTevDirect__3CGXF13_GXTevStageID:
/* 80308744 003056A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308748 003056A8 7C 08 02 A6 */ mflr r0
/* 8030874C 003056AC 1C A3 00 1C */ mulli r5, r3, 0x1c
/* 80308750 003056B0 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308754 003056B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308758 003056B8 38 04 53 EC */ addi r0, r4, sGXState__3CGX@l
/* 8030875C 003056BC 7C 80 2A 14 */ add r4, r0, r5
/* 80308760 003056C0 38 84 00 68 */ addi r4, r4, 0x68
/* 80308764 003056C4 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80308768 003056C8 28 00 00 00 */ cmplwi r0, 0
/* 8030876C 003056CC 41 82 00 10 */ beq lbl_8030877C
/* 80308770 003056D0 38 00 00 00 */ li r0, 0
/* 80308774 003056D4 90 04 00 10 */ stw r0, 0x10(r4)
/* 80308778 003056D8 48 07 2B 69 */ bl GXSetTevDirect
lbl_8030877C:
/* 8030877C 003056DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308780 003056E0 7C 08 03 A6 */ mtlr r0
/* 80308784 003056E4 38 21 00 10 */ addi r1, r1, 0x10
/* 80308788 003056E8 4E 80 00 20 */ blr
.global SetTevIndirect__3CGXF13_GXTevStageID16_GXIndTexStageID15_GXIndTexFormat16_GXIndTexBiasSel14_GXIndTexMtxID13_GXIndTexWrap13_GXIndTexWrapUcUc17_GXIndTexAlphaSel
SetTevIndirect__3CGXF13_GXTevStageID16_GXIndTexStageID15_GXIndTexFormat16_GXIndTexBiasSel14_GXIndTexMtxID13_GXIndTexWrap13_GXIndTexWrapUcUc17_GXIndTexAlphaSel:
/* 8030878C 003056EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80308790 003056F0 7C 08 02 A6 */ mflr r0
/* 80308794 003056F4 54 AB 17 3A */ rlwinm r11, r5, 2, 0x1c, 0x1d
/* 80308798 003056F8 3D 80 80 5A */ lis r12, sGXState__3CGX@ha
/* 8030879C 003056FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 803087A0 00305700 38 0C 53 EC */ addi r0, r12, sGXState__3CGX@l
/* 803087A4 00305704 1D 83 00 1C */ mulli r12, r3, 0x1c
/* 803087A8 00305708 50 8B 07 BE */ rlwimi r11, r4, 0, 0x1e, 0x1f
/* 803087AC 0030570C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803087B0 00305710 50 CB 26 76 */ rlwimi r11, r6, 4, 0x19, 0x1b
/* 803087B4 00305714 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803087B8 00305718 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803087BC 0030571C 7D 80 62 14 */ add r12, r0, r12
/* 803087C0 00305720 8B C1 00 2B */ lbz r30, 0x2b(r1)
/* 803087C4 00305724 39 8C 00 68 */ addi r12, r12, 0x68
/* 803087C8 00305728 50 EB 3D 70 */ rlwimi r11, r7, 7, 0x15, 0x18
/* 803087CC 0030572C 51 0B 5C A8 */ rlwimi r11, r8, 0xb, 0x12, 0x14
/* 803087D0 00305730 80 0C 00 10 */ lwz r0, 0x10(r12)
/* 803087D4 00305734 51 2B 73 E2 */ rlwimi r11, r9, 0xe, 0xf, 0x11
/* 803087D8 00305738 51 4B 8B 9C */ rlwimi r11, r10, 0x11, 0xe, 0xe
/* 803087DC 0030573C 53 CB 93 5A */ rlwimi r11, r30, 0x12, 0xd, 0xd
/* 803087E0 00305740 53 EB 9A D8 */ rlwimi r11, r31, 0x13, 0xb, 0xc
/* 803087E4 00305744 7C 00 58 40 */ cmplw r0, r11
/* 803087E8 00305748 41 82 00 14 */ beq lbl_803087FC
/* 803087EC 0030574C 91 6C 00 10 */ stw r11, 0x10(r12)
/* 803087F0 00305750 93 C1 00 08 */ stw r30, 8(r1)
/* 803087F4 00305754 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803087F8 00305758 48 07 26 35 */ bl GXSetTevIndirect
lbl_803087FC:
/* 803087FC 0030575C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80308800 00305760 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80308804 00305764 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80308808 00305768 7C 08 03 A6 */ mtlr r0
/* 8030880C 0030576C 38 21 00 20 */ addi r1, r1, 0x20
/* 80308810 00305770 4E 80 00 20 */ blr
.global SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc
SetAlphaCompare__3CGXF10_GXCompareUc10_GXAlphaOp10_GXCompareUc:
/* 80308814 00305774 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308818 00305778 7C 08 02 A6 */ mflr r0
/* 8030881C 0030577C 3D 00 80 5A */ lis r8, sGXState__3CGX@ha
/* 80308820 00305780 54 89 1D 78 */ rlwinm r9, r4, 3, 0x15, 0x1c
/* 80308824 00305784 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308828 00305788 39 08 53 EC */ addi r8, r8, sGXState__3CGX@l
/* 8030882C 0030578C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80308830 00305790 7C 7F 1B 78 */ mr r31, r3
/* 80308834 00305794 53 E9 07 7E */ rlwimi r9, r31, 0, 0x1d, 0x1f
/* 80308838 00305798 80 08 02 48 */ lwz r0, 0x248(r8)
/* 8030883C 0030579C 50 A9 5C A8 */ rlwimi r9, r5, 0xb, 0x12, 0x14
/* 80308840 003057A0 50 C9 73 E2 */ rlwimi r9, r6, 0xe, 0xf, 0x11
/* 80308844 003057A4 50 E9 89 DC */ rlwimi r9, r7, 0x11, 7, 0xe
/* 80308848 003057A8 7C 00 48 40 */ cmplw r0, r9
/* 8030884C 003057AC 41 82 00 1C */ beq lbl_80308868
/* 80308850 003057B0 91 28 02 48 */ stw r9, 0x248(r8)
/* 80308854 003057B4 48 07 30 C9 */ bl GXSetAlphaCompare
/* 80308858 003057B8 20 1F 00 07 */ subfic r0, r31, 7
/* 8030885C 003057BC 7C 00 00 34 */ cntlzw r0, r0
/* 80308860 003057C0 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
/* 80308864 003057C4 48 07 37 29 */ bl GXSetZCompLoc
lbl_80308868:
/* 80308868 003057C8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8030886C 003057CC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80308870 003057D0 7C 08 03 A6 */ mtlr r0
/* 80308874 003057D4 38 21 00 10 */ addi r1, r1, 0x10
/* 80308878 003057D8 4E 80 00 20 */ blr
.global SetZMode__3CGXFUc10_GXCompareUc
SetZMode__3CGXFUc10_GXCompareUc:
/* 8030887C 003057DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308880 003057E0 7C 08 02 A6 */ mflr r0
/* 80308884 003057E4 3C C0 80 5A */ lis r6, sGXState__3CGX@ha
/* 80308888 003057E8 54 63 06 3E */ clrlwi r3, r3, 0x18
/* 8030888C 003057EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308890 003057F0 54 A0 0D FC */ rlwinm r0, r5, 1, 0x17, 0x1e
/* 80308894 003057F4 54 87 15 BA */ rlwinm r7, r4, 2, 0x16, 0x1d
/* 80308898 003057F8 38 C6 53 EC */ addi r6, r6, sGXState__3CGX@l
/* 8030889C 003057FC 7C 60 03 78 */ or r0, r3, r0
/* 803088A0 00305800 54 A5 06 3E */ clrlwi r5, r5, 0x18
/* 803088A4 00305804 7C E7 03 78 */ or r7, r7, r0
/* 803088A8 00305808 88 06 00 52 */ lbz r0, 0x52(r6)
/* 803088AC 0030580C 54 E7 06 3E */ clrlwi r7, r7, 0x18
/* 803088B0 00305810 7C 07 00 40 */ cmplw r7, r0
/* 803088B4 00305814 41 82 00 0C */ beq lbl_803088C0
/* 803088B8 00305818 98 E6 00 52 */ stb r7, 0x52(r6)
/* 803088BC 0030581C 48 07 36 9D */ bl GXSetZMode
lbl_803088C0:
/* 803088C0 00305820 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803088C4 00305824 7C 08 03 A6 */ mtlr r0
/* 803088C8 00305828 38 21 00 10 */ addi r1, r1, 0x10
/* 803088CC 0030582C 4E 80 00 20 */ blr
.global SetBlendMode__3CGXF12_GXBlendMode14_GXBlendFactor14_GXBlendFactor10_GXLogicOp
SetBlendMode__3CGXF12_GXBlendMode14_GXBlendFactor14_GXBlendFactor10_GXLogicOp:
/* 803088D0 00305830 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 803088D4 00305834 7C 08 02 A6 */ mflr r0
/* 803088D8 00305838 90 01 00 24 */ stw r0, 0x24(r1)
/* 803088DC 0030583C BF 41 00 08 */ stmw r26, 8(r1)
/* 803088E0 00305840 7C 7A 1B 78 */ mr r26, r3
/* 803088E4 00305844 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 803088E8 00305848 7C 9B 23 78 */ mr r27, r4
/* 803088EC 0030584C 3B E3 53 EC */ addi r31, r3, sGXState__3CGX@l
/* 803088F0 00305850 54 84 16 FA */ rlwinm r4, r4, 2, 0x1b, 0x1d
/* 803088F4 00305854 7C BC 2B 78 */ mr r28, r5
/* 803088F8 00305858 7C DD 33 78 */ mr r29, r6
/* 803088FC 0030585C 53 44 07 BE */ rlwimi r4, r26, 0, 0x1e, 0x1f
/* 80308900 00305860 53 84 2E 34 */ rlwimi r4, r28, 5, 0x18, 0x1a
/* 80308904 00305864 7C 9E 23 78 */ mr r30, r4
/* 80308908 00305868 53 BE 45 2E */ rlwimi r30, r29, 8, 0x14, 0x17
/* 8030890C 0030586C A0 1F 00 56 */ lhz r0, 0x56(r31)
/* 80308910 00305870 7C 1E 00 40 */ cmplw r30, r0
/* 80308914 00305874 41 82 00 24 */ beq lbl_80308938
/* 80308918 00305878 7F C3 F3 78 */ mr r3, r30
/* 8030891C 0030587C 4B DA BA 5D */ bl update_fog__3CGXFUi
/* 80308920 00305880 B3 DF 00 56 */ sth r30, 0x56(r31)
/* 80308924 00305884 7F 43 D3 78 */ mr r3, r26
/* 80308928 00305888 7F 64 DB 78 */ mr r4, r27
/* 8030892C 0030588C 7F 85 E3 78 */ mr r5, r28
/* 80308930 00305890 7F A6 EB 78 */ mr r6, r29
/* 80308934 00305894 48 07 35 79 */ bl GXSetBlendMode
lbl_80308938:
/* 80308938 00305898 BB 41 00 08 */ lmw r26, 8(r1)
/* 8030893C 0030589C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80308940 003058A0 7C 08 03 A6 */ mtlr r0
/* 80308944 003058A4 38 21 00 20 */ addi r1, r1, 0x20
/* 80308948 003058A8 4E 80 00 20 */ blr
.global SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID
SetTevOrder__3CGXF13_GXTevStageID13_GXTexCoordID11_GXTexMapID12_GXChannelID:
/* 8030894C 003058AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308950 003058B0 7C 08 02 A6 */ mflr r0
/* 80308954 003058B4 1D 23 00 1C */ mulli r9, r3, 0x1c
/* 80308958 003058B8 3D 00 80 5A */ lis r8, sGXState__3CGX@ha
/* 8030895C 003058BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308960 003058C0 54 A7 44 2E */ rlwinm r7, r5, 8, 0x10, 0x17
/* 80308964 003058C4 38 08 53 EC */ addi r0, r8, sGXState__3CGX@l
/* 80308968 003058C8 7D 00 4A 14 */ add r8, r0, r9
/* 8030896C 003058CC 39 08 00 68 */ addi r8, r8, 0x68
/* 80308970 003058D0 50 87 06 3E */ rlwimi r7, r4, 0, 0x18, 0x1f
/* 80308974 003058D4 80 08 00 14 */ lwz r0, 0x14(r8)
/* 80308978 003058D8 50 C7 82 1E */ rlwimi r7, r6, 0x10, 8, 0xf
/* 8030897C 003058DC 7C 00 38 40 */ cmplw r0, r7
/* 80308980 003058E0 41 82 00 0C */ beq lbl_8030898C
/* 80308984 003058E4 90 E8 00 14 */ stw r7, 0x14(r8)
/* 80308988 003058E8 48 07 30 6D */ bl GXSetTevOrder
lbl_8030898C:
/* 8030898C 003058EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308990 003058F0 7C 08 03 A6 */ mtlr r0
/* 80308994 003058F4 38 21 00 10 */ addi r1, r1, 0x10
/* 80308998 003058F8 4E 80 00 20 */ blr
.global SetTevKAlphaSel__3CGXF13_GXTevStageID15_GXTevKAlphaSel
SetTevKAlphaSel__3CGXF13_GXTevStageID15_GXTevKAlphaSel:
/* 8030899C 003058FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803089A0 00305900 7C 08 02 A6 */ mflr r0
/* 803089A4 00305904 1C C3 00 1C */ mulli r6, r3, 0x1c
/* 803089A8 00305908 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 803089AC 0030590C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803089B0 00305910 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 803089B4 00305914 7C A0 32 14 */ add r5, r0, r6
/* 803089B8 00305918 38 A5 00 68 */ addi r5, r5, 0x68
/* 803089BC 0030591C 88 05 00 19 */ lbz r0, 0x19(r5)
/* 803089C0 00305920 7C 04 00 00 */ cmpw r4, r0
/* 803089C4 00305924 41 82 00 0C */ beq lbl_803089D0
/* 803089C8 00305928 98 85 00 19 */ stb r4, 0x19(r5)
/* 803089CC 0030592C 48 07 2D F9 */ bl GXSetTevKAlphaSel
lbl_803089D0:
/* 803089D0 00305930 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803089D4 00305934 7C 08 03 A6 */ mtlr r0
/* 803089D8 00305938 38 21 00 10 */ addi r1, r1, 0x10
/* 803089DC 0030593C 4E 80 00 20 */ blr
.global SetTevKColorSel__3CGXF13_GXTevStageID15_GXTevKColorSel
SetTevKColorSel__3CGXF13_GXTevStageID15_GXTevKColorSel:
/* 803089E0 00305940 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803089E4 00305944 7C 08 02 A6 */ mflr r0
/* 803089E8 00305948 1C C3 00 1C */ mulli r6, r3, 0x1c
/* 803089EC 0030594C 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 803089F0 00305950 90 01 00 14 */ stw r0, 0x14(r1)
/* 803089F4 00305954 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 803089F8 00305958 7C A0 32 14 */ add r5, r0, r6
/* 803089FC 0030595C 38 A5 00 68 */ addi r5, r5, 0x68
/* 80308A00 00305960 88 05 00 18 */ lbz r0, 0x18(r5)
/* 80308A04 00305964 7C 04 00 00 */ cmpw r4, r0
/* 80308A08 00305968 41 82 00 0C */ beq lbl_80308A14
/* 80308A0C 0030596C 98 85 00 18 */ stb r4, 0x18(r5)
/* 80308A10 00305970 48 07 2D 49 */ bl GXSetTevKColorSel
lbl_80308A14:
/* 80308A14 00305974 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308A18 00305978 7C 08 03 A6 */ mtlr r0
/* 80308A1C 0030597C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308A20 00305980 4E 80 00 20 */ blr
.global SetTevAlphaOp_Compressed__3CGXF13_GXTevStageIDUi
SetTevAlphaOp_Compressed__3CGXF13_GXTevStageIDUi:
/* 80308A24 00305984 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308A28 00305988 7C 08 02 A6 */ mflr r0
/* 80308A2C 0030598C 1C C3 00 1C */ mulli r6, r3, 0x1c
/* 80308A30 00305990 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308A34 00305994 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308A38 00305998 7C 88 23 78 */ mr r8, r4
/* 80308A3C 0030599C 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 80308A40 003059A0 7C 80 32 14 */ add r4, r0, r6
/* 80308A44 003059A4 38 84 00 68 */ addi r4, r4, 0x68
/* 80308A48 003059A8 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80308A4C 003059AC 7C 08 00 40 */ cmplw r8, r0
/* 80308A50 003059B0 41 82 00 20 */ beq lbl_80308A70
/* 80308A54 003059B4 91 04 00 0C */ stw r8, 0xc(r4)
/* 80308A58 003059B8 55 07 C7 FE */ rlwinm r7, r8, 0x18, 0x1f, 0x1f
/* 80308A5C 003059BC 55 04 07 3E */ clrlwi r4, r8, 0x1c
/* 80308A60 003059C0 55 05 E7 BE */ rlwinm r5, r8, 0x1c, 0x1e, 0x1f
/* 80308A64 003059C4 55 06 D7 BE */ rlwinm r6, r8, 0x1a, 0x1e, 0x1f
/* 80308A68 003059C8 55 08 BF BE */ rlwinm r8, r8, 0x17, 0x1e, 0x1f
/* 80308A6C 003059CC 48 07 2B 29 */ bl GXSetTevAlphaOp
lbl_80308A70:
/* 80308A70 003059D0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308A74 003059D4 7C 08 03 A6 */ mtlr r0
/* 80308A78 003059D8 38 21 00 10 */ addi r1, r1, 0x10
/* 80308A7C 003059DC 4E 80 00 20 */ blr
.global SetTevAlphaOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID
SetTevAlphaOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID:
/* 80308A80 003059E0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308A84 003059E4 7C 08 02 A6 */ mflr r0
/* 80308A88 003059E8 1D 43 00 1C */ mulli r10, r3, 0x1c
/* 80308A8C 003059EC 3D 20 80 5A */ lis r9, sGXState__3CGX@ha
/* 80308A90 003059F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308A94 003059F4 54 AB 26 B6 */ rlwinm r11, r5, 4, 0x1a, 0x1b
/* 80308A98 003059F8 38 09 53 EC */ addi r0, r9, sGXState__3CGX@l
/* 80308A9C 003059FC 7D 20 52 14 */ add r9, r0, r10
/* 80308AA0 00305A00 50 8B 07 3E */ rlwimi r11, r4, 0, 0x1c, 0x1f
/* 80308AA4 00305A04 80 09 00 74 */ lwz r0, 0x74(r9)
/* 80308AA8 00305A08 50 CB 36 32 */ rlwimi r11, r6, 6, 0x18, 0x19
/* 80308AAC 00305A0C 39 49 00 68 */ addi r10, r9, 0x68
/* 80308AB0 00305A10 50 EB 45 EE */ rlwimi r11, r7, 8, 0x17, 0x17
/* 80308AB4 00305A14 7D 69 5B 78 */ mr r9, r11
/* 80308AB8 00305A18 51 09 4D 6C */ rlwimi r9, r8, 9, 0x15, 0x16
/* 80308ABC 00305A1C 7C 09 00 40 */ cmplw r9, r0
/* 80308AC0 00305A20 41 82 00 0C */ beq lbl_80308ACC
/* 80308AC4 00305A24 91 2A 00 0C */ stw r9, 0xc(r10)
/* 80308AC8 00305A28 48 07 2A CD */ bl GXSetTevAlphaOp
lbl_80308ACC:
/* 80308ACC 00305A2C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308AD0 00305A30 7C 08 03 A6 */ mtlr r0
/* 80308AD4 00305A34 38 21 00 10 */ addi r1, r1, 0x10
/* 80308AD8 00305A38 4E 80 00 20 */ blr
.global SetTevColorOp_Compressed__3CGXF13_GXTevStageIDUi
SetTevColorOp_Compressed__3CGXF13_GXTevStageIDUi:
/* 80308ADC 00305A3C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308AE0 00305A40 7C 08 02 A6 */ mflr r0
/* 80308AE4 00305A44 1C C3 00 1C */ mulli r6, r3, 0x1c
/* 80308AE8 00305A48 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308AEC 00305A4C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308AF0 00305A50 7C 88 23 78 */ mr r8, r4
/* 80308AF4 00305A54 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 80308AF8 00305A58 7C 80 32 14 */ add r4, r0, r6
/* 80308AFC 00305A5C 38 84 00 68 */ addi r4, r4, 0x68
/* 80308B00 00305A60 80 04 00 08 */ lwz r0, 8(r4)
/* 80308B04 00305A64 7C 08 00 40 */ cmplw r8, r0
/* 80308B08 00305A68 41 82 00 20 */ beq lbl_80308B28
/* 80308B0C 00305A6C 91 04 00 08 */ stw r8, 8(r4)
/* 80308B10 00305A70 55 07 C7 FE */ rlwinm r7, r8, 0x18, 0x1f, 0x1f
/* 80308B14 00305A74 55 04 07 3E */ clrlwi r4, r8, 0x1c
/* 80308B18 00305A78 55 05 E7 BE */ rlwinm r5, r8, 0x1c, 0x1e, 0x1f
/* 80308B1C 00305A7C 55 06 D7 BE */ rlwinm r6, r8, 0x1a, 0x1e, 0x1f
/* 80308B20 00305A80 55 08 BF BE */ rlwinm r8, r8, 0x17, 0x1e, 0x1f
/* 80308B24 00305A84 48 07 2A 09 */ bl GXSetTevColorOp
lbl_80308B28:
/* 80308B28 00305A88 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308B2C 00305A8C 7C 08 03 A6 */ mtlr r0
/* 80308B30 00305A90 38 21 00 10 */ addi r1, r1, 0x10
/* 80308B34 00305A94 4E 80 00 20 */ blr
.global SetTevColorOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID
SetTevColorOp__3CGXF13_GXTevStageID8_GXTevOp10_GXTevBias11_GXTevScaleUc11_GXTevRegID:
/* 80308B38 00305A98 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308B3C 00305A9C 7C 08 02 A6 */ mflr r0
/* 80308B40 00305AA0 1D 43 00 1C */ mulli r10, r3, 0x1c
/* 80308B44 00305AA4 3D 20 80 5A */ lis r9, sGXState__3CGX@ha
/* 80308B48 00305AA8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308B4C 00305AAC 54 AB 26 B6 */ rlwinm r11, r5, 4, 0x1a, 0x1b
/* 80308B50 00305AB0 38 09 53 EC */ addi r0, r9, sGXState__3CGX@l
/* 80308B54 00305AB4 7D 20 52 14 */ add r9, r0, r10
/* 80308B58 00305AB8 50 8B 07 3E */ rlwimi r11, r4, 0, 0x1c, 0x1f
/* 80308B5C 00305ABC 80 09 00 70 */ lwz r0, 0x70(r9)
/* 80308B60 00305AC0 50 CB 36 32 */ rlwimi r11, r6, 6, 0x18, 0x19
/* 80308B64 00305AC4 39 49 00 68 */ addi r10, r9, 0x68
/* 80308B68 00305AC8 50 EB 45 EE */ rlwimi r11, r7, 8, 0x17, 0x17
/* 80308B6C 00305ACC 7D 69 5B 78 */ mr r9, r11
/* 80308B70 00305AD0 51 09 4D 6C */ rlwimi r9, r8, 9, 0x15, 0x16
/* 80308B74 00305AD4 7C 09 00 40 */ cmplw r9, r0
/* 80308B78 00305AD8 41 82 00 0C */ beq lbl_80308B84
/* 80308B7C 00305ADC 91 2A 00 08 */ stw r9, 8(r10)
/* 80308B80 00305AE0 48 07 29 AD */ bl GXSetTevColorOp
lbl_80308B84:
/* 80308B84 00305AE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308B88 00305AE8 7C 08 03 A6 */ mtlr r0
/* 80308B8C 00305AEC 38 21 00 10 */ addi r1, r1, 0x10
/* 80308B90 00305AF0 4E 80 00 20 */ blr
.global SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg
SetTevAlphaIn__3CGXF13_GXTevStageID14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg14_GXTevAlphaArg:
/* 80308B94 00305AF4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308B98 00305AF8 7C 08 02 A6 */ mflr r0
/* 80308B9C 00305AFC 1D 23 00 1C */ mulli r9, r3, 0x1c
/* 80308BA0 00305B00 3D 00 80 5A */ lis r8, sGXState__3CGX@ha
/* 80308BA4 00305B04 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308BA8 00305B08 54 AA 2D B4 */ rlwinm r10, r5, 5, 0x16, 0x1a
/* 80308BAC 00305B0C 38 08 53 EC */ addi r0, r8, sGXState__3CGX@l
/* 80308BB0 00305B10 7D 00 4A 14 */ add r8, r0, r9
/* 80308BB4 00305B14 50 8A 06 FE */ rlwimi r10, r4, 0, 0x1b, 0x1f
/* 80308BB8 00305B18 80 08 00 6C */ lwz r0, 0x6c(r8)
/* 80308BBC 00305B1C 50 CA 54 6A */ rlwimi r10, r6, 0xa, 0x11, 0x15
/* 80308BC0 00305B20 39 28 00 68 */ addi r9, r8, 0x68
/* 80308BC4 00305B24 7D 48 53 78 */ mr r8, r10
/* 80308BC8 00305B28 50 E8 7B 20 */ rlwimi r8, r7, 0xf, 0xc, 0x10
/* 80308BCC 00305B2C 7C 08 00 40 */ cmplw r8, r0
/* 80308BD0 00305B30 41 82 00 0C */ beq lbl_80308BDC
/* 80308BD4 00305B34 91 09 00 04 */ stw r8, 4(r9)
/* 80308BD8 00305B38 48 07 29 11 */ bl GXSetTevAlphaIn
lbl_80308BDC:
/* 80308BDC 00305B3C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308BE0 00305B40 7C 08 03 A6 */ mtlr r0
/* 80308BE4 00305B44 38 21 00 10 */ addi r1, r1, 0x10
/* 80308BE8 00305B48 4E 80 00 20 */ blr
.global SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg
SetTevColorIn__3CGXF13_GXTevStageID14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg14_GXTevColorArg:
/* 80308BEC 00305B4C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308BF0 00305B50 7C 08 02 A6 */ mflr r0
/* 80308BF4 00305B54 1D 23 00 1C */ mulli r9, r3, 0x1c
/* 80308BF8 00305B58 3D 00 80 5A */ lis r8, sGXState__3CGX@ha
/* 80308BFC 00305B5C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308C00 00305B60 54 AA 2D B4 */ rlwinm r10, r5, 5, 0x16, 0x1a
/* 80308C04 00305B64 38 08 53 EC */ addi r0, r8, sGXState__3CGX@l
/* 80308C08 00305B68 7D 00 4A 14 */ add r8, r0, r9
/* 80308C0C 00305B6C 50 8A 06 FE */ rlwimi r10, r4, 0, 0x1b, 0x1f
/* 80308C10 00305B70 80 08 00 68 */ lwz r0, 0x68(r8)
/* 80308C14 00305B74 50 CA 54 6A */ rlwimi r10, r6, 0xa, 0x11, 0x15
/* 80308C18 00305B78 39 28 00 68 */ addi r9, r8, 0x68
/* 80308C1C 00305B7C 7D 48 53 78 */ mr r8, r10
/* 80308C20 00305B80 50 E8 7B 20 */ rlwimi r8, r7, 0xf, 0xc, 0x10
/* 80308C24 00305B84 7C 08 00 40 */ cmplw r8, r0
/* 80308C28 00305B88 41 82 00 0C */ beq lbl_80308C34
/* 80308C2C 00305B8C 91 09 00 00 */ stw r8, 0(r9)
/* 80308C30 00305B90 48 07 28 75 */ bl GXSetTevColorIn
lbl_80308C34:
/* 80308C34 00305B94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308C38 00305B98 7C 08 03 A6 */ mtlr r0
/* 80308C3C 00305B9C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308C40 00305BA0 4E 80 00 20 */ blr
.global SetTevKColor__3CGXF14_GXTevKColorIDRC8_GXColor
SetTevKColor__3CGXF14_GXTevKColorIDRC8_GXColor:
/* 80308C44 00305BA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308C48 00305BA8 7C 08 02 A6 */ mflr r0
/* 80308C4C 00305BAC 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308C50 00305BB0 54 66 10 3A */ slwi r6, r3, 2
/* 80308C54 00305BB4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308C58 00305BB8 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 80308C5C 00305BBC 80 A4 00 00 */ lwz r5, 0(r4)
/* 80308C60 00305BC0 7C 80 32 14 */ add r4, r0, r6
/* 80308C64 00305BC4 84 04 00 58 */ lwzu r0, 0x58(r4)
/* 80308C68 00305BC8 7C 00 28 40 */ cmplw r0, r5
/* 80308C6C 00305BCC 41 82 00 14 */ beq lbl_80308C80
/* 80308C70 00305BD0 90 A4 00 00 */ stw r5, 0(r4)
/* 80308C74 00305BD4 38 81 00 08 */ addi r4, r1, 8
/* 80308C78 00305BD8 90 A1 00 08 */ stw r5, 8(r1)
/* 80308C7C 00305BDC 48 07 2A 69 */ bl GXSetTevKColor
lbl_80308C80:
/* 80308C80 00305BE0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308C84 00305BE4 7C 08 03 A6 */ mtlr r0
/* 80308C88 00305BE8 38 21 00 10 */ addi r1, r1, 0x10
/* 80308C8C 00305BEC 4E 80 00 20 */ blr
.global SetNumTevStages__3CGXFUc
SetNumTevStages__3CGXFUc:
/* 80308C90 00305BF0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308C94 00305BF4 7C 08 02 A6 */ mflr r0
/* 80308C98 00305BF8 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308C9C 00305BFC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308CA0 00305C00 38 A4 53 EC */ addi r5, r4, sGXState__3CGX@l
/* 80308CA4 00305C04 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80308CA8 00305C08 88 85 00 50 */ lbz r4, 0x50(r5)
/* 80308CAC 00305C0C 7C 04 00 40 */ cmplw r4, r0
/* 80308CB0 00305C10 41 82 00 0C */ beq lbl_80308CBC
/* 80308CB4 00305C14 98 65 00 50 */ stb r3, 0x50(r5)
/* 80308CB8 00305C18 48 07 2F 15 */ bl GXSetNumTevStages
lbl_80308CBC:
/* 80308CBC 00305C1C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308CC0 00305C20 7C 08 03 A6 */ mtlr r0
/* 80308CC4 00305C24 38 21 00 10 */ addi r1, r1, 0x10
/* 80308CC8 00305C28 4E 80 00 20 */ blr
.global SetChanCtrl__3CGXFQ23CGX10EChannelIdUc11_GXColorSrc11_GXColorSrc10_GXLightID12_GXDiffuseFn9_GXAttnFn
SetChanCtrl__3CGXFQ23CGX10EChannelIdUc11_GXColorSrc11_GXColorSrc10_GXLightID12_GXDiffuseFn9_GXAttnFn:
/* 80308CCC 00305C2C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308CD0 00305C30 3D 40 80 5A */ lis r10, sGXState__3CGX@ha
/* 80308CD4 00305C34 54 6B 08 3C */ slwi r11, r3, 1
/* 80308CD8 00305C38 2C 07 00 00 */ cmpwi r7, 0
/* 80308CDC 00305C3C 38 0A 53 EC */ addi r0, r10, sGXState__3CGX@l
/* 80308CE0 00305C40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80308CE4 00305C44 7D 40 5A 14 */ add r10, r0, r11
/* 80308CE8 00305C48 A3 EA 00 30 */ lhz r31, 0x30(r10)
/* 80308CEC 00305C4C 39 8A 00 34 */ addi r12, r10, 0x34
/* 80308CF0 00305C50 40 82 00 08 */ bne lbl_80308CF8
/* 80308CF4 00305C54 38 80 00 00 */ li r4, 0
lbl_80308CF8:
/* 80308CF8 00305C58 54 AB 0F BC */ rlwinm r11, r5, 1, 0x1e, 0x1e
/* 80308CFC 00305C5C 3D 40 80 5A */ lis r10, sGXState__3CGX@ha
/* 80308D00 00305C60 50 8B 07 FE */ rlwimi r11, r4, 0, 0x1f, 0x1f
/* 80308D04 00305C64 38 A3 00 01 */ addi r5, r3, 1
/* 80308D08 00305C68 50 CB 17 7A */ rlwimi r11, r6, 2, 0x1d, 0x1d
/* 80308D0C 00305C6C 38 00 00 01 */ li r0, 1
/* 80308D10 00305C70 50 EB 1D 78 */ rlwimi r11, r7, 3, 0x15, 0x1c
/* 80308D14 00305C74 39 4A 53 EC */ addi r10, r10, sGXState__3CGX@l
/* 80308D18 00305C78 51 0B 5C E8 */ rlwimi r11, r8, 0xb, 0x13, 0x14
/* 80308D1C 00305C7C 7C 00 28 30 */ slw r0, r0, r5
/* 80308D20 00305C80 7D 63 5B 78 */ mr r3, r11
/* 80308D24 00305C84 51 23 6C 64 */ rlwimi r3, r9, 0xd, 0x11, 0x12
/* 80308D28 00305C88 B0 6C 00 00 */ sth r3, 0(r12)
/* 80308D2C 00305C8C 7C 83 F8 50 */ subf r4, r3, r31
/* 80308D30 00305C90 7C 7F 18 50 */ subf r3, r31, r3
/* 80308D34 00305C94 7C 84 1B 78 */ or r4, r4, r3
/* 80308D38 00305C98 88 6A 00 4C */ lbz r3, 0x4c(r10)
/* 80308D3C 00305C9C 54 84 0F FE */ srwi r4, r4, 0x1f
/* 80308D40 00305CA0 7C 84 28 30 */ slw r4, r4, r5
/* 80308D44 00305CA4 7C 60 00 78 */ andc r0, r3, r0
/* 80308D48 00305CA8 7C 80 03 78 */ or r0, r4, r0
/* 80308D4C 00305CAC 98 0A 00 4C */ stb r0, 0x4c(r10)
/* 80308D50 00305CB0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80308D54 00305CB4 38 21 00 10 */ addi r1, r1, 0x10
/* 80308D58 00305CB8 4E 80 00 20 */ blr
.global SetChanMatColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
SetChanMatColor__3CGXFQ23CGX10EChannelIdRC8_GXColor:
/* 80308D5C 00305CBC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308D60 00305CC0 7C 08 02 A6 */ mflr r0
/* 80308D64 00305CC4 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308D68 00305CC8 54 66 10 3A */ slwi r6, r3, 2
/* 80308D6C 00305CCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308D70 00305CD0 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 80308D74 00305CD4 80 E4 00 00 */ lwz r7, 0(r4)
/* 80308D78 00305CD8 7C 80 32 14 */ add r4, r0, r6
/* 80308D7C 00305CDC 84 04 00 40 */ lwzu r0, 0x40(r4)
/* 80308D80 00305CE0 7C 07 00 40 */ cmplw r7, r0
/* 80308D84 00305CE4 41 82 00 18 */ beq lbl_80308D9C
/* 80308D88 00305CE8 90 E4 00 00 */ stw r7, 0(r4)
/* 80308D8C 00305CEC 38 63 00 04 */ addi r3, r3, 4
/* 80308D90 00305CF0 38 81 00 08 */ addi r4, r1, 8
/* 80308D94 00305CF4 90 E1 00 08 */ stw r7, 8(r1)
/* 80308D98 00305CF8 48 07 0C A5 */ bl GXSetChanMatColor
lbl_80308D9C:
/* 80308D9C 00305CFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308DA0 00305D00 7C 08 03 A6 */ mtlr r0
/* 80308DA4 00305D04 38 21 00 10 */ addi r1, r1, 0x10
/* 80308DA8 00305D08 4E 80 00 20 */ blr
.global GetChanAmbColor__3CGXFQ23CGX10EChannelId
GetChanAmbColor__3CGXFQ23CGX10EChannelId:
/* 80308DAC 00305D0C 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308DB0 00305D10 54 60 10 3A */ slwi r0, r3, 2
/* 80308DB4 00305D14 38 64 53 EC */ addi r3, r4, sGXState__3CGX@l
/* 80308DB8 00305D18 7C 63 02 14 */ add r3, r3, r0
/* 80308DBC 00305D1C 80 63 00 38 */ lwz r3, 0x38(r3)
/* 80308DC0 00305D20 4E 80 00 20 */ blr
.global SetChanAmbColor__3CGXFQ23CGX10EChannelIdRC8_GXColor
SetChanAmbColor__3CGXFQ23CGX10EChannelIdRC8_GXColor:
/* 80308DC4 00305D24 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308DC8 00305D28 7C 08 02 A6 */ mflr r0
/* 80308DCC 00305D2C 3C A0 80 5A */ lis r5, sGXState__3CGX@ha
/* 80308DD0 00305D30 54 66 10 3A */ slwi r6, r3, 2
/* 80308DD4 00305D34 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308DD8 00305D38 38 05 53 EC */ addi r0, r5, sGXState__3CGX@l
/* 80308DDC 00305D3C 80 E4 00 00 */ lwz r7, 0(r4)
/* 80308DE0 00305D40 7C 80 32 14 */ add r4, r0, r6
/* 80308DE4 00305D44 84 04 00 38 */ lwzu r0, 0x38(r4)
/* 80308DE8 00305D48 7C 07 00 40 */ cmplw r7, r0
/* 80308DEC 00305D4C 41 82 00 18 */ beq lbl_80308E04
/* 80308DF0 00305D50 90 E4 00 00 */ stw r7, 0(r4)
/* 80308DF4 00305D54 38 63 00 04 */ addi r3, r3, 4
/* 80308DF8 00305D58 38 81 00 08 */ addi r4, r1, 8
/* 80308DFC 00305D5C 90 E1 00 08 */ stw r7, 8(r1)
/* 80308E00 00305D60 48 07 0B 49 */ bl GXSetChanAmbColor
lbl_80308E04:
/* 80308E04 00305D64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308E08 00305D68 7C 08 03 A6 */ mtlr r0
/* 80308E0C 00305D6C 38 21 00 10 */ addi r1, r1, 0x10
/* 80308E10 00305D70 4E 80 00 20 */ blr
.global SetNumTexGens__3CGXFUc
SetNumTexGens__3CGXFUc:
/* 80308E14 00305D74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308E18 00305D78 7C 08 02 A6 */ mflr r0
/* 80308E1C 00305D7C 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308E20 00305D80 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 80308E24 00305D84 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308E28 00305D88 38 84 53 EC */ addi r4, r4, sGXState__3CGX@l
/* 80308E2C 00305D8C 88 04 00 4F */ lbz r0, 0x4f(r4)
/* 80308E30 00305D90 7C 05 00 40 */ cmplw r5, r0
/* 80308E34 00305D94 41 82 00 0C */ beq lbl_80308E40
/* 80308E38 00305D98 98 64 00 4F */ stb r3, 0x4f(r4)
/* 80308E3C 00305D9C 48 06 F4 29 */ bl GXSetNumTexGens
lbl_80308E40:
/* 80308E40 00305DA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308E44 00305DA4 7C 08 03 A6 */ mtlr r0
/* 80308E48 00305DA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80308E4C 00305DAC 4E 80 00 20 */ blr
.global SetNumChans__3CGXFUc
SetNumChans__3CGXFUc:
/* 80308E50 00305DB0 3C 80 80 5A */ lis r4, sGXState__3CGX@ha
/* 80308E54 00305DB4 54 66 06 3E */ clrlwi r6, r3, 0x18
/* 80308E58 00305DB8 38 E4 53 EC */ addi r7, r4, sGXState__3CGX@l
/* 80308E5C 00305DBC 88 87 00 4D */ lbz r4, 0x4d(r7)
/* 80308E60 00305DC0 88 07 00 4C */ lbz r0, 0x4c(r7)
/* 80308E64 00305DC4 7C A6 20 50 */ subf r5, r6, r4
/* 80308E68 00305DC8 7C 84 30 50 */ subf r4, r4, r6
/* 80308E6C 00305DCC 7C A4 23 78 */ or r4, r5, r4
/* 80308E70 00305DD0 98 67 00 4E */ stb r3, 0x4e(r7)
/* 80308E74 00305DD4 50 80 0F FE */ rlwimi r0, r4, 1, 0x1f, 0x1f
/* 80308E78 00305DD8 98 07 00 4C */ stb r0, 0x4c(r7)
/* 80308E7C 00305DDC 4E 80 00 20 */ blr
.global __sinit_CGX_cpp
__sinit_CGX_cpp:
/* 80308E80 00305DE0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80308E84 00305DE4 7C 08 02 A6 */ mflr r0
/* 80308E88 00305DE8 3C 60 80 5A */ lis r3, sGXState__3CGX@ha
/* 80308E8C 00305DEC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80308E90 00305DF0 38 63 53 EC */ addi r3, r3, sGXState__3CGX@l
/* 80308E94 00305DF4 4B FF F4 09 */ bl __ct__Q23CGX8SGXStateFv
/* 80308E98 00305DF8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80308E9C 00305DFC 7C 08 03 A6 */ mtlr r0
/* 80308EA0 00305E00 38 21 00 10 */ addi r1, r1, 0x10
/* 80308EA4 00305E04 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AE4B8
lbl_805AE4B8:
# ROM: 0x3FAD58
.4byte 0xFFFFFFFF
.global lbl_805AE4BC
lbl_805AE4BC:
# ROM: 0x3FAD5C
.4byte 0
.global lbl_805AE4C0
lbl_805AE4C0:
# ROM: 0x3FAD60
.float 1.0
.global lbl_805AE4C4
lbl_805AE4C4:
# ROM: 0x3FAD64
.float 0.1
.section .rodata
.balign 8
.global lbl_803D73A0
lbl_803D73A0:
# ROM: 0x3D43A0
.float 0.5
.4byte 0
.4byte 0
.4byte 0
.float 0.5
.4byte 0
.global lbl_803D73B8
lbl_803D73B8:
# ROM: 0x3D43B8
.4byte 0x00000009
.4byte 0x00000003
.4byte 0x000000FF
.4byte 0